Я пытаюсь применить простую функцию из программы R Raster через файлы GeoTIFF, разделенные на папки.
Мои файлы организованы в папку с именем «GeoTIFFs» с подпапками «a1», «a2»...так далее.Моя цель - просмотреть каждый файл и изменить все растровые значения 3 на 1 для каждого файла .tif в папке GeoTIFFs.
Это код, который я написал до сих пор.С этим много проблем.
Я знаю, что должен предоставить пример данных, но я не знаю, как имитировать растровые файлы в папках, что является сутью моей проблемы.
library(raster)
files = dir('./GeoTIFFs', pattern = '.tif', recursive = TRUE, full.names = TRUE))
nr <- vector("list", length(files))
names(nr) <- files
for (i in 1:length(files)) {
tmp <- raster(files[i])
df <- data.frame(id=3, v=1)
nr[[i]] <- subs(tmp, df, subsWithNA=FALSE)}
Этот код успешноимпортирует все мои файлы (n = 370), но сразу останавливается в цикле for
с этой ошибкой:
Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer", :
Cannot create a RasterLayer object from this file. (file does not exist)
Я почти уверен, что это потому, что R думает, что имя файла - 'a1/geotiff_example.tif'
'geotiff_example.tif'
.Я также думаю, что остальная часть кода, вероятно, не работает (за исключением функции подстановки, которая должна), поэтому я хотел бы получить совет о том, как выполнить эту (возможно, довольно простую) задачу.Большое спасибо.