#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...
Merci
Hors ligne
#2 Wed 03 February 2010 01:39
- rouault
- Participant assidu
- Date d'inscription: 26 Apr 2009
- Messages: 168
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 ).
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
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 (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 ?
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