본문 바로가기
Python/Qgis(PyQgis) & ArcGis(Arcpy)

Qgis&Arcgis) arcpy 홀 폴리곤 삭제 (remove hole polygon)

by 유노파이 2021. 8. 15.

arcpy에서 지오메트리를 이용하여 쉽게 

홀 폴리곤을 없앨수 있습니다.

홀 폴리곤의 지오메트리는 None 값을 반환합니다.

 

import arcpy
import os

arcpy.env.overwriteOutput = True

# 좌표정보
sr = arcpy.Describe('layer').spatialReference

with arcpy.da.UpdateCursor('layer','SHAPE@')as cursor:
    for row in cursor:
        arr = arcpy.Array()
        # 폴리곤 지오메트리 read
        for i in range(row[0].partCount):
            part = row[0].getPart(i)
            arcpy.AddMessage('-- part '+str(i))
            for pt in part:
                if pt == None: # hole polygon 은 None 반환
                    break 
                else:
                    arcpy.AddMessage(str(pt))
                    arr.add(pt) # 지오메트리 array에 추가
                    
        poly = arcpy.Polygon(arr,sr) # 폴리곤 지오메트리 생성
        row[0] = poly
        cursor.updateRow(row) # 형상 업데이트

arcpy.RefreshActiveView()

댓글