Arcpy를 사용하여 멀티 파트 지오메트리를 shapefile에 쓸 때 이상한 문제가 발생했습니다. InsertCursor를 사용하여 각 정점 쌍 목록이있는 부품 목록에서 다중 부품 피처를 만듭니다. 이 기능을 만들면 인접한 여러 부품이 자동으로 단일 부품으로 "해산"됩니다. 그러나 어떤 이유로 든 내부 링을 생성하는 데 일반적으로 내부 링을 추가하는 데 필요한 Null arcpy.point ()를 배열에 포함시키지 않았지만 내부 링을 생성합니다. 시각화는 다음과 같습니다.
왜 이런 일이 발생하는지 및 / 또는 문제를 극복하는 방법을 알고 있습니까?
참고로 내 코드는 다음과 같습니다.
import arcpy
arcpy.CreateFeatureclass_management(r"C:\temp", "test.shp", "POLYGON")
OutputCursor = arcpy.InsertCursor(r"C:\temp\test.shp")
# List of parts, each with list of vertex pairs
ListOfParts = []
ListOfParts.append([[0,1],[1,1],[1,0],[0,0],[0,1]])
ListOfParts.append([[0,2],[1,2],[1,1],[0,1],[0,2]])
ListOfParts.append([[0,3],[1,3],[1,2],[0,2],[0,3]])
ListOfParts.append([[1,1],[2,1],[2,0],[1,0],[1,1]])
ListOfParts.append([[1,2],[2,2],[2,1],[1,1],[1,2]])
ListOfParts.append([[1,3],[2,3],[2,2],[1,2],[1,3]])
ListOfParts.append([[2,1],[3,1],[3,0],[2,0],[2,1]])
ListOfParts.append([[2,2],[3,2],[3,1],[2,1],[2,2]])
ListOfParts.append([[2,3],[3,3],[3,2],[2,2],[2,3]])
# Array of parts to be passed to newRow()
ArrayOfParts = arcpy.Array()
# Add parts to array
for Part in ListOfParts:
ArrayOfVertices = arcpy.Array()
for Vertex in Part:
ArrayOfVertices.add(arcpy.Point(Vertex[0],Vertex[1]))
ArrayOfParts.add(ArrayOfVertices)
ArrayOfVertices.removeAll()
# Output new feature
OutputFeature = OutputCursor.newRow()
OutputFeature.shape = ArrayOfParts
OutputCursor.insertRow(OutputFeature)
1
네 - arcpy.AsShape 방법은 문제가 있습니다 -이 결함이 행동의 또 다른 예 여기를 참조하십시오 gis.stackexchange.com/questions/10201/...
—
valveLondon