Cree una línea "media" a partir de varias líneas con QGIS


12

Tengo varias características de líneas (también las tengo en multipuntos ...) que representan una ruta similar (senderos de montaña, en este caso) con varias precisión de GPS, lo que resulta en muchas líneas cercanas entre sí, pero que no se superponen perfectamente.

Para el propósito de este proyecto, estoy buscando una manera de calcular una línea "media" de todos ellos y generar una línea resultante de la posición más probable del camino.

¿Cómo procederías, usando QGIS o cualquier otra herramienta (pensé en OGR ...)?

ingrese la descripción de la imagen aquí


Echa un vistazo a las pistas promedio en la wiki de OpenStreetMap, que describe un método usando R.
Jake

2
Esto suena similar a "conflación" y en este sitio ha habido algunos hilos al respecto: gis.stackexchange.com/search?q=conflation ¿alguna de las preguntas y respuestas allí te acerca?
SaultDon

Voy a echar un vistazo a la "fusión" hoy, pero hasta ahora, las "pistas promedio" propuestas anteriormente parecen hacer el truco. Simplemente estoy buscando un poco más para ver si se puede hacer directamente a través de QGIS, pero ambas respuestas son geniales, ¡gracias!
Horizen

Puede mirar este hilo y sus enlaces: gis.stackexchange.com/questions/70623/…
johns

Respuestas:


9

Datos de prueba:

  • QGIS 2.18.16, GRASS GIS 7
  • 4 pistas GPS
  • dentro de una cuadrícula de 1x1km

YO.)

Cree puntos a lo largo de sus pistas GPS con el complemento QGIS Locate Points Along Lines( https://plugins.qgis.org/plugins/LocatePoints/ ). He usado un intervalo de 5 m en mi ejemplo.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

II.)

Crea un Concave Hullcon Processing > Toolbox > QGIS geoalgorithms >Vector geometry tools > Concave hull. Usé un umbral de 0.1en mi ejemplo. Si el umbral es bajo, puede haber agujeros dentro del polígono de salida.

ingrese la descripción de la imagen aquí

III.)

Ahora, puede calcular la línea "media" con la ayuda del algoritmo esqueleto. Buscar esqueleto en el Processing Toolbox. Use la v.voronoi.skeletonherramienta de GRASS GIS 7 commands.

ingrese la descripción de la imagen aquí


7

El enfoque del mapa de calor:

El enfoque consume más tiempo, debido al tiempo de cálculo de los pasos de procesamiento. Podría verse como una idea para acercarse a una solución más general.

Datos de prueba:

  • QGIS 2.18.16, GRASS GIS 7
  • 4 pistas GPS
  • dentro de una cuadrícula de 1x1km

YO.)

Cree puntos a lo largo de sus pistas GPS con el complemento QGIS Localice puntos a lo largo de las líneas ( https://plugins.qgis.org/plugins/LocatePoints/ ). Para el enfoque del mapa de calor he usado un intervalo de 2 m .

II.)

Cree un mapa de calor con el complemento de mapa de calor QGIS. He usado un radio de 40 m. Aumento el radio hasta que no haya agujeros en el ráster de salida. Tienes que probar esto con diferentes valores de radio.

ingrese la descripción de la imagen aquí

III.)

EDITADO No es necesario mantener el valor exacto del ráster del mapa de calor.

Ahora quiero reducir la trama a las áreas "blancas", donde se concentran la mayoría de los puntos. Por lo tanto, recalculo el ráster de salida. Los valores min / max del ráster de salida son 0y 89.7935. Solo uso los valores anteriores 44. Para ello utilicé una "regla de oro". Redondea hacia abajo el valor máximo y divídelo por dos. Redondee este valor en otro momento. 89/2 = 44,5-> 44. He usado el Shell OSGeo4W: gdal_calc -A heatmap.tif --calc="A>=44" --NoDataValue=0 --outfile=heatmap_44_NoData.tif.

ingrese la descripción de la imagen aquí

IV.)

EDITADO

a) Poligonalice el mapa de calor recalculado con Raster > Conversion > Polygonize ...

b) Simplifica el polígono Vector > Geometry Tools > Simplify geometries. He usado una tolerancia de 2. Un polígono más simple reduce el tiempo de procesamiento de los esqueletos.

c) Calcular esqueletos: busque esqueletos en la Caja de herramientas de procesamiento. Use la v.voronoi.skeletonherramienta de los comandos de GRASS GIS 7.

ingrese la descripción de la imagen aquí

Puedes ver que la línea resultante representa más la posición más probable del camino que en mi primera respuesta. Especialmente para la curva en el norte, la línea media sigue las tres pistas que están más cerca una de la otra. Lo mismo para la curva en el este.

Ventajas del enfoque:

  • buenos resultados razonables utilizando exclusivamente QGIS

Desventajas

  • tiempo de procesamiento para grandes conjuntos de datos
  • debe probar los parámetros a priori (radio del mapa de calor, valores min / max)
  • difícil de automatizar los pasos de procesamiento
  • no probado para curvas / curvas estrechas y para pistas que realmente salen de la línea

Si alguien puede optimizar los pasos de procesamiento, ¡bienvenido!


+1. Este es un enfoque efectivo para encontrar una "línea media". Sin embargo, no es necesariamente la mejor estimación de la línea correcta . Para ver por qué no, imagine que la mayoría de los caminos se atraviesan muy rápido, pero uno se atraviesa extremadamente lento, lo suficientemente lento como para que se hayan promediado los errores en cualquier lugar. Esta ruta única proporcionaría la representación más confiable de la verdad, pero al volver a muestrear cada ruta esta información se perdería y promediaría con las muchas representaciones más pobres. Obviamente, este es un caso extremo, pero en realidad algunos caminos pueden ser mejores que otros.
whuber

Entiendo. Gracias por su respuesta. El complemento de mapa de calor en QGIS proporciona algunas opciones avanzadas, donde puede hacerlo use weight from field. ¿Se puede utilizar información como la velocidad (marcha lenta / rápida) u otras para ponderar los datos de alguna manera? La ponderación podría usarse para mejorar el mapa de calor.
Stefan

Sí, podría hacerlo, pero ninguna de estas técnicas aborda la preocupación de que los datos puedan tener una autocorrelación (muy positiva). Tratar con eso requeriría algo así como un análisis de series de tiempo de las rutas individuales.
whuber
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.