#1 Wed 18 March 2015 17:14
- MissT
- Participant occasionnel
- Lieu: Cayenne
- Date d'inscription: 25 Sep 2014
- Messages: 22
FwTools 2.4.7 - Assembler des fichiers .asc proprement
Bonjour à tous,
je débute sous FwTools et, même si on doit revenir à un environnement DOS, je dois admettre que c'est d'une puissance extrême!
J'ai des lots de dalles asc provenant de prétraitements de données Lidar et je voudrai les fusionner par secteur. Les dalles sont rassemblées dans des dossiers et j'arrive à la fusionner avec la ligne suivante:
Code:
gdalbuildvrt MNE_fleuveX.asc *.asc
En 2 secondes, c'est bouclé.
Mais quand je regarde le résultat en détail, ça ne me convient pas:
- les zones de saisie du Lidar présentent les bonnes valeurs
- les zones sans données des dalles ont pris la valeur 0 et
- celles hors de l'emprise des dalles prennent la valeur no data.
(cf PJ pour voir le résultat. C'est du RGFG95 UTM22N)
Comment faire pour que les no data restent en no data (et non en zéro)?
Question subsidiaire: comment se fait-il que le résultat de la fusion fasse 4Ko alors que la somme des dalles initiales fait 17.8Mo ????
Hors ligne
#2 Wed 18 March 2015 17:50
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Le VRT est un fichier texte, normal qu'il doit tout petit C'est une sorte de "raccourci" vers les données sources.
Je pense que la réponse au problème du nodata est dans les paramètres de gdalbuildvrt :
gdalbuildvrt [-tileindex field_name]
[-resolution {highest|lowest|average|user}]
[-te xmin ymin xmax ymax] [-tr xres yres] [-tap]
[-separate] [-b band] [-sd subdataset]
[-allow_projection_difference] [-q]
[-addalpha] [-hidenodata]
[-srcnodata "value [value...]"] [-vrtnodata "value [value...]"]
[-a_srs srs_def]
[-input_file_list my_liste.txt] [-overwrite] output.vrt [gdalfile]*
-vrtnodata value [value...]:
(starting with GDAL 1.7.0) Set nodata values at the VRT band level (different values can be supplied for each band). If more than one value is supplied all values should be quoted to keep them together as a single operating system argument. If the option is not specified, intrinsic nodata settings on the first dataset will be used (if they exist). The value set by this option is written in the NoDataValue element of each VRTRasterBand element. Use a value of None to ignore intrinsic nodata settings on the source datasets.
donc j'en déduis que d'ajouter -vrtnodata None devrait faire l'affaire ?
EDIT : à vérifier, c'est peut être au niveau de -srcnodata aussi.
Dernière modification par Robin (Wed 18 March 2015 17:52)
Hors ligne
#3 Wed 18 March 2015 17:55
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
PS : le fichier joint à ton message n'est pas MNE_FleuveX.asc mais MNE_FleuveX.vrt. Attention, ce n'est pas le résultat final ! Pour finaliser et passer du VRT à un fichier en dur, il faut passer par gdal_translate.
Voilà le contenu :
Code:
<VRTDataset rasterXSize="1773" rasterYSize="2663"> <GeoTransform> 3.5829353000000003e+005, 9.9806699752971439e-001, 0.0000000000000000e+000, 3.6226823978199076e+005, 0.0000000000000000e+000,-9.9806699752971439e-001</GeoTransform> <VRTRasterBand dataType="Float32" band="1"> <NoDataValue>-9.99900000000000E+003</NoDataValue> <ComplexSource> <SourceFilename relativeToVRT="1">MNE_OYAPOC_Sikini_0430.asc</SourceFilename> <SourceBand>1</SourceBand> <SourceProperties RasterXSize="844" RasterYSize="807" DataType="Float32" BlockXSize="844" BlockYSize="1"/> <SrcRect xOff="0" yOff="0" xSize="844" ySize="807"/> <DstRect xOff="0" yOff="0" xSize="845" ySize="808"/> <NODATA>-9999</NODATA> </ComplexSource> <ComplexSource> <SourceFilename relativeToVRT="1">MNE_OYAPOC_Sikini_0431.asc</SourceFilename> <SourceBand>1</SourceBand> <SourceProperties RasterXSize="121" RasterYSize="150" DataType="Float32" BlockXSize="121" BlockYSize="1"/> <SrcRect xOff="0" yOff="0" xSize="121" ySize="150"/> <DstRect xOff="844" yOff="658" xSize="121" ySize="150"/> <NODATA>-9999</NODATA> </ComplexSource> <ComplexSource> <SourceFilename relativeToVRT="1">MNE_OYAPOC_Sikini_0432.asc</SourceFilename> <SourceBand>1</SourceBand> <SourceProperties RasterXSize="569" RasterYSize="1002" DataType="Float32" BlockXSize="569" BlockYSize="1"/> <SrcRect xOff="0" yOff="0" xSize="569" ySize="1002"/> <DstRect xOff="276" yOff="806" xSize="570" ySize="1003"/> <NODATA>-9999</NODATA> </ComplexSource> <ComplexSource> <SourceFilename relativeToVRT="1">MNE_OYAPOC_Sikini_0433.asc</SourceFilename> <SourceBand>1</SourceBand> <SourceProperties RasterXSize="455" RasterYSize="1003" DataType="Float32" BlockXSize="455" BlockYSize="1"/> <SrcRect xOff="0" yOff="0" xSize="455" ySize="1003"/> <DstRect xOff="844" yOff="806" xSize="455" ySize="1003"/> <NODATA>-9999</NODATA> </ComplexSource> <ComplexSource> <SourceFilename relativeToVRT="1">MNE_OYAPOC_Sikini_0434.asc</SourceFilename> <SourceBand>1</SourceBand> <SourceProperties RasterXSize="112" RasterYSize="224" DataType="Float32" BlockXSize="112" BlockYSize="1"/> <SrcRect xOff="0" yOff="0" xSize="112" ySize="224"/> <DstRect xOff="734" yOff="1808" xSize="112" ySize="223"/> <NODATA>-9999</NODATA> </ComplexSource> <ComplexSource> <SourceFilename relativeToVRT="1">MNE_OYAPOC_Sikini_0435.asc</SourceFilename> <SourceBand>1</SourceBand> <SourceProperties RasterXSize="927" RasterYSize="853" DataType="Float32" BlockXSize="927" BlockYSize="1"/> <SrcRect xOff="0" yOff="0" xSize="927" ySize="853"/> <DstRect xOff="844" yOff="1808" xSize="928" ySize="854"/> <NODATA>-9999</NODATA> </ComplexSource> <ComplexSource> <SourceFilename relativeToVRT="1">MNE_OYAPOCK_Sikini.asc</SourceFilename> <SourceBand>1</SourceBand> <SourceProperties RasterXSize="1773" RasterYSize="2663" DataType="Float32" BlockXSize="128" BlockYSize="128"/> <SrcRect xOff="0" yOff="0" xSize="1773" ySize="2663"/> <DstRect xOff="0" yOff="0" xSize="1773" ySize="2663"/> <NODATA>-9999</NODATA> </ComplexSource> <SimpleSource> <SourceFilename relativeToVRT="1">MNE_OYAPOK_SIKINI_OEG_201312.asc</SourceFilename> <SourceBand>1</SourceBand> <SourceProperties RasterXSize="1770" RasterYSize="2659" DataType="Float32" BlockXSize="1770" BlockYSize="1"/> <SrcRect xOff="0" yOff="0" xSize="1770" ySize="2659"/> <DstRect xOff="0" yOff="0" xSize="1773" ySize="2663"/> </SimpleSource> </VRTRasterBand> </VRTDataset>
Dernière modification par Robin (Wed 18 March 2015 17:58)
Hors ligne
#4 Wed 18 March 2015 18:19
- MissT
- Participant occasionnel
- Lieu: Cayenne
- Date d'inscription: 25 Sep 2014
- Messages: 22
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Robin, encore des bonnes réponses lumineuses qui m'éblouissent la cervelle! Le fait que le fichier produit soit un txt raccourci vers les dalles initiales explique sa légèreté.
Je vais explorer le gdal_translate pour convertir en asc (puis en tif car il m'en faut une copie dans ce format).
Je te tiens au courant.
Hors ligne
#5 Thu 19 March 2015 18:39
- MissT
- Participant occasionnel
- Lieu: Cayenne
- Date d'inscription: 25 Sep 2014
- Messages: 22
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Après pas mal d'essais, j'ai un peu avancé: j'ai désormais une valeur unique de zéro partout où ça devrait être nul.
Pour aboutir à mes geotiff et asc, j'ai utilisé les commandes suivantes:
Code:
gdalbuildvrt sortie.vrt *.asc -vrtnodata none -srcnodata "-9999" gdal_translate -of GTiff -a_nodata "-9999" sortie.vrt export.tiff gdal_translate -of AAIGrid -a_nodata "-9999" sortie.vrt export.asc
Ce qui m'embête encore, c'est que zéro, c'est une valeur. Comment faire en sorte d'avoir nodata (-9999) à la place de zéro?
Hors ligne
#6 Fri 20 March 2015 00:30
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Ce n'est pas pas fwtools, mais tente ta chance avec grass
http://grass.osgeo.org/grass64/manuals/r.null.html
The function of r.null is to explicitly create the NULL-value bitmap file. The intended usage is to fix "old" maps that don't have a NULL-value bitmap file (i.e. to indicate if zero is valid value or is to be converted to NULL). The module does not work with reclassified maps.
The design is flexible. Ranges of values can be set to NULL and/or the NULL value can be eliminated and replace with a specified value.
The setnull parameter is used to specify values in the ranges to be set to NULL. A range is either a single value (e.g., 5.3), or a pair of values (e.g., 4.76-34.56). Existing NULL-values are left NULL, unless the null argument is requested.
Hors ligne
#7 Fri 20 March 2015 11:36
- MissT
- Participant occasionnel
- Lieu: Cayenne
- Date d'inscription: 25 Sep 2014
- Messages: 22
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Robin, c'est gentil de proposer une autre solution mais...
1/ je débroussailles pour des collègues non experts en SIG
2/ je ne suis pas loin du but
3/ j'en profite pour développer un petit outil sommaire qui va automatiser le traitement d'un dossier ou d''un ensemble de dossiers (et j'en suis au stade où il faut juste que je trouve la bonne syntaxe)...
Hors ligne
#8 Mon 23 March 2015 12:17
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Ca marche.
Par curiosité, comment comptes tu "créer" l'outil ?Par exemple, que tes collègues se mettent dans le bon répertoire et lancent un batch ?
Hors ligne
#9 Mon 23 March 2015 12:33
- MissT
- Participant occasionnel
- Lieu: Cayenne
- Date d'inscription: 25 Sep 2014
- Messages: 22
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Pour automatiser les tâches répétitives (ou mettre à dispo un outil utilisant des fenêtres DOS...) 1/ pour des non-experts 2/ sur des logiciels sans langage de programmation, j'utilise AutoIt, un langage de programmation TRES facile à prendre en main qui permet de manipuler des fenêtres, des frappes de texte, etc.
Dans le cas présent, l'utilisateur final choisit le dossier à traiter ou le dossier dont les sous-dossiers sont à traiter (les asc à fusionner doivent être regroupés dans un dossier) dans une vraie fenêtre et clic-ok ==> l'appli balance les codes à exécuter dans FWTools.
C'est pourquoi je cherche la syntaxe exacte à utiliser pour créer ces @¤%* de dalles finales avec des valeurs nulles hors zones d'acquisition LIDAR...
Hors ligne
#10 Mon 23 March 2015 16:38
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Ca me plaît comme idée, ce AutoIt ! Je vais regarder ça.
Peut être faudrait il en amont affecter une valeur NULL de ton choix pour la maîtriser par la suite ?
Ceci dit, je suppose qu'il doit y avoir moyen d'agir au niveau du VRT et des commandes sus mentionnées.
Éventuellement, peux-tu envoyer 2 dalles qui te posent souci sur mon mail ? J'aimerais tester, si tu veux bien.
Hors ligne
#11 Mon 23 March 2015 17:29
- MissT
- Participant occasionnel
- Lieu: Cayenne
- Date d'inscription: 25 Sep 2014
- Messages: 22
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Hop! Mail parti!
Hors ligne
#12 Tue 24 March 2015 19:00
- MissT
- Participant occasionnel
- Lieu: Cayenne
- Date d'inscription: 25 Sep 2014
- Messages: 22
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Hé hé! Prem's!
J'ai trouvé avec le concours d'homologues locaux.
option vrtnodata contraint les zones sans dalles (trou entre les dalles) à prendre la valeur nulle.
L'option srcnodata impose la valeur à considérer comme nulle dans le fichier source. Et comme le prestataire à rendu des dalles avec parfois des -999 ou d'autres -9999, on rencontrait un problème.
Quand on n'impose pas cette valeur srcnodata, le gdalbuildvrt utilise la valeur nodata définie dans le(s) fichier(s) asc. Ainsi, avec la syntaxe suivante, on agglomère tous les fichiers acs d'un dossier en un vrt considérant les valeurs null de chaque asc et les données hors dalles en null
Code:
gdalbuildvrt FichierSauv .vrt *.asc -vrtnodata none
Pour créer les geotiff ou asc ou autres, le paramètre de l'option -a_nodata (valeur à considérer comme nulle) ne devait pas être "-9999" mais none (puisque c'est la valeur qu'on a choisi pour créer le vrt). Ainsi:
Code:
gdal_translate -of GTiff -a_nodata none FichierSauv.vrt FichierSauv.tiff gdal_translate -of AAIGrid -a_nodata none FichierSauv.vrt FichierSauv.asc
Merci pour vos éclairages!
Hors ligne
#13 Wed 25 March 2015 08:59
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Pour un petit retour rapide sur ce que tu m'as envoyé, j'ai utilisé basiquement pour voir ce qui suit dans un .bat :
Code:
gdalbuildvrt AssemblageMNT.vrt *.asc gdal_translate -of GTiff AssemblageMNT.vrt export.tiff
Au final j'ai sous QGIS un MNT jointif qui se limite aux valeurs du MNT et qui est "transparent" au delà.
Je suppose que le problème venait de MNE_OYAPOK_SIKINI_OEG_201312.asc (mais je ne l'ai pas eu dans ton envoi), car il n'avait pas de mention "NoData" dans la ligne le concernant dans le VRT.
Merci de ton retour qui permet notamment de mieux sécuriser les assemblages pour éviter les problèmes évoqués
Hors ligne
#14 Mon 23 November 2015 23:30
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Bonjour,
Hé hé! Prem's!
J'ai trouvé avec le concours d'homologues locaux.
Et ce petit outil qui permet d'assembler des asc, il serait dispo pour des :
1/ pour des non-experts 2/ sur des logiciels sans langage de programmation, j'utilise AutoIt, un langage de programmation TRES facile à prendre en main
Merci :-)
elise
Dernière modification par Elise (Mon 23 November 2015 23:31)
Géoscope
11 rue de l'Hospice - 19400 Argentat
Tél. : 09 60 47 51 16
Hors ligne
#15 Tue 24 November 2015 12:42
- MissT
- Participant occasionnel
- Lieu: Cayenne
- Date d'inscription: 25 Sep 2014
- Messages: 22
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Bonjour Elise,
Je ne comprend pas l'objet de ton message, à part citer des bouts de messages...
Hors ligne
#16 Tue 24 November 2015 17:34
Re: FwTools 2.4.7 - Assembler des fichiers .asc proprement
Bonjour,
Je faisais référence à l'outil que tu as semble-t-il mis au point pour assembler plusieurs fichiers asc. Si j'ai bien saisi le fil de la discussion.
Cordialement,
Elise
Géoscope
11 rue de l'Hospice - 19400 Argentat
Tél. : 09 60 47 51 16
Hors ligne