Мне нужно преобразовать файл .nc (размер 35 ГБ) в .csv. Он показывает ошибку: невозможно выделить вектор размером 70,7 ГБ.
Как решить эту ошибку?
Я успешно преобразовал файлы .nc (размер 4 КБ) в файлы .csv, используя тот же код, который я использую для преобразования файлов большего размера.
Я попытался очистить память с помощью команды gc() перед командой nc.df.... Кроме того, я попытался увеличить лимит памяти, как показано ниже.
> memory.limit()
[1] 16306
> memory.limit(size = 120000)
[1] 120000
Код выглядит следующим образом:
> rm(list = ls())
> library(raster)
> nc.brick <- brick(file.choose())
> nc.df <- as.data.frame(nc.brick, xy=T)
> write.csv(nc.df, file.choose())
Ожидаемый результат — получить файл .csv с помощью приведенного выше кода. Однако в настоящее время после предпоследней команды (т.е. nc.df ‹- as.data.frame(nc.brick, xy=T) выдается указанная ошибка, т.е. Ошибка: невозможно выделить вектор размером 70,7 Гб.
> sessionInfo()
R version 3.4.0 (2017-04-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.
1252 attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] raster_2.5-8 sp_1.2-4 RevoUtilsMath_10.0.0
loaded via a namespace (and not attached):
[1] compiler_3.4.0 RevoUtils_10.0.4 rgdal_1.2-7 tools_3.4.0 Rcpp_0.12.10 ncdf4_1.16
[7] grid_3.4.0 lattice_0.20-35
Я попробовал библиотеку ff, но она снова выдает ту же ошибку.
> rm(list = ls())
> library(ff)
> nc.brick <- brick(file.choose())
> nc.df <- as.data.frame(nc.brick, xy=T)
sessionInfo()
? - person Biblot   schedule 21.10.2019ff
. - person Biblot   schedule 21.10.2019