Determine el número mínimo de polígonos del archivo de forma para cubrir un área de interés

10

Tengo un gran número de archivos de formas que representan áreas de interés para un análisis que se realizará utilizando varias fuentes de imágenes satelitales (IKONOS, RapidEye, etc.). Desafortunadamente, las imágenes no utilizan un sistema de trayectoria como Landsat, por ejemplo, por lo que las extensiones varían mucho.

Tengo archivos de forma recortados en cada AOI que representan la extensión de las diferentes adquisiciones de imágenes, todas las cuales ya se han considerado aceptables. Algunos de estos archivos de forma tienen 500 o más polígonos.

Necesito encontrar un enfoque, preferiblemente uno que pueda ser automatizado (Python y ArcInfo 10 preferiblemente, FOSS también sería aceptable) para determinar la menor cantidad de polígonos para cubrir cada una de mis áreas de interés.

Chad Hawkins
fuente
3
En general, este es un problema difícil de NP, por lo que es probable que requiera algún software potente. Un enfoque es enmarcarlo como un programa lineal entero: los polígonos disecan el AOI en polígonos "atómicos" y cada polígono original cubre completamente o no cubre cada polígono atómico. Esta información puede codificarse en vectores binarios. Intenta minimizar el número de tales vectores cuya suma es 1 o mayor en cada componente. Ejemplos prácticos de cómo resolver problemas similares se encuentran en mathematica.stackexchange.com/a/6888 y gis.stackexchange.com/a/27678 .
whuber

Respuestas:

3

Como señaló Whuber, generalizar este tipo de problema para encontrar una solución de alta calidad sería complicado, pero este enfoque podría acercarlo lo suficiente sin una gran cantidad de trabajo. Aquí hay un pseudocódigo basado en los siguientes supuestos:

  1. Área de interés A
  2. Conjunto de polígonos Y que cubren completamente A

    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
    

La idea es que está reduciendo iterativamente su Área de interés con la extensión del satélite que tiene la mayor superposición con el Área de interés restante. El AOI se hace más pequeño en cada iteración hasta que no quede nada. Probablemente esta no sea una solución óptima, pero debería ser razonable y debería ejecutarse con bastante rapidez.

dblanchett
fuente
0

Ok, entonces tienes un área A que representa un área y un montón de extensiones de imágenes que se pueden definir como el conjunto Y.

Si tengo esto correcto, puedes hacer un montón de funciones diferentes:

  1. Recorte de las extensiones de imágenes por el área A
  2. Realice una selección por ubicación utilizando los polígonos de extensión y la opción contiene completamente

Luego, puede examinar las áreas de cada una y determinar si tiene polígonos de auto-selección haciendo una clasificación de geometría espacial usando ArcPy y cursores.

Espero que esto ayude.

código base 5000
fuente
1
¿Puedes dar más detalles sobre cómo usarías los cursores? Al entrar, supuse que se reduciría a eso de alguna manera, pero no he podido diseñar una metodología. He considerado comenzar con los n polígonos superiores en el área, eliminar de los polígonos restantes aquellos que están completamente contenidos y continuar iterando de esta manera. Esto puede ser un comienzo, pero, por supuesto, los polígonos con las áreas más grandes pueden no tener extensiones muy diferentes.
Chad Hawkins el