[关闭]
@alexhuang 2015-03-29T15:50:06.000000Z 字数 1550 阅读 2092

Gdal以及arcgis raster table

GIS

安装配置GDAL/python环境

今天完成了Gdal在python环境下的配置。之前由于python是arcgis自带安装的,为32位。一直安装64位的gdal和插件,所以出现DLLload失败的情况(“不是有效的win32程序”)。Python相比C#也许更加灵活,毕竟是脚本语言Gdal 核心 版本可以直接从网站上下载。二进制包(binary)可直接安装到系统(下载地址 http://www.gisinternals.com/sdk/)。在安装python 扩展之前要先进行这一步。

Gdal 是一个很强大的库,对于gis开发者来说是一个很好的了解GIS算法的机会。在安装目录下,我们可以看到许多可执行的exe,包括gdalinfo,gdal_translate,我用过的有

  • gdalinfo.exe作为读取众多格式信息的工具,用途广泛,可以读取NC和HDF数据的元数据,数据集和波段信息等.
  • gdalwarp.exe用于栅格数据的裁剪(可以输入AOI矢量文件作为Mask),影像融合,投影变换(很重要的功能,借助Proj库)
  • gdal_contour.exe,gdaldem.exe 关于dem数据的处理,渲染阴影图,生成等值线(矢量文件)等
  • gdal2tiles.py

TMS切片算法

gdal2tiles.py是用于产生tms规则的分级切片影像。既然gdal提供了这么多功能,而且提供多种数据格式的读写与转换,可以组合出许多工作流。对于HDF和NC数据的读写还没有试过,这个部分的DLL需要编译在GDAL 的DLL中,所以如果下载的dll中没有此功能,需要借助swig重新编译。有空再做吧这个!无非就是可以把NC数据或者HDF当做栅格来读写,没有matlab来的方便。

另外还可用于切割TMS格式的瓦片,直接用于webgis浏览。比较著名的应用就是FWTools。更新一下最近在用C#写TMS切片,基于GDAL的栅格读写,参考gdal2tiles.py,有的人写过啦。但是还是自己写了一遍第一层切片,还有重采样没有写好。不过快了!这是第一次完整地写一个算法。当然以后有机会可以多写写。包括基本的二叉树搜索算法,和ta 的拓展K-D搜索,以及 矢量数据简化算法(道格拉斯普克算法),在矢量数据越来越丰富的今天,矢量数据的压缩和简化应该是重要的一部分。对于物流系统、生活导航等方面,最短路径是经常用到的,最短的网络距离也是常用的。算法参考以下
博客园中高手用C#实现最短路径算法
另外一位高手关于最短路径的实现
关于切片算法,今天(3月29日)下载了C#版本的gdal2tile,是直接切割成块,通过KML来标示位置的,具体还没有来得及看详细代码。自己写的C#切TMS瓦片还需要完善第一层原始切片在文件系统中的存放问题,每个级别的文件夹需要自动创建,每个级别下按照切片索引的X值创建文件夹,这一部分工作待完成。下一步就继续完成重采样,还有切片之前对于原始影像的投影判断和重新投影过程。

需要提及的是从Dem中提取等值线需要 一个字段参数,如果dem目前不存在attribute table 那字段便不存在。所以可以依靠 arcgis中Data Management -Build raster attr table 工具计算属性表。这样才能正常生成带 value 的等值线
http://pcjericks.github.io/py-gdalogr-cookbook/index.html这是一个Gdal-python的教程网站,包含了许多关于OGR库的使用说明的算法,很多几何计算的内容!!非常棒!适合模仿和学习

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注