osgeo读取shp文件

import sys
import os
from osgeo import ogr

if os.path.exists('./data.txt'):
    os.remove('./data.txt')

file_name = r"D:\data\Export_Output.shp"
driver = ogr.GetDriverByName('ESRI Shapefile')
data_source = driver.Open(file_name, 0)
layer = data_source.GetLayer(0)
# print(ogr.GeometryTypeToName(layer.GetGeomType()))
feature_count = layer.GetFeatureCount()

extent = layer.GetExtent()
center_x = (extent[0] + extent[1]) / 2
center_y = (extent[2] + extent[3]) / 2

print(feature_count)

for feature in layer:
    try:
        keys = feature.keys()
        for key in keys:
            value = feature.GetField(key)
        geometry = feature.geometry()
        for i in range(geometry.GetPointCount()):
            coor = geometry.GetPoint(i)
            # coors.append(coor[0]-center_x)
            # coors.append(coor[1]-center_y)
            # coors.append(coor[2])
            with open('./data.txt', 'a+') as f:
                f.write("%s,%s,%s," % (coor[0] - center_x, coor[1] - center_y, coor[2]))
        with open('./data.txt', 'a+') as f:
            f.write('\n')
    except Exception as e:
        print(e)

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注