ここでRの空間解析には新しくありません。私はHEREからダウンロードしたアメリカのシェイプファイルを持っています。私はまた、隣接する米国内にある緯度/経度(50万ドル)のセットを持っています。R - ラスタライズされたUSAマップ上の点の集合から最も遠い点を見つけよう
私は「最も離れた場所」を見つけたいと思っています。これは、連続した米国内の地点から最も遠い場所です。
私はrgdal、raster、spパッケージを使用しています。再現可能なサンプルを10ポイントでランダムに表示した例を次に示します。
# Set wd to the folder tl_2010_us_state_10
usa <- readOGR(dsn = ".", layer = "tl_2010_us_state10")
# Sample 10 points in USA
sample <- spsample(usa, 10, type = "random")
# Set extent for contiguous united states
ext <- extent(-124.848974, -66.885444, 24.396308, 49.384358)
# Rasterize USA
r <- raster(ext, nrow = 500, ncol = 500)
rr <- rasterize(usa, r)
# Find distance from sample points to cells of USA raster
D <- distanceFromPoints(object = rr, xy = sample)
# Plot distances and points
plot(D)
points(sample)
最後の2行のコードの後に、このプロットが表示されます。
しかし、私はそれが米国のラスタライズされたマップ上になりたいです。そして、私はバウンディングボックスのすべてのセルではなく、連続したUSAにあるセルからの距離だけを考慮したいと思います。これをどうやって行うのですか?
私が使用しているシェイプファイルに関する他のヒントもありがとうございます。これは最高のものですか?私の実際のデータセットは緯度/経度であるので、正しい投影法を使用することに心配する必要がありますか? distanceFromPointsは、そのような大きなデータセットを効率的に処理できますか、それとも優れた機能がありますか?
distanceFromPointsからの距離がユークリッド距離か大きい円距離かどうかは、{raster}文書ではわかりません。私はそれが後者であることを前提としています。投影されていないlong/lat座標の場合、メートル単位になると言いますが、それだけです。あなたは知っていますか? – hoggue
{raster}ソースを調べなければならなかった... distFromPointsは/raster/src/distance.cにある 'distanceToNearestPoint'関数を呼び出しています。ラスタ/ポイントが投影されていない場合(latlong)、 'distanceToNearestPoint'はメートルの地球の半径に基づいて大円距離を返す' distCos'関数を呼び出します(ソースは/raster/src/dist_util.cにあります)。 – pbee