Résumé
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 se produit uniquement lorsque 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 permet de créer des entités en sortie de forme orthogonale. Cette option est particulièrement adaptée à une utilisation avec des entités en entrée possédant des tronçons à prédominance orthogonale. Dans certains cas, l’agrégation est moindre pour prendre cela en compte. Par exemple, deux bâtiments carrés situés en diagonale l'un par rapport à l'autre dans la distance d'agrégation ne peut pas être agrégés car aucune connexion évidente ne peut être établie en conservant le caractère orthogonal. L'option non orthogonale produit des résultats de forme plus organique.
Utilisez les entités interruptions pour empêcher l'agrégation de survenir à travers des limites. Les exemples permettent également d'empêcher l'occupation du sol d'effectuer une agrégation à travers des rivières ou d'agréger des bâtiments situés de part et d'autre d'une même rue. Les interruptions peuvent être des lignes ou des polygones, et plusieurs classes d'entités interruptions peuvent être utilisées simultanément.
Lorsque le paramètre Aggregate Field (Champ d’agrégation) est défini, le champ attributaire et sa valeur sont copiés dans la classe d’entités en sortie. Le type de données du champ d’agrégation doit être text, date, ou integer. Si le champ d’agrégation dispose de domaines et de sous-types, ceux-ci sont copiés dans la classe d’entités en sortie lorsque la case Transfer Geodatabase Field Properties (Transférer les propriétés de champ de géodatabase) est cochée.
La classe d'entités en sortie ne contiendra pas d'attributs géographiques des entités en entrée. Il est possible de créer en option une table de relations un vers plusieurs pour relier les polygones agrégés à leurs polygones source. Ce lien peut devenir incorrect lorsque l'une des entités en entrée ou en sortie est modifiée.
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. Si 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.
Le traitement d'un jeu de données en entrée volumineux peut dépasser les limites de la mémoire. Dans ce cas, envisagez de traiter les données en entrée par partition en identifiant une classe d'entités surfaciques pertinente dans le paramètre d'environnement Partitions cartographiques. Les portions des données, définies par les limites des partitions, sont traitées séquentiellement. La classe d’entités en sortie résultante est cohérente avec les tronçons de partition, mais les entités en sortie traversant des partitions sont fractionnées à la ligne de partition. Un champ IS_SPLIT dans la classe d’entités en sortie porte la valeur 1 dans cette instance.
Syntaxe
arcpy.cartography.AggregatePolygons(in_features, out_feature_class, aggregation_distance, {minimum_area}, {minimum_hole_size}, {orthogonality_option}, {barrier_features}, {out_table}, {aggregate_field})
Paramètre | Explication | Type de données |
in_features | Entités surfaciques à agréger. Si cette couche référence une représentation et des débrayages de forme présents sur les entités en entrée, les formes remplacées, et non les formes de l'entité, sont prises en compte dans le traitement d'agrégation. | Feature Layer |
out_feature_class | Classe d'entités en sortie à créer. | Feature Class |
aggregation_distance | Distance à satisfaire entre les limites des polygones pour que l’agrégation puisse avoir lieu. La distance doit être indiquée et elle doit être supérieure à zéro. 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 à conserver lors de la création des limites agrégées.
| Boolean |
barrier_features [barrier_features,...] (Facultatif) | Couches contenant les entités linéaires ou surfaciques qui constituent des interruptions d'agrégation pour les entités en entrée. Les entités ne seront pas agrégées à travers des entités interruptions. Les entités interruptions en conflit géométrique avec les entités en entrée sont ignorées. | Feature Layer |
out_table (Facultatif) | Table de relations un vers plusieurs reliant les polygones agrégés à leurs entités surfaciques source. Cette table contient 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. Cette table permet de dériver les attributs nécessaires pour les entités en sortie de leurs entités source. Le nom par défaut de cette table est le nom de la classe d'entités en sortie, auquel on ajoute _tbl. Le chemin d'accès par défaut est le même que celui de la classe d'entités en sortie. Aucune table n'est créée lorsque ce paramètre est laissé vide. | Table |
aggregate_field (Facultatif) | Champ contenant les attributs pour l’agrégation. Les entités doivent avoir la même valeur attributaire pour être prises en compte pour l’agrégation. Par exemple, utilisez un champ de classification de bâtiment comme champ d’agrégation pour éviter que les bâtiments commerciaux soient agrégés avec des bâtiments résidentiels. | Field |
Exemple de code
Le script de fenêtre Python suivant montre comment utiliser l'outil AggregatePolygons en mode immédiat.
Cet exemple utilise un champ de classification pour l’agrégation des entités ayant les mêmes valeurs de classification. Un paramètre d’environnement est utilisé pour transférer les propriétés de champ de géodatabase telles que le domaine et les sous-types du champ d’agrégation vers la classe d’entités en sortie.
import arcpy
arcpy.env.cartographicPartitions = "C:/data/county.gdb/zipcodepoly"
arcpy.env.transferGDBAttributeProperties = True
buildings = "C:/data/county.gdb/bldgspoly"
roads = "C:/data/county.gdb/roadnetwork"
output = "C:/data/county.gdb/BldgAggBarrierPartition"
output_table = "C:/data/county.gdb/BldgAggBarrierPartition_Tbl"
aggregate_field = "Classification"
arcpy.AggregatePolygons_cartography(buildings, output, "20 Meters",
"50 SquareMeters", "0 SquareMeters",
"ORTHOGONAL", roads, output_table,
aggregate_field)
Le script autonome ci-dessous illustre l'utilisation de la fonction AggregatePolygons.
# Name: AggregatePolygons_Example2.py
# Description: Aggregate grass features and then transfer attributes
# Import system modules
import arcpy
import arcpy.cartography as CA
import arcpy.management as DM
import arcpy.analysis as AN
# Set environment settings
arcpy.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", "", aggregatedTable)
# 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")
Environnements
Informations de licence
- Basic: Non
- Standard: Non
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?