2016-02-19 64 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