这篇文章主要描述了如何使用GDAL/OGR打开矢量文件、读取属性表,并将部分属性写出至txt。
代码
import ogr,sys,os
import numpy as np
os.chdir(r'E:\')
driver = ogr.GetDriverByName('ESRI Shapefile')
ds = driver.Open('sites.shp', 0)
if ds is None:
print("Could not open", 'sites.shp')
sys.exit(1)
layer = ds.GetLayer()
numFeatures = layer.GetFeatureCount()
print("Feature count: "+str(numFeatures))
extent = layer.GetExtent()
print("Extent:", extent)
print("UL:", extent[0],extent[3])
print("LR:", extent[1],extent[2])
feature = layer.GetNextFeature()
ids = []
xs = []
ys = []
covers = []
while feature:
id = feature.GetField('id')
geometry = feature.GetGeometryRef()
x = geometry.GetX()
y = geometry.GetY()
cover = feature.GetField('cover')
ids.append(id)
xs.append(x)
ys.append(y)
covers.append(cover)
feature = layer.GetNextFeature()
data = [ids, xs, ys, covers]
data = np.array(data)
data = data.transpose()
np.savetxt('myfile.txt',data, fmt='%s %s %s %s')
np.savetxt('myfile.csv',data, fmt='%s %s %s %s')
layer.ResetReading()
feature.Destroy()
ds.Destroy()