首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用R读取带有"Generic Flat Binary,Byte Interleave By Line (BIL)“的GIS数据

使用R读取带有"Generic Flat Binary,Byte Interleave By Line (BIL)“的GIS数据
EN

Stack Overflow用户
提问于 2013-01-14 14:57:14
回答 1查看 1.1K关注 0票数 1

我正在尝试将following GIS数据文件读入R:

某些数据规范是here

图像类型:通用平面二进制,逐行字节交错(BIL)

投影:中断的Goode Homolosine

我尝试使用R包"raster",但失败了。

代码语言:javascript
复制
library(raster)
r <- raster(file.choose())

Error in .local(.Object, ...) : 
  `C:\global_forest_cover.img' not recognised as a supported file format.

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

那么,我应该如何将这些GIS数据加载到R中?另外,将投影"Interrupted Homolosine“转换为LongLat?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-14 17:42:13

创建一个名为global_forest_cover.hdr的文件,并将http://edc2.usgs.gov/glcc/fao/header_file.php中的头信息放入其中:

代码语言:javascript
复制
BYTEORDER   M
LAYOUT  BIL
NROWS   15059
NCOLS   36543
NBANDS  1
NBITS   8
BANDROWBYTES    36543
TOTALROWBYTES       36543
ULXMAP  -17359000
ULYMAP  8673000
XDIM    1000
YDIM    1000

然后读取.img文件:

代码语言:javascript
复制
> forest = raster("global_forest_cover.img")
Geospatial Data Abstraction Library extensions to R successfully loaded
Loaded GDAL runtime: GDAL 1.6.3, released 2009/11/19
Path to GDAL shared files: /usr/share/gdal16
Loaded PROJ.4 runtime: Rel. 4.7.1, 23 September 2009, [PJ_VERSION: 470]
Path to PROJ.4 shared files: (autodetected)
> forest
class       : RasterLayer 
dimensions  : 15059, 36543, 550301037  (nrow, ncol, ncell)
resolution  : 1000, 1000  (x, y)
extent      : -17359500, 19183500, -6385500, 8673500  (xmin, xmax, ymin, ymax)
coord. ref. : NA 
data source : /home/nobackup/rowlings/Downloads/global_forest_cover.img 
names       : global_forest_cover 
values      : 0, 255  (min, max)

GDAL查看.hdr文件,并使用它来确定.img文件中15059*36543字节的结构。

然而,它没有投影信息。但即使是这样,将IGH投影回调到lat-long也可能会有一些问题。如果你看一下其他的IGH投影地图,你会发现它们涉及到拆毁海洋来帮助使地球变平。这应该是可能的,我认为最新的PROJ4库支持IGH投影,但可能只有一个方向。但是,除非您使用的代码与用于创建数据的代码完全相同,但反过来,您可能得不到正确的答案。

考虑到.hdr文件没有包含在压缩包中,而且这个投影对于进一步分析来说并不是一个很好的选择,我会去寻找另一个数据源。它也很差,因为在IGH投影分裂地球的地方,它似乎没有丢失的数据值-将http://edc2.usgs.gov/glcc/fao/index.php页面上的图片与其他IGH投影http://en.wikipedia.org/wiki/Goode_homolosine_projection进行比较

代码语言:javascript
复制
> r=raster("./fceurope/europe/w001001.adf")
> r
class       : RasterLayer 
dimensions  : 20000, 40000, 8e+08  (nrow, ncol, ncell)
resolution  : 0.009, 0.009  (x, y)
extent      : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=clrk66 +no_defs 
data source : /home/nobackup/rowlings/Downloads/fceurope/europe/w001001.adf 
names       : w001001 
values      : 1, 6  (min, max)
Raster Attribute Table
     fields : ID   COUNT
        min :  1  129626
        max :  6 4963775

但我在名称中的“欧洲”和全球范围之间有一点混淆。它也是一个非常非常大的栅格。啊,它把欧洲带到了荒无人烟的地方。请注意,投影现在是经度。您可能想要细化网格,然后将它们放在一起,以从所有给定的文件创建全局栅格。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14314390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档