Suite

Raster Caculator Qgis 2.6 v/s Gdal_calc.py par Terminal

Raster Caculator Qgis 2.6 v/s Gdal_calc.py par Terminal


J'ai besoin de la moyenne mensuelle calculée des données de couverture de neige par produit MODIS, puis de modifier ce script gdal_calc.py dans cette section

# crée une liste alphabétique pour stocker les couches d'entrée AlphaList="A","B","C","D","E","F","G","H","I","J" ,"K","L","M", "N","O","P","Q","R","S","T","U","V"," W","X","Y","Z","a","b","c","d","e"]

et écrit ce script :

!/bin/bash echo -n "./gdal_calc.py " > comandos_py.sh array=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e) cont=0 pour le fichier dans MCD10A1_*.tif ; do echo "map: $file" letra=${array[$cont]} echo -n "-$letra ${file} " >> comandos_py.sh cont=$[cont+1] done echo -n "-- outfile=MEAN_2013_06.tif --calc="(A+B+C+D+E+F+G+H+I+J+K+M+N+O+P+Q+R+S+T+ U+V+W+X+Y+Z+a+b+c+d)/30" --NoDataValue=-9999 --type=Float32" >> comandos_py.sh

les deux fonctionnent bien… mais le fichier de sortie est incorrect…

d'une autre manière! chargez tous les fichiers sur QGIS 2.6, ouvrez RASTER CALCULATOR insérez 30 image SNOWCOVER DAILY somme et divisé par 30 et le fichier de sortie EST CORRECT…

quelqu'un peut-il m'expliquer pourquoi cela se produit?


Parce que ce tableau (raster d'entrée) comprend 31 valeurs :

tableau=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e)

et celui-ci (raster de sortie) n'en comprend que 29 ; où le raster "L" et le raster "e" sont manquants :

(A+B+C+D+E+F+G+H+I+J+K+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z +a+b+c+d)/30

Cependant, le script serait (vous devez répéter les lettres):

!/bin/bash echo -n "gdal_calc.py " > comandos_py.sh array=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D) cont=0 pour le fichier dans MCD10A1_*.tif ; do echo "map: $file" letra=${array[$cont]} echo -n "-$letra ${file} " >> comandos_py.sh cont=$[cont+1] done echo -n "-- outfile=MEAN_2013_06.tif --calc="(A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+ T+U+V+W+X+Y+Z+A+B+C+D)/30" --NoDataValue=-9999 --type=Float32" >> comandos_py.sh

Je l'ai testé avec 30 raster et ça marche ! Le premier pixel de MEAN_2013_6.tif est la moyenne du raster 30 ; car il a été corroboré manuellement avec la calculatrice gnome.

Remarque sur l'édition :

Exécuter ma version de script :

[email protected]:~/Desktop/raster$ ./script map : MCD10A1_10.tif map : MCD10A1_11.tif map : MCD10A1_12.tif map : MCD10A1_13.tif map : MCD10A1_14.tif map : MCD10A1_15.tif map : MCD10A1_16.tif map MCD10A1_17.tif carte : MCD10A1_18.tif carte : MCD10A1_19.tif carte : MCD10A1_1.tif carte : MCD10A1_20.tif carte : MCD10A1_21.tif carte : MCD10A1_22.tif carte : MCD10A1_23.tif carte : MCD10A1_25.tif carte : MCD10A1_CD10.tif carte MCD10A1_26.tif carte : MCD10A1_27.tif carte : MCD10A1_28.tif carte : MCD10A1_29.tif carte : MCD10A1_2.tif carte : MCD10A1_30.tif carte : MCD10A1_3.tif carte : MCD10A1_4.tif carte : MCD10A1_MCD10.tif carte1 : MCD10A1_7.tif carte : MCD10A1_8.tif carte : MCD10A1_9.tif

Pas d'erreurs !

Changement de mode de fonctionnement dans commandos_py et l'exécuter.

chmod +x comandos_py.sh ./comandos_py.sh 0… 100 - Terminé

