Решение: мне пришлось запустить gdal_polygonizeR
для каждого отдельного элемента списка, и я обнаружил, что несколько растровых файлов в списке не содержат значений (это было результатом функции reclassify
, примененной ранее к растрам).Я удалил эти файлы из списка, и lapply
сработало.Вот код:
#remove 'no value' elements from the list
new_rastlist <-
rasterlist[c(-7,-14,-36,-89,-191,-310,-432,-436,-476,-493,-494,-501)]
#then try again to use lapply
polyl <- lapply(rastlist, gdal_polygonizeR)
ОБНОВЛЕНИЕ: еще лучше, сначала удалите растры со всеми NA с помощью этого:
batch_reclass <- function(rastlist){
for (i in 1:length(wfrastlist)) {
#read in raster
r <-raster(paste0("/path/to/rasterfiles/", rastlist[i]))
#perform the reclassifcation
rc <- reclassify(r, rclmat)
#write each reclass to a new file
if (!is.na(minValue(rc))) {
writeRaster(rc, filename = paste0("/path/to/new/rasterfiles/", "rc_",
rastlist[i]), format="GTiff", overwrite=TRUE)
}}
}
#run the function
batch_reclass(rastlist)