Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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é ?

Annonce

Printemps des cartes 2024

#1 Thu 29 June 2017 18:51

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

Gdal fusion et decoupage (100 dalles)

Bonjour,

Je ne trouve actuellement aucune réponse à mes questions.

J'utilise Gdal pour traduire ect des fichiers...du coup je l'utilise quotidiennement

Cependant actuellement j'ai un nombre important (+100) de Dalle dont je souhaite fusionner avec Gdal. J'ai bien eu comme indication qu'il faut mettre gdal_merge.py cependant cette commande n'est pas disponible dans mon gdal et ne n'arrive pas ajouter python..

Pouvez-vous m'aider à comprendre comment ajouter python dans gdal (un tutorial bien détaillé etc).

Enfin un exemple de cette commande serait vraiment d'une grande aide svp.


Le but de cette fusion est de faire une reprojection puis de redecouper!

Merci par avance

A+

Hors ligne

 

#2 Thu 29 June 2017 22:41

Mathieu Denat
Participant actif
Lieu: Montpellier
Date d'inscription: 5 May 2010
Messages: 110

Re: Gdal fusion et decoupage (100 dalles)

Bonsoir,

Pourquoi fusionner les dalles pour les redécouper ensuite?
Y a t'il une raison que nous n'avons pas?


Je serai plutôt partisan de reprojeter l'ensemble des dalles avec gdalwrap à l'aide de find ou d'une boucle for
Ça donnerait quelque chose de la sorte, à adapter et à tester, je n'ai pas de jeu de données sous la main:

Ce code est à lancer dans le répertoire qui contient les dalles, en admettant que les fichiers soient au format JPEG2000.

Code:

for i in *.jp2;
do gdalwarp -s_srs EPSG:2154 -t_srs EPSG:4326 $i $i_reprojete.jp2;
done;

Pour récupérer de manière automatique les fichiers reprojecté il est possible de lancer la commande suivante lorsque le script a terminé de tourner:

Code:

mkdir mes_dalles_reprojetees && cp *reprojete.jp2 ./mes_dalles_reprojetees/

Dans le cas où fusionner les dalles est important, peut-être que la génération d'un simple vrt suffit?

Code:

gdalbuildvrt ma_dalle.vrt *_reprojete.jp2

Bonne continuation.

EDIT: J'avais oublié de transmettre ces liens que tu dois déjà connaître, mais on ne sait jamais! wink
http://www.gdal.org/gdalwarp.html
http://www.gdal.org/gdalbuildvrt.html

Dernière modification par Matmat (Thu 29 June 2017 22:47)


Mathieu
C'est en forgeant qu'on devient forgeron

Hors ligne

 

#3 Tue 04 July 2017 12:49

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

Re: Gdal fusion et decoupage (100 dalles)

Bonjour,

Merci pour votre solution du coup je pense utiliser la commande pour faire un VRT.

Par contre mon besoin de fusionner vient de que j'ai 100 dalles dans une projection EPSG: 54004 et si je change la projection cela engendre des bandes noir du coup c'est problématique pour l'utilisation sous Mapinfo.

Je souhaite aprés la fusion reprojeter le VRT puis redécouper le VRT en dalles pour ne pas avoir de bandes noirs
Pouvez-vous m'indiquer la démarche à suivre  et la commande s'il vous plait ?

Je pense que limite un tuto serait très utile à tout le monde.

Cordialement,

Dernière modification par Nosxo (Tue 04 July 2017 12:51)

Hors ligne

 

#4 Tue 04 July 2017 14:17

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: Gdal fusion et decoupage (100 dalles)

Bonjour,

Tu peux faire avec ignmap en une seule fois.

Tu importes un répertoire d'images et tu fais une reprojection avec dalles. Tu n'as pas de bandes noirs.

Cordialement.


Opérateur cartographique & DAO & PHP.

Hors ligne

 

#5 Tue 04 July 2017 15:15

Mathieu Denat
Participant actif
Lieu: Montpellier
Date d'inscription: 5 May 2010
Messages: 110

Re: Gdal fusion et decoupage (100 dalles)

Bonjour,

