在不同 CRS/投影之間轉換
從一種 CRS 或投影轉換到另一種,是由 rgdal 套件中的 spTransform() 方法處理。spTransform() 對所有 sp 物件(包含 SpatialPolygonsDataFrame)都有方法,但無法用在 raster 物件上。這是因為轉換網格資料更為複雜;轉換後的矩形網格將不再是矩形。如果你好奇如何轉換 raster,可以參考 ?raster::projectRaster。
轉換其實很簡單。spTransform() 的第一個引數 x 是要轉換的空間物件,第二個引數 CRS 是目標 CRS 的指定。CRS 可以用 PROJ4 字串來指定,你可以手動組成,但從現有物件取得會容易得多(例如使用 proj4string() 函式)。
現在把你的兩個多邊形資料集轉成相同的 CRS 吧。
本練習屬於課程
在 R 視覺化地理空間資料
練習說明
- 使用
spTransform(),將CRS引數設為proj4string(nyc_tracts),把neighborhoods轉成與nyc_tracts相同的 CRS。 - 透過查看
head()套用在coordinates(neighborhoods)的結果來驗證轉換。 - 檢查資料集是否對齊:先繪製
neighborhoods,再以add = TRUE、col = "red"繪製nyc_tracts,最後以add = TRUE、col = "blue"繪製water。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
library(sp)
library(raster)
# Use spTransform on neighborhoods: neighborhoods
# head() on coordinates() of neighborhoods
# Plot neighborhoods, nyc_tracts and water