0

我正在尝试将带有“Interrupted Goode's Homolosine Projection Binary Format”的 GIS 数据加载到 R 中,但我不知道该怎么做。

数据示例可以从以下链接获取:ftp: //ftp.glcf.umd.edu/glcf/Continuous_Fields_Tree_Cover/Global/gl-goodes-treecover/gl-goodes-deciduous.bin.gz

我尝试使用 R 包“caTools”中的函数“read.ENVI”,但它不起作用。

> library(caTools)
Loading required package: bitops
> r <- read.ENVI("gl-goodes-deciduous")
Error in read.ENVI("gl-goodes-deciduous") : 
  read.ENVI: Could not open input header file: gl-goodes-deciduous.hdr

有什么建议么?谢谢~

4

1 回答 1

4

如果您有一台可以读取整个 600M+ 二进制文件而不会窒息的机器,那就太好了。否则,您可能希望利用 raster 包在磁盘上使用 GDAL 图像的技能。

首先创建一个名为的文件gl-goodes-deciduous.vrt,如下所示:

<VRTDataset rasterXSize="40031" rasterYSize="17347">
<VRTRasterBand dataType="Byte" band="1" subClass="VRTRawRasterBand">
    <SourceFilename relativetoVRT="1">gl-goodes-deciduous.bin</SourceFilename>
    <ImageOffset>0</ImageOffset>
    <PixelOffset>1</PixelOffset>
    <LineOffset>40031</LineOffset>
    <ByteOrder>MSB</ByteOrder>
  </VRTRasterBand>
</VRTDataset>

这为 GDAL 库提供了足够的信息来读取数据。您可能还想阅读有关 VRT 的文档以获取正确的坐标。然后在 R 中,打开 VRT 并绘制它的低分辨率样本:

> require(raster)
> r = raster("gl-goodes-deciduous.vrt")
> plot(r,maxpixels=100*100)

专业提示:只要有可用的 .tif 文件,就使用它,因为它可能是内置了所有必需元数据的 GeoTIFF。

我有点担心 Nrows 乘以 Ncolumns 比文件短 163 个字节,但也许有一个页脚,或者 ImageOffset 应该是 163 来抵消这个。

于 2013-01-02T09:07:51.937 回答