開始使用免費開始

在不同 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


編輯並執行程式碼