Agréger des polygones (Cartographie)
Récapitulatif
Combine des polygones entre eux à une distance spécifiée afin de former de nouveaux polygones.
Illustration
Utilisation
-
Cet outil est destiné à une agrégation et à une réduction d'échelle modérées, lorsque les entités en entrée ne peuvent plus être représentées individuellement en raison de l'espace limité de la carte ou de la résolution requise pour les données. L'agrégation ne se produit qu'à l'endroit où deux limites de polygone se trouvent à une distance d'agrégation définie l'une de l'autre. Aucune auto-agrégation n'a lieu, ce qui signifie qu'aucune agrégation n'a lieu au sein d'une entité surfacique en entrée le long de sa propre limite, de même qu'aucune agrégation n'a lieu entre des parties d'une entité surfacique multi-parties.
L’option orthogonale construit des entités en sorties de forme orthogonale. Cette option convient mieux aux entités en entrée possédant une majorité de tronçons orthogonaux. Dans certains cas, l’agrégation sera moins importante afin de tenir compte de ce fait. Par exemple, deux bâtiments carrés situés diagonalement l’un par rapport à l’autre au sein de la distance d’agrégation peut ne pas être agrégé car aucune connexion directe ne peut se faire en conservant l’orthogonalité. L’option non orthogonale produit des résultats de forme plus organique.
-
La classe d'entités en sortie ne contiendra pas d'attributs géographiques des entités en entrée. Une table de relations un vers plusieurs portant le nom de output_feature_class_Tbl sera créée, ce qui permettra d'établir un lien entre les polygones agrégés et leurs polygones source. Cette table contiendra deux champs, OUTPUT_FID et INPUT_FID, stockant respectivement les identifiants des entités agrégées et les identifiants des entités source correspondantes. Ce lien peut devenir incorrect lorsque l'une des entités en entrée ou en sortie est modifiée. Avec ce lien, vous pouvez déduire les attributs requis pour les entités en sortie de leurs entités source à l'aide des outils de géotraitement appropriés.
-
Si les entités en entrée contiennent des valeurs Z, ces dernières peuvent être conservées si elles sont spécifiées dans les paramètres d'environnement. Lorsque les sommets en sortie ne sont pas modifiés, les valeurs Z en entrée seront transférées aux sommets en sortie ; sinon, une valeur Z sera déduite pour les nouveaux sommets, d'après les valeurs Z existantes ou par interpolation.
Syntaxe
Paramètre | Explication | Type de données |
in_features |
Entités surfaciques à agréger. | Feature Layer |
out_feature_class |
Classe d'entités en sortie à créer. | Feature Class |
aggregation_distance |
Distance à respecter entre les limites des polygones pour que l'agrégation puisse avoir lieu. Une distance supérieure à zéro doit être spécifiée. Vous pouvez choisir une unité préférée. Par défaut, l'unité de l'entité est spécifiée. | Linear unit |
minimum_area (Facultatif) |
Superficie minimale pour qu'un polygone agrégé soit conservé. La valeur par défaut est de zéro, auquel cas tous les polygones sont conservés. Vous pouvez spécifier une unité préférée. Par défaut, l'unité de l'entité est spécifiée. | Areal unit |
minimum_hole_size (Facultatif) |
Taille minimale d'un trou polygonal à conserver. La valeur par défaut est de zéro, auquel cas tous les trous polygonaux sont conservés. Vous pouvez spécifier une unité préférée. Par défaut, l'unité de l'entité est spécifiée. | Areal Unit |
orthogonality_option (Facultatif) |
Précise la caractéristique des entités en sortie lors de la création des limites agrégées.
| Boolean |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil AggregatePolygons en mode immédiat.
import arcpy from arcpy import env import arcpy.cartography as CA env.workspace = "C:/data" CA.AggregatePolygons("buildings.shp", "C:/output/output.gdb/aggregated_buildings", 10)
Le script autonome suivant montre comment utiliser la fonction AggregatePolygons.
# Name: AggregatePolygons_Example2.py # Description: Aggregate grass features and then transfer attributes # Import system modules import arcpy from arcpy import env import arcpy.cartography as CA import arcpy.management as DM import arcpy.analysis as AN # Set environment settings env.workspace = "C:/data/Portland.gdb/Vegetation" # Set local variables inGrassFeatures = "grass" aggregatedFeatures = "C:/data/PortlandOutput.gdb/grassland" aggregatedTable = "C:/data/PortlandOutput.gdb/grassland_Tbl" frequencyTable = "C:/data/PortlandOutput.gdb/frequency_Tbl" # Aggregate grass polygons. CA.AggregatePolygons(inGrassFeatures, aggregatedFeatures, 50, 300, 300, "NON_ORTHOGONAL") # Join the aggregatedTable with input and # transfer the COUNT field to aggregatedTable. DM.JoinField(aggregatedTable, "INPUT_FID", inGrassFeatures, "OBJECTID", "COUNT") # Use Frequency on aggregatedTable and # obtain sum for COUNT. AN.Frequency(aggregatedTable, frequencyTable, "OUTPUT_FID", "COUNT") # Join the aggregatedFeatures with frequencyTable # and transfer the COUNT field to aggregatedFeatures. DM.JoinField(aggregatedFeatures, "OBJECTID", frequencyTable, "OUTPUT_FID", "COUNT")