Disponible avec une licence Spatial Analyst.
Résumé
Calcule les statistiques des valeurs d'un raster dans chaque zone d'un autre jeu de données.
Pour en savoir plus sur l'utilisation de la fonction Statistiques zonales
Illustration
Utilisation
Une zone est définie comme l'ensemble des surfaces en entrée ayant la même valeur. Les surfaces ne sont pas nécessairement contiguës. Vous pouvez utiliser à la fois des entités et un raster pour la zone en entrée.
Si la taille de cellule est différente de Input raster or feature zone data (Données raster ou vecteur de zones en entrée) (in_zone_data dans Python) et que Input value raster (Raster de valeurs en entrée) (in_value_raster dans Python) est différent, la taille de cellule en sortie correspond au maximum des entrées (option Maximum Of Inputs) et le raster de valeurs en entrée (Input value raster) sera utilisé comme raster de capture en interne. Si la taille de cellule est identique, mais que les cellules ne sont pas alignées, le raster de valeurs en entrée (Input value raster) sert de raster de capture en interne. L’une de ces cases déclenche un ré-échantillonnage interne avant l’exécution de l’opération zonale.
Lorsque la zone ou les valeurs en entrée sont des rasters avec la même taille de cellule et que les cellules sont alignées, elles utiliseront directement l’outil et ne seront pas ré-échantillonnées en interne au cours de l’exécution de l’outil.
Si les données raster ou vecteur de zones en entrée (Input raster or feature zone data) (in_zone_data dans Python) constituent un raster, ils doivent être un raster d’entiers.
Si les données raster ou vecteur de zones en entrée (Input raster or feature zone data) (in_zone_data dans Python) forment une entité, ces données sont converties en raster en interne, à l’aide de la taille de cellule et de l’alignement des cellules du raster de valeurs en entrée (option Input value raster) (in_value_raster dans Python).
Si Input raster or feature zone data (Données raster ou vecteur de zones en entrée) (in_zone_data dans Python) est une entité, pour l’une des entités de zone ne recouvrant aucun centre de cellule du raster de valeurs, ces zones ne sont pas converties dans le raster de zone interne. Ces zones ne seront par conséquent pas représentées en sortie. Vous pouvez le faire en déterminant une valeur appropriée pour l’environnement Cell Size (Taille de cellule) permettant de préserver le niveau de détail souhaité des zones d’entités, et en spécifiant ceci dans l’environnement d'analyse.
Si les données raster ou vecteur de zones en entrée (Input raster or feature zone data) (in_zone_data dans Python) est une entité ponctuelle, il est possible d’avoir plusieurs points contenus dans toute cellule du raster de valeurs en entrée. Pour de telles cellules, la valeur de zone est déterminée par le point doté du champ ObjectID le plus faible (OID ou FID, par exemple).
Si les données raster ou vecteur de zones en entrée (Input raster or feature zone data) (in_zone_data dans Python) contient des polygones superposés, l’analyse zonale n’est pas effectuée pour chaque polygone individuel. Comme l'entité en entrée est convertie en raster, chaque emplacement peut avoir une seule valeur.
Une méthode alternative consiste à traiter l’opération zonale de façon itérative pour chacune des zones de polygone et à assembler les résultats.
Lorsque vous spécifiez les données raster ou vecteur de zones en entrée (Input raster or feature zone data) (in_zone_data dans Python), le champ de zone par défaut est le premier champ entier ou texte disponible. S’il n’existe aucun autre champ valide, le champ ObjectID (par exemple, OID ou FID) est utilisé par défaut.
Le raster de valeurs en entrée (Input value raster) (in_value_raster dans Python) peut être de type entier ou à virgule flottante. Toutefois, lorsque son type est à virgule flottante, les options de calcul de la majorité, de la médiane, de la minorité et de la variété ne sont pas disponibles.
Pour les calculs de majorité et de minorité, lorsqu’il existe un rattachement, la sortie pour la zone est basée sur la plus faible des valeurs associées. Reportez-vous à la rubrique Fonctionnement de l'outil Statistiques zonales pour plus d'informations.
Le type de données (entier ou à virgule flottante) de la sortie dépend du calcul zonal qui est effectué et du type raster de valeurs en entrée. Reportez-vous à la rubrique Fonctionnement de l'outil Statistiques zonales pour plus d'informations.
Par défaut, cet outil tire parti des processeurs à plusieurs cœurs. Le nombre maximal de cœurs pouvant être utilisés s’élève à quatre.
Si vous souhaitez que l'outil utilise moins de cœurs, utilisez le paramètre d'environnement Facteur de traitement parallèle.
Pour plus d’informations sur les environnements de géotraitement qui s’appliquent à cet outil, reportez-vous à la rubrique Environnements d’analyse et Spatial Analyst.
Syntaxe
ZonalStatistics(in_zone_data, zone_field, in_value_raster, {statistics_type}, {ignore_nodata})
Paramètre | Explication | Type de données |
in_zone_data | Jeu de données définissant les zones. Les zones peuvent être définies par un raster d'entiers ou une couche d'entités. | Raster Layer; Feature Layer |
zone_field | Champ contenant les valeurs qui définissent chaque zone. Il peut s'agir d'un champ de type entier ou chaîne du jeu de données de zones. | Field |
in_value_raster | Raster contenant les valeurs sur lesquelles vous voulez calculer une statistique. | Raster Layer |
statistics_type (Facultatif) | Type de statistique à calculer.
| String |
ignore_nodata (Facultatif) | Indique si les valeurs NoData de la valeur en entrée influenceront les résultats de la zone dans laquelle elles se trouvent.
| Boolean |
Valeur renvoyée
Nom | Explication | Type de données |
out_raster | Raster de statistiques zonales en sortie. | Raster |
Exemple de code
Premier exemple d'utilisation de l'outil ZonalStatistics (fenêtre Python)
Cet exemple détermine pour chaque zone la plage de valeurs de cellule dans le raster de valeurs en entrée.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZonalStats = ZonalStatistics("zone", "value", "valueraster", "RANGE",
"NODATA")
outZonalStats.save("C:/sapyexamples/output/zonestatout")
Deuxième exemple d'utilisation de l'outil ZonalStatistics (script autonome)
Cet exemple détermine pour chaque zone la plage de valeurs de cellule dans le raster de valeurs en entrée.
# Name: ZonalStatistics_Ex_02.py
# Description: Calculates statistics on values of a raster
# within the zones of another dataset.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inZoneData = "zone"
zoneField = "value"
inValueRaster = "valueraster"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute ZonalStatistics
outZonalStatistics = ZonalStatistics(inZoneData, zoneField, inValueRaster,
"RANGE", "NODATA")
# Save the output
outZonalStatistics.save("C:/sapyexamples/output/zonestatout2")
Environnements
- Validation automatique
- Taille de cellule
- Méthode de projection de la taille de cellule
- Compression
- Espace de travail courant
- Étendue
- Transformations géographiques
- Masque
- Mot-clé CONFIG en sortie
- Système de coordonnées en sortie
- Facteur de traitement parallèle
- Espace de travail temporaire
- Raster de capture
- Taille de tuile
Informations de licence
- Basic: Requiert Spatial Analyst
- Standard: Requiert Spatial Analyst
- Advanced: Requiert Spatial Analyst