Tengo un archivo de formas de líneas y otro de polígonos. Cuando dos o más líneas se cruzan con un polígono, deben estar conectadas (alineadas), pero a veces durante la digitalización manual esto no ocurre. Necesito encontrar y corregir todos estos errores. Utilicé v.clean
GRASS GIS y automáticamente rompió muchos vértices, lo cual fue bueno, pero algunas de esas líneas desconectadas están más lejos de la tolerancia que le di y si la aumento demasiado comienza a generar otros tipos de errores.
¿Algunas ideas?
Respuestas:
Mi comprensión del problema es la siguiente:
Si un punto final de polilínea intersecta un polígono, entonces la polilínea necesita estar conectada (agregando o ajustando vértices) a todos los puntos finales de polilínea adicionales que intersecan el mismo polígono.
Algunos puntos finales de polilínea no se cruzan con un polígono, son subimpulsos, pero estos deben conectarse como se indicó anteriormente.
Esta respuesta se basa en algunas ya dadas, pero no está completa ya que no conozco todos los comandos QGIS, ¿tal vez alguien más pueda agregar a esto?
Para cada polilínea, extraiga las coordenadas del punto final ( Vector> Herramientas de geometría> Extraer nodos y luego ordenar) y calcule si están o no dentro de un polígono ( Vector> Herramientas de investigación> Seleccionar por ubicación ).
Para los puntos finales de polilínea que están dentro de un polígono, extienda ese extremo de la polilínea hasta el centro del polígono (Extraiga el centro del polígono usando Vector> Herramientas de geometría> Centroide de polígono , no está seguro acerca de la modificación de la línea, aunque es posible que pueda trabajar con los vértices de polilínea como puntos y agregue otros adicionales con la numeración adecuada antes de reconstruir la polilínea modificada utilizando el complemento Puntos a rutas)
Usted 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 optar por usar la ubicación del punto final coincidente en lugar del centroide del polígono como punto para extender cualquier polilínea adicional no conectada a ese polígono.
Para los puntos finales de polilínea que caen fuera de un polígono, extienda ese extremo de la polilínea hasta el centro del polígono más cercano. Una vez más, no estoy seguro de calcular el polígono más cercano, aunque el módulo GRASS v.distance parece hacer el truco.
fuente
Creo que podría hacerlo con algún 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 de línea vinculado, los fusionaría (movería) a la coordenada promedio, o al centroide del polígono tal vez.
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 publicó, una de las líneas está fuera del polígono ... Puede manejar esto de una manera más simple simplemente encontrando el vértice más cercano a cada vértice final, asegurando que la cercanía sea mutua (creo que eso es necesario, para que los vértices se rompan solo de una manera), luego puede moverlos a la posición promedio de los vértices.
fuente
Problema interesante! No se me ocurre una forma de realizar el ajuste automáticamente, pero aquí hay un paso para identificar áreas que al menos busquen la corrección manual:
Dependiendo de la situación (número de características, número que se encuentran en esta situación frente a las que no, etc.), esto puede ahorrarle algo de tiempo.
EDITAR: También puede usar 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.
fuente
una vez que tenga los puntos finales, haría un diagrama de araña tomando los 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ía 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
fuente