Le VRT est un catalogue, c'est un fichier texte qui répertorie le chemin des dalles.
Le passage par le VRT me semble du coup inutile! wink
En adaptant un peu le script précédent on peut arriver au résultat souhaité:

Code:

cd repertoire_origine/
mkdir dalles_L93/
for i in *.jp2;
do gdalwarp -s_srs EPSG:54004 -t_srs EPSG:4326 $i $i_reprojete.jp2;
do mv $i_reprojete.jp2 dalles_L93/;
done;

L'ordi travaillera tout seul pendant un moment et le tour est joué.
Les bandes devraient disparaître aussi, car les dalles seront reprojetées.

Sinon l'usage d'ignmap est probablement + simple, mais je ne connais pas ce programme.
Tiens nous au courant.

Bonne journée.


Mathieu
C'est en forgeant qu'on devient forgeron

Hors ligne

 

#6 Wed 05 July 2017 08:51

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 989
Site web

Re: Gdal fusion et decoupage (100 dalles)

Bonjour,

Nosxo a écrit:

Pouvez-vous m'aider à comprendre comment ajouter python dans gdal (un tutorial bien détaillé etc).


Avez-vous consulté https://pypi.python.org/pypi/GDAL/ ?
Sinon, si vous installez QGIS, GDAL est compris dans l'installation (avec le gdal_merge.py).

Martin

Hors ligne

 

#7 Wed 05 July 2017 09:35

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

Re: Gdal fusion et decoupage (100 dalles)

Bonjour,

Concernant la solution IGNMAP elle ne peut pas fonctionner car je suis de base sur des fichiers en 54004 et IGNMAP ne propose pas ce genre de projection.

A+

Hors ligne

 

#8 Wed 05 July 2017 09:50

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

Re: Gdal fusion et decoupage (100 dalles)

Bonjour,

Concernant Gdalwarp  j'ai déjà essayé et je passe d'un projection EPSG: 54004 à une projection EPSG : 2154 mais avec des bandes noir.

A+

Hors ligne

 

#9 Wed 05 July 2017 10:12

Mathieu Denat
Participant actif
Lieu: Montpellier
Date d'inscription: 5 May 2010
Messages: 110

Re: Gdal fusion et decoupage (100 dalles)

Bonjour,
Il semblerait que les vieilles versions de GDAL confondent l'EPSG 54004  et 3857:
https://gis.stackexchange.com/questions … -epsg54004
Peux tu ouvrir tes dalles (dans Qgis par exemple) avec la projection 3857?
Les bandes sont elles encore présentes?

Si elles ont disparues, ça vaut le coup de reprendre la commande gdalwrap avec a_srs 3857 pour tester.
Sinon je sèche...


Mathieu
C'est en forgeant qu'on devient forgeron

Hors ligne

 

#10 Wed 05 July 2017 11:06

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

Re: Gdal fusion et decoupage (100 dalles)

Bonjour,

Je me suis permis de t'envoyer un exemple de fichier.
J'ai bien 54004 avec Qgis 2.14 pour mon fichier .png .map donc je pense que c'est bon.

Quand j'essaye cette commande FOR %Q IN (*.tiff) DO gdalwarp -s_srs EPSG:54004 -t_srs EPSG:2154 -rb -of Gtiff "%Q" "%~dpnQ.tif"
J'ai bien des bandes ...

Merci par avance de votre aide

@nitram je regarde pour python

Dernière modification par Nosxo (Wed 05 July 2017 11:06)

Hors ligne

 

#11 Wed 05 July 2017 12:30

Mathieu Denat
Participant actif
Lieu: Montpellier
Date d'inscription: 5 May 2010
Messages: 110

Re: Gdal fusion et decoupage (100 dalles)

Re,
Avec ton fichier j'obtiens une erreur due à la projection:

Code:

gdalwarp -of GTiff -s_srs EPSG:54004 -t_srs EPSG:2154 Aveyron_1\ 15.map aveyron_repro_pouet.tiffERROR 6: EPSG PCS/GCS code 54004 not found in EPSG support files.  Is this a valid
EPSG coordinate system?
ERROR 1: Translating source or target SRS failed

