Formatage des données et altitude

Hello,

Me suis battu avec la console, mais après quelques heures où j’ai perdu quelques cheveux, j’ai enfin réussi à installer Postgis sur RubyOnRails :smiley: Ca parait rien mais pour moi c’est une petite victoire. Me reste plus qu’à arriver à mettre à terre Rgeo, pour la génération de geoJSON. :frowning:

Je commence à rentrer des données qui sont bien traitées comme des geoms :smiley:

Pour faciliter le travail, j’ai commencé à faire des formulaires pour faciliter l’import des csv. Mon petit souci, c’est que j’utilise simple_for et que postgis attend des données formatées. J’ai trouvé quelques infos sur la syntaxe à utiliser, mais rien de très formel pour les données obligatoires.

Est ce que quelqu’un pour me donner le format exact attendu par postgis (en geom) avec ce qui est obligatoire et ce qui est optionnel ? (ou une bonne source)

‘POINT(0 0)’
‘LINESTRING(0 0, 1 1, 2 1, 2 2)’
‘MULTILINETRING(0 0, 1 1, 2 1, 2 2),(0 0, 1 1, 2 1, 2 2)’

Sur un POINT on semble qu’on peut avoir 4 dimensions (lng, lat, alt et ?)… mais pas sur LINESTRING ?

Pourtant j’aimerais bien récupérer l’altitude et pouvoir sortir une courbe de dénivellé par exemple. Et là, d’après la la litterature que j’ai pu lire ce week-end, il semblerait que cette donnée soit sujette à beaucoup de discussions. Donc du coup, j’aimerais bien connaitre la méthode la plus fiable pour sortir les courbes et les cumuls de dénivellé entre deux points. Faut-il vraiment tenir compte de pression barométrique ? :mrgreen:

Mais surtout, quelle serait la meilleure méthode à employer. Traitement des csv avant import dans la base ? Traitement des csv au moment de l’import ?
J’avoue que tout ce que j’ai lu sur le traitement des altitudes, me semble bien compliqué (raster et cie) :frowning:

Une dernière question, quand on fait un calcul de distance entre deux points d’une Linestring, je présume que c’est un calcul à plat qui est fait, donc sur des terrains très accidentés, un risque d’erreur important ? Ou existe-t-il des méthodes pour fiabiliser tout ça ?

Merci d’avance pour vos retours, je retourne essayer de dompter Rgeo :frowning:

Ce format textuel c’est du WKT, Well-Known text…

Il n’est pas spécifique à postgis: https://fr.wikipedia.org/wiki/Well-known_text

Si tu veux des données 3D, c’est simple… tu mets trois coordonnées :wink:

POINT(0 0 0)


L’altitude… le coup de la pression ces pour les altimètres qui se basent sur la pression de l’air. Comme elle varie, il faut les caler et la mesure est valable pour un laps de temps court. C’est typiquement utilisé en aéronautique… et ça ne nous concerne pas.

Le problème n’est pas pour autant résolu :frowning:

Les GPS calculent une altitude au dessus d’une forme théorique idéale du globe terrestre: l’ellipsoïde “WGS84”
La terre est en fait une patatoïde… une sorte d’ellipsoïde qui a pris des coups, qui a des trous et des bosses.
L’altitude officielle en France a son niveau 0m de référence au marégraphe de Marseille… et le territoire est un morceau de la patatoïde.

Pour passer d’une altitude GPS à une altitude “française”, il y a une grille qui permet ça, qu’on trouve sur http://geodesie.ign.fr/index.php?page=grilles

Si tu ne veux que calculer des cumuls de dénivellés, ces conversions ne sont pas nécessaires vu que ton calcul est relatif.

Sur un terrain avec de fortes pentes, la distance 2D commence a être nettement inférieure à la distance 3D, mais si tu stocke des données 3D dans postgis, il fera les calculs en 3D (cadeau bonus).

Si tu n’a qu’une trace 2D, tu peux retrouver la 3D en croisant la donnée 2D avec un modèle numérique de terrain (MNT), qui lui va permettre de déterminer l’altitude de chaque point de la trace (voire plus). Là aussi postgis sait faire ça… si on lui passe le MNT (en général stocké en raster). Exemple ? http://themagiscian.com/2016/11/28/dem-slope-calculations-bicycle-routing-postgis/

Un conseil: faire le max de manipulation géo dans postgis… c’est son boulot.

Pour compléter la réponse de Christian, pour l’altitude tu as deux possibilités :

  1. Tes données gps contiennent déjà l’altitude, donc tu les importes avec les coordonnées
  2. ou non, et alors tu peux utiliser un MNT (modèle numérique de terrain ou DEM) comme EUDEM ou SRTM, qui sont distribués comme des images raster. Soit en important ces rasters en base, mais c’est beaucoup de données, soit en utilisant un service externe (à trouver).
    Yves

Je m’oriente plus vers cette solution qui me parait la plus simple par rapport à mes besoins. Je me pose alors une question, sachant que je m’oriente vers une version web responsive (pwa peut être plus tard ?), est ce que je n’ai pas intérêt à stocker les infos dans deux champs différents, un pour la 2D pour un affichage rapide, et un champ pour 3D juste pour traiter les dénivellés et autres ?

Parmi les sites qui proposent ce service,j’ai trouvé gpsvizualizer mais suis surpris par certains résultats… par exemple un dénivelé de 7mètres sur un tronçon très plat et une distance de seulement quelques centaines de mètres. Est ce que c’est fiable ? Est qu’il y a une meilleure source ?