Tabuler l'intersection (Analyse)

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

Illustration de l'outil Tabuler l'intersection

Utilisation

  • Une zone se compose de toutes les entités du paramètre Entités de zone en entrée pour lesquelles les valeurs du paramètre Champs de zone sont identiques. De même, une classe est composée de toutes les entités du paramètre Entités de classe en entrée pour lesquelles les valeurs du paramètre Champs de classe sont identiques. Il n’est pas nécessaire que les entités soient contiguës pour être 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 Champs de classe n'est spécifiée, toutes les entités du paramètre Entités de classe en entrée sont considérées comme une classe unique. La valeur Table en sortie contient un enregistrement pour chaque zone.

  • Lorsqu’une valeur Champs de classe est spécifiée, la valeur 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, la valeur Table en sortie comprendra quatre enregistrements pour cette zone.

  • Les attributs numériques du paramètre Entités de classe en entrée peuvent être additionnés par zone à l'aide du paramètre 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 Champs de somme, car les valeurs peuvent être fractionnées et réparties dans différentes zones.

  • La dimension des valeurs des Entités de classe en entrée ne peut pas être supérieure à celle des valeurs des Entités de zone en entrée.

    • Si les valeurs des Entités de zone en entrée sont des points, les valeurs des Entités de classe en entrée ne peuvent pas être des polygones ou des lignes.
    • Si les valeurs des Entités de zone en entrée sont des lignes, les valeurs des Entités de classe en entrée ne peuvent pas être des polygones.

  • Lorsque les valeurs des Entités de zone en entrée et des 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 valeurs des 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 valeurs des 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 valeurs des Entités de zone en entrée et des Entités de classe en entrée possèdent la même dimension (toutes deux sont des polygones, des lignes ou des points), le champ PERCENTAGEen sortie enregistre le pourcentage de l’entité de zone qui est intersectée par la classe.

    Si les valeurs des Entités de zone en entrée et des Entités de classe en entrée possèdent des dimensions différentes (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 PERCENTAGE en sortie enregistre le pourcentage de la classe qui intersecte le polygone de zone.

    Le champ PERCENTAGEpeut enregistrer une valeur de pourcentage supérieure à 100 pour cent en présence d'entités superposées dans les Entités de zone en entrée ou les paramètres Entités de classe en entrée.

  • Le champ AREA est inclus dans la table en sortie uniquement lorsque les valeurs des Entités de zone en entrée et des Entités de classe en entrée sont des polygones. Le champ AREAcontient la superficie des valeurs des Entités de zone en entrée intersectées par les valeurs des Entités de classe en entrée.

    Un champ LENGTH est inclus dans la table en sortie lorsque les valeurs des Entités de classe en entrée sont des lignes. Le champ LENGTHcontient la longueur de l'intersection entre les valeurs des Entités de zone en entrée et des Entités de classe en entrée.

    Un champ PNT_COUNTest inclus dans la table en sortie lorsque les valeurs des Entités de classe en entrée sont des points. Le champ PNT_COUNT contient le nombre de points des Entités de classe en entrée qui intersectent les valeurs des 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'outilIntersecter.

  • Utilisez l’outil Table croisée pour transformer la valeur de la Table en sortie en une table qui contient un enregistrement pour chaque zone avec des 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)
    • Champ de valeurTabuler l'intersection Champs de somme ou AREA, LENGTH, PERCENTAGE
    Exemple de table croisée en sortie

Paramètres

ÉtiquetteExplicationType de données
Entités zones en entrée

Entités permettant d'identifier des zones.

Feature Layer
Champs de zone

Le ou les champs attributaires utilisés pour définir les zones.

Field
Entités de classement en entrée

Entités permettant d'identifier des classes.

Feature Layer
Table en sortie

Table contenant la tabulation croisée des intersections entre zones et classes.

Table
Champs de classe
(Facultatif)

Le ou les champs attributaires utilisés pour définir les classes.

Field
Champs de somme
(Facultatif)

Les champs à additionner à partir du paramètre Entités de classe en entrée.

