将克里金图导出为栅格时出现问题

时间:2018-09-08 10:56:10

标签: r export raster r-raster kriging

我创建了一个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))

结果可以在所附图片中查看。

enter image description here

我的问题是我无法将此地图导出为栅格。使用栅格数据包的以下命令时:

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"’

1 个答案:

答案 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程序。