Я пытаюсь использовать данные из этого файла (MOD13.A2010.unaccum.nc4) в проекте. Я установил и загрузил библиотеки ncdf4, raster, ggplot2 и viridis. Я успешно открываю файл, используя:
mcd_file <- nc_open("C:\\Program Files\\RStudio\\R\\MCD13.A2010.unaccum.nc4")
и могу получить доступ к атрибутам mcd_file, выделив mcd_file и нажав кнопку RUN и используя:
vars <- names(my_file$var)
print(vars)
Это указывает на то, что mcd_file имеет 5 переменных где time_bnds - вторая переменная, а набор данных NDVI - третья переменная.
Я могу получить правильную информацию о переменной time_bns, используя это:
time.layers < ncvar_get(mcd_file, "time_bnds")
, но когда я пытаюсь это сделать:
NDVI <- ncvar_get(mcd_file, "NDVI")
, я получаю сообщение об ошибке, которое гласит:
Ошибка: невозможно выделить вектор размером 49,5 Гб
Я посмотрел значение сообщения об ошибке, и это означает, что у меня недостаточно ОЗУ для хранения вся информация в NDVI, но тогда я не знаю никого с более чем 49,5 ГБ ОЗУ. Тем не менее, люди анализируют этот файл, используя R, поэтому информация в NDVI должна быть как-то доступна с помощью R.
Я знаю, что растровые объекты из растровой библиотеки могут использоваться для доступа к данным в файлах, которые слишком велики для размещения в ОЗУ. Но я не могу понять, как извлечь информацию в NDVI из исходного файла, чтобы я мог записать ее в файл без другой информации в исходном файле, чтобы я мог использовать растровые объекты для доступа к нему. Это:
write.csv(my_file$NDVI, file = "NDVI.csv")
создает файл с именем NDVI, но он пуст.
Это:
write.csv(as.raster(ncvar_get(my_file, "NDVI")),file = "NDVI2010.csv")
генерирует это сообщение об ошибке:
Ошибка: невозможно выделить вектор размером 49,5 Гб
Может кто-нибудь мне помочь?