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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将克里金地图导出为栅格时出现问题相关的知识,希望对你有一定的参考价值。

我创建了一个kriging map,它是使用kriging包的kriging()和image()函数创建的(table是带有coords和values的数据):

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

当你这样做时:

 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")保存

作为一个注释,我要警惕使用不返回预测差异的克里金函数或让你在继续之前首先检查变异函数 - 检查gstat包以获得更彻底的克里金程序。

以上是关于将克里金地图导出为栅格时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

arcgis怎么在指定的研究区范围内做克里金插值,并且把各个取值范围的面积统计出来。

ArcEngine导出地图所有属性时出现错误

利用arcgis做的土壤有机质的插值图,生成的图是矩形的

使用 gstat 和 automap 包的克里金法 - 复制教程时的问题

使用地图转换消息时出现 Biztalk 2020 异常

片段中的 Xamarin Android Google 地图错误