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.
Le nombre de classes d’un histogramme zonal dépend de la manière dont Input value raster (Raster de valeurs en entrée) (in_value_raster dans Python) est spécifié.
Lorsqu’il est spécifié en tant que jeu de données raster, les conditions suivantes s’appliquent :
- Dans le cas d’un raster de type entier comportant moins de 25 valeurs uniques, le nombre de classes correspond au nombre de valeurs uniques du raster de valeurs.
- Dans le cas d’un raster de type entier comportant plus de 25 valeurs uniques, les valeurs sont divisées en 256 classes, de 1 à 256. Si le nombre de valeurs uniques est inférieur à 256, certaines classes ont pour fréquence 0.
- Dans le cas d’un raster à virgule flottante, les valeurs sont divisées en 256 classes, de 1 à 256.
Lorsqu’il est spécifié en tant que couche raster, les conditions suivantes s’appliquent :
- Pour la symbologie Stretch (Étirer), le type d’étirement est utilisé et les valeurs sont divisées en 256 classes, de 1 à 256.
- Pour la symbologie Classify (Classifier) ou Unique Values (Valeurs uniques), le nombre de classes correspond aux classes ou aux valeurs uniques de la symbologie.
- L’analyse zonale est effectuée dans la plage de valeurs spécifiée par la symbologie Stretch (Étirer), Classify (Classifier) ou Unique Values (Valeurs uniques). Toute valeur du raster de valeurs qui ne s’affiche par dans la symbologie est ignorée par le calcul.
- Pour la symbologie Discrete (Discrète) ou Vector Field (Champ vectoriel), l’analyse zonale ignore la symbologie. L’analyse est effectuée en ne tenant compte que du type de données et du nombre de valeurs uniques dans le raster de valeurs, comme lorsque le raster de valeurs en entrée est spécifié en tant que jeu de données raster.
- L’histogramme zonal affiche les valeurs de classe des étiquettes de symbologie de la couche raster de valeurs.
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.
Lorsque vous créez la table en sortie en désélectionnant le paramètre Zones as rows in output table (Zones en tant que lignes dans la table en sortie), le champ d’étiquette contient les valeurs issues du jeu de données raster de valeurs ou les étiquettes de symbologie de la couche, en fonction de la manière dont le raster de valeurs en entrée a été spécifié.
Lorsque vous créez la table en sottie en cochant le paramètre Zones as rows in output table (Zones en tant que lignes dans la table en sortie), le champ d’étiquette contient les valeurs issues du raster de zones.
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 ?