2017-04-18 22 views
0

でプロットするRob Berry(http://rob-barry.com/2015/06/14/Mapping-in-R/)のコードを借用して、NY市の地図を作成します。私はマップ上にプロットしたい多くの緯度の長いポイントを持っています。問題は、このようなマップをプロットすると、プロットエリアが合理的な緯度経度の範囲外になることです。そのため、私のポイントをマップスケールに変換するか、プロットスペースを置くことができるようにマップを再スケーリングする方法が必要ですpoint()関数でlat lon点を指定します。 Rob Berryのコードは次のとおりです。rgdalパッケージの地図上の点をR

download.file(destfile = "nypp_15b.zip") 
unzip(zipfile = "nypp_15b.zip") 
library("rgdal") 
nypp <- readOGR("nypp_15b", "nypp") 
plot(nypp) 

ニースマップ!しかし、今、プロットのエクステントに気づく:

par(“usr”) 

プロットスペース番号は888196.7、1092361.0、114013.0、278953.2ように見えるので、はっきりと下記のような緯度経度のポイントが地図上に表示されません。だから、私のポイントを地図上に正しくプロットするにはどうすればいいですか?

lat <- c(40.75002, 40.74317) 
lon <- c(-73.96905 -74.00366) 

規模がそれほど異なるため、以下では動作しません:

points(lat,lon, col = “red”) 

はどうもありがとうございました。

+0

'を参照してくださいrgdal :: project'を - :?あなたはこのような何かを行うことができます。 – nicola

答えて

2

nyppは投影座標系であるため、ポイントまたはnyppの座標系に変更する必要があります。

nypp <- readOGR("nypp_15b", "nypp") 
## Check the CRS of nypp 
crs(nypp) 
## CRS arguments: 
+proj=lcc +lat_1=40.66666666666666 +lat_2=41.03333333333333 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 
+y_0=0 +datum=NAD83 +units=us-ft +no_defs +ellps=GRS80 +towgs84=0,0,0 

plot(nypp) 

lat <- c(40.75002, 40.74317) 
lon <- c(-73.96905, -74.00366) 

df <- data.frame(lat, lon) 

## Convert to spatial dataframe and change the coordinates of the points 
coordinates(df) <- ~lon + lat 
crs(df) <- CRS("+proj=longlat +datum=WGS84") 
df <- spTransform(df, crs(nypp)) 

## Add points to the plot 
points(df$lon, df$lat, col = "red", pch =19) 

結果:

Points overlaid

+0

詳細な対応をありがとうございます。 crs()は別のパッケージにありますか? Rが関数を見つけることができないというエラーが表示されます。 –

+0

これは 'raster'パッケージに入っています – ahly

+0

AWESOME!ありがとう! –

関連する問題