我创建了一个kriging映射,该映射是通过使用kriging软件包的kriging()和image()函数创建的(表是具有坐标和值的数据):
krig <- kriging(table@coords[ ,1], table@coords[ ,2], response = table@data$Joined.l_8, model = "spherical", lags = 3, pixels = 100)
krig_raster <- image(krig, main = NULL, xlab = "X coords", ylab = "", col = heat.colors(100))
结果可以在所附图片中查看。
我的问题是我无法将此地图导出为栅格。使用栅格数据包的以下命令时:
writeRaster(krig_raster, "/home/stathis/Desktop/test.tif", format="Gtiff", overwrite = TRUE)
我收到以下错误:
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘writeRaster’ for signature ‘"NULL", "character"’
答案 0 :(得分:3)
当您这样做:
krig_raster <- image(krig, main = NULL, xlab = "X coords", ylab = "", col = heat.colors(100))
它绘制图像并返回NULL,因此writeRaster
试图写NULL并给出错误信息。您需要首先将输出从kriging
转换为栅格对象。阅读文档kriging
会告诉我输出预测在返回对象的$map
部分中,并且应采用三列格式,可以将其输入raster::rasterFromXYZ
中。如果我在?kriging
中使用示例并通过kriged
对象执行此操作:
> r = rasterFromXYZ(kriged$map)
> plot(r)
我看到了一个美国栅格类对象的图,然后可以通过writeRaster
使用writeRaster(r, "usa.tif")
来保存它
请注意,我会谨慎使用不会返回预测方差的kriging函数,或者先让您先检查方差图,然后再继续进行操作-签出gstat
软件包以获取更全面的kriging程序。