将克里金地图导出为栅格时出现问题
Problem in exporting a kriging map as Raster
我创建了一个 kriging 地图,它是使用 kriging 包的 kriging() 和 image() 函数创建的(table 是具有坐标和值的数据):
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"’
当你这样做时:
krig_raster <- image(krig, main = NULL, xlab = "X coords", ylab = "", col = heat.colors(100))
它绘制了图像并且 return 是一个 NULL,所以 writeRaster
试图写一个 NULL 并给你一个错误,准确地说。您需要先将 kriging
的输出转换为栅格对象。阅读 kriging
的文档告诉我输出预测位于 returned 对象的 $map
部分,并且采用三列格式,应该可以输入 raster::rasterFromXYZ
.如果我使用 ?kriging
中的示例并使用 kriged
对象执行此操作:
> r = rasterFromXYZ(kriged$map)
> plot(r)
我看到了美国光栅 class 对象的绘图,然后我可以使用 writeRaster
通过 writeRaster(r, "usa.tif")
保存它
请注意,我会谨慎使用不会 return 预测方差的克里金函数,或者让您在继续之前先检查变差函数 - 查看 gstat
包了解更多信息彻底的克里格程序。
我创建了一个 kriging 地图,它是使用 kriging 包的 kriging() 和 image() 函数创建的(table 是具有坐标和值的数据):
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"’
当你这样做时:
krig_raster <- image(krig, main = NULL, xlab = "X coords", ylab = "", col = heat.colors(100))
它绘制了图像并且 return 是一个 NULL,所以 writeRaster
试图写一个 NULL 并给你一个错误,准确地说。您需要先将 kriging
的输出转换为栅格对象。阅读 kriging
的文档告诉我输出预测位于 returned 对象的 $map
部分,并且采用三列格式,应该可以输入 raster::rasterFromXYZ
.如果我使用 ?kriging
中的示例并使用 kriged
对象执行此操作:
> r = rasterFromXYZ(kriged$map)
> plot(r)
我看到了美国光栅 class 对象的绘图,然后我可以使用 writeRaster
通过 writeRaster(r, "usa.tif")
请注意,我会谨慎使用不会 return 预测方差的克里金函数,或者让您在继续之前先检查变差函数 - 查看 gstat
包了解更多信息彻底的克里格程序。