Differences between revisions 2 and 3
Revision 2 as of 2006-06-14 14:59:04
Size: 3875
Editor: lilin
Comment:
Revision 3 as of 2006-06-19 07:07:09
Size: 5575
Editor: lilin
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:

先看看这段[http://www.gdal.org/ GDAL主页]上的英文介绍吧! http://www.gdal.org/gdalicon.png is a translator library for raster geospatial data formats that is released under an[http://www.gdal.org/faq.html#license X/MIT]style[http://www.opensource.org/ Open Source]license by the[http://www.osgeo.org/ Open Source Geospatial Foundation]. As a library, it presents a[http://www.gdal.org/gdal_datamodel.html single abstract data model]to the calling application for all supported formats. It also comes with a variety of useful[http://www.gdal.org/gdal_utilities.html commandline utilities]for data translation and processing.
简单地说,GDAL是一个操作各种栅格地理数据格式的库。包括读取、写入、转换、处理各种栅格数据格式(有些特定的格式对一些操作如写入等不支持)。它使用了一个单一的抽象数据模型就支持了大多数的栅格数据(GIS对栅格,矢量,3D数据模型的抽象能力实在令人叹服)。当然除了栅格操作,这个库还同时包括了操作矢量数据的另一个有名的库[http://ogr.maptools.org/ ogr](ogr这个库另外介绍),这样这个库就同时具备了操作栅格和矢量数据的能力,买一送一,这么合算的买卖为什么不做^^。最最最重要的是这个库是跨平台的,开源的!如今这个库对各种数据格式的支持强大到令人啧啧的地步了。如果你对他的强大有什么怀疑的话,看看[http://www.gdal.org/formats_list.html 这里]一大串的GDAL所支持格式清单,吓到了吧!再看看它的主页最后那些使用了它作为底层数据处理的软件列表吧!其中你可以不知道[http://grass.itc.it/index.html GRASS],你也可以不知道[http://qgis.sourceforge.net/ Quantum GIS (QGIS)],但是你总该知道[http://earth.google.com/ Google Earth]吧!不知道?赶快下一个去玩玩--会当临绝顶,一览众山小!
先看看这段[http://www.gdal.org/ GDAL主页]上的英文介绍吧! http://www.gdal.org/gdalicon.png is a translator library for raster geospatial data formats that is released under an[http://www.gdal.org/faq.html#license X/MIT]style[http://www.opensource.org/ Open Source]license by the[http://www.osgeo.org/ Open Source Geospatial Foundation]. As a library, it presents a[http://www.gdal.org/gdal_datamodel.html single abstract data model]to the calling application for all supported formats. It also comes with a variety of useful[http://www.gdal.org/gdal_utilities.html commandline utilities]for data translation and processing. 简单地说,GDAL是一个操作各种栅格地理数据格式的库。包括读取、写入、转换、处理各种栅格数据格式(有些特定的格式对一些操作如写入等不支持)。它使用了一个单一的抽象数据模型就支持了大多数的栅格数据(GIS对栅格,矢量,3D数据模型的抽象能力实在令人叹服)。当然除了栅格操作,这个库还同时包括了操作矢量数据的另一个有名的库[http://ogr.maptools.org/ ogr](ogr这个库另外介绍),这样这个库就同时具备了操作栅格和矢量数据的能力,买一送一,这么合算的买卖为什么不做^^。最最最重要的是这个库是跨平台的,开源的!如今这个库对各种数据格式的支持强大到令人啧啧的地步了。如果你对他的强大有什么怀疑的话,看看[http://www.gdal.org/formats_list.html 这里]一大串的GDAL所支持格式清单,吓到了吧!再看看它的主页最后那些使用了它作为底层数据处理的软件列表吧!其中你可以不知道[http://grass.itc.it/index.html GRASS],你也可以不知道[http://qgis.sourceforge.net/ Quantum GIS (QGIS)],但是你总该知道[http://earth.google.com/ Google Earth]吧!不知道?赶快下一个去玩玩--会当临绝顶,一览众山小!
Line 11: Line 8:
这个库的python版和其他的python库结合的很好。最直接、明显的支持是使用Numeric库来进行数据读取和操作。各种矩阵魔术可以发挥得淋漓尽致(图像其实就是矩阵)。而且按我的观点,python对矩阵的操作比其他的语言有明显的优势。写出来的东西比其他语言写出来的短小的多,而且好看得多。并且python的弱类型在处理栅格数据格式类型的时候代码量比强类型的语言少了数倍(不用double,byte,short等等分开处理,这简直就是先天上的优势)。所以我就喜欢用python做图像的处理。所以就连GIS界的微软ESRI也直接在ARCGIS9中用python来作栅格数据的导入导出。一句话,真是太方便啦!
Line 12: Line 10:
这个库的python版和其他的python库结合的很好。最直接、明显的支持是使用Numeric库来进行数据读取和操作。各种矩阵魔术可以发挥得淋漓尽致(图像其实就是矩阵)。而且按我的观点,python对矩阵的操作比其他的语言有明显的优势。写出来的东西比其他语言写出来的短小的多,而且好看得多。并且python的弱类型在处理栅格数据格式类型的时候代码量比强类型的语言少了数倍(不用double,byte,short等等分开处理,这简直就是先天上的优势)。所以我就喜欢用python做图像的处理。所以就连GIS界的微软ESRI也直接在ARCGIS9中用python来作栅格数据的导入导出。一句话,真是太方便啦! = 安装 =
== windows下的安装 ==
官方安装文档在[http://www.remotesensing.org/gdal/gdal_building.html 这里]。下面是我自己的实践步骤:

先去http://www.gdal.org/dl/下一个版本,解压。 打开控制台,输入: “D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat" 注册vc的编译环境。

打 开gdal文件夹下的nmake.opt修改GDAL_HOME = "C:\warmerda\bld"把路径改到需要把gdal安装的地方。不改也可以。这里需要添加python支持,所以修改PY_INST_DIR = $(GDAL_HOME)\pymod把路径改成python下的Lib\site-packages文件夹下。PYDIR = "C:\Software\Python24" 改成python的安装路径。 下面的参数爱改什么就把前面的#删除(要看您有没有那些库的源码),注意一下路径就可以了。我是都没改。 后面就依次运行

{{{nmake /f makefile.vc
nmake /f makefile.vc install
nmake /f makefile.vc devinstall
}}}

最后最后,还要去GDAL_HOME目录下的bin文件夹下把gdal13.dll
(也有可能是gdal12.dll)copy到PY_INST_DIR路径下

到此处就完成安装gdal(python)的工作。

最后需要注意一下,gdal在.net2005下只能顺利编译1.2,1.3以上版本不能顺利编译,有一个地方指针转换出错。可能是2005的编译器比以往的严厉一点吧。
== linux下的安装 ==
linux下的安装就更简单了。直接
{{{./configure
make
su

make install
ldconfig
}}}
就ok(默认就已经支持python)。当然在第一步的时候需要看看是否依赖的库都安装了。如果缺少,就去安装一个。如果对configure的条件不理解,就用./configure --help看看具体情况。

GDAL库介绍

可能你不玩GIS,不懂这个库到底有什么用,或者和python有什么关系。但是你要玩GIS,RS,你就应当知道这个库的价值。就算你不玩GIS,我想这个库对你也应该有致命的吸引力。为什么?看下面的介绍吧!

先看看这段[http://www.gdal.org/ GDAL主页]上的英文介绍吧! http://www.gdal.org/gdalicon.png is a translator library for raster geospatial data formats that is released under an[http://www.gdal.org/faq.html#license X/MIT]style[http://www.opensource.org/ Open Source]license by the[http://www.osgeo.org/ Open Source Geospatial Foundation]. As a library, it presents a[http://www.gdal.org/gdal_datamodel.html single abstract data model]to the calling application for all supported formats. It also comes with a variety of useful[http://www.gdal.org/gdal_utilities.html commandline utilities]for data translation and processing. 简单地说,GDAL是一个操作各种栅格地理数据格式的库。包括读取、写入、转换、处理各种栅格数据格式(有些特定的格式对一些操作如写入等不支持)。它使用了一个单一的抽象数据模型就支持了大多数的栅格数据(GIS对栅格,矢量,3D数据模型的抽象能力实在令人叹服)。当然除了栅格操作,这个库还同时包括了操作矢量数据的另一个有名的库[http://ogr.maptools.org/ ogr](ogr这个库另外介绍),这样这个库就同时具备了操作栅格和矢量数据的能力,买一送一,这么合算的买卖为什么不做。最最最重要的是这个库是跨平台的,开源的!如今这个库对各种数据格式的支持强大到令人啧啧的地步了。如果你对他的强大有什么怀疑的话,看看[http://www.gdal.org/formats_list.html 这里]一大串的GDAL所支持格式清单,吓到了吧!再看看它的主页最后那些使用了它作为底层数据处理的软件列表吧!其中你可以不知道[http://grass.itc.it/index.html GRASS],你也可以不知道[http://qgis.sourceforge.net/ Quantum GIS (QGIS)],但是你总该知道[http://earth.google.com/ 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来作栅格数据的导入导出。一句话,真是太方便啦!

安装

windows下的安装

官方安装文档在[http://www.remotesensing.org/gdal/gdal_building.html 这里]。下面是我自己的实践步骤:

先去http://www.gdal.org/dl/下一个版本,解压。 打开控制台,输入: “D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat" 注册vc的编译环境。

打 开gdal文件夹下的nmake.opt修改GDAL_HOME = "C:\warmerda\bld"把路径改到需要把gdal安装的地方。不改也可以。这里需要添加python支持,所以修改PY_INST_DIR = $(GDAL_HOME)\pymod把路径改成python下的Lib\site-packages文件夹下。PYDIR = "C:\Software\Python24" 改成python的安装路径。 下面的参数爱改什么就把前面的#删除(要看您有没有那些库的源码),注意一下路径就可以了。我是都没改。 后面就依次运行

{{{nmake /f makefile.vc nmake /f makefile.vc install nmake /f makefile.vc devinstall }}}

最后最后,还要去GDAL_HOME目录下的bin文件夹下把gdal13.dll (也有可能是gdal12.dll)copy到PY_INST_DIR路径下

到此处就完成安装gdal(python)的工作。

最后需要注意一下,gdal在.net2005下只能顺利编译1.2,1.3以上版本不能顺利编译,有一个地方指针转换出错。可能是2005的编译器比以往的严厉一点吧。

linux下的安装

linux下的安装就更简单了。直接 {{{./configure make su

make install ldconfig }}} 就ok(默认就已经支持python)。当然在第一步的时候需要看看是否依赖的库都安装了。如果缺少,就去安装一个。如果对configure的条件不理解,就用./configure --help看看具体情况。

lilin/gdal-introduce (last edited 2009-12-25 07:09:21 by localhost)