En fournissant la définition précise du système de coordonnées ça passe!

Code:

gdalwarp -of GTiff -s_srs '+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs' -t_srs EPSG:2154 Aveyron_1\ 15.map aveyron_repro_2154.tiff
Creating output file that is 4126P x 4112L.
Processing input file Aveyron_1 15.map.
0...10...20...30...40...50...60...70...80...90...100 - done.

Par contre comme toi j'ai "les bandes noires", voir capture d'écran en PJ.
Une solution (c'est peut-être un peu sale, mais c'est la facilité, car je connais déjà la commande! :p ), c'est de créer un vrt dans lequel tu spécifie que tu veux de la transparence s'il n'y a pas de donnée en entrée!

Code:

gdalbuildvrt -srcnodata 0 averyon.vrt *.tiff
0...10...20...30...40...50...60...70...80...90...100 - done.

C'est un peu crade et peut-être que quelqu'un proposera mieux.

À tester en 1er lieu avec plusieurs dalles pour vérifier qu'il n'y ai pas de chevauchement ni d'écart important entre chacune d'elles.
Bonne continuation!


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

Mathieu
C'est en forgeant qu'on devient forgeron

Hors ligne

 

#12 Wed 05 July 2017 13:48

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

Re: Gdal fusion et decoupage (100 dalles)

Il est possible de reprojeter une image sans faire de sélection !

michel56 a écrit:

Bonjour,

Tu peux faire avec ignmap en une seule fois.

Tu importes un répertoire d'images et tu fais une reprojection avec dalles. Tu n'as pas de bandes noirs.

Cordialement.

Hors ligne

 

#13 Wed 05 July 2017 15:27

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: Gdal fusion et decoupage (100 dalles)

Oui, mais si ignmap ne connait pas la projection 54004 tu ne pourras pas faire de reprojection.


Opérateur cartographique & DAO & PHP.

Hors ligne

 

#14 Wed 05 July 2017 15:37

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

Re: Gdal fusion et decoupage (100 dalles)

Oui c'est moche sad

michel56 a écrit:

Oui, mais si ignmap ne connait pas la projection 54004 tu ne pourras pas faire de reprojection.

Hors ligne

 

#15 Wed 05 July 2017 15:58

Mathieu Denat
Participant actif
Lieu: Montpellier
Date d'inscription: 5 May 2010
Messages: 110

Re: Gdal fusion et decoupage (100 dalles)

Il semblerait qu'un petit script s'impose du coup...
À adapter:

Code:

cd repertoire_origine/
mkdir dalles_L93/
for i in *.map;
do gdalwarp -of GTiff -s_srs '+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs' -t_srs EPSG:2154 $i $i_reprojete.tif;
done;
mv *reprojete* dalles_L93/
mv dalles_L93 ../
gdalbuildvrt -srcnodata 0 mon_super_vrt.vrt ./dalles_L93.tiff

Je t'invite vraiment à lire la doc de GDAL (gdalbuildvrt et gdalwarp dans ton cas), car tu peux faire un tas de trucs sympa.
Dans mon exemple je passe par du .tif mais tu dois pouvoir créer un autre format + avantageux.

Bref à creuser encore je pense! wink
Tu n'es pas bien loin du but.
À +


Mathieu
C'est en forgeant qu'on devient forgeron

Hors ligne

 

#16 Wed 05 July 2017 16:00

mich
Participant occasionnel
Lieu: Grenoble
Date d'inscription: 1 Aug 2007
Messages: 35

Re: Gdal fusion et decoupage (100 dalles)

Bonjour,

peut être une autre piste pour supprimer les bandes noires ?

les exemples parlent d'eux même, je vous laisse regarder.

https://gis.stackexchange.com/questions … -shapefile

ps: le fichier en sortie prend vite du poids du fait de la découpe.

Dernière modification par mich (Wed 05 July 2017 16:50)

Hors ligne

 

#17 Wed 05 July 2017 16:39

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 989
Site web

Re: Gdal fusion et decoupage (100 dalles)

Bonjour,

En effet pour palier au problème des bandes noires il faut passer par une fusion des raster au préalable de la projection.

