У меня есть модель 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 bytes
. Я также проверил доступное место на диске, где я хочу сохранить растр, и есть более 60 ГБ свободного места:
Я не уверен, почему мин и максимальные значения неизвестны для многих растров в стеке, но просто для того, чтобы убедиться, что отдельные растры не были повреждены, я попытался построить один с отсутствующими минимальными / максимальными значениями (plot(envStack[[1]])
), и он был нанесен очень хорошо :
Объект модели (rf.full
) был успешно использован для вычисления различных метрик проверки, поэтому, насколько я знаю, с ним нет проблем, и папка где я хочу сохранить существующий выходной растр.
Когда я проверяю местоположение временного файла с помощью rasterTmpFile()
, он возвращает файл, который не ' не существует (хотя содержащая папка существует):
rasterTmpFile()
[1] "C:/Users/username/AppData/Local/Temp/Rtmpkxfn1t/raster/r_tmp_2020-02-17_152958_23480_67648.grd"
Мне кажется, я сталкивался с этой проблемой раньше, но не могу вспомнить как я решил это (или если я решил это). Смежные вопросы, которые я рассмотрел здесь, указывают на размер файла и проблемы с расположением файла, которые, как мне кажется, не являются проблемой. Некоторые намеки на проблемы с типом формата, но я сохранил другие растры как GeoTiffs на прошлой неделе на предыдущих этапах этого процесса, используя writeRaster()
с format = "GTiff"
. Кроме того, тот факт, что я получаю ту же ошибку, когда просто пытаюсь построить outRas
в R, создает впечатление, что существует проблема с самим растром. Любая помощь приветствуется.
ОБНОВЛЕНИЕ: Проблема оказалась в том, что оператор writeRaster()
был ненужным. Снятие этого решило проблему. Смотрите мой ответ ниже для более подробной информации.