在R语言Terra中将栅格数据CRS转换为经纬度格式的求助
Terra包中SpatRaster转经纬度CRS的正确方法
你执行的project()操作其实已经正确利用了SpatRaster自带的坐标参考信息,Terra的project()函数会自动读取输入栅格的CRS作为源坐标系,无需额外指定。下面是更规范的实现步骤:
- 确认原栅格的CRS
先验证Terra是否正确识别了原栅格的投影信息:
# 查看原栅格的CRS crs(r)
输出会和你提供的LCC投影参数一致,说明原CRS已被正确读取。
- 转换为WGS84经纬度投影
推荐使用EPSG代码(WGS84对应EPSG:4326)指定目标CRS,比直接写proj字符串更简洁准确:
# 将栅格转换为WGS84经纬度投影 r_longlat <- project(r, "EPSG:4326")
如果偏好proj字符串,也可以使用:
r_longlat <- project(r, "+proj=longlat +datum=WGS84 +no_defs")
- 验证转换结果
检查转换后的栅格信息,确认CRS和范围已变为经纬度格式:
# 查看转换后的CRS crs(r_longlat) # 查看转换后的经纬度范围 ext(r_longlat)
- 导出为带经纬度的数据框
将转换后的栅格转为包含经纬度坐标的数据框:
df_longlat <- as.data.frame(r_longlat, xy=TRUE) head(df_longlat)
此时输出的x列为经度,y列为纬度。
内容的提问来源于stack exchange,提问作者Elke Debrie
相关产品推荐
相关产品推荐

