可能你不玩 GIS,不懂这个库到底有什么用,或者和 python 有什么关系。但是你要玩
GIS,RS,你就应当知道这个库的价值。就算你不玩 GIS,我想这个库对你也应该有致命的
吸引力。为什么?看下面的介绍吧!
先看看这段 GDAL 主页上的英文介绍吧! is a translator library for raster
geospatial data formats that is released under anX/MITstyleOpen Sourcelicense by
theOpen Source Geospatial Foundation. As a library, it presents asingle abstract data
modelto the calling application for all supported formats. It also comes with a variety of
usefulcommandline utilitiesfor data translation and processing. 简单地说,GDAL 是一个操
作各种栅格地理数据格式的库。包括读取、写入、转换、处理各种栅格数据格式(有些特定
的格式对一些操作如写入等不支持)。它使用了一个单一的抽象数据模型就支持了大多数的
栅格数据(GIS 对栅格,矢量,3D 数据模型的抽象能力实在令人叹服)。当然除了栅格操
作,这个库还同时包括了操作矢量数据的另一个有名的库 ogr(ogr 这个库另外介绍),这
样这个库就同时具备了操作栅格和矢量数据的能力,买一送一,这么合算的买卖为什么不做。
最最最重要的是这个库是跨平台的,开源的!如今这个库对各种数据格式的支持强大到令人
啧啧的地步了。如果你对他的强大有什么怀疑的话,看看这里一大串的 GDAL 所支持格式清
单,吓到了吧!再看看它的主页最后那些使用了它作为底层数据处理的软件列表吧!其中你
可以不知道 GRASS,你也可以不知道 Quantum GIS (QGIS),但是你总该知道 Google Earth
吧!不知道?赶快下一个去玩玩--会当临绝顶,一览众山小!
有人说我又不玩 GIS。不错,但是,你即使不玩 GIS,这个库也是满有用的。首先,哪
个库支持这么多栅格(图片)格式,哪个库在 C/C++/python/ruby/VB/java/C#(这个暂时不
完全支持)下都能用,而且都一样用?退一步讲,3S 软件又不一定要用在 3S 下(很多医学
影像就是用 PCI 软件来处理的)。再退一步,你的生活即使和 3S 一点关系都没有,栅格数
据又不单单只有 GIS 下才用到。你大可用这个库来读取 jpg,gif,tif,xpm 等格式。而且对
各种格式支持得不是一般的好,很大一部分非标准格式照样支持得非常好。我曾经在 java
下玩过 jai,以及一系列 jai 的扩展库,一些图像格式在很多图片浏览器中都可以正确读取(有
的甚至不是非标准格式),用 jai 死活就读不出来!
这个库的 python 版和其他的 python 库结合的很好。最直接、明显的支持是使用
Numeric 库来进行数据读取和操作。各种矩阵魔术可以发挥得淋漓尽致(图像其实就是矩
阵)。而且按我的观点,python 对矩阵的操作比其他的语言有明显的优势。写出来的东西
比其他语言写出来的短小的多,而且好看得多。并且 python 的弱类型在处理栅格数据格式
类型的时候代码量比强类型的语言少了数倍(不用 double,byte,short 等等分开处理,这
简直就是先天上的优势)。所以我就喜欢用 python 做图像的处理。所以就连 GIS 界的微软
ESRI 也直接在 ARCGIS9 中用 python 来作栅格数据的导入导出。一句话,真是太方便啦!
评论0