#1 Tue 19 November 2019 08:25
- EmilieDB
- Participant occasionnel
- Date d'inscription: 23 Jan 2007
- Messages: 23
QGIS/PostGIS: Difference de longueur de ligne
Bonjour,
J'ai effectué des calculs de longueur de lignes d'une part sous Postgis (PgAdmin) avec la fonction st_length et d'autre part sur QGis en utilisant $length dans un champ virtuel.
Sur des lignes d'une longueur totale comprise entre 3 et 25 km, j'ai systématiquement un écart de longueur compris entre 3 et 20m (longueur supérieure dans QGIS).
Le système de projection de ma donnée est correctement renseigné (Lambert 93) ainsi que celui du projet QGIS.
Je ne comprends pas ce qui peut expliquer cet écart.
Merci d'avance, Emilie
Hors ligne
#2 Tue 19 November 2019 08:37
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS/PostGIS: Difference de longueur de ligne
Peut-être existe-t-il un jeu de données test pour vérifier les bonnes valeurs ?
Pour simplifier le problème, avez-vous essayé avec des lignes reliant seulement 2 points ?
En vérifiant par rapport une autre troisième valeur de référence permettant d’ étalonner les mesures des 2 logiciels concernés ?
Peut-être qu’un logiciel comme Circé permet d’obtenir une telle référence pour la France (ah ben non... *)
benchmark
PS Vous avez besoin de cette précision dans votre travail pour vous repérer sur le terrain par PK ou PR (point kilométrique ou point routier) ou bien pour économiser 0,1 % dans le réservoir de la voiture, ou vous pouvez vous asseoir dessus ?
PPS les fonctions de calcul de distances ont-elles des options comme calcul simple 2D ou calcul avec le Z ?? (piste très peu probable, et sans doute fausse, mais autant avoir la description de la fonction voire de la formule utilisée)
* édit :
- Prestation de calcul géodésique
https://geodesie.ign.fr/index.php?page= … ellipsoide
(prestation : ça doit donc être payant,
il vous reste à calculer vous-même vos formules de distance si vous voulez vérifier par vous-même sans dépenser si vous n'en avez pas besoin - d'où ma question passée sur l'importance que cette erreur revêt pour vous.
Regardez aussi du côté des bugs QGis ou PostGis au cas où ça serait déjà documenté...)
édit 2 - je rajoute le mot-clé suivant :
documentation
en écho au message suivant du VDD Sant'Anna.
Dernière modification par Pascal Boulerie (Tue 19 November 2019 10:36)
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#3 Tue 19 November 2019 10:19
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3935
Re: QGIS/PostGIS: Difference de longueur de ligne
Bonjour,
Je ne comprends pas ce qui peut expliquer cet écart.
La réponse est certainement dans l'aide de chacune de ces fonctions.
De https://postgis.net/docs/ST_Length.html
For geometry types: returns the 2D Cartesian length of the geometry if it is a LineString, MultiLineString, ST_Curve, ST_MultiCurve. For areal geometries 0 is returned; use ST_Perimeter instead. The units of length is determined by the spatial reference system of the geometry.
De l'aide de la fonction $length
fonction $length
Renvoie la longueur d'une polyligne. Si vous souhaitez récupérer la longueur de la bordure d'un polygone, utilisez $perimeter à la place. La longueur calculée par cette fonction respecte les paramètres d’ellipsoïde du projet ainsi que les unités de distances. Ex: si une ellipsoïde a été paramétrée pour le projet alors la longueur sera ellipsoïdale, sinon, elle sera calculée selon un plan.
Dans quelle situation êtes-vous? Le paramètre d’ellipsoïde se voit dans les propriétés du projet --> Général. Ou regardez du côté de la fonction length.
Hors ligne
#4 Tue 19 November 2019 14:14
- EmilieDB
- Participant occasionnel
- Date d'inscription: 23 Jan 2007
- Messages: 23
Re: QGIS/PostGIS: Difference de longueur de ligne
Merci pour ces éléments. Je me doutais que la réponse se situait dans ces explications mais je ne savais pas qu'on pouvait paramétrer l'Ellipsoïde dans QGIS.
J'avais la valeur "GRS 1980". En passant à "none", je retrouve bien les valeurs de PostGis.
Merci beaucoup pour les explications.
Emilie
Hors ligne