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 Wed 18 March 2015 16:15

gadir
Participant occasionnel
Date d'inscription: 25 Jan 2014
Messages: 19

QGIS : Statistiques sur un lot de raster

Bonjour,

Je veux calculer les statistiques du base (min, mean, max) sur plusieurs couches raster (120 couches), Si je passe : propriété du raster > métadonnées,  va être très long.

J'aimerai bien savoir, s'il y a une astuce pour afficher toutes les statistiques de plusieurs couches du raster en une seule fois.

Merci d'avance pour vos suggestions.

Hors ligne

 

#2 Wed 18 March 2015 16:59

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: QGIS : Statistiques sur un lot de raster

Bonjour,

Regarde du côté de gdalinfo avec le paramètre -stats
Ci-dessous un exemple de ce qui est retourné :

Driver: AAIGrid/Arc/Info ASCII Grid
Files: \\...\BDALTI_75m_France\BDALTIr_2-0_MNT_EXT_0075_6825_LAMB93_IGN69_20110929.asc
       \\...\BDALTI_75m_France\BDALTIr_2-0_MNT_EXT_0075_6825_LAMB93_IGN69_20110929.asc.aux.xml
Size is 1000, 1000
Coordinate System is `'
Origin = (74962.500000000000000,6825037.500000000000000)
Pixel Size = (75.000000000000000,-75.000000000000000)
Corner Coordinates:
Upper Left  (   74962.500, 6825037.500)
Lower Left  (   74962.500, 6750037.500)
Upper Right (  149962.500, 6825037.500)
Lower Right (  149962.500, 6750037.500)
Center      (  112462.500, 6787537.500)
Band 1 Block=1000x1 Type=Float32, ColorInterp=Undefined
  Min=-2.800 Max=103.710
  Minimum=-2.800, Maximum=103.710, Mean=47.594, StdDev=25.838
  NoData Value=-99999
  Metadata:
    STATISTICS_MAXIMUM=103.70999908447
    STATISTICS_MEAN=47.593517726272
    STATISTICS_MINIMUM=-2.7999999523163
    STATISTICS_STDDEV=25.837573534695


Dans le shell OSGEOW, tu peux écrire :

Code:

gdalinfo \\...\BDALTI_75m_France\BDALTIr_2-0_MNT_EXT_0075_6825_LAMB93_IGN69_20110929.asc -stats | grep STATISTICS_

Ca renvoie uniquement :

STATISTICS_MAXIMUM=103.70999908447
    STATISTICS_MEAN=47.593517726272
    STATISTICS_MINIMUM=-2.7999999523163
    STATISTICS_STDDEV=25.837573534695


Reste à construire un batch qui boucle dans le répertoire, lance gdalinfo fait un export texte de chaque raster sous la forme :

BDALTIr_2-0_MNT_EXT_0075_6825_LAMB93_IGN69_20110929.asc
    STATISTICS_MAXIMUM=103.70999908447
    STATISTICS_MEAN=47.593517726272
    STATISTICS_MINIMUM=-2.7999999523163
    STATISTICS_STDDEV=25.837573534695

Dernière modification par Robin (Wed 18 March 2015 17:00)

Hors ligne

 

#3 Wed 18 March 2015 17:41

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: QGIS : Statistiques sur un lot de raster

Ci dessous un script bash (extension .sh) à lancer dans le shell OSGEOW via la commande

Code:

sh monscript.sh

Voilà ce qu'il y a dedans :

Code:

for IFile in *.asc # modifier ici en cas d'autre format. Variable $Ifile = nom du fichier avec extension
do
        echo "Processing $IFile"
        gdalinfo -stats $IFile | grep 'STATISTICS_'
done

J'ai mis 2 fichiers asc dans un répertoire temporaire et voilà ce que j'obtiens :

C:\tmp>sh Liste_Origine_batch.sh
Processing BDALTIr_2-0_MNT_EXT_0075_6825_LAMB93_IGN69_20110929.asc
    STATISTICS_MAXIMUM=103.70999908447
    STATISTICS_MEAN=47.593517726272
    STATISTICS_MINIMUM=-2.7999999523163
    STATISTICS_STDDEV=25.837573534695
Processing BDALTIr_2-0_MNT_EXT_0075_6900_LAMB93_IGN69_20110929.asc
    STATISTICS_MAXIMUM=140.66999816895
    STATISTICS_MEAN=40.70811037412
    STATISTICS_MINIMUM=-12.220000267029
    STATISTICS_STDDEV=32.492840168388


"Et Voilà !"

Dernière modification par Robin (Wed 18 March 2015 17:43)

Hors ligne

 

#4 Wed 18 March 2015 22:58

gadir
Participant occasionnel
Date d'inscription: 25 Jan 2014
Messages: 19

Re: QGIS : Statistiques sur un lot de raster

Merci pour tes réponses  Robin,

J'ai installé OSGeo4W Shell, j ai essayé d entrer le code, mais je n'arrive à avoir des résultats.
Comme je suis un peu débutant dans la programmation, j arrive pas bien à comprendre ce script.

merci une autre si tu puisse me le détailler  un peu plus

Cordialement

Dernière modification par gadir (Wed 18 March 2015 22:58)

Hors ligne

 

Pied de page des forums

Powered by FluxBB