#1 Thu 18 March 2010 14:58
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Tutoriel GDAL
Bonjour,
Dans le cadre de mon stage sur la reprojection raster, j'étudie notamment GDAL (à travers FWTools). J'ai rédigé une documentation assez fournie sur l'utilisation de GDAL, sur tout ce qui concerne la reprojection raster (reprojection, assemblage, extraction, dallage...etc.).
Je le mets à disposition, et bien sûr, s'il y a des erreurs ou des suggestions, n'hésitez pas, je modifierai la doc et la remettrai à disposition.
Au passage je remercie 3 intervenants du forum qui m'ont aidé à la fin, s'ils passent par ici, qu'ils me disent s'ils ne veulent pas être cités !
EDIT Modération : fichier PDF de la V3.5 attaché à ce sujet (demandez à un modérateur en cas de Mise à jour ou de fichier > 500ko)
Dernière modification par Sam_Dalembert (Thu 15 July 2021 18:28)
Hors ligne
#2 Thu 18 March 2010 15:38
- nawak
- Participant assidu
- Date d'inscription: 11 Sep 2007
- Messages: 216
Re: Tutoriel GDAL
trés interessant merci d'en faire profiter tout le monde
Hors ligne
#3 Thu 18 March 2010 16:04
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Merci
J'insiste sur le fait que je ne suis pas un expert de GDAL comme certains ici, donc il peut y avoir (et il y a sûrement) des erreurs. Dans tous les cas, toute aide/correction est la bienvenue !
Hors ligne
#4 Thu 18 March 2010 16:15
- Bruno MELI
- Participant occasionnel
- Lieu: Le Tampon - Réunion
- Date d'inscription: 7 Apr 2008
- Messages: 46
- Site web
Re: Tutoriel GDAL
Bonsoir,
Je trouve très sympa de partager cette documentation.
Je suis sûr que cela sera très utile (en attendant les éventuelles corrections)
Merci
BM
Hors ligne
#6 Fri 19 March 2010 00:01
- rouault
- Participant assidu
- Date d'inscription: 26 Apr 2009
- Messages: 166
Re: Tutoriel GDAL
Joli travail en effet !
Quelques remarques :
* concernant la capture d'écran page 11 avec les couleurs funky, il serait intéressant si tu peux reproduire avec une image la plus petite possible de la poster quelque part avec les commandes exactes utilisées pour reproduire ce phénomène. Ca peut être un bug. Ou alors s'il y a une valeur nodata renseignée sur le raster en entrée, il faut savoir que gdalwarp opère bande par bande. Ce qui fait que si nodata=255, la composante bleue d'un pixel valant (0,255,0) sera considéré comme transparente. C'est un comportement connu. Je ne sais pas si c'est le cas dans ton exemple ou autre chose.
* utilisation de LARGE_OK=YES. Comme indiqué en annexe, il y a des problèmes de licence potentiels. Ce serait peut être bien d'alerter les lecteurs dès la 1ère mention page 6, pour ceux qui ne lisent pas jusqu'au bout ;-)
* chapitre 5 (manipulation de gros fichiers) : je pense qu'il serait bon de préciser que beaucoup des bizarreries que tu constates (j'admire ton courage d'avoir testé tout ça!) sont vraiment spécifiques à l'ECW qu'il soit en entrée ou en sortie (le cumul des 2 ne doit pas aider!). Les manipulations d'un fichier TIFF de 5 GO ne nécessitent en principe pas de toucher à la valeur par défaut de GDAL_CACHEMAX (qui est bien de 40 Mo en effet : cf http://trac.osgeo.org/gdal/wiki/ConfigOptions page assez récente du wiki -> tu peux donc enlever le "semble être fixée" par "est fixée" page 21). En tout cas ça ne devrait pas entraîner d'erreur. L'augmenter ne sert qu'à jouer pour le tuning des perfos. Quand l'ECW entre dans la boucle, son propre cache se cumule avec celui de GDAL. Ainsi on voit bien dans tes résultats où tu joues sur GDAL_CACHEMAX (800, 300, 50) que l'utilisation mémoire totale est environ 500 MB supérieure, ce qui est effectivement la valeur par défaut du cache de la lib ECW comme ta machine a 2 GB de RAM (valeur par défaut de GDAL_ECW_CACHE_MAXMEM = 1/4 de la RAM totale). Globalement, je pense que tu pourrais résumer que la consommation mémoire du processus ne devrait pas dépasser GDAL_CACHEMAX + GDAL_ECW_CACHE_MAXMEM (exprimés dans les mêmes unités). (A part les résultats que tu constates dans le paragraphe Explication des tests page 22 que je n'arrive pas à justifier.)
Hors ligne
#7 Fri 19 March 2010 08:21
- Ted
- Participant assidu
- Date d'inscription: 16 Jan 2007
- Messages: 181
Re: Tutoriel GDAL
Bonjour,
Je n'arrive pas à télécharger le fichier :-(, mon naviagteur me signale qu'il y a nue erreur d'encodage du contenu!
Comment faire?
a+
Hors ligne
#8 Fri 19 March 2010 10:23
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Merci ! Et merci Even pour tes corrections.
Je vais modifier tout ça, mais avant je vais te faire carrément un petit .doc sur les tests. Parce que c'est trop compliqué (trop de résultats différents pour trop de commandes différentes) pour que je te fasse ça ici. Par contre je ne peux pas reproduire toutes les situations que je veux avec une image toute petite, donc je refais mes tests sur le même jeu de données, assez important, et je fonctionnerai par capture d'écran.
Je vais essayer d'être clair mais c'est pas gagné, moi-même parfois je m'embrouille dans mes tests
Ted, tu as essayé de faire enregistrer la cible sous ? Il faut peut-être un plug-in adobe que tu n'as pas pour visualiser directement dans un navigateur. Mais si tu le télécharges, tu devrais pouvoir l'ouvrir (enfin si tu as acrobat d'installé bien sûr).
Hors ligne
#9 Fri 19 March 2010 10:38
- Ted
- Participant assidu
- Date d'inscription: 16 Jan 2007
- Messages: 181
Re: Tutoriel GDAL
Il me dit que le fichier est corrompu !!
Autrement, tu as mon adresse perso, si tu peux me l'envoyer par là, ça le ferait!
D'avance merci
Hors ligne
#10 Fri 19 March 2010 11:26
- Ted
- Participant assidu
- Date d'inscription: 16 Jan 2007
- Messages: 181
Re: Tutoriel GDAL
Sam,
En p3 et p16 tu préconises l'utilisation de -projwin, mais tu peux également utiliser -srcwin si ton fichier est géoréf.
Tu utiliseras les coordonnées pixels (moins précises que, mais parfois moins lourde que d'aller dans Circé...).
En p8 tu signales l'utilisation d'un fichier TXT, mais tu peux également lancer la commande comme suit :
gdalbuildvrt monfichier.vrt *.tif
ainsi, il mettra dans le VRT tous les tiff présents dans le répertoire de travail.
Très intéressant et utile ton récapitulatif.
Encore merci
Hors ligne
#11 Fri 19 March 2010 11:39
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Ted,
Pour projwin, tu parles d'extraire des dalles qui ne se recouvrent pas non ?
Je crois que je me suis mal exprimé en fait. Dans le IV, je parle d'extraire un dallage, alors que je pensais extraire les communes d'une agglo. Donc pour extraire dalle par dalle, oui le mieux c'est srcwin, pour extraire toutes les dalles c'est gdal_retile, et pour extraire des dalles type commune (donc qui se recouvrent, qui ont des tailles différentes) il faut utiliser projwin.
On est ok ou j'ai mal compris ?
Exact ! Tu me l'avais marqué en plus dans un de tes mails, mais c'est vrai que je n'y ai plus repensé. Astuce très utile, je rajouterai, merci
Hors ligne
#12 Fri 19 March 2010 11:43
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Even, le zip contenant les captures et le .doc :
http://up.sur-la-toile.com/iz6F
Dernière modification par Sam_Dalembert (Fri 19 March 2010 11:43)
Hors ligne
#13 Fri 19 March 2010 13:46
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Les manipulations d'un fichier TIFF de 5 GO ne nécessitent en principe pas de toucher à la valeur par défaut de GDAL_CACHEMAX
Ah, je vais essayer de vérifier alors, mais il me semble bien que pour le TIFF de 5Go ça ne passait pas. Et en réglant GDAL_CACHEMAX ça a fonctionné.
Hors ligne
#14 Fri 19 March 2010 13:56
- Ted
- Participant assidu
- Date d'inscription: 16 Jan 2007
- Messages: 181
Re: Tutoriel GDAL
On est ok!
a+
Hors ligne
#15 Fri 19 March 2010 14:51
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Je viens d'actualiser la doc, donc ajout de l'avertissement pour l'ECW, de l'astuce * pour gdalbuildvrt, de l'observation sur GC et GECM, d'une note sur srcwin et de la précision sur l'extraction (dallage non régulier).
Version 1.1 : http://up.sur-la-toile.com/iz6S
Hors ligne
#16 Wed 24 March 2010 11:00
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Petite remarque qui peut avoir son importance : pour "l'astuce" concernant l'extraction d'un ECW à partir d'un ECW (en passant par un VRT), le VRT en question doit obligatoirement être créé avec gdalwarp. S'il est créé avec gdal_translate, ça ne fonctionnera pas.
Version 1.2 : http://up.sur-la-toile.com/izgJ
Hors ligne
#17 Wed 24 March 2010 12:12
- gilles_martinoty
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 56
Re: Tutoriel GDAL
Bonjour,
Merci pour ce guide très intéressant. Sans prétendre avoir tout vérifié, j'ai noté les points suivants qu'il conviendrait de compléter:
- un point important est la mention concernant le changement NTF/RGF93 lorsqu'on utilise les codes EPSG. Ceux-ci n'utilisant pas la grille de transformation IGN, l'exactitude obtenue est METRIQUE (jusqu'à 5 mètres). En utilisant les codes IGNF, l'exactitude est celle de la grille, donc centimétrique. L'écart entre le résultat fourni par Circé et Gdal est lui bien sub-millimétrique.
- il n'est pas normal de voir des décalages "par blocs" (paragraphe "qualité de la reprojection"). Ils sont dûs au fait que vous n'indiquez pas dans vos lignes de commandes le rééchantillonnage à appliquer et donc par défaut c'est du plus proche voisin. Il faut rajouter le paramètre "-rc" pour faire du bicubique
- il manque également à mon avis les paramètres -tr pour spécifier la résolution de sortie (ne pas faire confiance au logiciel pour mettre ce qu'il faut)
- l'IGN a mis à disposition un script pour faire du redallage ici http://lambert93.ign.fr/index.php?id=30#c74 qui utilise globalement les mêmes fonctionnalités que celles décrites (fichiers décrivant les images, utilisation du VRT, utilisation de INIT_DEST...), dont il peut être utile de comparer les résultats. Je crois me souvenir qu'un problème de gdal_translate est qu'il ne permet (ou permettait ?) pas de spécificer des emprises débordant des données initiales (ce qui est très penible en bord de chantier).
Cordialement,
Gilles Martinoty
Hors ligne
#18 Wed 24 March 2010 14:32
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Bonjour, et merci beaucoup pour votre réponse ! Alors pour répondre dans l'ordre :
- oui c'est vrai qu'en y réfléchissant métrique/centimétrique ça correspond beaucoup mieux aux observations
- je dois dire que certaines options utilisées (dans les commandes décrites sur le site), je ne les ai rencontrées nulle part ailleurs, donc, ne savant pas trop à quoi elles correspondaient, comment les utiliser...en effet, l'option -rc permet d'éviter ces décalages. C'est quand même une option très importante, mais je n'ai pas vu souvent les gens l'utiliser, bizarre. Par contre c'est beaucoup plus long, il va falloir que je fasse des tests, mais sur le seul fichier que j'ai fait, ça passe de 1min20 à plus de 5min !
- oui, en effet c'est probablement mieux de forcer à garder exactement la même résolution
- ça je crois que c'est pareil, il me semble m'être heurté à cette erreur. En dehors du raster, gdal_translate ne veut pas extraire. Je ne sais pas s'il y a une solution, je n'en ai jamais entendu parler en tous cas.
Je vais modifier tout ça
Dernière modification par Sam_Dalembert (Wed 24 March 2010 14:32)
Hors ligne
#19 Wed 24 March 2010 14:35
Re: Tutoriel GDAL
Par contre c'est beaucoup plus long, il va falloir que je fasse des tests, mais sur le seul fichier que j'ai fait, ça passe de 1min20 à plus de 5min !
Passer du plus proche voisin au bicubique et avoir cet écart, c'est tout à fait normal.
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#20 Wed 24 March 2010 14:49
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Oui oui, je ne dis pas que c'est pas normal, je souligne juste que c'est beaucoup plus long et que -selon moi- ça peut inciter à faire un choix.
Je viens d'essayer avec un fichier 8 fois plus gros, le facteur reste à peu près le même. Donc on peut prudemment conclure que le temps de sortie du fichier est environ 3 à 4 fois plus long... Je pense que ça peut jouer quand même, sachant que l'altération avec le ré-échantillonnage par défaut reste quand même acceptable (tant qu'on ne descend pas en-dessous de l'échelle optimale de visualisation, on ne voit pas de défaut).
Dernière modification par Sam_Dalembert (Wed 24 March 2010 14:50)
Hors ligne
#21 Wed 24 March 2010 17:02
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Peut-être que M. Martinoty le confirmera (ou l'infirmera), mais les temps de reprojection très longs avec IGNMap sont dus au ré-échantillonnage en fait ? Ca expliquerait pas mal de choses !
Là encore, je n'ai jamais vu la moindre discussion là-dessus, tout en ayant des retours comme quoi IGNMap était lent.
Je me trompe peut-être, mais IGNMap gagnerait à informer là-dessus (sur le site par exemple), en disant que les performances ne sont pas si mauvaises que ça, vu le ré-échantillonnage utilisé (qui n'est pas near, vu que l'image ne présente pas de cassure).
Par contre il me semble qu'on ne peut pas choisir le ré-échantillonnage, on est donc obligé de passer par le bicubique.
Dernière modification par Sam_Dalembert (Wed 24 March 2010 17:03)
Hors ligne
#22 Thu 25 March 2010 14:07
- gilles_martinoty
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 56
Re: Tutoriel GDAL
Bonjour,
En effet, IGNMap utilise un rééchantillonnage bicubique, afin d'obtenir la même qualité que pour des reprojections réalisées directement par l'IGN (c'est le même bicubique).
Je ne pense pas que l'on puisse vraiment aller beaucoup plus vite que ce qui est fait actuellement en bicubique. De ce point de vue, IGNMap est même plutôt rapide.
Cordialement,
Gilles Martinoty
Hors ligne
#23 Thu 01 April 2010 17:06
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Nouvelle version 3.0 : http://up.sur-la-toile.com/izrt
Ajout des modifications apportées par gille Martinoty, et d'une rubrique sur la rapidité des traitements.
Hors ligne
#24 Fri 02 April 2010 08:27
- Ted
- Participant assidu
- Date d'inscription: 16 Jan 2007
- Messages: 181
Re: Tutoriel GDAL
Salut SAm,
p36 de ton pdf pour l'erreur gdal_retile (#13) tu as mis
"print "Building internal Index for %d tile(s) ..." % len(inputTiles),"
ça ne pas plutôt ça
"print" "Building internal Index for %d tile(s) ..." % len(inputTiles),
?
j'ai testé et ça fonctionne uniquement avec
"print" "Building internal Index for %d tile(s) ..." % len(inputTiles),
Même si avec la prochaine version, ce problème sera normalement corrigé!
a+
Hors ligne
#25 Fri 02 April 2010 08:39
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Bien vu Teddy !
Je viens de comprendre ce que j'avais fait. En fait, j'avais entouré la ligne par des "", ce qui est très con vu qu'il y en a dans la ligne, et que ça induit donc en erreur
Il n'y a pas besoin des "" autour du print, mais bon si ça marche quand même c'est pas bien grave.
Code:
print "Building internal Index for %d tile(s) ..." % len(inputTiles),
Merci !
Version corrigée 3.1 : http://up.sur-la-toile.com/izsj
Hors ligne
#26 Fri 02 April 2010 20:38
- rouault
- Participant assidu
- Date d'inscription: 26 Apr 2009
- Messages: 166
Re: Tutoriel GDAL
Effectivement la régression sur gdal_retile sera corrigée par GDAL 1.7.2
Vous pouvez directement récupérer la version corrigée du script ici : http://trac.osgeo.org/gdal/browser/bran … format=raw
C'est l'avantage du Python, pas besoin de recompiler !
Hors ligne
#27 Mon 05 April 2010 08:16
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3178
- Site web
Re: Tutoriel GDAL
Bonjour,
En effet, IGNMap utilise un rééchantillonnage bicubique, afin d'obtenir la même qualité que pour des reprojections réalisées directement par l'IGN
Pour des images couleurs cela est parfaitement justifié, mais concernant des images bicolores une option "bilinéaire" serait la bien venue (dans les deux logiciels), elle permettrait amha un gain de temps sans "dégrader" l'image.
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#28 Mon 05 April 2010 12:46
Re: Tutoriel GDAL
Bonjour,
Gilles Martinoty a écrit:En effet, IGNMap utilise un rééchantillonnage bicubique, afin d'obtenir la même qualité que pour des reprojections réalisées directement par l'IGN
Pour des images couleurs cela est parfaitement justifié, mais concernant des images bicolores une option "bilinéaire" serait la bien venue (dans les deux logiciels), elle permettrait amha un gain de temps sans "dégrader" l'image.
Ha ? Je veux bien une explication scientifique du rapport entre le rééchantillonage utilisé et le nombre de couleurs de l'image. Ça me parait fortement étrange. Que le rééchantillonage dégrade plus ou moins la qualité de l'image certes, et que donc suivant la qualité initiale de l'image ça se voie plus ou moins certes, mais pour moi ce n'est pas lié à la profondeur de couleur directement.
vincent
Hors ligne
#29 Mon 05 April 2010 17:39
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3178
- Site web
Re: Tutoriel GDAL
Bonjour,
Le fait de réaliser la moyenne de quatre pixels (bilinéaire) sur une image où on a soit du noir soit du blanc (pour faire simple) cela me semble suffisant par rapport à du bicubique qui lui regarde les seize pixels les plus proches.
Il me semble que pour déterminer une couleur sur 256 possibles, voir 16 millions et des poussières la méthode bicubique est plus appropriée. Mais ce n'est que mon humble avis.
Sur le sujet scientifique :
ftp://ftp.irisa.fr/local/caps/DEPOTS/BI … Pierre.pdf
Dernière modification par Christophe V. (Mon 05 April 2010 17:39)
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#30 Mon 12 April 2010 15:17
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
Re: Tutoriel GDAL
Version 3.2: http://up.sur-la-toile.com/izGL
Ajout d'une petite astuce page 8 et 9 pour permettre l'identification par GDAL des codes ERMapper pour les zones CC et éviter la génération d'un XML.
Hors ligne