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 Tue 02 February 2010 16:44

Sam_Dalembert
Participant actif
Lieu: Mérignac
Date d'inscription: 5 Aug 2009
Messages: 121

[GDAL] Problème nodata

Bonjour à tous,


Je dispose de plusieurs dalles, je les ai assemblées (avec gdalbuildvrt), et en fait c'est comme s'il en manquait une. Donc ça me fait un carré rose sur l'assemblage. OK.
Avec le -srcnodata dans gdalbuildvrt et le -a_nodata dans gdal_translate, je réussis à passer ce rose en noir en sortant un fichier au format ECW.
Par contre, quand je reprojectionne (à l'aide de gdalwarp), là, impossible de garder cette surface de nodata noire, elle revient rose.
En fait le <NoDataValue> dans le fichier vrt (qui est responsable de ce que je cherche à faire je pense ?) n'est jamais présent dans les ficheirs vrt résultants de gdalwarp...

Comment faire ? Ca fait des heures que je cherche, que je teste, mais je n'y arrive pas...sad


Merci smile

Hors ligne

 

#2 Wed 03 February 2010 01:39

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

Re: [GDAL] Problème nodata

Essaye de regarder du côté des options -srcnodata et -dstnodata de gdalwarp.

Hors ligne

 

#3 Wed 03 February 2010 09:25

Sam_Dalembert
Participant actif
Lieu: Mérignac
Date d'inscription: 5 Aug 2009
Messages: 121

Re: [GDAL] Problème nodata

J'ai bien essayé, mais je n'y arrive pas. Pour être honnête je ne comprends pas vraiment comment utiliser les options -srcnodata, -a_nodata...etc. C'est en tâtonnant que j'ai réussi (pour l'assemblage sans reprojection). Si quelqu'un connaît et veut bien expliquer, cela m'aidera peut-être. (pas la peine de donner les pages internet de documentation sur le site de gdal ou ici, je les ai déjà lues smile ).

Hors ligne

 

#4 Wed 03 February 2010 10:29

Sam_Dalembert
Participant actif
Lieu: Mérignac
Date d'inscription: 5 Aug 2009
Messages: 121

Re: [GDAL] Problème nodata

Maintenant, j'arrive à avoir un <NoDataValue> dans le fichier résultat de gdalwarp. Mais ça ne marche toujours pas...

Pour l'instant je fais :
- "-srcnodata 0" dans gdalbuildvrt
- "-dstnodata 0" dans gdalwarp
- "-a_nodata 0" dans gdal_translate

J'ai essayé aussi

- rien dans gdalbuildvrt
- "-srcnodata 0" dans gdalwarp
- "-a_nodata 0" dans gdal_translate

Et d'autres "combinaisons"...mais rien ne marche.

Hors ligne

 

#5 Wed 03 February 2010 12:26

Ted
Participant assidu
Date d'inscription: 16 Jan 2007
Messages: 181

Re: [GDAL] Problème nodata

Salut,

Pourquoi ne pas projeter dans un premier temps chaque image avec gdalwarp puis avec gdalbuiltvrt les assembler et ajouter les paramètres suivants :
modifier le <SimpleSource> </SimpleSource> en <ComplexSource></ComplexSource>
et ajouter <NODATA>0</NODATA>
ça devrait marcher, d'ailleurs ça devrait marcher du premier coup!
gdalbuildvrt avec modification du vrt
puis gdal_translate pour dire que c'est du tiff et enfin gdalwarp pour reprojeter.

a+

Hors ligne

 

#6 Wed 03 February 2010 13:53

Sam_Dalembert
Participant actif
Lieu: Mérignac
Date d'inscription: 5 Aug 2009
Messages: 121

Re: [GDAL] Problème nodata

Ted,

Projeter chaque image ça n'est pas (dans mon cas) la meilleure solution car j'ai notamment un jeu de données où il y a 54 dalles.

Mais j'ai essayé pour un autre jeu de données où il n'y en a que deux.
Donc :
- j'ai reprojeté les deux dalles
- je les ai assemblées
- j'ai ajouté les paramètres dans le fichier vrt en sortie du gdalbuildvrt
- j'ai sorti le fichier ecw avec gdal_translate

Mais le résultat ne va pas, déjà le fond n'est toujours pas noir, et en plus les deux dalles ne se superposent pas.
Et s'il faut utiliser les options (srcnodata ...etc.) je ne sais pas comment faire pour que dans ce cas-là ça fonctionne.

Dernière modification par Sam_Dalembert (Wed 03 February 2010 14:17)

Hors ligne

 

#7 Wed 03 February 2010 16:39

Sam_Dalembert
Participant actif
Lieu: Mérignac
Date d'inscription: 5 Aug 2009
Messages: 121

Re: [GDAL] Problème nodata

Bon grâce à l'aide de Ted, c'est bon ça fonctionne !


Donc je récapitule.
Si vous travaillez en format de sortie ECW, si vous manipulez une mosaïque non complète (une dalle manquante par exemple, qui apparaîtra en noir, ou en blanc, ou en rose...etc.), si vous la reprojetez et que les bords apparaissent aussi en noir/blanc...etc et que vous voulez une image propre (ex: le fond noir) il faut :

- assembler les dalles avec gdalbuildvrt, en ajoutant bien à la ligne de commande classique " -srcnodata "0 0 0" "
- ensuite reprojeter avec gdalwarp, en ajoutant bien " -wo init_dest=255 "
- enfin sortir le fichier avec gdal_translate (pas besoin d'option particulière)

Voilà c'est tout, mais fallait-il encore le savoir smile

Hors ligne

 

#8 Fri 05 February 2010 12:00

Ludovic L
Membre
Lieu: Tours
Date d'inscription: 23 Jun 2005
Messages: 333

Re: [GDAL] Problème nodata

Bonjour,

Si votre format final est l'ECW, vous n'aurez jamais un contour noir net puisque la valeur peut varier de 0 à 3-4, il vous faudrait donc masquer non seulement  "0 0 0", mais ce qui est proche "0 1 1", "0 1 0"...
Par contre, en utilisant le jp2ecw, on arrive a avoir une valeur uniforme des bordures noires et alors on peut les masquer.

Mais peut-être n'ai je pas bien compris votre manip.


Conservatoire d'espaces naturels Centre-Val de Loire
Responsable SIG et informatique

Hors ligne

 

#9 Tue 09 February 2010 11:49

Sam_Dalembert
Participant actif
Lieu: Mérignac
Date d'inscription: 5 Aug 2009
Messages: 121

Re: [GDAL] Problème nodata

Bonjour,

Les bords noirs que je voulais, c'était de la pure esthétique smile (pas négligeable non plus, des fonds et bords blancs sur des logiciels où le fond est noir ça fait un peu dégueulasse...)
Donc si le fond n'est pas noir à 100% mais s'en rapproche, du moment qu'on ne voit pas la différence, ça me va. Et je ne sais pas si c'est le fait de joueur avec srcnodata mais quand j'ouvre les raster, les bords ne sont pas visibles (donc aucun problème niveau superposition).

Hors ligne

 

#10 Tue 09 February 2010 16:34

Sam_Dalembert
Participant actif
Lieu: Mérignac
Date d'inscription: 5 Aug 2009
Messages: 121

Re: [GDAL] Problème nodata

Bon je vais continuer là, pour peut-être pas créer un topic pour chaque question...


Concernant gdalinfo, il y a une petite subtilité que je ne comprends pas.
Exemple : je pars d'un fichier en L2, je reprojette virtuellement en CC48, et j'extrais (avec -projwin). Donc ça me met le fichier ecw, et un fichier xml.
Quand je fais un gdalinfo du fichier, ça me renseigne bien les infos de projection, mais les "Corner Coordinates" sont en "pixels".

Code:

PROJCS["RGF93 / CC48",
    GEOGCS["RGF93",
        DATUM["Reseau_Geodesique_Francais_1993",
            SPHEROID["GRS 1980",6378137,298.257222101,
                AUTHORITY["EPSG","7019"]],
            TOWGS84[0,0,0,0,0,0,0],
            AUTHORITY["EPSG","6171"]],
        PRIMEM["Greenwich",0,
            AUTHORITY["EPSG","8901"]],
        UNIT["degree",0.01745329251994328,
            AUTHORITY["EPSG","9122"]],
        AUTHORITY["EPSG","4171"]],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]],
    PROJECTION["Lambert_Conformal_Conic_2SP"],
    PARAMETER["standard_parallel_1",47.25],
    PARAMETER["standard_parallel_2",48.75],
    PARAMETER["latitude_of_origin",48],
    PARAMETER["central_meridian",3],
    PARAMETER["false_easting",1700000],
    PARAMETER["false_northing",7200000],
    AUTHORITY["EPSG","3948"],
    AXIS["X",EAST],
    AXIS["Y",NORTH]]
Corner Coordinates:
Upper Left  (    0.0,    0.0)
Lower Left  (    0.0,16173.0)
Upper Right (19860.0,    0.0)
Lower Right (19860.0,16173.0)
Center      ( 9930.0, 8086.5)

Quand j'enlève le fichier xml, il me met les bonnes coordonnées mais ne me donne plus les infos de projection ! Et en plus (plutôt une bonne chose), la taille du pixel apparaît alors qu'elle n'y est pas quand je laisse le fichier xml !

Code:

Coordinate System is `'
Origin = (1624451.667468465400000,7195024.645112288200000)
Pixel Size = (0.249962856981897,-0.249962856981897)
Corner Coordinates:
Upper Left  ( 1624451.667, 7195024.645)
Lower Left  ( 1624451.667, 7190981.996)
Upper Right ( 1629415.930, 7195024.645)
Lower Right ( 1629415.930, 7190981.996)
Center      ( 1626933.799, 7193003.320)

Je pensais que ça pouvait venir du gdal_translate, car je ne mets pas les options PROJ et DATUM, mais même en les mettant, ça me donne la même chose... Une idée ? smile

Dernière modification par Sam_Dalembert (Tue 09 February 2010 16:37)

Hors ligne

 

#11 Tue 09 February 2010 17:15

Sam_Dalembert
Participant actif
Lieu: Mérignac
Date d'inscription: 5 Aug 2009
Messages: 121

Re: [GDAL] Problème nodata

En L93 cela fonctionne. Est-ce que c'est que gdalinfo n'a pas de données d'affichage pour les CC ?

Hors ligne

 

Pied de page des forums

Powered by FluxBB