Field
Tolérance XY
(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 du paramètre 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
Unités en sortie
(Facultatif)

Spécifie les unités à utiliser pour les calculs des surface ou de longueur. Il est impossible de définir les unités en sortie lorsque les entités de classe en entrée sont des points.

  • Inconnu —Les unités ne sont pas connues.
  • Pouces —Les unités sont les pouces.
  • Pieds —L’unité sera le pied.
  • Yards —Les unités sont les yards.
  • Miles —L'unité sera le mile.
  • Milles nautiques —L’unité sera le mille nautique.
  • Millimètres —Les unités sont les millimètres.
  • Centimètres —Les unités sont les centimètres.
  • Décimètres —Les unités sont les décimètres.
  • Mètres —L’unité sera le mètre.
  • Kilomètres —L’unité sera le kilomètre
  • Degrés décimaux —L’unité sera le degré décimal.
  • Points —Les unités sont les points.
  • Ares —Les unités sont les ares.
  • Acres —Les unités sont les acres.
  • Hectares —Les unités sont les hectares.
  • Pouces carrés —Les unités sont les pouces carrés.
  • Pieds carrés —Les unités sont les pieds carrés.
  • Yards carrés —Les unités sont les yards carrés.
  • Miles carrés —Les unités sont les miles carrés.
  • Millimètres carrés —Les unités sont les millimètres carrés.
  • Centimètres carrés —Les unités sont les centimètres carrés.
  • Décimètres carrés —Les unités sont les décimètres carrés.
  • Mètres carrés —Les unités sont les mètres carrés.
  • Kilomètres carrés —Les unités sont les kilomètres carrés.
String

arcpy.analysis.TabulateIntersection(in_zone_features, zone_fields, in_class_features, out_table, {class_fields}, {sum_fields}, {xy_tolerance}, {out_units})
NomExplicationType 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)

Les champs à additionner à partir du paramètre in_class_features.

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 du paramètre in_zone_features.

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)

Spécifie les unités à utiliser pour les calculs des surface ou de longueur. Il est impossible de définir les unités en sortie lorsque les entités de classe en entrée sont des points.

  • UNKNOWNLes unités ne sont pas connues.
  • INCHESLes unités sont les pouces.
  • FEETL’unité sera le pied.
  • YARDSLes unités sont les yards.
  • MILESL'unité sera le mile.
  • NAUTICAL_MILESL’unité sera le mille nautique.
  • MILLIMETERSLes unités sont les millimètres.
  • CENTIMETERSLes unités sont les centimètres.
  • DECIMETERSLes unités sont les décimètres.
  • METERSL’unité sera le mètre.
  • KILOMETERSL’unité sera le kilomètre
  • DECIMAL_DEGREESL’unité sera le degré décimal.
  • POINTSLes unités sont les points.
  • ARESLes unités sont les ares.
  • ACRESLes unités sont les acres.
  • HECTARESLes unités sont les hectares.
  • SQUARE_INCHESLes unités sont les pouces carrés.
  • SQUARE_FEETLes unités sont les pieds carrés.
  • SQUARE_YARDSLes unités sont les yards carrés.
  • SQUARE_MILESLes unités sont les miles carrés.
  • SQUARE_MILLIMETERSLes unités sont les millimètres carrés.
  • SQUARE_CENTIMETERSLes unités sont les centimètres carrés.
  • SQUARE_DECIMETERSLes unités sont les décimètres carrés.
  • SQUARE_METERSLes unités sont les mètres carrés.
  • SQUARE_KILOMETERSLes unités sont les kilomètres carrés.
String

Exemple de code

1er exemple d'utilisation de l'outil TabulateIntersection (fenêtre Python)

Utilisez la fonction 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")
2e exemple d'utilisation de l'outil TabulateIntersection (script autonome)

Ce script encapsule la fonction 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 TabulateIntersection
try:
    arcpy.TabulateIntersection_analysis(zoneFC, zoneFld, classFC, outTab, 
                                        classFld, sum_Fields, xy_tol, outUnits)
except:
    arcpy.AddMessage("Tabulate Intersection Failed.")

AddMsgAndPrint(arcpy.GetMessages(), 0)

Informations de licence

  • Basic: Non
  • Standard: Non
  • Advanced: Oui

Rubriques connexes