一、GDAL / OGR简介
GDAL 全称 Geospatial Data Abstraction Library,是一个在 X/MIT 许可协议下读写空间数据的开源库。该项目由 Frank Warmerdam 教授于 1998 年发起。它利用抽象数据模型来表达所支持的各种文件格式,还有一系列的命令行工具来进行数据转换和处理。
OGR 全称 OpenGIS Simple Features Reference Implementation,是 GDAL 的一个子项目,提供对矢量数据的支持。同时它实现了一个对空间参考信息进行处理的类,用来对空间数据的空间信息进行处理。
GDAL 提供了一整套读写不同栅格数据格式功能的抽象类库, 而 OGR 是一个读写诸多矢量数据格式功能的抽象类库。两大类库用同一个生成系统进行维护,且作者均为Frank Warmerdam,因此通常把这两个库合称为 GDAL / OGR ,或者简称为 GDAL 。
GDAL / OGR 使用 C/C++ 编写,因此该库在支持百余种格式的同时,还具有很高的执行效率。GDAL / OGR 同时还提供多种主流编程语言的绑定,除了 C 和 C++ 之外,用户还可以在 Python、Java、C# 等语言中调用 GDAL / OGR,这令 GDAL / OGR 的应用变得非常广泛。
二、GDAL / OGR 核心功能
- 栅格/矢量数据格式读写
- 栅格格式:GeoTiff(tiff)、Erdas Imagine Images(img)、ASCII DEM(dem)等数百种格式
- 矢量格式:ESRI Shapefiles、PostGIS、GeoJSON等近百种格式
- 地理空间数据格式转换
- 地理空间处理: 图像校正、影像镶嵌、重投影、DEM 处理等
三、关于本专栏
现如今,几乎所有的 GIS 产品都使用 GDAL / OGR 作为底层数据处理库,如ArcGIS、Google Earth、Quantum GIS、GRASS GIS等。掌握 GDAL / OGR 能帮助各位 GISer 通过编写代码来灵活高效地处理地理空间数据,本专栏将以 Python 为例,结合 GDAL / OGR 官方说明文档,依次介绍 GDAL 和 OGR 中的常用类和算法,并通过具体的编码示例来帮助大家理解和掌握 GDAL / OGR 。
四、参考资料
- GDAL / OGR 官网:https://gdal.org/
- OSGeo 官网:https://www.osgeo.org/
- 《 GDAL 源码剖析与开发指南 》李民录