地理数据处理软件包GDAL/OGR简介

本文转自:http://ifelseif.blog.sohu.com/141043243.html

 

GDAL(Geospatial Data Abstraction Library) 是一个在 X/MIT 许可协议下的开源栅格空间数据转换库。该项目 Frank Warmerdam 教授于 1998 年发起。 它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。 OGR(OpenGIS Simple Features Reference Implementation) GDAL 项目的一个子项目,提供对矢量数据的支持。一般把这两个库合称为 GDAL/OGR ,或者简称为 GDAL

由于 MIT 协议的开放性,任何人都可以基于 GDAL 库来编写自己的软件而不需要原作者的授权,所以有很多著名的 GIS 软件都使用了 GDAL/OGR 库,包括商业公司 ESRI ArgGIS 9.2 Google Google Earth 和开源的 GRASS GIS 系统。 GDAL/OGR 支持多种操作系统,可以同时对 Linux windows 下的地理空间数据管理系统提供百余种矢量和栅格文件类型的支持。

GDAL/OGR 使用面向对象的 C++ 语言编写,这令该库在支持百余种格式的同时,还具有很高的执行效率。 GDAL/OGR 同时还提供多种主流编程语言的绑定,除了 C C++ 语言之外,用户还可以在 Perl python VB6 Ruby Java C# 等语言中调用 GDAL ,这令 GDAL 的应用变得非常广泛。但是目前 GDAL 的中文资料较少,本人在美国学习期间,主要参考了 GDAL 的官方网站 http://www.gdal.org/ Utah State University GDAL python 培训课程 http://www.gis.usu.edu/~chrisg/python/

下面简要介绍 GDAL/OGR 的体系结构

1 . GDAL

GDAL 提供对多种栅格数据的支持,包括 Arc/Info ASCII Grid(asc) GeoTiff (tiff) Erdas Imagine Images(img) ASCII DEM(dem) 等格式。

GDAL 使用抽象数据模型 (abstract data model) 来解析它所支持的数据格式,抽象数据模型包括数 据集 (dataset) ,坐标系统,仿射地理 坐标转换 (Affine Geo Transform) 大地控制点 (GCPs) 元数据 (Metadata) ,栅格波段 (Raster Band) ,颜色表 (Color Table) ,子数据集域 (Subdatasets Domain) ,图像结构域 (Image_Structure Domain) XML (XML:Domains)

GDAL 包括如下几个部分:

GDALMajorObject 类:带有元数据的对 象。

GDALDdataset 类:通常是从一个栅格文件中 提取的相关联的栅格波段集合和这些波段的元数据; GDALDdataset 也负责所有栅格波段的地理坐标转换 (georeferencing transform) 和坐标系定义。

GDALDriver 类:文件格式驱动类, GDAL 会为每一个所支持的文件格式创建一个该类的实体,来管理该文件格式。

GDALDriverManager 类:文件格式驱动 管理类,用来管理 GDALDriver 类。

2. OGR

OGR 提供对矢量数据格式的读写支持,它所支持的文件 格式包括: ESRI Shapefiles S-57 SDTS PostGIS Oracle Spatial Mapinfo mid/mif Mapinfo TAB

OGR 包括如下几部分:

Geometry :类 Geometry ( 包括 OGRGeometry 等类 ) 封装了 OpenGIS 的矢量数据模型,并提供了一些几何操作, WKB(Well Knows Binary) WKT(Well Known Text) 格式之间的相互转换,以及空间参考系统 ( 投影 )

Spatial Reference :类 OGRSpatialReference 封装了投影和基准面的定义。

Feature :类 OGRFeature 封装了一个完整 feature 的定义,一个完整的 feature 包括一个 geometry geometry 的一系列属性。

Feature Definition :类 OGRFeatureDefn 里面封装了 feature 的属性,类型、名称及其默认的空间参考系统等。一个 OGRFeatureDefn 对象通常与一个层 (layer) 对应。

Layer :类 OGRLayer 是一个抽象基类,表示数据源类 OGRDataSource 里面的一层要素 (feature)

Data Source :类 OGRDataSource 是一个抽象基类,表示含有 OGRLayer 对象的一个文件或一个数据库。

Drivers :类 OGRSFDriver 对应于每一个所支持的矢量文件格式。类 OGRSFDriver 由类 OGRSFDriverRegistrar 来注册和管理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值