Cómo realizar la interpolación de spline en GPS Track

8

Estoy buscando una manera de aplicar la interpolación de spline a una pista gps (formato Gpx). Soy un usuario habitual de QGIS y también tengo bibliotecas GDAL instaladas en mi mac si eso ayuda.

Básicamente, la información de senderos y recorridos en MTB Project tiene un pequeño conjunto de puntos y las rutas reales se expanden a través de la interpolación de spline para reducir el tamaño de los archivos. Puedo descargar las pistas en formato gpx, pero solo contienen un pequeño conjunto de puntos, lo que me da una pista que se asemeja a una línea dentada que representa la pequeña cantidad de puntos antes de la interpolación. Quiero aplicar una transformación similar para volver a crear las líneas curvas que están en el sitio web, en un proceso algo repetible que no me obliga a volver a rastrear manualmente cada punto con la herramienta de dibujo de splines en QGIS.

ingrese la descripción de la imagen aquí

¿Alguien sabe de alguna manera en la que pueda aplicar fácilmente la interpolación de splines a mis datos de seguimiento gps para reproducir el seguimiento dividido desde MTB Project utilizando herramientas gratuitas? Preferiblemente en OSX?

Benzo
fuente
FWIW, topofusion tiene esta característica que estoy buscando, pero soy un usuario de Mac. Así que estoy buscando algo que funcione sin Windows. topofusion.com/spline.php
Benzo
En realidad, utilicé una PC con Windows y descubrí que topofusion hace un buen trabajo alisando las líneas, pero no se interpolan de la misma manera que el proyecto MTB, por lo que a veces las curvas suceden de una manera diferente y hace que las pistas sean aún menos precisa en lugar de más precisa, incluso después de ajustar los parámetros.
Benzo

Respuestas:

5

Intente usar la herramienta "v.generalize" de la caja de herramientas de procesamiento. Hay una serie de algoritmos que pueden generalizar una línea muy bien.

Otra posible solución podría ser el complemento "Generalizador" que se mencionó en esta publicación , la información del complemento en QGIS sugiere que la herramienta se basa en el módulo v.generalizer Grass de todos modos.

Solo para referencia a continuación se muestra un ejemplo de la salida de la herramienta v.generalize. Utilicé las entradas predeterminadas para las salidas Chaiken y Hermite, no tengo dudas de que podría recibir mejores resultados con un poco de investigación sobre la herramienta y específicamente lo que significan los valores de entrada.

Actualización : el algoritmo Snakes (que no se muestra en la imagen original a continuación) con algunos ajustes de los parámetros alfa y beta da una apariencia más suave en mi conjunto de datos de prueba.

Ejemplo de v.generalize output

Andrew Jeffrey
fuente
1

Me siento incómodo, pero permítanme recomendar QGIS + Spline Plugin como una de las opciones para su caso.

  1. Sí, digitalizar todos los puntos es engorroso. Pero establecer un parámetro de opción de ajuste apropiado puede disminuir la carga de la tarea.
  2. Otro software capaz de crear Splines sería CAD (por ejemplo, AutoCAD) o solución matemática (por ejemplo, R). Si elige CAD, su flujo de trabajo es casi el mismo, para repetir los puntos de clic y agregar segmentos de spline.
  3. Si el carril para bicicletas era una curva de spline "ideal", la solución sería la interpolación matemática mejor ajustada. En realidad, tal spline rara vez representa toda su trayectoria. Puede terminar empalmando varias curvas, intentando varios parámetros de suavizado.
  4. Cuando usa el complemento Spline, puede cambiar los parámetros a medida que avanza la digitalización.

ingrese la descripción de la imagen aquí

Si su Tightness se establece en 0.5 (valor predeterminado), puede conectar puntos de medición densos sin problemas, y una Tightness más alta intenta no doblar la curva alrededor de esos puntos.

Notará que la curva azul (0.9) se ajusta mejor en una curva suave, y la naranja (0.5) es buena para curvas cerradas. Esta flexibilidad es la mejor parte de la digitalización manual mediante Spline Plugin. Si intentamos hacerlo por ecuación matemática, puede ser una pesadilla.

  1. Me temo que la técnica de generalización no respeta los puntos de datos originales. En otras palabras, la curva derivada por el generalizador no atraviesa la pista de su bicicleta.
Kazuhito
fuente
Gracias por el punto sobre la técnica de generalización, es bueno saberlo. Probablemente no voy a usar la opción del complemento spline, ya que estoy tratando de establecer parámetros y ejecutar este proceso en varias pistas, por lo que esta no será una operación única. Necesito un proceso rápidamente repetible.
Benzo
No aceptar esto como la respuesta, sino otorgar recompensas por la solución más cercana. Tal vez si me tomo el tiempo para descubrir cómo hackear el complemento de spline ya que conozco algo de Python, puedo hacer que repita los puntos existentes automáticamente en lugar de hacer una digitalización manual. No estoy seguro de lo difícil que sería, pero la fuente está disponible para el complemento.
Benzo