Pour récapituler avec GDAL :
1. Combiner les raster gdalbuildvrt http://www.gdal.org/gdalbuildvrt.html
2. Re-projeter gdalwarp http://www.gdal.org/gdalwarp.html
3. Re-découper gdal_retile.py http://www.gdal.org/gdal_retile.html (sur la base d'un shapefile pour les emprises de découpage)

Martin

Hors ligne

 

#18 Wed 05 July 2017 17:17

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

Re: Gdal fusion et decoupage (100 dalles)

Bonjour,

Alors

1. Combiner les raster gdalbuildvrt  -> OK je viens de le faire !
2. Re-projeter gdalwarp http://www.gdal.org/gdalwarp.html -> OK Gdal vient de terminer l smile
3. Re-découper gdal_retile.py http://www.gdal.org/gdal_retile.html (sur la base d'un shapefile pour les emprises de découpage).-> Gdal me stipule que la commande est inconnue pour lui ..sad

Bon je vais essayer de voir comment installer python avec gdal c'est un peu galère quand même.

@Martin est-il possible d'avoir un exemple de commande avec Gdal_retile.py + utilisation d'une grille en shape s'il vous plait ?

Encore merci beaucoup à vous tous j'avance bien smile

Dernière modification par Nosxo (Wed 05 July 2017 17:17)

Hors ligne

 

#19 Wed 05 July 2017 18:33

Mathieu Denat
Participant actif
Lieu: Montpellier
Date d'inscription: 5 May 2010
Messages: 110

Re: Gdal fusion et decoupage (100 dalles)

Re,

Je suis curieux d'avoir les commandes entrées, c'est toujours utile pour les suivants.
Peux-tu nous les transmettre, stp?

Si gdal te renvoie qu'il ne connaît pas la commande c'est peut-être qu'elle est mal orthographiée hmm
Si tu bosses sous linux, le système est sensible à la casse, du coup Gdal_retile.py n'est pas la même chose que gdal_retile.py.
Dans mon cas c'est la seconde commande qui passe.

Pour ton shapefile, il faut créer un index.
Tu peux utiliser gdal_grid: http://www.gdal.org/gdal_grid.html
Ou encore la fonction grille de Qgis : vecteur > outils de recherche > grille vecteur.

Une fois que ton fichier est créé (dans la même projection que tes rasters, alors tu pourras l'appeler dans ta commande gdal_retile.py.

À +

EDIT: visiblement gdal_grid ne sert pas à ça, il faut peut-être plutôt chercher du côté de gdaltindex. Je suis en limite de compétence, du coup je vais laisser des gens + au courant te répondre! :p

Dernière modification par Mathieu Denat (Wed 05 July 2017 18:38)


Mathieu
C'est en forgeant qu'on devient forgeron

Hors ligne

 

#20 Mon 10 July 2017 13:27

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

Re: Gdal fusion et decoupage (100 dalles)

Non mais je bloque sur l'installation de Python et gdal sur window Je vais voir avec Linux si c'est plus simple

Hors ligne

 

#21 Mon 10 July 2017 13:56

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: Gdal fusion et decoupage (100 dalles)

Si tu as réalisé la projection avec gdal en EPSG : 2154 tu peux faire ton découpage avec ignmap maintenant


Opérateur cartographique & DAO & PHP.

Hors ligne

 

#22 Tue 11 July 2017 16:57

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

Re: Gdal fusion et decoupage (100 dalles)

michel56 a écrit:

Si tu as réalisé la projection avec gdal en EPSG : 2154 tu peux faire ton découpage avec ignmap maintenant


Non car le fichier pèse 5go est IGNMAP n'arrive pas à l'ouvrir (surement trop gros) smile

Hors ligne

 

#23 Tue 11 July 2017 17:30

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: Gdal fusion et decoupage (100 dalles)

Personnellement je suis sous linux mint et gdal_retile.py fonctionne.

https://gdal.gloobe.org/gdal/gdal_retile.html


Opérateur cartographique & DAO & PHP.

Hors ligne

 

Pied de page des forums

Powered by FluxBB