私は R spatstat パッケージの新しいユーザーであり、owin() を使用して多角形の観測ウィンドウを作成する際に問題があります。コードは次のとおりです。
library("maps")
library ("sp")`
library("spatstat")
mass.map <- map("state", "massachusetts:main", fill=T) # This returns a data frame includding x and y components that form a polygon of massachusetts mainland`
mass.win <- owin(poly=data.frame(x=mass.map$x, y=mass.map$y)
if (w.area < 0) stop(paste("Area of polygon is negative -", "maybe traversed in >wrong direction?")) のエラー: TRUE/FALSE が必要な場所に値がありません
ポリゴンの順序を逆にしてみましたが、同じエラーが発生しました。
mass.win <- owin(poly=data.frame(x=rev(mass.map$x), y=rev(mass.map$y)))
ポリゴンに重複した頂点が含まれています
Polygon is self-intersecting Error in owin(poly = data.frame(x = rev(mass.map$x), y = rev(mass.map$y))) : ポリゴン データに重複した頂点と自己交差が含まれています
次に、map() によって返されるポリゴンは、owin() に渡されることを意図していない可能性があると考えました。そこで、マサチューセッツ州のシェイプ ファイルを読み込んでみました (この時点では完全に推測しています)。
x <- readShapePoly("../Geog/OUTLINE25K_POLY") ## The shape file for MASS, loaded from MassGIS website
mass.poly <- x <- readShapePoly("../Geog/OUTLINE25K_POLY", force_ring=T, delete_null_obj=T) ## I got following error whether or not I used force_ring
mass.owin <- as(mass.poly, "owin") 1006 個のポリゴンをチェックしています...1、ポリゴン 1 には重複した頂点が含まれています [91844 個のエッジを持つポリゴンをチェックしています...] 2、3、.. [etd 1:21: 52] ....10 [etd 36:12] ..... [etd 23:10] ....20 [etd 16:59] ..... [etd 13:22] .... 30 [etd 11:01] ..... [etd 9:21] ....40 [etd 8:06] ..... [etd 7:09] ....50 [etd 6:23] ] ..... [etd 5:46] ....60 [etd 5:15] ...[2449 個のエッジを持つポリゴンをチェック中...] .. [etd 4:49] ....70 [ etd 4:27] ..... [etd 4:07] ....80 [etd 3:50] ..... [etd 3:36] ....90 [etd 3:22] . .... [etd 3:11] ....100 [など。
交差する頂点などについて不平を言うメッセージが表示され、ポリゴンの構築に失敗しました。
問題に関するいくつかのコンテキスト:空間相対リスクの計算、つまり、ケースとコントロールの密度の空間比にspatstatの関数を使用しようとしています。そのためには、観測ウィンドウとそのウィンドウ内のポイント プロットが必要です。マサチューセッツ州周辺の長方形の観測ウィンドウをごまかすこともできますが、それはおそらく海岸近くの値を歪めるでしょう. いずれにせよ、このパッケージで今後行う作業のために、これを正しく行う方法を学びたいと思います。ご協力いただきありがとうございます。