gpt4 book ai didi

r - 尝试写入或绘制光栅时 .local(object, ...) 出错

转载 作者:行者123 更新时间:2023-12-05 07:12:56 26 4
gpt4 key购买 nike

我有一个 randomForest 模型,我试图在研究区域进行预测。我能够毫无错误地运行预测,并且我可以看到它生成了一个栅格,但是当我尝试运行 writeRaster()plot() 时,我得到错误 Error in .local(.object, ...) 没有任何更多信息。这是代码(请注意,envStack 是环境预测变量的栅格堆栈,而 rf.full 是 randomForest 模型对象):

library(here)
library(raster)
library(randomForest)
setwd(here("species", model_species, "outputs", "grids"))
fn <- paste0(model_run_name, "_raw_", Sys.Date(), ".tif")

outRas <- predict(object = envStack,
model = rf.full,
type = "prob",
index = 2,
na.rm = TRUE,
filename = fn,
format = "GTiff",
overwrite = TRUE,
progress = "text")
writeRaster(outRas, filename = fn, format = "GTiff", overwrite = TRUE)

而且,这里是错误:

Error in .local(.Object, ...) :

如果我尝试绘制输出栅格,也会发生同样的事情:

plot(outRas)

Error in .local(.Object, ...) :

我包括了 envStack 和 rf.full 对象的屏幕截图以及来自预测的 outRas 栅格产品。为了检查问题是否是文件大小问题,我使用了 object.size(outRas),它返回了 12832 字节。我还检查了要存储光栅的驱动器上的可用空间,并且有超过 60 GB 的可用空间: screenshot of raster stack, rf model, and output prediction raster objects

我不确定为什么堆栈中的许多栅格的最小值和最大值是未知的,但为了确保单个栅格没有损坏,我尝试绘制一个缺少最小值/最大值的栅格(plot(envStack[[1]])),绘制得很好: plot of first raster in envStack

模型对象 (rf.full) 已成功用于计算各种验证指标,据我所知,它没有问题,我想保存的文件夹存在输出栅格。

enter image description here

当我使用 rasterTmpFile() 检查临时文件位置时,它返回一个不存在的文件(尽管包含的文件夹存在):

rasterTmpFile()
[1] "C:/Users/username/AppData/Local/Temp/Rtmpkxfn1t/raster/r_tmp_2020-02-17_152958_23480_67648.grd"

empty temp folder

我觉得我以前遇到过这个问题,但我不记得我是如何解决的(或者我是否解决了)。我在这里看到的相关问题指向文件大小和文件位置问题,这对我来说似乎不是问题。一些关于格式类型问题的暗示,但我最近在上周使用 writeRaster()format = "GTiff" 将其他栅格保存为 GeoTiffs >。此外,当我试图在 R 中绘制 outRas 时,我得到了同样的错误,这使得光栅本身似乎存在问题。感谢您的帮助。

更新:问题原来是 writeRaster() 语句是不必要的。拿出来解决问题。有关详细信息,请参阅下面我的回答。

最佳答案

我发现我做错了什么。我将该代码位嵌入到 if/else try 语句中,因此它试图运行预测并将栅格写入作为同一运行的一部分。但是,writeRaster() 行是不必要的,因为 predict() 函数包含用于保存文件的 filename= 参数。通过告诉它在不知何故混淆 R 并导致它抛出该错误之后立即写入光栅。因此,我删除了 writeRaster() 语句,问题就解决了。

关于r - 尝试写入或绘制光栅时 .local(object, ...) 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60270919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com