Arcpy에서 오목 다각형을 볼록 다각형으로 분할하는 방법?


20

오목 다각형을 감지하고 볼록 다각형으로 분할하는 도구 또는 알고리즘을 찾고 있습니다. 그림에서 설명한 것처럼 파란색 다각형은 A와 B 다각형으로 나뉩니다.

Arcgis 10.1에서 Arcpy를 사용하고 있습니다.

다각형 분할


15
아마도 왜 당신이 이것을하고 있는지 자세히 설명 할 수 있습니까? 결국, (a) 감지가 쉽습니다. 오목 다각형은 볼록 껍질보다 면적이 적습니다. (b) 모든 삼각형이 볼록하기 때문에 다각형을 삼각 측량하면 자동으로 볼록 다각형으로 분할됩니다. 이것은 많은 가능한 솔루션 중에서 선택하는 데 약간의 유연성이 있음을 보여줍니다.
— whuber

2
이 툴셋을 사용하면 Bill이 resources.arcgis.com/gallery/file/geoprocessing/… 에 대해 이야기하고있는 것을 볼 수 있습니다 . 다각형을 포인트로 변환 한 다음 Delaunay 옵션을 실행하십시오.

1
스택 오버플로이에 대한 답변을 통해이있다 : stackoverflow.com/a/6686842/1300519 너무 어려운해서는 안됩니다 설명 된 알고리즘은 arcpy를 사용하여 작성.
— Snorfalorpagus

1
@snorf 그것은 약간, 그러나 중요하게는 다른 질문에 대답하는 것처럼 보입니다. 해결책은 분명히 "다각형"과 "구멍" 의 조합을 포함하는데 , 이는 일반적으로 "분할"이 의미하는 것이 아니다. 최소한, 그 대답은 여기서 유용하게하기 위해 더 많은 정교함이 필요합니다. (BTW, 귀하의 답변은 추가 설명없이 웹상의 다른 솔루션에 대한 상호 참조가 여기에 대한 답변으로 간주되지 않기 때문에 의견으로 변경되었습니다.)
— whuber

2
여기에있는 의견을 바탕으로 답변이 나오면 답변이 없습니다. 피드백을 반영하고 현상금 제공을 고려하여 질문을 편집하는 것이 좋습니다.
— PolyGeo

답변:


1

다음은 오목한 부분에서 꼭짓점을 식별하는 몇 가지 단계입니다.

소포 사용 : 최소 경계 지오메트리 (헐)-> parcelHull

소포 사용 : FeatureVerticesToPoint-> parcelPoints

parcelHull 사용 : FeatureVerticesToPoint-> parcelHullPoints

parcelPoint 및 parcelHullPoint 사용 : 대칭 Diff-> concavePoints

이러한 점을 기준으로 비스 텍트리스를 그려 다각형 (선까지의 거리)을 자르고, 점과 교차하지만 구획 경계와 세그먼트를 공유하지 않는 Voronoï 삼각형의 가장자리를 선택합니다 (삼각형 분할 후 위치로 선택) 정점에서 선)을 선택하고 반대쪽 사이트에서 정점을 선택하고 선 (점에서 선으로)을 만들고 반대쪽 가장자리에서 가장 가까운 점을 선택한 후 선 (점에서 선으로)을 만듭니다.

마지막으로 원하는 선과 "다각형에 특징"이있는 원래 구획을 사용하여 다각형을 분할하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.