读取矢量数据
读取矢量数据的方式就是上一章所讲的两种方法。
操作图层
现在要明白矢量数据的文件组织结构。
shp—>layer—>feature—>geometry—>wkt
一个shp文件中是只包含一个layer的;
layer就是同一个要素的集合,比如点集合、线集合、面集合,一个城市所有的学校为点集合;
feature指代单个的点线面之类的geometry,比如学校点集合中的某一个学校就是一个要素,在属性表中表示为一行数据;
geometry的组织方式就是wkt。
__author__ = 'He XK'
from osgeo import ogr
if __name__ == '__main__':
shp_filename = 'shp/province_1.shp'
driver = ogr.GetDriverByName('ESRI Shapefile')
shp = driver.Open(shp_filename)
print(shp.GetLayerCount()) # 1
# 获取图层
layer = shp.GetLayer(0)
# 获取图层要素
print(layer.GetFeatureCount()) # 37
print(layer.GetGeomType()) # 3
print(layer.GetExtent()) # (-3349547.371448596, 1834629.4342002147, 699750.9271820501, 5953688.75950143)
操作图层首先需要获取layer,通过layer = shp.GetLayer(0),顺序从0开始,默认是0,所有的shp也只能有一个layer。
可以查看图层的要素数量、图层范围等信息。
获取图层属性
layer_info = layer.GetLayerDefn(

本文详细介绍了如何使用Python的osgeo.ogr模块读取和操作ESRI Shapefile矢量数据,包括获取图层、图层属性、要素信息、几何形状以及矢量文件的投影参数。示例代码演示了从打开shapefile到获取特征的属性和几何信息的完整过程,并展示了如何遍历和提取属性表内容。最后,文章提到了释放资源的重要性。
最低0.47元/天 解锁文章
6044

被折叠的 条评论
为什么被折叠?



