我正在尝试将带有“Interrupted Goode的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
有什么建议吗?感谢〜
答案 0 :(得分:4)
如果你有一台机器可以读取整个600M +二进制文件而不会窒息那么好。否则,您可能希望利用光栅包在磁盘上使用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)
ProTip:每当有.tif文件可用时,请使用它,因为它可能是内置了所有必需元数据的GeoTIFF。
我有点担心Nrows乘Ncolumns比文件短163个字节,但也许有一个页脚,或者ImageOffset应该是163来抵消这个。