Я получаю сообщение об ошибке: не удается выделить вектор размером 1003,7 Мб при выполнении расчетов с растрами в цикле.Странно то, что мой самый большой растр имеет только 7000 КБ.Код, который я использую:
список файлов из папки
ultrablue <- list.files(path = "C:/Users/Felix/Desktop/Bachelorarbeit/Daten/Datenverarbeitung_R/L1C_clipped_copied",
pattern = 'B01.jp2$', full.names=T)
blue <- list.files(path = "C:/Users/Felix/Desktop/Bachelorarbeit/Daten/Datenverarbeitung_R/L1C_clipped_copied",
pattern = 'B02.jp2$', full.names=T)
green <- list.files(path = "C:/Users/Felix/Desktop/Bachelorarbeit/Daten/Datenverarbeitung_R/L1C_clipped_copied",
pattern = 'B03.jp2$', full.names=T)
red <- list.files(path = "C:/Users/Felix/Desktop/Bachelorarbeit/Daten/Datenverarbeitung_R/L1C_clipped_copied",
pattern = 'B04.jp2$', full.names=T)
redge1 <- list.files(path = "C:/Users/Felix/Desktop/Bachelorarbeit/Daten/Datenverarbeitung_R/L1C_clipped_copied",
pattern = 'B05.jp2$', full.names=T)
redge2 <- list.files(path = "C:/Users/Felix/Desktop/Bachelorarbeit/Daten/Datenverarbeitung_R/L1C_clipped_copied",
pattern = 'B06.jp2$', full.names=T)
redge3 <- list.files(path = "C:/Users/Felix/Desktop/Bachelorarbeit/Daten/Datenverarbeitung_R/L1C_clipped_copied",
pattern = 'B07.jp2$', full.names=T)
NNIR <- list.files(path = "C:/Users/Felix/Desktop/Bachelorarbeit/Daten/Datenverarbeitung_R/L1C_clipped_copied",
pattern = 'B8A.jp2$', full.names=T)
определение функции, которая используется в цикле
rangeFun <- function(x){
x[x > 10000 | x < 0] <- NA
return(x)
}
loop
for(i in seq_along(ultrablue))
{
range_B1 <- rangeFun(raster(ultrablue[i]))
range_B2 <- rangeFun(raster(blue[i]))
range_B3 <- rangeFun(raster(green[i]))
range_B4 <- rangeFun(raster(red[i]))
range_B5 <- rangeFun(raster(redge1[i]))
range_B6 <- rangeFun(raster(redge2[i]))
range_B7 <- rangeFun(raster(redge3[i]))
range_B8A <- rangeFun(raster(NNIR[i]))
создавать имена
sat = 'S2_'
path = substr(ultrablue[i], 84, 90)
date = substr(ultrablue[i], 91, 98)
сохранять файлы
setwd("C:/Users/Felix/Desktop/Bachelorarbeit/Daten/Datenverarbeitung_R/L1C_clip_range")
writeRaster(range_B1,filename = paste0(sat, path, date,'_B1','.tif'))
writeRaster(range_B2,filename = paste0(sat, path, date,'_B2','.tif'))
writeRaster(range_B3,filename = paste0(sat, path, date,'_B3','.tif'))
writeRaster(range_B4,filename = paste0(sat, path, date,'_B4','.tif'))
writeRaster(range_B5,filename = paste0(sat, path, date,'_B5','.tif'))
writeRaster(rrange_B6,filename = paste0(sat, path, date,'_B6','.tif'))
writeRaster(range_B7,filename = paste0(sat, path, date,'_B7','.tif'))
writeRaster(range_B8A,filename = paste0(sat, path, date,'_B8A','.tif'))
removeTmpFiles(h=0.1)
}
Я не совсем понимаю, из какой части моего кода создается вектор размером 1003,7 мБ.