gdal 读取点要素_地质男转行学遥感Python—读取矢量

027bb87b2067bd033c5c4075bc28e62f.png

矢量数据是地理特征表示为离散的几何形状ー特别是点、线和面。通常矢量数据一般不会用来表示连续数据,比如高程数据。矢量数据与我们生活息息相关,最常用的导航地图上的各要素,如道路、景点、医院、商场等要素都是以矢量数据来表示。目前主流的Arcgis软件能够很好的进行矢量数据的操作,而通过代码来实现矢量数据的操作的话,则会在某种程度上提高工作效率,比如矢量数据属性的批量增删改查(可以利用arcgis的站点包arcpy也能实现一些批量处理工作,但是arcgis10系列支持python2,而arcgis pro支持python3,在这里推荐一个非常好用的开源gis项目,QGIS)。

先了解一下矢量数据的结构组成。Data Source:类OGRDataSource是一个抽象基类,表示含有OGRLayer对象的一个文件或一个数据库。Layer:类OGRLayer是一个抽象基类,表示数据源类OGRDataSource里面的一层要素(feature)。Feature:类OGRFeature封装了一个完整feature的定义,一个完整的feature包括一个geometry和geometry的一系列属性。Geometry:类Geometry (包括OGRGeometry等类)封装了OpenGIS的矢量数据模型,并提供了一些几何操作,以及空间参考系统(投影)。看似很复杂,其实很好理解,在这里可以与GEE中的对象作类比。如这里的Geometry其实相当于GEE中的ee.Geometry,Feature相当于GEE中的ee.Feature,而Layer就相当于GEE中的ee.FeatureCollection。

648612b23c200f7c4bed3094737d6da8.png

从简单开始,利用ogr读取读取矢量数据。从数据源(data source)开始,可以通过dir,来查看数据源的相关函数、类和属性等内容。

c188c68f55c9e8d5ba1ab60a46f4c790.png

接下来是层(Layer)的相关操作。我们比较关心的是层的具体定义信息,也就是属性表的信息,可以通过如下两种方法实现,也可以对Layer的相关属性进行操作,比如投影信息,层范围,几何对象类型等。

3037d1073d47a5c043fe340ac338f759.png

223c28cc180d51fa83d2d7cde3c61746.png

c268cab7d6149391fe8937003686c2d7.png

e8e98d53b48c44badfb1f5937e471e4e.png

最后就是对要素(Feature)的操作,主要就是要素内容的获取,只有先获取内容,才能对内容进行修改。同样可以通过dir查看要素(Feature)的主要函数、属性等。利用循环,可以获取所有要素内容。

8562c11536502521125186c0ec200602.png

回头看,不难发现,矢量数据的读取,就好比一个装有宝石的盒子,外面又套了好几个盒子,为了看到最里面盒子里的宝石是什么样子,就必须从外到里,逐级的把盒子打开。从始至终我并没有说到矢量数据的写入,这是因为介绍完矢量数据读取后,它的写入实现也就容易了,可以类比栅格数据的写入,具体就是创建data source,定义投影信息,创建Layer,定义图层信息(属性表),创建要素(Feature),写入具体内容,这与就实现了矢量数据的写入,具体实现的话,感兴趣的自己去尝试一下。

OK,今天就说到着。晚安。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值