shapefile에서 관심 영역을 커버 할 최소 다각형 수 결정


10

다양한 위성 이미지 소스 (IKONOS, RapidEye 등)를 사용하여 분석 할 관심 영역을 나타내는 많은 모양 파일이 있습니다. 불행히도 이미지는 예를 들어 Landsat과 같은 경로 시스템을 사용하지 않으므로 범위가 크게 다릅니다.

다른 이미지 수집의 범위를 나타내는 각 AOI에 쉐이프 파일이 클리핑되어 있으며 모두 이미 수용 가능한 것으로 간주됩니다. 이 shapefile 중 일부에는 500 개 이상의 다각형이 있습니다.

관심있는 각 영역을 다루는 가장 적은 수의 다각형을 결정하기 위해 자동화 할 수있는 접근법 (Python 및 ArcInfo 10, 바람직하게는 FOSS도 허용됨)을 찾아야합니다.


3
일반적으로 이것은 NP 하드 문제이므로 강력한 소프트웨어가 필요할 수 있습니다. 하나의 접근 방식은이를 정수 선형 프로그램으로 구성하는 것입니다. 다각형은 AOI를 "원자"다각형으로 분리하고 각 원래 다각형은 각 원자 다각형을 완전히 덮거나 덮지 않습니다. 이 정보는 이진 벡터로 인코딩 될 수 있습니다. 각 성분에서 합이 1 이상인 벡터의 수를 최소화하려고합니다. 유사한 문제를 해결하는 방법에 대한 예제는 mathematica.stackexchange.com/a/6888gis.stackexchange.com/a/27678에 있습니다.
whuber

답변:


3

whuber가 지적한 것처럼 고품질 솔루션을 찾기 위해 이러한 유형의 문제를 일반화하는 것은 까다로울 수 있지만이 접근법은 많은 작업없이 충분히 가까이 갈 수 있습니다. 다음은 다음 가정을 기반으로 한 의사 코드입니다.

  1. 관심 분야 A
  2. A를 완전히 덮는 다각형 Y 세트

    Start loop
     Iterate through Y
       Select the polygon x from Y that has greatest area of intersection with A
    
     Clip A with polygon x
     Remove x from Y 
     If A is null then end program

아이디어는 나머지 관심 영역과 가장 큰 위성 범위로 관심 영역을 반복적으로 줄이는 것입니다. 아무것도 남지 않을 때까지 모든 반복에서 AOI가 작아집니다. 이것은 아마도 최적의 솔루션은 아니지만 합리적이고 상당히 빨리 실행되어야합니다.


0

자, 당신은 일부 영역을 나타내는 영역 A와 세트 Y로 정의 될 수있는 이미지 범위를 가지고 있습니다.

이것이 올바른 경우 여러 가지 기능을 수행 할 수 있습니다.

  1. 영역 A로 이미지 범위 잘라 내기
  2. 범위 다각형 및 완전 포함 옵션을 사용하여 위치별로 선택 수행

그런 다음 ArcPy와 커서를 사용하여 공간 기하 정렬을 수행하여 각 영역을 검사하고 자체 선택 다각형이 있는지 확인할 수 있습니다.

이 도움을 바랍니다.


1
커서 사용 방법에 대해 더 자세히 설명해 주시겠습니까? 나는 어떻게 든 그 결과가 나올 것이라고 생각했지만 방법론을 고안 할 수는 없었습니다. 나는 영역에서 상위 n 개의 다각형으로 시작 하여 나머지 다각형에서 완전히 포함 된 다각형을 제거 하고이 방식으로 계속 반복하는 것을 고려했습니다. 이것은 시작일 수도 있지만, 가장 큰 영역을 가진 다각형은 범위가 매우 다를 수 있습니다.
채드 호킨스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.