2014-12-04 28 views
1

我拼命嘗試writeRaster()但是,由於光柵相當大,我需要大量的臨時內存。我的C:/驅動器上的空間有限,因此我想將臨時目錄更改爲D:/TEMP/。我想我在網上找到喜歡不同的方法:如何更改臨時文件的目錄 - 與巨大的臨時光柵文件的問題

Change temporary directory

http://r.789695.n4.nabble.com/How-do-I-set-the-Windows-temporary-directory-in-R-td876483.html

rasterOptions(tmpdir = "D:/RTEMP/")沒有解決的問題。即使它在柵格計算時工作,也不會影響writeRaster()函數。

我會非常感謝,如果有人能幫助我。

這裏是我的sessionInfo()

`R version 3.1.2 (2014-10-31) 

Platform: x86_64-w64-mingw32/x64 (64-bit)` 
+0

您是否正在認真寫入大於系統RAM的柵格對象,或者您是否在writeRaster中指定文件名? – 2014-12-04 21:08:36

+0

我想寫的柵格在'rasterOptions'的臨時文件中有23GB。我正在指定一個目標文件。當'writeRaster(r1glcm,「G:/ /.tif」,format =「GTiff」,compression =「LZW」,progress =「text」)'temp將寫入C:/ users/user/documents / – loki 2014-12-04 21:13:23

回答

3

我到了正確的答案:

write("TMPDIR = D:/rtmp/", file=file.path(Sys.getenv('TMPDIR'), '.Renviron')) 
write("R_USER = D:/rtmp/", file=file.path(Sys.getenv('R_USER'), '.Renviron')) 

這改變甚至writeRaster()功能

UPDATE的臨時目錄:

對於那些你,誰可能有麻煩這個錯誤(由於有限的權限)

> write("TMPDIR = D:/rtmp/", file=file.path(Sys.getenv('TMPDIR'), '.Renviron')) 
Error in file(file, ifelse(append, "a", "w")) : 
    cannot open the connection 
In addition: Warning message: 
In file(file, ifelse(append, "a", "w")) : 
    cannot open file '/.Renviron': Permission denied 

我發現

rasterOptions(tmpdir = "D:/rtmp/") 
write("R_USER = D:/rtmp/", file=file.path(Sys.getenv('R_USER'), '.Renviron')) 

也解決了這個問題。