导入光栅文件时出错

时间:2015-09-30 04:09:34

标签: r raster rgdal

我使用rasterize R函数将shapefile转换为栅格文件,并使用writeRaster函数(.bil和.asc)保存此栅格。 现在,我无法导入新文件,返回此错误:

Error in .local(.Object, ...) : 
  EHdr driver does not support 64 NBITS value.

Erro em .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer",  : 
  Cannot create a RasterLayer object from this file.

我的剧本:

library(maptools)
library(raster)
# shapefile from Natural Earth website 
a <- readShapeSpatial('ne_10m_roads.shp') 
e <- extent( -180, 180, -60, 90 ) 
r <- raster(e, nrow=3600, ncol=8640) 
s2r <- rasterize(a,r)

我使用的笔记本电脑配有Ubuntu 14.10 - 64bit,4Gb RAM,RStudio软件和R版3.1.1:

R version 3.1.1 (2014-07-10) 
Copyright (C) 2014 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

*格式化我的电脑后,只有在通过终端安装rgdal的依赖项之前,才能正确打开新文件。

**正确选择了所有目录,并将文件找到目录中。

1 个答案:

答案 0 :(得分:1)

为什么使用这些格式? BIL已经过时,ASCII效率低下。最好使用GeoTIFF或(如果你在R / raster领域内工作)GRD(默认格式)。

我认为这个错误发生在'BIL'文件中,而不是ascii文件。在编写'BIL'文件时,您可能需要指定writeRaster参数datatype='INT2S'datatype='FLT4S'或任何其他非64位数据类型('FLT8S')。您通常不需要那么多精度(除非您想要精确存储非常大的整数)。您可以通过以下方式阅读该文件:

raster('file.bil', native=TRUE)