CRS/投影法の変換
あるCRSや投影法から別のものへ変換する処理は、rgdal パッケージの spTransform() メソッドで行います。spTransform() には SpatialPolygonsDataFrame を含むすべての sp オブジェクト向けのメソッドがありますが、raster オブジェクトでは動作しません。これは、ラスターの変換は少し複雑で、変換後は長方形グリッドが長方形でなくなるためです。ラスターの変換に興味があれば、?raster::projectRaster を参照してください。
変換自体は簡単です。spTransform() の最初の引数 x は変換したい空間オブジェクト、2番目の引数 CRS は目的のCRSの指定です。CRS は手作業で作成した PROJ4 文字列で指定することもできますが、既存のオブジェクトから取得する(たとえば proj4string() 関数を使う)ほうがはるかに簡単です。
それでは、2つのポリゴンデータセットを同じCRSに揃えましょう。
この演習はコースの一部です
R で地理空間データを可視化する
演習の手順
spTransform()を使い、CRS引数にproj4string(nyc_tracts)を指定して、neighborhoodsをnyc_tractsと同じCRSに変換します。- 変換を確認するために、
coordinates(neighborhoods)のhead()を確認します。 - データセットが正しく重なるかを確認するため、まず
neighborhoodsを描画し、次にnyc_tractsをadd = TRUE、col = "red"として描画し、最後にwaterをadd = TRUE、col = "blue"として描画します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
library(sp)
library(raster)
# Use spTransform on neighborhoods: neighborhoods
# head() on coordinates() of neighborhoods
# Plot neighborhoods, nyc_tracts and water