Type : | script pour la boite à outils traitement |
Licence : | GPL |
Suite à cette discussion sur le forumSIG http://www.forumsig.org/showthread.php/37661-Logiciel-Ajustement-spatial... , où je cherchais une méthode pour faire du géoréférencement vectoriel, voici le protocole mis en place pour y parvenir.
Attention, cette méthode nécessite que QGIS utilise gdal 1.10 ou supérieur.
Faire un fichier texte de points de correspondance (une ligne par point) formaté ainsi :
pointNonGeoref_x pointNonGeoref_y pointGeoref_x pointGeoref_y
Pour cela à l'aide de l'outil identification / dérivées / copier les valeurs d'attributs (on fait ça pour le fichier à géoréférencer et sur le référentiel à utiliser pour géoréférencer, le plus simple étant d'avoir 2 instances de qgis simultanées, l'une avec le fichier à géoréférencer sans reprojection à la volée et l'autre avec le référentiel permettant de récupérer les bonnes coordonnées)
Exemple
-869784.220806 273824.996155 475353.856328 267608.211198
-869786.957227 273804.951538 475351.619893 267590.139363
-869767.137134 273845.613669 475369.467973 267625.62811
-869758.781489 273830.170332 475377.513896 267610.888946
A noter qu'il est également possible d'utiliser le plugin copy_Coords de QGIS, plus simple d'utilisation, mais moins précis.
On lance ensuite le script joint (celui-ci ne fait que remplacer la commande d'ogr2ogr proposée par gene http://www.forumsig.org/showthread.php/37661-Logiciel-Ajustement-spatial...) mais permet d'éviter la ligne de commande.
Décompresser le zip dans le dossier script de l'outil traitements (voir Traitements / options / scripts / Scripts folder)
Dans la boite à outils de traitements / scripts, une entrée "[Géoréférencement] / ajustementSpatial" a du apparaitre, lancer le script et remplir comme précisé dans la documentation.
Si tout se passe bien, le fichier nouvellement géoréférencé doit s'ouvrir, placé correctement.
Le nombre de points de correspondance définit l'ordre du polynôme utilisé pour le géoréférencement.
Le script a été testé sous linux et sous windows avec l'installateur OSGEO.
Sous Mac, il est nécessaire de remplacer la ligne
ogr = 'ogr2ogr -a_srs EPSG:'+epsg+' '
par
ogr = '/Library/Frameworks/GDAL.framework/Versions/1.10/Programs/ogr2ogr -a_srs EPSG:'+epsg+' '
En pratique, dans le script téléchargé, commenter la première ligne en y insérant un # devant et décommenter la ligne pour Mac en supprimant le #.
En espérant que cela vous sera utile, n'hésitez pas à faire un retour si vous avez des soucis sur la discussion du forumSIG.
Commentaires
Test PDF
Bonjour,
je me suis permis de tester votre script sur des fichiers dxf issus directement de l'export d'Adobe Illustrator,
en utilisant les coordonnées de la fenêtre Infos de ce logiciel.
Jusqu'à présent, la démarche a précisément très bien fonctionné et je vous remercie beaucoup pour ce tutoriel car j'étais très content d'avoir trouvé un moyen d'éviter le passage par Autocad.
Cependant, je me suis rendu compte que sur les fichiers Illustrator issus d'un document pdf dont les vecteurs sont lisibles. Je n'arrive pas à faire fonctionner votre script.
Le message suivant apparaît au démarrage de l'algorithme :
'ascii' codec can't encode character u'\xe9' in position 365: ordinal not in range(128) See log for more details
Merci de m'apporter quelques éléments de réponse pouvant débloquer cette situation,
car sur certains documents, je ne dispose que de pdf anciens.
Bien cordialement
Test PDF
Bonjour,
après de nombreux tests, j'ai résolu mon problème en stockant le fichier texte dans un autre dossier que celui de mes couches.
Si quelqu'un a une explication, merci.
En tout cas, c'est reparti comme ça.
Bonne continuation
Bug
Bonjour,
votre script m'est très utile.
Pourriez-vous juste m'indiquer à quoi correspond le message d'erreur suivant :
'ascii' codec can't encode character u'\xe9' in position 356: ordinal not in range(128) See log for more details
Merci
Altitude - Z
Bonjour,
Peut utiliser ce plugin pour les z ?
Je veux appliquer un delta Z à toutes mes entités, les descendre toutes de 87,234 m.
Après essai le plugin ne fonction que pour les x et y.
Cordialement
Problème exécution du Script
Bonjour,
Je vous remercie d'avoir partagé ce script avec tous les utilisateurs SIG. J'ai juste un petit soucis avec l'exécution suivant les étapes que vous avez indiquées. Lorsque j'essaye de faire apparaître le script dans Traitements > options > scripts > scripts folder, j'ai cette erreur qui apparaît : C:/PROGRA~1/QGISLA~1/apps\msys. Aussi, à quel moment dois-je rentrer mon fichier de points de contrôle?
Je suis désolée ça peut sembler bête comme questions mais je suis novice en SIG.
Merci d'avance pour votre réponse
Voici le lien vers la
Voici le lien vers la discussion sur le forumsig http://www.forumsig.org/showthread.php/43302-Script-transformation-de-co...
Erreur script avec QGIS 2.12.1 (Lyon)
Bonjour
j'ai utilisé avec succès cet excellent script l'an dernier... J'obtiens désormais (avec les mêmes fichiers source SHP) une erreur "returned non-zero exit status 1". Je suis sur Mac et la première ligne a été changée pour fonctionner avec la version 1.11 de Gdal. Pouvez-vous m'aider ? Merci d'avance !
Bonjour Pouvez vous tenter en
Bonjour
Pouvez vous tenter en ouvrant la console python et relancer le script ?
si ça ne marche pas et si les données ne sont pas confidentielles, n'hésitez pas à m'envoyer les données et les points de calage sur redaction at portailsig.org, je jetterai un oeil la semaine prochaine
Ludovic
Bonjour j'ai tenté
Bonjour
j'ai tenté directement avec la console, aucun résultat... J'ai également mis à jour Qgis (désormais version 2.14 et GDAL version 2.1), problème identique. Je vous envoie les fichiers par mail, merci beaucoup.
Script ajustement spatial et QGIS 2.14.0
Bonjour
J'ai un soucis lors de l'utilisation du script, après lancement j'obtiens la réponse suivante :
returned non-zero exit status 127 See log for more details
Je travaille sur des entités linéaires de cadastre (indien) entities LineString avec 7316 lignes
Merci de m'éclairer
EL
Bonjour est ce que si vous
Bonjour
est ce que si vous ouvrez la console python et que vous relancez le script normalement, est ce que cela règle le problème ?
Problème non résolu
Bonjour
Non, avec la console python ouverte cela ne modifie rien, même message d'erreur retourné
Si ce n'est pas confidentiel,
Si ce n'est pas confidentiel, je veux bien voir les données et le fichier utilisé pour le géorérencement
redaction at portailsig.org
2.12.2
fonctionne parfaitement avec QGIS 2.12.2
Grâce à ce script, j'ai géoréférencé un "dessin" DXF fait par une architecte, qui n'a aucune connaissance des SIG :-)
qgis 2.12.1
Fonctionne parfaitement
merci
Script ajustementSpatial et Qgis 2.8.3
Bonjour,
Je n'ai pas réussi à faire marcher ce script avec qgis 2.8.3 :
- soit j'ai l'erreur "'ascii' codec can't encode character u'\xe9' in position 334: ordinal not in range(128) See log for more details"
- soit lorsque je clique sur "Itérer sur cette couche" (petite flèche verte à coté du chemin du fichier d'entrée), j'ai le Démarrage de l'algorithme ajustementSpatial qui se lance effectivement, ma machine se met à tourner fort, puis ça plante....
Par contre, du coup j'ai utilisé ogr2ogr directement et là miracle ça marche.
Pour ceux qui ne savent pas faire :
1 - Démarrer OSGeo4W qui s'installe avec qgis
2 - utiliser la commande suivante (pour 4 points) :
ogr2ogr -gcp X1nonréfé Y1nonréfé X1réfé Y1réfé -gcp X2nonréfé Y2nonréfé X2réfé Y2réfé -gcp X3nonréfé Y3nonréfé X3réfé Y3réfé -gcp X4nonréfé Y4nonréfé X4réfé Y4réfé -f "ESRI shapefile" ...\chemin\nom_fichier_out.shp ...\chemin\nom_fichier_in.shp
remplacer X1nonréfé Y1nonréfé X1réfé Y1réfé par les coordonnées correspondantes de chacun de vos points
remplacer ...\chemin\nom_fichier_out.shp par le chemin et le nom du fichier de sortie
remplacer ...\chemin\nom_fichier_in.shp par le chemin et le nom du fichier en entrée
Bonjour Est il possible de me
Bonjour
Est il possible de me faire passer vos données que je puisse regarder d'où vient le problème et éventuellement améliorer le script ? si oui envoyer un mail sur redaction[at]portailsig.org
Merci
Problème codage du fichier texte de points
Bonjour à tous,
Lorsque je lance le script,j’obtiens ce message :
Démarrage de l'algorithme ajustementSpatial ...
'ascii' codec can't encode character u'\xe9' in position 330: ordinal not in range(128) See log for more details
D'après mes recherches, ce problème est lié à l'encodage utilisé. Pour autant, j'ai utilisé l'encodage UTF-8 et AINSI.
N'ayant aucune notion en python, je suis démuni.
Est ce que quelqu'un pourrait m'en dire plus ?
Merci de me répondre,
Pierre L
Limite du nombre de points de correspondance
Merci pour ce script bien pratique.
Attention dans les faits il y a une limite au nombre de points de correspondance (due aux limites de calcul en fonction de l'ordre du polynome ?)
Format des coordonnées
Merci pour ce script bien pratique !
georeferencer couches vectorielles
Hi Ludovic,
mes amis italiens et moi, nous avons développé un plugin de QGIS pour georéférencer des couches vectorielles;
nos objectifs sont:
- definir en mode graphique les paires de points correspondants (source et destination)
- on peut definir
- 2 paires (rotation + translation)
- 3+ paires (rotation + translation + scalatura (scaling: en francais?)
- appliquer la transformation (seulement lineaire)
- activer/desactiver le paires en fonction des besoins de l'utilisateur
- enregistrer/lire le points pour la transformation des autres couches;
la logique et l'implementation sont totalement naif; en effet il s'agit d'un outil experimentel, pas encore deposé dans le depot de QGIS;
nous serion heureux d'avoir votre point de vue et de travailler ensemble pour fournir aux utilisateurs de QGIS un outil je pense bien interessant;
si vous voulez, vous pouvez voir une petite presentation ici http://www.slideshare.net/giulianc/vect-georef; si vous etes interessé je pourrais envoyer une copie pour essayer le plugin;
s'il vous plaît excusez mon français très faible et je vous remercie de votre attention;
cordialement,
giuliano curti
Bonjour, j'ai essayé
Bonjour,
j'ai essayé d'utiliser votre outil mais je ne comprends pas comment ajouter les points de controle?
Pouvez vous m'aider ?
Merci,
EmelineD
georeferencer et ... excuses
pardon,
je n'ai pas laissé mon address: giulianc51@gmail.com, excusez moi :-)
saluts,
giuliano curti
invalide
Bonjour,
j'utilise Qgis 2,
voici le message que j'obtiens :
Cette extension est incompatible avec cette version de QGIS
Extension conçue pour la version 1.x de QGIS
une solution?
Merci d'avance
Il ne s'agit pas d'un plugin,
Il ne s'agit pas d'un plugin, il faut le mettre dans le répertoire de scripts de l'outil traitement et l'utiliser avec celui ci.
Est ce bien ainsi que vous faites ?
c'est réglé
effectivement j'avais mal suivi la procédure.
c'est réglé,
merci
Parfait, n'hésitez pas à nous
Parfait, n'hésitez pas à nous dire si cela fonctionne bien pour vous.
erreur ajustement spatial
Bonjour,
J'essaie de faire un ajustement en suivant la procedure mais j'ai ce message d'errueur "ascii codec can't decode byte 0xef in position 5 :ordinal not in range (128)".
Ai-je omis un détail ?
Merci.
Bonjour Cela ressemble à un
Bonjour
Cela ressemble à un problème d'accent dans le chemin du fichier ?