You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从R的SpatRaster类中提取坐标对应的月度气候数据

解决方案:提取WorldClim月度气候数据及CRS相关问题

一、修复数据提取错误

你的报错原因是proj4string参数传入了字符串而非合法的CRS对象,且没必要依赖sp包的SpatialPoints——terra包的extract函数直接支持数据框格式的坐标输入,更简单高效:

方法1:直接用terra包提取(推荐)

# 直接传入data.frame格式的坐标提取数据
values <- terra::extract(test, coords)
# 合并原始坐标与提取结果,方便查看匹配关系
result <- cbind(coords, 五月最低温 = values)

方法2:正确使用sp包(若需兼容旧代码)

如果坚持用SpatialPoints,需传入合法的CRS对象,可直接从test中提取:

library(sp)
# 从SpatRaster获取CRS对象,而非手动输入字符串
points <- SpatialPoints(coords, proj4string = terra::crs(test))
values <- terra::extract(test, points)

二、关于"coord. ref."的重命名问题

你看到的coord. ref.是terra包输出SpatRaster信息时的固定显示标签,无法直接修改这个文本本身。但可以通过两种方式调整相关内容:

  1. 修改坐标参考系的描述名称:
    可以重新设置CRS的WKT字符串,替换其中的描述内容:
    # 获取当前CRS的详细WKT文本
    current_wkt <- terra::crs(test, describe = TRUE)$wkt
    # 替换描述部分(以EPSG:4326为例)
    new_wkt <- gsub("WGS 84", "自定义WGS84坐标系", current_wkt)
    # 重新设置CRS
    terra::crs(test) <- new_wkt
    # 再次查看test信息,coord. ref.后的描述会更新
    test
    
  2. 修改图层名称(即name字段):
    如果是想修改输出中name对应的长文件名,直接用names()函数:
    names(test) <- "tmin_may"
    

内容的提问来源于stack exchange,提问作者steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 07:47:10