私は、50以上の異なる多角形(50以上の異なる領域を表す)とその領域の1つに存在すると思われる10,000以上のデータ点を持つ形状ファイルを持っています。事実、10,000+のポイントはすでに存在するはずの領域でコード化されているので、地理空間距離のこのコード化された領域からどれくらい離れているのか把握したいと思います。 sp
ライブラリからowin
オブジェクトへのシェープファイルを変換しdistfun
を使用することを含むポリゴンから地理距離を計算する方法は?
私の現在のアプローチ(以下コード)は、私の緯度、長いユークリッド空間での距離を取得します。しかし、私は地理空間距離(最終的にkmに変換する)を得たいと思っています。どこに行くべきですか?
#basically cribbed from http://cran.r-project.org/web/packages/spatstat/vignettes/shapefiles.pdf (page 9)
shp <- readShapeSpatial("myShapeFile.shp", proj4string=CRS("+proj=longlat +datum=WGS84"))
regions <- lapply(slot(shp, "polygons"), function(x) SpatialPolygons(list(x)))
windows <- lapply(regions, as.owin)
# need to convert this to geo distance
distance_from_region <- function(regionData, regionName) {
w <- windows[[regionName]]
regionData$dists <- distfun(w)(regionData$lat, regionData$long)
regionData
}
spでspDistsN1を試してください。longlat = TRUE – mdsumner
@mdsummer:spDistsN1は2点間の距離を計算します。私はポリゴンからポイントまでの距離が必要です。変換を行う方法は私にはすぐには分かりません... – prabhasp
ポリゴンの座標からですか?重心または選択された境界点(最も近いもの?)、またはすべての境界点?あなたの質問はこれではっきりしていません。 spDists/spDistsN1は、マップ投影を選択せずにポイントのセット間で必要な大きな円の距離を提供します(ちょうど2ポイント間ではありません)ので、最終的に正しい座標または要約が抽出されたら使用します。 ? – mdsumner