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