Résumé
Calcule l’intersection entre deux classes d’entités et calcule les superficies croisées de la surface, la longueur ou le total des entités d’intersection.
Illustration
Utilisation
Une zone se compose de toutes les entités du paramètre Input Zone Features (Entités de zone en entrée) qui ont les mêmes valeurs dans Zone Fields (Champs de zone). De même, une classe est composée de toutes les entités du paramètre Input Class Features (Entités de classe en entrée) qui ont les mêmes valeurs dans Class Fields (Champs de classe). Les entités n'ont pas à être contiguës pour se trouver dans la même zone ou classe. Cet outil permet de calculer la portion de la zone qui est intersectée par chaque classe (surface et pourcentage de surface de zone).
Si aucune valeur Class Fields (Champs de classe) n'est spécifiée, toutes les entités du paramètre Input Class Features (Entités de classe en entrée) sont considérées comme une classe unique. Le paramètre Output Table (Table en sortie) contient un enregistrement pour chaque zone.
Lorsqu’une valeur Class Fields (Champs de classe) est spécifiée, le paramètre Output Table (Table en sortie) contient n enregistrements pour chaque zone, n représentant le nombre de classes dans cette zone. Par exemple, si une zone contient quatre classes, le paramètre Output Table (Table en sortie) compte quatre enregistrements pour cette zone.
Les attributs numériques de l'option Input Class Features (Entités de classe en entrée) peuvent être additionnés par zone à l'aide du paramètre Sum Fields (Champs de somme). La somme des valeurs d’une classe représente une proportion de la somme des valeurs en fonction du pourcentage de la classe qui présente une intersection avec la zone.
Attention :
Utilisez les champs contenant des valeurs absolues (et non des valeurs relatives normalisées, telles que des pourcentages ou des densités) en tant que Sum Fields (Champs de somme), car les valeurs peuvent être fractionnées et réparties dans différentes zones.
Il n’est pas possible d’utiliser des Input Class Features (Entités de classe en entrée) dont les dimensions sont supérieures à celles des Input Zone Features (Entités de zone en entrée).
- Si les Input Zone Features (Entités de zone en entrée) sont des points, les Input Class Features (Entités de classe en entrée) ne peuvent pas être des polygones ou des lignes.
- Si les Input Zone Features (Entités de zone en entrée) sont des lignes, les Input Class Features (Entités de classe en entrée) ne peuvent pas être des polygones.
Lorsque les Input Zone Features (Entités de zone en entrée) et les Input Class Features (Entités de classe en entrée) sont des polygones, les statistiques de la table en sortie sont basées sur les calculs de la surface.
Lorsque les Input Class Features (Entités de classe en entrée) sont des lignes, les statistiques de la table en sortie sont basées sur des calculs linéaires.
Lorsque les Input Class Features (Entités de classe en entrée) sont des points, les statistiques de la table en sortie sont basées sur le nombre d'entités.
Lorsque les Input Zone Features (Entités de zone en entrée) et les Input Class Features (Entités de classe en entrée) présentent une dimension identique (deux polygones, deux lignes ou deux points), le champ en sortie PERCENTAGE enregistre le pourcentage de l’entité de zone qui est intersectée par la classe.
Si les Input Zone Features (Entités de zone en entrée) et les Input Class Features (Entités de classe en entrée) présentent différentes dimensions (zone de polygone avec classe linéaire, zone de polygone avec classe de points ou zone de ligne avec une classe de points), le champ en sortie PERCENTAGE enregistre le pourcentage de la classe qui intersecte le polygone de zone.
Le champ PERCENTAGE peut enregistrer une valeur de pourcentage supérieure à 100 pour cent en présence d'entités superposées dans les Input Zone Features (Entités de zone en entrée) ou les Input Class Features (Entités de classe en entrée).
Le champ AREA est inclus dans la table en sortie uniquement lorsque les Input Zone Features (Entités de zone en entrée) et les Input Class Features (Entités de classe en entrée) sont des polygones. Le champ AREA contient la superficie des Input Zone Features (Entités de zone en entrée) intersectées par les Input Class Features (Entités de classe en entrée).
Un champ LENGTH est inclus dans la table en sortie lorsque les Input Class Features (Entités de classe en entrée) sont des lignes. Le champ LENGTH contient la longueur de l'intersection entre les Input Zone Features (Entités de zone en entrée) et les Input Class Features (Entités de classe en entrée).
Un champ PNT_COUNT est compris dans la table en sortie lorsque les Input Class Features (Entités de classe en entrée) sont des points. Le champ PNT_COUNT contient le nombre de points de Input Class Features (Entités de classe en entrée) qui intersectent les Input Zone Features (Entités de zone en entrée).
Lors de l'utilisation de couches d'entités, si des entités sont sélectionnées, seules les entités sélectionnées sont utilisées dans les calculs.
La détermination de l'intersection des entités de classe et de zone suit les mêmes règles que l'outil Intersecter.
Utilisez l'outil Pivot Table (Table croisée) pour transformer le paramètre Output Table (Table en sortie) en une table qui contient un enregistrement pour chaque zone avec les attributs de classe comme champs attributaires distincts. Renseignez les paramètres de l'outil Pivot Table (Table croisée) comme suit :
- Input Table (Table en entrée) - Tabuler l'intersection Output Table (Table en sortie)
- Input Fields (Champs en entrée)—Tabuler l'intersection Zone Fields (Champs de zone)
- Pivot Field (Champ de croisement)—Tabuler l'intersection Class Fields (Champs de classe)
- Value Field (Champ de valeur)—Tabuler l'intersection Sum Fields (Champs de somme) ou AREA, LENGTH, PERCENTAGE
Syntaxe
TabulateIntersection(in_zone_features, zone_fields, in_class_features, out_table, {class_fields}, {sum_fields}, {xy_tolerance}, {out_units})
Paramètre | Explication | Type de données |
in_zone_features | Entités permettant d'identifier des zones. | Feature Layer |
zone_fields [zone_fields,...] | Le ou les champs attributaires utilisés pour définir les zones. | Field |
in_class_features | Entités permettant d'identifier des classes. | Feature Layer |
out_table | Table contenant la tabulation croisée des intersections entre zones et classes. | Table |
class_fields [class_fields,...] (Facultatif) | Le ou les champs attributaires utilisés pour définir les classes. | Field |
sum_fields [sum_fields,...] (Facultatif) | Champs à additionner à partir des Input Class Features (Entités de classe en entrée). | Field |
xy_tolerance (Facultatif) | Distance qui détermine la plage dans laquelle les entités ou leurs sommets sont considérés comme identiques. Par défaut, il s'agit de la tolérance XY de l'option Input Zone Features (Entités de zone en entrée). Attention :Modifier la valeur de ce paramètre peut provoquer des erreurs ou des résultats inattendus. Il est recommandé de ne pas modifier ce paramètre. Ce paramètre n’est plus affiché dans la boîte de dialogue de l’outil. Par défaut, la propriété tolérance x,y de référence spatiale de la classe d'entités en entrée est utilisée. | Linear Unit |
out_units (Facultatif) | Les unités à utiliser pour calculer la surface ou la longueur. Il est impossible de définir les unités en sortie lorsque les entités de classe en entrée sont des points.
| String |
Exemple de code
Utlisez TabulateIntersection dans la fenêtre Python pour trouver la superficie de chaque type de végétation dans chaque zone.
import arcpy
arcpy.TabulateIntersection_analysis("Zones", "zone_id", "Vegetation",
r"C:\Esri\veganalysis.gdb\vegtypeAreas",
"VEGTYPE")
Ce script encapsule TabulateIntersection afin de créer un outil de script TabulateArea simple. L'outil de script TabulateArea utilise seulement des entités surfaciques en entrée.
Les champs Zone et Classe sont limités à un seul.
'''
TabulateArea.py
Description: Shows how to wrap the TabulateIntersection tool to create a TabulateArea script tool
Requirements: Polygon Zone Feature Class, Polygon Class Feature Class
'''
import arcpy
import sys
import os
def AddMsgAndPrint(msg, severity=0):
# Adds a Message (in case this is run as a tool)
# and also prints the message to the screen (standard output)
#
print(msg)
# Split the message on \n first, so that if it's multiple lines,
# a GPMessage will be added for each line
try:
for string in msg.split('\n'):
# Add appropriate geoprocessing message
#
if severity == 0:
arcpy.AddMessage(string)
elif severity == 1:
arcpy.AddWarning(string)
elif severity == 2:
arcpy.AddError(string)
except:
pass
## Get Parameters
zoneFC = arcpy.GetParameterAsText(0)
zoneFld = arcpy.GetParameterAsText(1) # Only allow one field
classFC = arcpy.GetParameterAsText(2)
outTab = arcpy.GetParameterAsText(3)
classFld = arcpy.GetParameterAsText(4) # Optional and only allow one field
sum_Fields = ""
xy_tol = ""
outUnits = arcpy.GetParameterAsText(5)
## Validate parameters
# Inputs can only be polygons
zoneDesc = arcpy.Describe(zoneFC)
classDesc = arcpy.Describe(classFC)
if zoneDesc.shapeType != "Polygon" or classDesc.shapeType != "Polygon":
AddMsgAndPrint("Inputs must be of type polygon.", 2)
sys.exit()
# Only one zone field and class field
if zoneFld != "":
if zoneFld.find(";") > -1 or classFld.find(";") > -1:
AddMsgAndPrint("A maximum of one zone and/or class field is allowed.", 2)
sys.exit()
## Run TI with restricted parameters
try:
arcpy.TabulateIntersection_analysis(zoneFC, zoneFld, classFC, outTab,
classFld, sum_Fields, xy_tol, outUnits)
except:
arcpy.AddMessage("Tabulate Intersection Failed.")
AddMsgAndPrint(arcpy.GetMessages(), 0)
Environnements
Informations de licence
- Basic: Non
- Standard: Non
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?