• GDAL工具使用示例(一)


    GDAL提供的工具都是非常的实用,后续打算写一系列的博文来对GDAL提供的工具进行简单的说明,并结合实际的例子进行演示,希望对数据处理的同学有用。

    首先说明一下需要准备的数据,我这里使用的是SRTM的DEM数据,至于下载方式可以找我之前的博客。数据截图如下,下载的原始数据都是ZIP文件。也就是下图中的10个zip文件。

    今天首先对gdalinfo和gdalbuildvrt这两个工具做个说明。gdalinfo顾名思义,就是用来查看图像信息,这些图像信息基本上包括图像中的所有信息,目前除了不能查看图像的灰度值之外(查看图像的灰度值有另外一个工具,后续介绍),其他的信息都可以通过这个工具来进行查看。

    首先来查看其中一个zip文件中图像的信息(当然你也可以把zip解压后再进行处理)。这里不对zip文件进行解压是为了演示GDAL中比较牛的一个地方,可以直接访问zip压缩包中的数据。语法为:

    gdalinfo.exe /vsizip/E:/newzealand/srtm_70_21.zip/srtm_70_21.tif
    关于GDAL访问zip压缩包文件中的数据路径拼写可以参考我之前的博客[3]。上面的命令输出信息如下:



    从上图可以看出,GDAL输出了zip压缩包中图像的大小,肆角坐标,数据类型,NoData值,此外还有文件的关联文件。除此之外,gdalinfo还可以使用-mm命令来统计图像的最大最小值,-stats命令来统计图像的极值,均值、方差等统计信息,-hist来统计图像的直方图等信息。此外还有一些选项用来控制输出信息是否显示等,具体参考官方文档[1]。

    gdalinfo工具使用至此告一段落,下面我们要把上面下载的SRTM的dem数据来进行拼接,形成一个大的文件。这里我们使用一个比较“高级”的工具——gdalbuildvrt来完成这项工作。其实和我们经常用的镶嵌作用非常的类似,这里也差不多。下面说说操作方式。

    接下来需要把这些所有的zip中的tif文件根据地理坐标拼接成一个大图像,这里使用GDAL的VRT文件格式,一种虚拟的文件格式使用起来非常方便。对于生成VRT文件,可以分为两种方式,一种是将所有的zip数据解压后进行处理;另一种是不解压,直接进行处理。
    首先看解压的处理方式,其实很简单,首先将上面所有的zip解压,得到里面的tif文件存放在一个文件夹中,比如我这里就是E:\newzealand。具体做法如下:把上面所有的tif文件的路径存放在一个txt文件中,文件名叫vrt_input_tif.txt。如下所示:

    E:/newzealand/srtm_70_21.tif
    E:/newzealand/srtm_70_22.tif
    E:/newzealand/srtm_70_23.tif
    E:/newzealand/srtm_71_19.tif
    E:/newzealand/srtm_71_20.tif
    E:/newzealand/srtm_71_21.tif
    E:/newzealand/srtm_71_22.tif
    E:/newzealand/srtm_72_20.tif
    E:/newzealand/srtm_72_21.tif
    E:/newzealand/srtm_72_22.tif
    对于不解压处理,可以直接使用GDAL提供的虚拟访问机制中的zip访问方式,直接读取zip压缩包中的数据。具体作法与上面类似,把上面所有的zip文件的路径存放在一个txt文件中,文件名叫vrt_input_zip.txt。如下所示:
    /vsizip/E:/newzealand/srtm_70_21.zip/srtm_70_21.tif
    /vsizip/E:/newzealand/srtm_70_22.zip/srtm_70_22.tif
    /vsizip/E:/newzealand/srtm_70_23.zip/srtm_70_23.tif
    /vsizip/E:/newzealand/srtm_71_19.zip/srtm_71_19.tif
    /vsizip/E:/newzealand/srtm_71_20.zip/srtm_71_20.tif
    /vsizip/E:/newzealand/srtm_71_21.zip/srtm_71_21.tif
    /vsizip/E:/newzealand/srtm_71_22.zip/srtm_71_22.tif
    /vsizip/E:/newzealand/srtm_72_20.zip/srtm_72_20.tif
    /vsizip/E:/newzealand/srtm_72_21.zip/srtm_72_21.tif
    /vsizip/E:/newzealand/srtm_72_22.zip/srtm_72_22.tif
    接下来打开cmd,切换到GDAL的工具目录,然后输入下面的内容就可以得到一个NZL_zip.vrt的文件,可以用ArcMap10打开,看到图像整个拼接成一整块了。
    gdalbuildvrt.exe -input_file_list E:\newzealand\vrt_input_tif.txt E:\newzealand\NZL_tif.vrt
    gdalbuildvrt.exe -input_file_list E:\newzealand\vrt_input_zip.txt E:\newzealand\NZL_zip.vrt
    

    我们再次使用gdalinfo工具查看拼接好的vrt文件信息,可以看到图像的大小已经变大了,而且文件相关的文件也包含了所有的zip文件。直接用ArcMap10打开上面的VRT文件,发现所有的数据均已经拼接成一个大文件。VRT文件的大小仅仅6kb,基本上不占用磁盘空间即可管理大数据。有点象ArcMap10的镶嵌数据集的功能。

     
    注意:必须使用ArcMap10以上版本才能打开,10版本以下的不支持GDAL的VRT数据集。或者使用QGIS打开。

    参考资料:

    [1] http://gdal.org/gdalinfo.html

    [2] http://gdal.org/gdalbuildvrt.html

    [3] http://blog.csdn.net/liminlu0314/article/details/8589042

    [4] http://blog.csdn.net/liminlu0314/article/details/8068715

  • 相关阅读:
    JQuery学习
    前端Web APIs 二
    前端Web APIS
    Swift 函数式数据结构
    JAVA 四大域对象总结
    Java 访问 C++ 方法:JavaCPP
    写Java也得了解CPU–CPU缓存
    Servlet使用注解标注监听器(Listener)
    Java使用Fork/Join框架来并行执行任务
    Linux学习之让进程在后台可靠运行的方法详解
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6313949.html
Copyright © 2020-2023  润新知