import os
import sys
from osgeo import ogr
from osgeo import gdal
driver=ogr.GetDriverByName('ESRI Shapefile')
filename='C:\\Users\\admin\\Desktop\\空间信息处理与系统开发资料\\第六周\\Lesson6_osgeopy-data\\global\\ne_50m_populated_places.shp'
dataSource=driver.Open(filename,0) # filename一定要写绝对路径,0表示可读,1表示可写
#读取数据层
layer=dataSource.GetLayer() #一般ESRI的shapefile都是填0的,如果不填的话默认也是0
print(layer.GetFeatureCount()) #该数据层有多少个点
#读出上下左右边界()
extent=layer.GetExtent() #左、右、下、上
#读取一个点 GetFeature(i)相当于读取第i+1行,GetField('NAME')对应读取Name字段对应的第i+1行的值
feat = layer.GetFeature(0) #提取数据层的第一个要素
#fid = feat.GetField('NAME') #读取该要素字段名为NAME的值 对应字段值为汉字的会报错
#print(fid)
while feat:
feat=layer.GetNextFeature() #读取下一个
print(feat.GetField('NAME'))
geom=feat.GetGeometryRef()
geom.GetX()
geom.GetY()
print(geom)
print('success!')
dataSource.Destroy()
#教程:https://www.osgeo.cn/python_gdal_utah_tutorial/ch02.html#id4
python 矢量数据的读取
最新推荐文章于 2022-10-19 00:06:38 发布