导入光栅文件时出错
Error when importing raster file
我使用 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 - 64 位、4Gb 内存、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的依赖之前,新文件才能正确打开。
** 所有目录都选择正确,文件在目录中找到。
为什么使用这些格式? BIL 已过时,ASCII 效率低下。最好使用 GeoTIFF 或(如果您在 R/raster 范围内工作)GRD(默认格式)。
我想这个错误发生在 'BIL' 文件中,而不是 ascii 文件中。写入 'BIL' 文件时,您可能需要指定 writeRaster 参数 datatype='INT2S'
、datatype='FLT4S'
或任何其他非 64 位的数据类型 ('FLT8S')。你通常不需要那么高的精度(除非你想精确地存储非常大的整数)。您可以通过以下方式阅读文件:
raster('file.bil', native=TRUE)
我使用 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 - 64 位、4Gb 内存、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的依赖之前,新文件才能正确打开。
** 所有目录都选择正确,文件在目录中找到。
为什么使用这些格式? BIL 已过时,ASCII 效率低下。最好使用 GeoTIFF 或(如果您在 R/raster 范围内工作)GRD(默认格式)。
我想这个错误发生在 'BIL' 文件中,而不是 ascii 文件中。写入 'BIL' 文件时,您可能需要指定 writeRaster 参数 datatype='INT2S'
、datatype='FLT4S'
或任何其他非 64 位的数据类型 ('FLT8S')。你通常不需要那么高的精度(除非你想精确地存储非常大的整数)。您可以通过以下方式阅读文件:
raster('file.bil', native=TRUE)