¿Cómo conectar líneas en una red?

15

Tengo un shapefile de líneas y otro de polígonos. Cuando dos o más líneas se intersecan con un polígono, deben conectarse (ajustarse), pero a veces durante la digitalización manual esto no ocurre. Necesito encontrar y corregir todos estos errores. Utilicé v.clean de GRASS GIS y automáticamente corté muchos vértices, lo cual fue bueno, pero algunas de esas líneas desconectadas están más lejos de la tolerancia que di y si aumenta la tolerancia demasiado, comienza a generar otros tipos de errores. .

¿Alguna idea?

    
pregunta vascobnunes 03.01.2012 - 13:40

4 respuestas

7

Mi comprensión del problema es la siguiente:

Si un punto final de polilínea se cruza con un polígono, entonces la polilínea debe conectarse (agregando o ajustando vértices) a todos los puntos finales de polilínea adicionales que se intersecan con el mismo polígono.

Algunos puntos finales de polilínea no se intersecan con un polígono, ya que están debajo del tope, pero estos deben estar conectados como se indicó anteriormente.

Esta respuesta se basa en algunos ya dados, pero no está completa porque no conozco todos los comandos de QGIS. ¿Quizás alguien más pueda agregar a esto?

  1. Para cada polilínea, extraiga las coordenadas del punto final ( Vector > Herramientas de geometría > Extraiga los nodos ( luego ordene) y calcule si o no están dentro de un polígono ( Vector > Herramientas de investigación > Seleccionar por ubicación ).

  2. Para los puntos finales de polilínea que están dentro de un polígono, extienda ese final de la polilínea al centro del polígono (Extraiga el polígono centrar utilizando Vector > Herramientas de geometría > Polígono centroide , no estoy seguro acerca de la modificación de la línea, aunque podría trabajar con los vértices de polilínea como puntos y agregar otros adicionales con la numeración apropiada antes de reconstruir la polilínea modificada utilizando el complemento Puntos a rutas)

    Menciona que puede haber situaciones en las que algunas o todas las líneas se hayan conectado correctamente, en estas situaciones (identificables por puntos finales de polilínea coincidentes) puede elegir usar la ubicación del punto final coincidente en lugar del centroide polígono como el apunta a extender cualquier polilínea no conectada adicional para ese polígono.

  3. Para los puntos finales de polilínea que caen fuera de un polígono, extienda ese extremo de La polilínea al centro del polígono más cercano. De nuevo, no soy Asegúrese de calcular el polígono más cercano, aunque el módulo GRASS v.distance busca hacer el truco.

respondido por el Andy Harfoot 06.01.2012 - 13:23
2

Creo que podría hacerlo con un algoritmo personalizado ... Tenga en cuenta cómo le gustaría implementarlo, pero creo que funcionaría.

Para cada línea, para cada punto final, haga un punto en el polígono para el vértice en el punto final y vincúlelo al polígono.

Luego, para cada polígono, si hay más de un punto final vinculado a una línea, los fusionaré (moveré) todos a la coordenada promedio, o quizás al centroide del polígono.

Eso es bastante simple. Pero no está disponible en operadores estándar. Creo que podría hacerse en ArcGIS con un tiempo de codificación de días.

Otra nota, en la imagen que publicaste, una de las líneas está fuera del polígono ... Puedes manejar esto de una manera más simple simplemente encontrando el vértice más cercano a cada vértice final, asegurándote de que la cercanía sea mutua (I piensa que es necesario, para que los vértices se ajusten solo de una manera), entonces puedes moverlos a la posición promedio de los vértices.

    
respondido por el Alex Leith 06.01.2012 - 00:43
1

¡Problema interesante! No puedo pensar en una forma de realizar automáticamente el ajuste, pero aquí hay un paso para identificar áreas para al menos observar la corrección manual:

  • Agrega una nueva columna a tu capa de línea y configúralo igual a '1' para todas las funciones.
  • Bajo Vector > Unir atributos por ubicación, establezca su capa de destino en su capa de polígono y la capa de línea como la capa de unión. A continuación, seleccione "Tomar resumen de características de intersección" y haga clic en "Suma". Indique una ubicación para el archivo de salida y "Aceptar".
  • El archivo de polígono resultante será su capa de polígono original, pero con algunos campos adicionales. El campo SUM es lo que quieres; cuando es 2, significa que luego puede hacer zoom y ajustar manualmente las funciones.

Dependiendo de la situación (la cantidad de funciones, el número que se encuentra en esta situación en comparación con las que no lo están, etc.) puede ahorrarle algo de tiempo.

EDITAR: es posible que también desee utilizar los polígonos con una suma de 2 para crear un subconjunto de sus capas de línea, luego ejecutar la limpieza en aquellos con una mayor tolerancia para no cambiar las otras características.

    
respondido por el Darren Cope 05.01.2012 - 17:06
0

una vez que tenga los puntos finales, haría un diagrama de araña tomando polígonos centroides como instalaciones y puntos finales de líneas cercanas como objetivos. Realiza el análisis del diagrama de araña y, como resultado, tendrá un segmento para cada polilínea.

Esto funcionaría incluso para aquellos que terminan fuera de los polígonos. Cómo hacerlo en QGIS No lo sé, lo siento, pero haría esto en los productos de ESRI que conozco bien. Eso es lo que entendí cuando whuber, en la primera respuesta, sugirió construir una "estrella".

Estoy bastante seguro de que hay personas aquí que saben cómo realizar dicho análisis en QGIS

    
respondido por el ankilosado 16.06.2013 - 00:44

Lea otras preguntas en las etiquetas