[問題] 讀取多年維度為矩陣的變數值(nc檔)

看板R_Language作者 (沒有妳的我)時間6年前 (2018/11/22 18:43), 6年前編輯推噓0(0016)
留言16則, 2人參與, 6年前最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 各位大大好,小弟我想要將多年(10年以上)的區域(東亞)降雨資料讀進R,並取出多年的 降雨值來做計算處理,而目前資料可以讀的進R,但在取降雨這個變數的時候,R就跑出 記憶體不足的錯誤訊息,降雨值的資料為一矩陣(經度x緯度),經度總共360格,緯度共 280格(360*280),每一格皆有一降雨值,一天一個矩陣(平面),所以我在想有沒有可能 真的是要取出來的降雨這個變數資料量太佔記憶體,而造成沒辦法取出這麼多年分的降 雨值出來,小弟我目前試我的電腦最多只能取出4年的降雨值出來,所以想請教各位大大 有沒有什麼方法可以解決嗎??謝謝。 資料可從這裡取得:http://0rz.tw/JI056 (APHRO這個檔案) [程式範例]: rm(list=ls()) library(ncdf4) Aphrodite_data <- "C:\\Users\\TOM\\Desktop\\R(資料庫)\\Aphrodite資料 \\APHRO_MA_025deg_V1101R2.1961-2007\\APHRO_MA_025deg_V1101R2.1961-2007.nc" obs <- nc_open(Aphrodite_data) print(obs) lon <- ncvar_get(obs,"lon") lat <- ncvar_get(obs,"lat") level <- ncvar_get(obs,"lev") time <- ncvar_get(obs,"time") tunits <- ncatt_get(obs, "time", "units") precip <- ncvar_get(obs, "pr") precip <- ncvar_get(obs, "pr",start=c(1,1,1,1),count=c(360,280,1,1460)) dim(precip) nc_close(obs) [環境敘述]: https://imgur.com/kJiIoc7
[關鍵字]: 多年資料 變數 nc檔 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.227.126 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1542883407.A.8AA.html ※ 編輯: AndrewShi (180.217.134.75), 11/22/2018 21:34:14

11/22 21:57, 6年前 , 1F
47年的資料嗎?雨量以雙精倍浮點數估算就要13GB記憶體
11/22 21:57, 1F

11/22 22:47, 6年前 , 2F
對,或許之後不一定會用到這麼長時間,但20~30年跑不
11/22 22:47, 2F

11/22 22:47, 6年前 , 3F
掉。
11/22 22:47, 3F

11/23 01:05, 6年前 , 4F
memory.limit() 結果多少?
11/23 01:05, 4F

11/23 01:08, 6年前 , 5F
夠的話,看一下 ?memory.limit 來推敲
11/23 01:08, 5F

11/23 01:51, 6年前 , 6F
4010,這是指我的記憶體空間極限是4010Mb嗎?!
11/23 01:51, 6F

11/23 01:52, 6年前 , 7F
對啊。找台16GB以上ram的電腦做吧
11/23 01:52, 7F

11/23 01:55, 6年前 , 8F
4GB ram進OS後所剩不多吧,這個做不來
11/23 01:55, 8F

11/23 02:54, 6年前 , 9F
了解,所以只有換電腦記憶體的選擇一途囉?!我是有想到
11/23 02:54, 9F

11/23 02:54, 6年前 , 10F
可以把nc檔先轉成txt檔再轉成csv檔,這樣不知道會不會
11/23 02:54, 10F

11/23 02:54, 6年前 , 11F
比較不占記憶體的空間?!
11/23 02:54, 11F

11/23 07:24, 6年前 , 12F
讀到R中是浮點數(的話),都一樣,和先前資料儲存格式
11/23 07:24, 12F

11/23 07:24, 6年前 , 13F
無關。
11/23 07:24, 13F

11/23 07:27, 6年前 , 14F
資料讀入後的操作還可能需要資料量2倍的記憶體。總之你
11/23 07:27, 14F

11/23 07:27, 6年前 , 15F
的硬體遠遠不夠。
11/23 07:27, 15F

11/23 12:16, 6年前 , 16F
了解,謝謝andrew大的解答。
11/23 12:16, 16F
文章代碼(AID): #1RzeXFYg (R_Language)
文章代碼(AID): #1RzeXFYg (R_Language)