在不同 CRS/投影之间转换
从一个 CRS 或投影转换到另一个由 rgdal 包中的 spTransform() 方法处理。spTransform() 为所有 sp 对象(包括 SpatialPolygonsDataFrame)提供方法,但不适用于 raster 对象。这是因为对栅格进行转换更为复杂;转换后的矩形网格将不再是矩形。如果您对栅格转换感兴趣,可以查看 ?raster::projectRaster。
转换很简单。spTransform() 的第一个参数 x 是要转换的空间对象,第二个参数 CRS 用于指定目标坐标参考系。CRS 可以用 PROJ4 字符串指定,您可以手动构造,但更简单的方式是从现有对象中获取(例如使用 proj4string() 函数)。
现在把您的两个多边形数据集转换到相同的 CRS。
本练习是课程的一部分
在 R 中可视化地理空间数据
练习说明
- 使用
spTransform()将neighborhoods转换为与nyc_tracts相同的 CRS,CRS参数设为proj4string(nyc_tracts)。 - 通过查看
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