2016-02-19 94 views
2

我似乎有使用RSCRIPT和Windows的唯一問題讀取柵格到raster包直接調用。我有最新版本的raster包(2.5-2.6)的。在Windows 2008 R2中運行R 3.2.1。無法使用`光柵:: raster`和RSCRIPT讀取光柵文件在Windows

考慮以下幾點:

library(raster) 
j <- raster(matrix(rnorm(100), ncol=10, nrow=10)) 
writeRaster(j, 'j.tif') 

如果我開始一個新的R會話(或沒有),這部作品在R:

library(raster) 
j <- raster('j.tif') 

那麼,這(再次,在一個新的會話) :

j <- raster::raster('j.tif') 

如果我嘗試在命令行中使用RSCRIPT,這個工程:

C:\> Rscript -e "library(raster); raster('j.tif') 

但是,這並不工作:

C:\> Rscript -e "raster::raster('j.tif')" 
Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer", : 
    Cannot create a RasterLayer object from this file. 
Calls: <Anonymous> -> <Anonymous> -> .local -> .rasterObjectFromFile 
Execution halted 
+2

我不能重現此我的系統上 - 無論是'Rscript'電話的工作對我罰款(R 3.2.3,64位,Windows 8.1中,光柵2.5 2) – jbaums

+1

我就得到了作爲搞清楚,這是因爲'Rscript'不會加載方法包和'光柵:::。rasterFromGDAL'(由'光柵:: raster'在這種情況下,所謂的)需求'方法:: checkAtAssignment'。但是,不知道爲什麼它在別處工作。不能立即升級到3.2.3,所以我會繼續關注。 – blindjesse

回答

1

是否在文件中c:/存在嗎?你能做到:

Rscript -e "file.exists('j.tif')" 

我認爲你是正確的Rscript不加載方法包。但raster依賴於它,並將其加載:

Rscript -e "library(raster); sessionInfo()" 

#Loading required package: methods 
#Loading required package: sp 
#R Under development (unstable) (2016-01-09 r69890) 
#Platform: x86_64-w64-mingw32/x64 (64-bit) 
#Running under: Windows 7 x64 (build 7601) Service Pack 1 

#attached base packages: 
#[1] methods stats  graphics grDevices utils  datasets base