#1 Thu 28 December 2017 09:14
- raphael.arnaud
- Participant actif
- Lieu: Saintes
- Date d'inscription: 9 Aug 2007
- Messages: 61
QGIS: Georeferencement de vecteurs
Bonjour,
Comme le titre l'indique, je cherche à géoréférencer un vecteur à l'aide de QGIS.
Je dispose de données DAO non géoréférencées que j'ai ouvert dans QGIS et converties en shape. J'ai déplacé les entités à proximité de la zone où elles devraient se trouver à l'aide d'un fonds cadastre géoréférencé. Si les proportions me semblent correctes, l'échelle et l'orientation sont fausses. J'aimerais donc pouvoir géoréfèrencer ces données comme on peut le faire pour un raster, c'est à dire sans déplacer indépendamment chaque objet mais en appliquant une même transformation à tous les objets (échelle et rotation notamment).
Une bonne image valant toujours mieux qu'un long discours, je vous mets en PJ une impression écran de QGIS :
[IMG=https://imagizer.imageshack.com/v2/xq90/923/cNaC5c.png][/IMG]
Merci d'avance à tous ceux qui pourront me donner une piste.
Raphael
Dernière modification par raphael.arnaud (Thu 28 December 2017 09:20)
Hors ligne
#2 Thu 28 December 2017 09:25
Re: QGIS: Georeferencement de vecteurs
Bonjour,
Il y a ce plugin appelé Vector Bender
https://plugins.qgis.org/plugins/VectorBender/
"Does to vectors what georefencers does to raster. This feature is also known as "rubber sheeting"."
geodata au cerema et petits billets en géomatique
Hors ligne
#3 Thu 28 December 2017 10:53
- raphael.arnaud
- Participant actif
- Lieu: Saintes
- Date d'inscription: 9 Aug 2007
- Messages: 61
Re: QGIS: Georeferencement de vecteurs
Merci Matthieu, c'est exactement ce que je cherchais !
Je teste ça et je vous dis ce que ça donne.
Raphael
Hors ligne
#4 Thu 28 December 2017 17:41
- Hocine Amine
- Participant actif
- Lieu: Tunisie
- Date d'inscription: 9 Jul 2007
- Messages: 55
Re: QGIS: Georeferencement de vecteurs
bonjour,
Vous pouvez rasteriser les shape,
géoréférencez la raster a l'aide de l'uotil "géoréférencer",
Hors ligne
#5 Fri 29 December 2017 08:13
- tevrard
- Participant assidu
- Date d'inscription: 23 May 2016
- Messages: 320
Re: QGIS: Georeferencement de vecteurs
On a également le script de l'ami Lud !
http://www.portailsig.org/content/qgis- … -vectoriel
Hors ligne
#6 Fri 29 December 2017 09:07
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: QGIS: Georeferencement de vecteurs
Bonjour,
Si vous avez connaissance des trois paramètres (translation, angle de rotation et homothétie) vous pouvez appliquer l'équation AX+V : A matrice de rotation ET homothétie) et V la matrice de translation, ce à l'ensemble des coordonnées de votre couche.
En passant par postgis ou autre.
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#7 Fri 29 December 2017 09:43
- raphael.arnaud
- Participant actif
- Lieu: Saintes
- Date d'inscription: 9 Aug 2007
- Messages: 61
Re: QGIS: Georeferencement de vecteurs
Merci à tous pour vos conseils et vos pistes, j'ai réussit finalement obtenu un trés bon résultat avec Vector Bender !
J'ai utilisé une transformation "uniform" en plaçant deux point et en appliquant la transformations. J'ai recommencé plusieurs fois cette opération pour ajuster les lignes au cadastre : le résultat n'est pas parfait mais tout à fait honorable au vu des données en entrée assez approximatives. Je vais affiner le résultat autant que possible en continuant mes transformations uniform pour coller au plus près du cadastre.
Et comme une image vaux toujours mieux qu'un long discours, voici le résultat obtenu ce matin : [IMG=https://imagizer.imageshack.com/v2/xq90/923/QxMSHa.png][/IMG]
Dernière modification par raphael.arnaud (Fri 29 December 2017 09:47)
Hors ligne
#9 Fri 29 December 2017 15:51
- Pierre Dolez
- Participant assidu
- Lieu: Proville
- Date d'inscription: 14 Aug 2008
- Messages: 519
- Site web
Re: QGIS: Georeferencement de vecteurs
Bonjour,
Ce type d'opération est très classique. Les meilleurs résultats sont obtenus avec une transformation affine. On prendra au moins quatre points de calage. Une petite dizaine parait un bon choix. Il me paraitrait surprenant que cette méthode de calage ne soit pas prévue en base dans tous les logiciels de SIG.
Tous les détails sont à votre disposition.
Cordialement.
Hors ligne
#10 Thu 26 November 2020 15:19
- aheurion
- Participant actif
- Lieu: NANTES
- Date d'inscription: 8 Oct 2020
- Messages: 143
Re: QGIS: Georeferencement de vecteurs
Bonjour, je déterre ce sujet car, après recherches, il s'avère que le plugin Vector Bender ne semble pas fonctionner avec QGIS 3 (je suis sous 3.16).
Comment puis-je savoir quels coefficients de transformation je dois utiliser dans une transformation affine ? (cf PJ) Existe-t-il une méthode pour trouver ces coefficients à l'aide des coordonnées de points d'origine et de points de référence ?
Merci d'avance !
Hors ligne
#11 Thu 26 November 2020 17:10
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS: Georeferencement de vecteurs
Vous pouvez utiliser OGR2OGR pour géoréférencer une couche vecteur à partir de points de contrôle :
https://gdal.org/programs/ogr2ogr.html# … gr2ogr-gcp
Et si vous préférez faire des maths :
https://stackoverflow.com/a/2756165/8440810
https://www.mathsisfun.com/algebra/matrix-inverse.html
Hors ligne
#12 Thu 26 November 2020 17:23
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1103
Re: QGIS: Georeferencement de vecteurs
Bonjour
Vector Bender a pourtant été mis à jour pour la version 3 de Qgis (2019-01-18 - Version 0.2 : Updated to Qgis 3 (Thanks to Jorge Almerio)). La dernière version en date est de décembre 2020. Qu'est ce qui ne fonctionne pas avec l'extension ?
Hors ligne
#13 Thu 26 November 2020 19:05
- aheurion
- Participant actif
- Lieu: NANTES
- Date d'inscription: 8 Oct 2020
- Messages: 143
Re: QGIS: Georeferencement de vecteurs
Merci pour vos retours rapides !
Pour OGR2OGR il faut passer par une DB c'est ça, faudra que je penche sur la manière de faire ces commandes.
Pour ce qui est des autres liens ça ne donne malheureusement pas le type de coefficients nécessaires pour une transformation affine dans QGIS (translation x, translation y, rotation, mise à l'échelle x et mise à l'échelle y) : [img]https://zupimages.net/up/20/48/oy25.png[/img].
J'ai essayé de faire les maths avec les infos de ce post : https://georezo.net/forum/viewtopic.php?id=45969 mais... ça ne m'avance pas trop plus...
Pour le plugin Vector Blender la dernière version date du 3 décembre 2019 : https://plugins.qgis.org/plugins/VectorBender/ et nécessite la version 2.99 minimum. Après de mon côté ça ne marche pas en 3.16 : tout va bien jusqu'à ce que je clique sur "Run", le plugin calcule les entités mais une fois fini (malgré qu'il m'affiche "finished") il n'y a aucun changement dans ma couche, tous les points (ou toutes les lignes j'ai essayé avec plusieurs types de géométrie) restent sur place
Hors ligne
#14 Thu 26 November 2020 21:44
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS: Georeferencement de vecteurs
Pour OGR2OGR il faut passer par une DB c'est ça
Non c'est un utilitaire en ligne de commande indépendant, il faut une couche vecteur en entrée (geopackage, shapefile, postgis....) et quelques point de contrôle dont aurez relevé les coordonnées au préalable
Pour ce qui est des autres liens ça ne donne malheureusement pas le type de coefficients nécessaires pour une transformation affine dans QGIS (translation x, translation y, rotation, mise à l'échelle x et mise à l'échelle y)
dans ce cas il faut ensuite décomposer la matrice de transformation pour obtenir les paramètres de rotation, échelle et translation. Il y a les formules dans la description de ce package Python : https://pypi.org/project/affine6p/
Dernière modification par dominique.lys (Fri 27 November 2020 09:58)
Hors ligne
#15 Mon 30 November 2020 09:23
- aheurion
- Participant actif
- Lieu: NANTES
- Date d'inscription: 8 Oct 2020
- Messages: 143
Re: QGIS: Georeferencement de vecteurs
Bonjour en ce lundi de début de semaine ^^
Alors j'ai testé ogr2ogr, j'ai un peu galéré pour bien écrire les paramètres/options (il fallait mettre entre guillemets chaque coordonnée) mais j'obtiens un résultat. Malheureusement avec 5 points c'est pas hyper bien calé :
-progress -t_srs EPSG:2154 -order 3 -gcp "412455.98" "6853373.27" "412450.46" "6853374.42" -gcp "411234.46" "6852948.76" "411225.24" "6852946.83" -gcp "411707.25" "6854192.44" "411703.37" "6854193.65" -gcp "411657.84" "6854701.09" "411653.94" "6854703.22" -gcp "410709.26" "6854222.4" "410706.43" "6854219.15"
Je devrais indiquer plus de points de contrôle ? Je trouve étonnant que ce soit les points de contrôle même qui ne se placent pas bien (j'ai essayé avec une couche test : en Pj : test2 l'origine, test les points de contrôle, test3 le résultat)
De plus il refuse que j'utilise l'option -order, que j'indique -order 1, -order 2, -order 3, avec ou sans guillemets, il n'y a aucun déplacement. Ce n'est que lorsque je n'indique pas du tout l'option qu'il y a bien un déplacement.
EDIT : J'ai essayé avec 14 points de contrôle, et le calage n'est pas beaucoup mieux qu'avec 5 (toujours entre 1m et 3m de décalage sachant que le décalage initial était de 4m-10m)
Dernière modification par aheurion (Mon 30 November 2020 10:38)
Hors ligne
#16 Mon 30 November 2020 15:05
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS: Georeferencement de vecteurs
Bonjour,
Pour ma part je n'ai pas besoin de mettre des guillemets et l'option order fonctionne bien. Il faut au moins 6 points pour une transfo d'ordre 2, 10 points pour une transfo d'ordre 3, la commande renvoie bien une erreur le cas échéant. A mon avis il n'est pas nécessaire d'avoir plus de 10 points, l'important est surtout de bien les répartir dans l'espace.
Je trouve étonnant que ce soit les points de contrôle même qui ne se placent pas bien
C'est parfaitement normal, c'est ce qu'on appel l'erreur quadratique moyenne, la transformation ne donne que la meilleure correspondance possible entre les points de contrôle source et de destination. J'imagine que si l'on devait transformer chaque point individuellement alors on aurait des paramètres sensiblement differents pour chacun, et qu'il faut donc calculer un compromis. L'erreur décrit alors l'homogénéité de la transformation entre les différents points. Mais peut-être certains pourront donner une explication plus rigoureuse.
Hors ligne
#17 Tue 01 December 2020 18:48
- aheurion
- Participant actif
- Lieu: NANTES
- Date d'inscription: 8 Oct 2020
- Messages: 143
Re: QGIS: Georeferencement de vecteurs
Avec 14 points (répartis de façon assez homogène) la transformation d'ordre 3 devrait être possible sans problème.
J'ai bien compris sinon que les points de contrôle ne seront pas parfaitement calés mais une transformation qui soit plus qu'une simple translation+rotation ne devrait pas donner autant de décalage, si ? (je me repère avec les parcelles cadastrales notamment pour avoir mes points de contrôle).
Merci pour ton retour en tous cas
Dernière modification par aheurion (Tue 12 January 2021 10:35)
Hors ligne