Tengo un mapa que he digitalizado y convertido a una capa vectorial (solo los ríos). El problema es que la vectorización ha producido una gran cantidad de segmentos para cada río, que se muestran como características diferentes (cada uno puede tener múltiples segmentos de línea recta, pero no cubren ríos enteros). Lo que estoy buscando es una herramienta para fusionar en una característica (una polilínea, supongo) todos los segmentos cuyos extremos están dentro de una distancia determinada. Estoy usando QGis y el complemento GRASS. He intentado v.clean.snap, v.build.polylines, pero todavía no logré fusionar realmente las líneas. ¡Cualquier ayuda será muy apreciada!Unir múltiples segmentos de línea en una línea - GIS
Respuesta
Sugeriría seleccionar manualmente las partes de línea y luego usar la herramienta "fusionar" (ubicada en la barra de herramientas de edición avanzada).
También puede ser que desee hacer tales preguntas sobre al http://gis.stackexchange.com
Gracias, pero tengo unos cientos de situaciones así, y debo repetir para 133 mapas ...... Supongo que realmente necesito obtener un complemento para esto. ¿Alguna sugerencia donde podría empezar a buscar? – LittleFish
Puede utilizar el "Disolver" herramienta (ARC Toolbox). Esto los fusionará a todos en un segmento.
Luego puede exportar los nodos (solo regular), siendo estos los puntos de intersección.
Luego puede dividir la función de línea disuelta con los nodos. Esto al menos le proporcionará una división de características vectoriales solo en los puntos de intersección.
Al menos está un paso más allá.
Puede hacerlo utilizando la biblioteca GEOS en su lenguaje de programación y quizás también en la línea de comandos. En mi caso, lo estaba haciendo en I, utilizando rgeos
biblioteca:
require(rgdal)
require(rgeos)
lines <- readOGR("f:/dir", "itineraris")
# grouping line features by lines$ITINERARI
lines2 <- gLineMerge(lines, byid = lines$ITINERARI, id = lines$ITINERARI)
writeOGR(lines2, "f:/dir", "itineraris_merged", driver="ESRI Shapefile")
Tenga cuidado: a partir de la nota en el documentation"específicamente se une segmentos de línea con la intersección de puntos finales" parece que las características de línea debe ser consecutiva; sin embargo, no está claro si esto también se aplica al caso cuando se combina por ID.
Para cualquier otra persona tropezar con esta pregunta:
Usted puede utilizar el plugin Roadgraph (ruta más corta) o el guión PointsToRoute. Elija puntos en cada extremo (o en el caso de Points2Route agregue puntos extra para especificar desde múltiples rutas) y luego exporte a su propia capa.
En lo que respecta a los 133 mapas. He modificado el script PointsToRoute para una situación similar de trabajo pesado para pasar automáticamente por una capa de líneas y encontrar rutas entre sus puntos finales. Lo limpiaré y veré si puedo publicarlo en github pronto.
PointsToRoute: https://github.com/anitagraser/QGIS-Processing-tools/blob/master/1.1/scripts/points_to_route.py
ShortestPath (Roadgraph): Esto es posible por el gestor de plugins de QGIS. Tenga en cuenta que en las versiones más recientes de QGIS está configurado por el menú Vector->RoadGraph -> Configuración a pesar de que el complemento se refiere a sí mismo como "Ruta más corta".
Una respuesta muy tarde de que podría ser útil para otras personas:
que enfrentan el mismo problema y he desarrollado un plugin de QGIS para resolverlo. Combina automáticamente múltiples líneas conectadas (es decirlíneas que comparten un punto final) en un conjunto más pequeño de líneas más largas. El tipo de capa de salida es Line, no PolyLine. La fusión puede basarse en uno de estos dos criterios:
- Longitud: un segmento se fusiona con su vecino más largo.
- Alineación: un segmento se fusiona con su vecino mejor alineado. Creo que este criterio es el más adecuado para una red fluvial.
Este plugin se llama MergeLines (full documentation here), se puede encontrar en el repositorio público de QGIS. El trabajo todavía está en progreso, no dude en sugerir nuevas funcionalidades.
- 1. Merge 2d segmentos de línea
- 2. Conectar dos segmentos de línea
- 3. Dos segmentos de línea paralela intersección
- 4. Extracción de segmentos de línea de una transformada de bastidor
- 5. Entradas múltiples en una línea
- 6. ¿Múltiples locales en una línea?
- 7. Javadoc múltiples variables en una sola línea
- 8. subconjunto coincidente de dos segmentos de línea coincidentes
- 9. ¿Cómo unir una única revisión utilizando la línea de comandos
- 10. ¿Determinando si dos segmentos de línea se cruzan?
- 11. ¿Cómo puedo unir de forma segura segmentos de URL relativos?
- 12. Python - Inicialización Listas múltiples/Línea
- 13. ajuste de línea en una cadena de múltiples líneas
- 14. ejecutar múltiples comandos en una línea de comandos
- 15. Intersección del segmento de línea y línea
- 16. ¿Cómo transformar líneas múltiples en una línea en bash stdout?
- 17. R/GIS: Encuentre la distancia ortogonal entre una ubicación y la línea más cercana
- 18. VIM - comandos múltiples en la misma línea
- 19. Elementos múltiples Haml en la misma línea
- 20. ctags expresiones regulares para múltiples declaraciones en una línea
- 21. ¿Usando gdb, muestra múltiples vars en una línea?
- 22. ¿cambios múltiples en una línea con la herramienta diff?
- 23. jquery que hace referencia a elementos múltiples en una línea
- 24. reemplazar una línea con múltiples líneas en un archivo
- 25. C múltiples declaraciones de línea única
- 26. gnuplot trazado de línea de múltiples gráficos
- 27. Unir Múltiples Tablas Dinámicas Dinámicas
- 28. Sustituir una sola línea con múltiples líneas de texto
- 29. Cómo convertir datos de polígono en segmentos de línea usando PostGIS
- 30. Cálculo de la distancia más corta entre dos líneas (segmentos de línea) en 3D
¿Cada uno de sus ríos tiene una identificación única que es común? – Simbamangu
Re retrocedió las ediciones a Q: "merge" y "groub-by" parecen ediciones menores y tangenciales al título de la pregunta cuando el original era adecuado y suficiente. –