Arcpy自动修补/填补polygon面的空洞/孔洞/洞/空白

使用arcpy填补孔洞,思路是读取所有坐标但排除空洞的坐标再创建矢量,测试使用三个图斑,一个没有洞,一个有一个洞,一个有三个洞,测试数据如下:

程序如下:使用时需修改自己的输入和输出路径,不过属性都没了,如需以前的属性,可以再通过相交、连接等工具补充。

import arcpy
data=[]
#infc为输入面矢量
infc = "kong"
outfc = "D:/wcg/test/polygons.shp"
#输出坐标系和输入一致
spatial_ref = arcpy.Describe(infc).spatialReference

for row in arcpy.da.SearchCursor(infc, ["OID@", "SHAPE@"]):
    data.append([])
    for part in row[1]:
        for pnt in part:
            if not pnt :break
            data[-1].append([pnt.X,pnt.Y])
features = []

for feature in data:
    features.append(
        arcpy.Polygon(
            arcpy.Array([arcpy.Point(*coords) for coords in feature]),spatial_ref))
arcpy.CopyFeatures_management(features, outfc )

结果如下,红色为新生成的矢量。

转载自:https://blog.csdn.net/weixin_40450867/article/details/85222383

You may also like...