#1 Wed 06 March 2019 14:22
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
QGIS: Récupérer rasters géoréférencer sous ArcGis
Bonjour à tous,
Nous travaillions jusqu'en 2014 avec ArcGis, et avions géoréférencé des photos aériennes (les prises de vues aériennes de l'IGN, aujourd'hui téléchargeables sur le site remonter le temps).
Les images (.jp2) étaient alors accompagnés de différents fichiers de référencement : .j2wx, .jp2.aux.xml et .rmf
Nous travaillons aujourd'hui sur QGis, et ces fichiers de géoréférencement ne sont pas pris en charge...
Connaîtriez vous une méthode pour permettre d'afficher ces raster géoréférencés dans QGis ?
Si besoin, j'ai encore ma licence ArcGis (10.2.1), même si je ne l'utilise plus beaucoup et ai perdu mes anciennes habitudes
Merci à vous !
Sylvain M.
Sylvain M.
Hors ligne
#2 Wed 06 March 2019 15:47
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Récupérer rasters géoréférencer sous ArcGis
Bon, je viens de retrouver ma question de 2015 sur le même sujet (mais avec des TIF) :
http://www.forumsig.org/showthread.php/ … ement-TFWX
J'ai bien peur que la seule solution soit de recréer des Raster rectifiés depuis ArcGis...
Problème : il y a plusieurs dizaines de RASTER, et ça va être long...
Peut-être y aurait-il moyen de scripter ce workflow ?
(je devrais peut-être poster dans la section ArcGis, du coup ...)
Si vous avez des pistes !
Sylvain M.
Hors ligne
#3 Wed 06 March 2019 16:13
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Récupérer rasters géoréférencer sous ArcGis
Au cas où, je lance aussi la question dans la section ArcGis : https://georezo.net/forum/viewtopic.php?id=114877
Sylvain M.
Hors ligne
#4 Wed 06 March 2019 17:23
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS: Récupérer rasters géoréférencer sous ArcGis
Sujet intéressant ! si je comprends bien le j2wx contient la transformation affine (degré 1) approximative, le fichier aux.xml définit les points de contrôle pour une transformation de degré 2 ou 3. La solution proposée dans le lien indiqué par Gene a l'air pas mal : gdal_translate pour assigner les points de contrôle puis gdal_warp pour faire la rectification avec l'option -order pour définir le degré de la transformation.
Si ça marche, un petit script Python pour parser le aux.xml et lancer les commandes gdal fera l'affaire !
Hors ligne
#5 Wed 06 March 2019 17:52
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Récupérer rasters géoréférencer sous ArcGis
Merci Dominique de te pencher sur mon cas !
gdal_translate pour assigner les points de contrôle puis gdal_warp pour faire la rectification avec l'option -order pour définir le degré de la transformation.
Aïe aïe aïe : je ne suis pas du tout familier de GDAL et je suis donc incapable d'écrire la commande correspondante !
Est-ce que si je partage un des clichés ici, tu serais en mesure de m'écrire cette commande ? (j'execute GDAL via "OSGeo4W Shell", sur PC Windows 7)
Si ça marche, un petit script Python pour parser le aux.xml et lancer les commandes gdal fera l'affaire !
Bon, le script python sera clairement hors de portée pour moi.
Mais si les commande GDAL fonctionnent, ce sera toujours plus rapide que d'ouvrir les raster et de les rectifier sur ArcGis manuellement !
Sylvain M.
Hors ligne
#6 Wed 06 March 2019 17:58
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Récupérer rasters géoréférencer sous ArcGis
Voici une image si quelqu'un peut tester : https://we.tl/t-svARYdrGFf
Sylvain M.
Hors ligne
#7 Thu 07 March 2019 08:29
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS: Récupérer rasters géoréférencer sous ArcGis
Après quelques recherches il semble que la solution ne soit pas aussi compliquée. En effet le fichier aux.xml que l'on trouve aussi sous le nom de fichier PAM (persistent auxiliary metadata), bien que proposé par ESRI, reste un fichier xml donc un format ouvert. Les versions récentes de GDAL (et donc QGIS) sont parfaitement capables de lire ou écrire ce type de fichier.
Il semble que le problème soit plutôt de s'assurer que ce fichier soit utilisé en priorité pour définir le géoréférencement. En effet, le géoréfencement peut être indiqué de plusieurs façon : fichier worldfile, fichier TAB, fichier PAM ou directement dans le format (geotiff, jp2...). Ces differentes possibilitées pouvant cohabiter il faut donc à un moment donné pouvoir indiquer la priorité de chacune. Depuis GDAL 2.2 ce problème est solutionné par l'introduction de 2 nouvelles variables (voir ici), d'une part une variable générale GDAL_GEOREF_SOURCES et d'autre part une option d'ouverture GEOREF_SOURCES. Ces deux variables permettent de définir l'ordre dans lequel l'information de géoréfrencement sera cherchée. Par défaut la valeur est de PAM, INTERNAL, TABFILE, WORLDFILE, NONE, c'est donc le aux.xml qui normalement est utilisé en priorité.
Dans les faits ça n'est pouratant pas le cas, et je ne l'explique pas. Dans QGIS, il est possible de définir la variable globale GDAL_GEOREF_SOURCES : pour cela il faut aller dans options/système/environnement/custom variable. Mais de mon côté ça ne change rien si je force la valeur de cette variable.
Ce qui fonctionne en revanche c'est de supprimer toutes les autres informations de géoréférencement. par exemple j'ai converti le jp2 en tiff, puis j'ai ouvert le tiff dans GIMP pour le réenregister et écraser le géoréferencement, ensuite j'ai copié le jp2.aux.xml vers un nouveau fichier de même nom que mon tiff (tif.aux.xml), et là ça fonctionne enfin le fichier PAM est bien utilisé !
Hors ligne
#8 Mon 11 March 2019 12:08
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Récupérer rasters géoréférencer sous ArcGis
Pardon Dominique pour le délai de réponse, mais j'étais absent ces derniers jours.
Ce qui fonctionne en revanche c'est de supprimer toutes les autres informations de géoréférencement. par exemple j'ai converti le jp2 en tiff, puis j'ai ouvert le tiff dans GIMP pour le réenregister et écraser le géoréferencement, ensuite j'ai copié le jp2.aux.xml vers un nouveau fichier de même nom que mon tiff (tif.aux.xml), et là ça fonctionne enfin le fichier PAM est bien utilisé !
OK, donc c'est récupérable.
Mais j'avoue que ça fait pas mal d'étapes pour mes 30 fichiers, et je ne sais pas trop comment les scripter.
Tu penses que GDAL pourrait faire ça ? (et du coup, aurais tu un exemple pour un fichier ?)
Sylvain M.
Hors ligne
#9 Mon 18 March 2019 15:07
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Récupérer rasters géoréférencer sous ArcGis
Dominique, je me permets de te relancer sur ce sujet.
Je viens de tenter ta manip sur une de nos photos, mais je ne parviens pas à l'afficher correctement géoréférencées dans QGis.
Je te renvoie une photo de tests à cette adresse : https://we.tl/t-NE7NDtIeYx
Si tu avais le temps de me renvoyer la version corrigée pour QGis, ce serait super gentil de ta part !
Merci à toi !
Sylvain M.
Hors ligne
#10 Wed 20 March 2019 12:09
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS: Récupérer rasters géoréférencer sous ArcGis
Salut Sylvain
Désolé pour la réponse tardive je n''avais pas vu que tu avais remonté le sujet. J'ai essayé avec ton nouveau fichier, en le convertissant en tiff j'arrive à lui faire lire le aux.xml mais le calage n'est pas correcte. Je pense qu'il y avait déjà ce problème avec le précédent fichier mais je n'avais pas vérifié en détail. En cherchant un peu j'ai pu déterminer comment GDAL lisait le aux.xml et c'est assez bizarre : il considère que les coordonnées images des points de contrôle sont exprimées en pouces et que l'origine de l'image est au point inférieur gauche. J'ai bien vérifié le aux.xml et les coordonnées sont définitivement exprimées en pixel avec un origine fixée à l'angle supérieur gauche.
J'ai écris à la mailing liste gdal-dev pour essayer d'avoir plus d'info :
http://osgeo-org.1560.x6.nabble.com/gda … 98985.html
On verra ce qu'il en ressort mais je pense qu'il va falloir revenir à l'idée du script. J'ai un peu de congés cette semaine j'aurai certainement un peu de temps pour commencer qqchose ça ne devrait pas être trop chronophage.
a+
Dernière modification par dominique.lys (Wed 20 March 2019 12:45)
Hors ligne
#11 Wed 20 March 2019 17:40
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Récupérer rasters géoréférencer sous ArcGis
On verra ce qu'il en ressort mais je pense qu'il va falloir revenir à l'idée du script. J'ai un peu de congés cette semaine j'aurai certainement un peu de temps pour commencer qqchose ça ne devrait pas être trop chronophage.
Je n'aurai jamais osé te demander tant d'investissement, mais comme tu le proposes, je t'en remercie grandement ! 8-)
Pour que le script, je vais t'envoyer les images par MP demain (ça met un moment à charger, et là je dois partir)
MERCI !!!!
Sylvain M.
Hors ligne
#12 Thu 21 March 2019 10:20
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS: Récupérer rasters géoréférencer sous ArcGis
T'embête pas à tout uploader, le mieux c'est que tu fasses tourner le script de ton côté. J'ai fais un premier jet ici. Il faut fuste modifier le dossier en entrée, les rasters peuvent être en jpg ou jp2, on peut ajouter d'autres extension en modifiant la variable targetExt au début du code. Attention ici tous les rasters sont considérés comme étant en Lambert 2 étendu, mais dans les faits je ne sais pas si ce sera le cas. Donc le code parse le aux.xml pour extraire les points de contrôle et écrire un fichier script système qui sera a exécuter indépendamment par la suite. Ce script lance successivement les commandes gdal_translate et gdalwarp nécessaires pour chaque raster. Ce qui implique que le chemin vers les binaires gdal soit connu. Sous Windows si QGIS est installé alors ils doivent être dans C:/OSGeo4w/bin (ou quelque-chose dans ce goût là), il faut donc ajouter ce chemin dans les variables d'environnement du système.
Par ailleurs le script écrit un fichier *.points qui peut être réutilisé dans le géoréférenceur de QGIS, afin de reprendre les géoréférencements si besoin !
Dernière modification par dominique.lys (Thu 21 March 2019 14:25)
Hors ligne
#13 Mon 25 March 2019 09:55
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Récupérer rasters géoréférencer sous ArcGis
MERCI BEAUCOUP DOMINIQUE !!!!
Je pourrai pas me pencher dessus avant mercredi, mais bravo pour ton travail !!!
Sylvain M.
Hors ligne