Estoy tratando de descubrir cómo crear un polígono que conecte todos los puntos finales de un shapefile que contiene un conjunto de polilíneas con pythonscript en ArcGIS, estoy teniendo problemas para hacerlo, ya que el orden de los nodos en el polígono es importante. Quiero lograr el polígono gris en la imagen desde las líneas verdes
10
Respuestas:
PASOS:
Calcular puntos centrales de secciones:
Construyó su árbol de expansión mínimo euclidiano, disuélvalo y calcule el búfer, la distancia es igual a la mitad de la longitud de sección más corta
Cree puntos finales de sección y calcule su cadena (distancia a lo largo de la línea) en el límite del búfer (versión de polilínea cerrada del búfer):
Ordenar los puntos finales en orden ascendente utilizando el campo de PK. Puntos a continuación etiquetados por su FID:
Crear polígono a partir de un conjunto ordenado de puntos:
Guión:
Sé que es una bicicleta, pero es mía y me gusta.
fuente
Publico esta solución para QGIS aquí porque es un software gratuito y fácil de implementar. Solo consideré la "rama" correcta de la capa vectorial de polilínea; como se puede observar en la siguiente imagen (12 características en la tabla de atributos):
El código (algoritmo en una comprensión de la lista de Python de una línea), para ejecutarse en la Consola Python de QGIS, es:
Después de ejecutar el código:
se produjo una capa de memoria poligonal (con 11 características en su tabla de atributos). Funciona muy bien
fuente
Puede seleccionar los puntos finales que participarán en un polígono, crear un TIN solo a partir de esos puntos. Convierta el TIN en polígonos, disuelva los polígonos. El truco para automatizar este proceso es decidir qué puntos contribuir a cada polígono. Si tiene líneas con direcciones válidas, y todas esas líneas comparten algún atributo común, podría escribir una consulta para exportar, digamos los vértices finales usando vértices de línea a puntos, luego seleccione por atributo aquellos puntos que tienen el valor de atributo común.
Mejor sería extraer / seleccionar los puntos, leer los valores x, y usando un cursor, usar los valores x, y para escribir un nuevo polígono. No puedo ver una imagen adjunta en su publicación, pero si el orden de puntos es importante, una vez que tenga los valores x, y almacenados en una lista de Python, ordénelos. http://resources.arcgis.com/EN/HELP/MAIN/10.1/index.html#//002z0000001v000000
fuente
Ampliando el comentario @iant, la geometría más cercana a su instantánea es la forma alfa (casco alfa) de los puntos finales. Afortunadamente, muchos hilos bien recibidos ya han sido respondidos en GIS SE. Por ejemplo:
Cree un polígono complejo a partir de la capa de puntos utilizando solo puntos de límite en ArcGIS
¿Qué son la definición, los algoritmos y las soluciones prácticas para el casco cóncavo?
Para resolver su problema, primero use Feature To Point para extraer los puntos finales. Luego use la herramienta Python de este enlace para calcular el casco cóncavo.
fuente