Disponible avec une licence Spatial Analyst.
Résumé
Crée une table et un histogramme qui montrent la distribution de fréquence des valeurs de cellule dans les valeurs en entrée pour chaque zone unique.
Utilisation
Un histogramme zonal permet de rechercher la distribution de fréquence des valeurs d’un jeu de données dans les classes d’un autre jeu de données. Exemples : distribution de la pente dans des classes d'utilisation du sol, distribution des précipitations dans des classes d'altitude ou distribution des crimes par secteurs de police.
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 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 (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 (in_value_raster dans Python).
Si la taille de cellule des données raster ou vecteur de zones en entrée (in_zone_data dans Python) et que le raster de valeurs en entrée (in_value_raster dans Python) est différent, la taille de cellule en sortie correspond à la valeur de Maximum Of Inputs (Nombre maximal d’entrées) et le raster de valeurs en entrée est 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 est utilisé comme 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 utilisent directement l’outil et ne sont 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) 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.
La valeur du paramètre Zone field (Champ de zone) (zone_field dans Python) doit être de type entier ou texte.
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.
Un diagramme d'histogramme zonal n'est pas généré par défaut. Pour créer le graphique, sélectionnez le paramètre Zones as rows in output table (Zones en tant que lignes dans la table en sortie) (définissez le paramètre zones_as_rows sur ZONES_AS_ROWS dans Python) et spécifiez un nom de graphique en sortie (paramètre out_graph dans Python). L’histogramme zonal ne peut être créé que dans l’application ArcGIS Pro et il n’est pas pris en charge à partir d’un script autonome.
Dans l’histogramme, le nombre de classes (bins) pour chaque zone est déterminé par le paramètre Input value raster (Raster de valeurs en entrée).
- Si une couche est spécifiée, sa symbologie définit le nombre de classes.
- Si un jeu de données est spécifié, par défaut, il y aura 256 classes, à moins que l’entrée soit de type entier avec moins de 26 valeurs uniques, auquel cas le nombre de classes sera le nombre total de valeurs uniques.
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
ZonalHistogram(in_zone_data, zone_field, in_value_raster, out_table, {out_graph}, {zones_as_rows})
Paramètre | Explication | Type de données |
in_zone_data | Jeu de données qui définit 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 utilisées pour créer l’histogramme. | Raster Layer |
out_table | Fichier de table en sortie. Le format de la table est déterminé par l'emplacement et le chemin d'accès en sortie. Par défaut, la sortie sera une table de géodatabase dans un espace de travail de géodatabase, et une table dBASE dans un espace de travail de fichier Le diagramme facultatif en sortie est créé à partir des informations de la table. | Table |
out_graph (Facultatif) | Nom du diagramme en sortie pour l'affichage. | Graph |
zones_as_rows (Facultatif) | Spécifie la façon dont les valeurs du raster de valeurs en entrée seront représentées dans la table en sortie.
| Boolean |
Exemple de code
Cet exemple crée une table d'histogramme zonal .dbf et un fichier graphique.
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZonalHist = ZonalHistogram("zoneras", "zonfield", "valueras", "znhist_tbl.dbf",
"znhist_graphl", "ZONES_AS_ROWS")
Cet exemple crée une table d'histogramme zonal .dbf.
# Name: ZonalHistogram_Ex_02.py
# Description: Creates a zonal histogram output table
# showing the amount of value cells
# for each unique input zone.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inZoneData = "zonras"
zoneField = "zonfield"
inValueRaster = "valueras"
outTable = "C:/sapyexamples/output/zonehist_tb2.dbf"
# Execute ZonalHistogram
ZonalHistogram(inZoneData, zoneField, inValueRaster, outTable)
Environnements
Informations de licence
- Basic: Requiert Spatial Analyst
- Standard: Requiert Spatial Analyst
- Advanced: Requiert Spatial Analyst
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?