Comment effectuer une interpolation Spline sur une trace GPS

8

Je cherche un moyen d'appliquer une interpolation spline à une piste gps (format Gpx). Je suis un utilisateur régulier de QGIS et j'ai également des bibliothèques GDAL installées sur mon mac si cela aide.

Fondamentalement, les informations sur les sentiers et les trajets sur MTB Project ont un petit ensemble de points et les chemins réels sont étendus via une interpolation spline pour réduire la taille des fichiers. Je peux télécharger les pistes au format gpx, mais elles ne contiennent qu'un petit ensemble de points, ce qui me donne une piste qui ressemble à une ligne dentelée qui représente la petite quantité de points avant l'interpolation. Je souhaite appliquer une transformation similaire pour recréer les lignes courbes qui se trouvent sur le site Web, dans un processus quelque peu répétable qui ne m'oblige pas à retracer manuellement chaque point avec l'outil de dessin de spline dans QGIS.

entrez la description de l'image ici

Quelqu'un connaît-il un moyen d'appliquer facilement l'interpolation spline à mes données de piste gps pour reproduire la piste splinée de MTB Project à l'aide d'outils gratuits? De préférence sur OSX?

Benzo
la source
FWIW, topofusion a cette fonctionnalité que je recherche, mais je suis un utilisateur mac. Je cherche donc quelque chose qui fonctionnera sans Windows. topofusion.com/spline.php
Benzo
En fait, j'ai utilisé un PC Windows et j'ai trouvé que la topofusion fait un bon travail de lissage des lignes, mais elles ne sont pas interpolées de la même manière que le projet MTB, donc parfois les courbes se produisent d'une manière différente et rendent les pistes encore moins précis au lieu de plus précis, même après avoir peaufiné les paramètres.
Benzo

Réponses:

5

Essayez d'utiliser l'outil "v.generalize" de la boîte à outils de traitement. Il y a un certain nombre d'algorithmes qui peuvent généraliser une ligne bien.

Une autre solution possible pourrait être le plugin "Generalizer" qui a été mentionné dans cet article , les informations sur le plugin dans QGIS suggèrent que l'outil est basé sur le module v.generalizer Grass de toute façon.

Juste pour référence ci-dessous est un exemple de la sortie de l'outil v.generalize. J'ai utilisé les entrées par défaut pour les sorties Chaiken et Hermite, je ne doute pas que vous puissiez obtenir de meilleurs résultats avec un peu de recherche sur l'outil et en particulier ce que signifient les valeurs d'entrée.

Mise à jour - L'algorithme Snakes (qui n'apparaît pas dans l'image originale ci-dessous) avec quelques ajustements des paramètres alpha et bêta donne une apparence plus fluide sur mon jeu de données de test.

Exemple de sortie v.generalize

Andrew Jeffrey
la source
1

Je me sens gêné, mais permettez-moi de recommander QGIS + Spline Plugin comme l'une des options pour votre cas.

  1. Oui, la numérisation de tous les points est fastidieuse. Mais la définition d'un paramètre Snap Option approprié peut alléger la charge de la tâche.
  2. D'autres logiciels capables de créer des splines seraient la CAO (par exemple AutoCAD) ou la solution mathématique (par exemple R). Si vous choisissez CAD, son workflow est presque le même, pour répéter les points de clic pour ajouter des segments de spline.
  3. Si la piste cyclable était une courbe spline «idéale», une spline mathématiquement interpolée et la mieux adaptée sera la solution. En réalité, une telle spline représente rarement l'ensemble de votre piste. Vous pouvez finir par épisser plusieurs courbes en essayant divers paramètres de lissage.
  4. Lorsque vous utilisez Spline Plugin, vous pouvez modifier les paramètres au fur et à mesure de la numérisation.

entrez la description de l'image ici

Si votre étanchéité est définie sur 0,5 (valeur par défaut), il peut connecter en douceur des points de mesure denses, et une étanchéité plus élevée essaie de ne pas plier la courbe autour de ces points.

Vous remarquerez que la courbe bleue (0,9) s'adapte mieux aux courbes douces et l'orange (0,5) convient aux virages serrés. Cette flexibilité est la meilleure partie de la numérisation manuelle par Spline Plugin. Si nous essayons de le faire par équation mathématique, cela peut être un cauchemar.

  1. Je crains que la technique de généralisation n'honore les points de données d'origine. En d'autres termes, la courbe dérivée par le généralisateur ne passe pas par votre piste cyclable.
Kazuhito
la source
Merci pour le point sur la technique de généralisation, bon à savoir. Je ne vais probablement pas utiliser l'option de plugin spline, car j'essaie de définir des paramètres et d'exécuter ce processus sur plusieurs pistes, donc ce ne sera pas une opération ponctuelle. J'ai besoin d'un processus rapidement reproductible.
Benzo
Ne pas accepter cela comme réponse, mais attribuer une prime pour la solution la plus proche. Peut-être que si je prends le temps de comprendre comment pirater le plugin spline puisque je connais du python, je peux le faire itérer automatiquement sur les points existants au lieu de faire une numérisation manuelle. Je ne sais pas à quel point ce serait difficile, mais la source est là pour le plugin.
Benzo