banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#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)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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 smile

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

 

#5 Thu 18 March 2010 18:22

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: Tutoriel GDAL

Hello,

Les tutoriaux faits par des experts ne sont pas forcément aussi didactiques wink

Merci !
Robin.

Hors ligne

 

#6 Fri 19 March 2010 00:01

rouault
Participant assidu
Date d'inscription: 26 Apr 2009
Messages: 168

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 tongue


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 smile

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

rouault a écrit:

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 smile

Dernière modification par Sam_Dalembert (Wed 24 March 2010 14:32)

Hors ligne

 

#19 Wed 24 March 2010 14:35

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

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 big_smile
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: 168

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: 3185
Site web

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.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#28 Mon 05 April 2010 12:46

vincentp
Participant actif
Lieu: Drôme
Date d'inscription: 18 Jul 2006
Messages: 128
Site web

Re: Tutoriel GDAL

Christophe V. a écrit:

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: 3185
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

 

Pied de page des forums

Powered by FluxBB