Pas d'erreurs à nouveau !


Merci beaucoup pour votre réponse, mais je pense que oui le problème… regardez ça !!!

[email protected]:/media/fuse/dat3/modis/mod10a1/raw/monthly/regular/stack/dayly/2013_06$ ./crea_comandos_py.sh carte : MCD10A1_2013152.tif carte : MCD10A1_2013153.tif carte : MCD10A1_2013154.1_2013 carte : MCD155 .tif carte : MCD10A1_2013156.tif carte : MCD10A1_2013157.tif carte : MCD10A1_2013158.tif carte : MCD10A1_2013159.tif carte : MCD10A1_2013160.tif carte : MCD10A1_2013161.tif carte : MCD10A1_20131162.tif carte : MCD10A1:tif1_ MCD2013 carte carte .tif : MCD10A1_2013166.tif carte : MCD10A1_2013167.tif carte : MCD10A1_2013168.tif carte : MCD10A1_2013169.tif carte : MCD10A1_2013170.tif carte : MCD10A1_2013171.tif carte : MCD10A1_20131172.tif carte : MCD10A1_tif1_ MCD17375 .tif carte : MCD10A1_2013176.tif carte : MCD10A1_2013177.tif carte : MCD10A1_2013178.tif carte : MCD10A1_2013179.tif carte : MCD10A1_2013180.tif carte : MCD10A1_2013181.tif [email protected]:/media/fuse/dat1/modis/monthlymod10a /regular/stack/dayly/2013_06$ sh comandos_py.sh Traceback (appel le plus récent en dernier) : Fichier "./g dal_calc.py", ligne 296, dans main() Fichier "./gdal_calc.py", ligne 275, dans main eval('parser.add_option("-%s", dest="%s", help="input fichier raster gdal, notez que vous pouvez utiliser n'importe quelle lettre AZ")' %(myAlpha, myAlpha)) Fichier "", ligne 1, dans Fichier "/usr/lib/python2.7/optparse.py", ligne 1020, dans add_option self._check_conflict(option) Fichier "/usr/lib/python2.7/optparse.py", ligne 995, dans l'option _check_conflict) optparse.OptionConflictError : option -A : chaîne(s) d'option en conflit : -A [email protected] : /media/fuse/dat3/modis/mod10a1/raw/monthly/regular/stack/dayly/2013_06$ cat comandos_py.sh ./gdal_calc.py -A MCD10A1_2013152.tif -B MCD10A1_2013153.tif -C MCD10A1_2013154.tif -D MCD10A1_2013 .tif -E MCD10A1_2013156.tif -F MCD10A1_2013157.tif -G MCD10A1_2013158.tif -H MCD10A1_2013159.tif -I MCD10A1_2013160.tif -J MCD10A1_2013161.tif -K MCD10A1_201310162.tif -L MCD10A_MCD2013165 .tif -O MCD10A1_2013166.tif -P MCD10A1_2013167.tif -Q MCD10A1_2013168.tif -R MCD10A1_2013169.tif -S MCD10A1_2013170.tif -T MCD10A1_2013171.tif -U MCD10A1_2013172.tif -V MCD10A1_2013173.tif -W MCD10A1_2013174.tif -X MCD10A1_2013175.tif -Y MCD10A1_2013176.tif -Z MCD10A1_2013CD10A -tif1_A MCD10A1_2013175.tif MCD10A1_2013180.tif -D MCD10A1_2013181.tif --outfile=MEAN_2013_06.tif --calc="(A+B+C+D+E+F+G+H+I+J+K+L+M+N+O +P+Q+R+S+T+U+V+W+X+Y+Z+A+B+C+D)/30" --NoDataValue=-9999 [email protected]:/media /fuse/dat3/modis/mod10a1/raw/monthly/regular/stack/dayly/2013_06$…

C'est tellement étrange !!! Calculatrice raster en cours d'exécution

Merci beaucoup!!


Voir la vidéo: QGIS - Raster calculator SIG 35