0
点赞
收藏
分享

微信扫一扫

开源库OGR的入门知识

1. 前言

OGR 是一个读取和处理 GIS 矢量数据的开源代码库。它可以读取和处理多种流行的矢量数据(如 ESRI 的 Shapefile、S-57、SDTS、PostGIS、Oracle Spatial、以及 Mapinfo 的 mid/mif 和 TAB 格式)

2. OGR库安装

OGR 是 GDAL 的配套库,它是 GDAL 库的一个部分,只要你安装了 GDAL 库,就
已经拥有了 OGR 库。关于gdal(python)的安装,可以参考这篇​博客。

3. OGR库数据模型

OGR数据模型是基于OpenGIS的标准来设立的,纵观OGR的类结构,它主要的类如下面所示。

  • Geometry
  • SpatialReference
  • Feature
  • FeatureDefn
  • Layer
  • DataSource
  • Driver

4. Geometry介绍

Geometry 指的是几何形状,这个类中包含矢量数据模型(由 OGC 相关标准定义)、相关的几何操作以及数据的导入、导出(wkb/wkt 形式)等函数。值得注意的是 Geometry 同时包含空间参考系统(投影)信息。其类的继承图如下所示:
开源库OGR的入门知识_数据模型
由上图的类结果图可知,所有 Geometry 类均是由 OGRGeometry 继承而来,OGRGeometry 中定义了一些支持所有 Geometry 形状的公共操作。Geometry 的类型包括点(OGRPoint)、线(OGRLineString)、多边形(OGRPolygon)、几何形状集合(OGRGeometryCollection)、点集(OGRMultiPoint)、线集(OGRMultiLineString)以及多边形集(OGRMultiPolygon)。

5. SpatialReference介绍

SpatialReference即空间参考系,它是参照OGC相关标准定义,包括地理坐标系以及投影坐标系,空间参考的数据模型采用的是OpenGIS的WKT格式。同时可以利用PROJ.4(另外的一个开源代码库)来进行坐标系统之间的转换。

6. Feature介绍

Feature 即要素,它包括几何对象(Geometry)与要素属性。要素集或字段的属性可以通过 OGRFeatureDefn 类来读取。其中,FID 是图层中要素的唯一标识,一个要素一般对应属性表中的一行。

7. Layer介绍

Layer即图层,OGR中的OGRLayer(图层)是由相同类型的要素组成并具有相同的坐标系统,相当于ArcGIS中的FeatureClass。OGRLayer类中封装了从数据源中读取、创建要素(Feature)的方法。

8. DataSource介绍

DataSource是数据源,由一系列图层(OGRLayer)组成。OGRDataSource是一个抽象的
基础类,该类不能像一般的抽象类那样实例化,需要与OGRSFDriver.类相结合。

9. Drivers介绍

Drivers顾名思义为驱动,它是用来实例化OGR所支持的文件格式,在OGRSFDriver类中
实现。而OGRSFDriver的对象需要由OGRSFDriverRegistrar来注册。

10. 总结

至此,相信大家已经对 OGR 有了初步的认识,它的功能还很强大,大家自己摸索吧!


举报

相关推荐

0 条评论