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

Rstudio运行Kriging插值出现st_crs方法不适用报错求助

Kriging插值报错修复方案

报错原因

你触发报错的核心原因是传入krige()函数的两类空间对象格式不兼容:

  • 点位数据silver_utm2是sf类空间对象(由sf包定义)
  • 插值网格grilla2是SpatialPixels类空间对象(由sp包定义)
    新版gstat的krige方法对sf类输入做适配时,无法对sp类的newdata执行sf专属的st_crs赋值操作,因此触发错误。

修复方案

任选以下任意一种方案修改代码即可:

方案1:统一使用sf类空间对象

将插值网格转换为sf格式,替换原代码中生成插值网格到执行克里金的部分:

# 空栅格生成代码保留
z <- raster(as(silver_utm2, "Spatial"), ncols = 200, nrows = 80)
# 将栅格转为sf格式网格点,无需转换为sp类
grilla2 <- st_as_stars(z) |> st_as_sf()
# 执行插值,两个输入均为sf类,格式兼容
ok <- krige(silver~1, locations=silver_utm2, newdata=grilla2, model=va)

注:需要确保已安装stars包,未安装可先执行install.packages("stars")

方案2:统一使用sp类空间对象

将采样点位数据转换为sp格式,和插值网格的格式匹配:

# 将sf类的采样点位转为sp类
silver_utm2_sp <- as(silver_utm2, "Spatial")
# 执行插值,两个输入均为sp类,格式兼容
ok <- krige(silver~1, locations=silver_utm2_sp, newdata=grilla2, model=va)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 02:21:01