Python+GDAL | 根據已有矢量創建新的矢量

# 設置driver
driver = ogr.GetDriverByName('ESRI Shapefile')
# 打開輸入的矢量
inDs = driver.Open(r'E:/wang2/python/polygon_jingweidu.shp', 0)
if inDs is None:
    print("Could not open", 'sites.shp')
    sys.exit(1)
# 打開輸入矢量的圖冊
inLayer = inDs.GetLayer()
srs = inLayer.GetSpatialRef()

outshp = r'E:/wang2/python/polygon1.shp'
# 檢查所需創建的矢量是否已存在
if os.path.exists(outshp):
    driver.DeleteDataSource(outshp)
# 創建矢量
outDs = driver.CreateDataSource(outshp)
if outDs is None:
    print("Could not create file")
    sys.exit(1)
# 創建圖冊
outLayer = outDs.CreateLayer('test', geom_type=ogr.wkbPolygon)

# 將輸入矢量的屬性應用到新矢量
fieldDefn = inLayer.GetFeature(0).GetFieldDefnRef('id')
outLayer.CreateField(fieldDefn)
featureDefn = outLayer.GetLayerDefn()

cnt = 0
inFeature = inLayer.GetNextFeature()
while inFeature:
    outFeature = ogr.Feature(featureDefn)
    outFeature.SetGeometry(inFeature.GetGeometryRef())
    outLayer.CreateFeature(outFeature)
    inFeature.Destroy()
    outFeature.Destroy()

    cnt = cnt + 1
    if cnt < 10:
        inFeature = inLayer.GetNextFeature()
    else:
        break

inDs.Destroy()
outDs.Destroy()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章