Résumé
Simplifie les limites ou l'emprise de polygones représentant un bâtiment tout en conservant leur taille et leur forme principales.
Illustration
Utilisation
Le paramètre Minimum Area (Superficie minimale) s’applique uniquement aux bâtiments simplifiés. Tous les bâtiments dont la surface est inférieure à la valeur minimale au terme du processus de simplification seront supprimés de la classe d'entités en sortie.
Utilisez le paramètre Input barrier layers (Couches de barrière en entrée) pour identifier les entités qui ne doivent pas être traversées par des bâtiments simplifiés. Les entités interruptions peuvent être des points, des lignes ou des polygones.
Utilisez le paramètre Keep collapsed points (Conserver les points éliminés) (collapsed_point_option dans Python) pour créer une classe d’entités ponctuelles en sortie afin d’enregistrer les points qui représentent tous les bâtiments ayant été supprimés car plus petits que la surface minimum. La sortie du point est dérivée ; elle utilisera le même nom et le même emplacement que le paramètre Output Feature Class (Classe d’entités en sortie) (out_feature_class dans Python), mais avec un suffixe _Pnt. La classe d'entités surfaciques en sortie contient tous les champs présents dans la classe d'entités en entrée. La classe d'entités points en sortie ne contient aucun de ces champs.
La classe d’entités en sortie comporte un champ BLD_STATUS qui indique l’état de la simplification :
- 1 : un seul bâtiment a été simplifié,
- 2 : un seul bâtiment a été simplifié à son rectangle d’emprise minimale,
- 3 : un bâtiment plus petit que la tolérance au carré a été simplifié à son rectangle d’emprise minimale,
- 5 : un bâtiment qui n’a pas été simplifié.
Héritage :
Dans les versions antérieures à ArcGIS 10, BLD_STATUS = 4 indiquait des bâtiments simplifiés ou partiellement simplifiés reliés par des lignes droites. BLD_STATUS = 4 n’est plus utilisé.
Attention :
Si un champ BLD_STATUS existe déjà dans la classe d’entités en entrée, il est présent dans la classe d’entités en sortie avec de nouvelles valeurs. Les valeurs existantes seront écrasées. Pour préserver les valeurs existantes, créez un champ dans la classe d’entités en entrée et copiez les valeurs existantes du champ BLD_STATUS dans ce nouveau champ.
Si le paramètre Check for spatial conflicts (Détecter les conflits spatiaux) est utilisé, l’outil détecte des conflits spatiaux et ajoute un champ SimBldFlag à la sortie pour stocker les drapeaux en conflit. Une valeur de 0 signifie aucun conflit ; une valeur de 1 signifie conflit.
Attention :
Si un champ SimBldFlag existe déjà dans la classe d’entités en entrée, il est présent dans la classe d’entités en sortie avec de nouvelles valeurs. Les valeurs existantes seront remplacées même si ce paramètre n'est pas sélectionné (conflict_option = "NO_CHECK" dans Python). Lorsque les conflits spatiaux ne sont pas vérifiés, ce champ existant est remplacé par des valeurs NULL. Pour préserver les valeurs existantes, créez un champ dans la classe d’entités en entrée et copiez les valeurs existantes du champ SimBldFlag dans ce nouveau champ.
Cet outil ne peut pas être exécuté dans une session de mise à jour.
Les valeurs z en entrée peuvent être conservées si elles sont spécifiées dans les paramètres d’environnement. Lorsque des sommets en sortie coïncident avec des sommets d’entités en entrée, les valeurs z seront transférées vers les sommets en sortie. Dans le cas contraire, les valeurs z seront dérivées des valeurs z existantes ou par l’intermédiaire d’une interpolation.
Il se peut qu'une géométrie non valide (qui s'entrecoupe) soit créée pendant le processus de simplification. Celle-ci sera réparée, mais non améliorée. Par exemple, si un polygone s'entrecoupe, il sera transformé en polygone multi-parties, mais apparaîtra toujours comme s'entrecoupant.
Les domaines et sous-types sont copiés vers la sortie, même si l’environnement Transfer Geodatabase Field Properties (Transférer les propriétés de champ de géodatabase) n’est pas sélectionné.
Le traitement de jeux de données volumineux peut dépasser les limites de la mémoire. Dans ces 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 résultante sera transparente et cohérente aux tronçons de partition. Reportez-vous à Généralisation de jeux de données volumineux à l'aide de partitions pour en savoir plus.
Syntaxe
arcpy.cartography.SimplifyBuilding(in_features, out_feature_class, simplification_tolerance, {minimum_area}, {conflict_option}, {in_barriers}, {collapsed_point_option})
Paramètre | Explication | Type de données |
in_features | Polygones de bâtiments à simplifier. | Feature Layer |
out_feature_class | Classe d'entités en sortie à créer. | Feature Class |
simplification_tolerance | Tolérance applicable à la simplification des bâtiments. Une tolérance 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) | Surface minimale pour qu’un bâtiment simplifié soit conservé, en unités d’entité. La valeur par défaut est zéro, qui conserve tous les bâtiments. Vous pouvez spécifier une unité préférée. Par défaut, l'unité de l'entité est spécifiée. | Areal Unit |
conflict_option (Facultatif) | Spécifie s’il convient de vérifier l’existence de conflits, c’est-à-dire de voir si certains bâtiments se touchent ou se superposent. Un champ SimBldFlag est ajouté à la sortie pour stocker les drapeaux en conflit. Une valeur de 0 signifie aucun conflit ; une valeur de 1 signifie conflit.
| Boolean |
in_barriers [in_barriers,...] (Facultatif) | Les couches en entrée contenant les entités jouant le rôle de barrières pour simplification. Les bâtiments simplifiés obtenus ne toucheront pas ni ne traverseront les entités interruptions. Par exemple, lors de la simplification des bâtiments, les superficies de bâtiments simplifiés résultantes ne traversent pas les entités de route définies comme limites. | Feature Layer |
collapsed_point_option (Facultatif) | Indique si une classe d’entités ponctuelles en sortie sera créée pour enregistrer les centres des bâtiments supprimés car ils sont plus petits que le paramètre minimum_area. La sortie du point est dérivée ; elle portera le même nom que la classe d’entités en sortie que vous avez spécifiée via le paramètre out_feature_class, mais avec un suffixe _Pnt, et se situera dans le même dossier.
| Boolean |
Sortie dérivée
Nom | Explication | Type de données |
out_point_feature_class | Classe d’entités ponctuelles en sortie qui enregistrera les points représentant les bâtiments supprimés car ils sont plus petits que le paramètre Minimum Area (Superficie minimale) (minimum_area dans Python). Ce paramètre est utilisé uniquement lorsque le paramètre Keep collapsed points (Conserver les points éliminés) est activé (collapsed_point_option = "KEEP_COLLAPSED_POINTS" dans Python). | Classe d’entités |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction SimplifyBuilding en mode immédiat.
import arcpy
import arcpy.cartography as CA
arcpy.env.workspace = "C:/data"
CA.SimplifyBuilding("buildings.shp", "C:/output/output.gdb/simplified_buildings", 10)
Le script autonome ci-dessous illustre l'utilisation de la fonction SimplifyBuilding.
# Name: SimplifyBuilding_Example2.py
# Description: Aggregate building features and then simplify them
# Import system modules
import arcpy
import arcpy.cartography as CA
# Set environment settings
arcpy.env.workspace = "C:/data/Portland.gdb/Buildings"
# Set local variables
inBuildingFeatures = "houses"
inBarrierFeatures = "roads"
aggregatedFeatures = "C:/data/PortlandOutput.gdb/residential_areas"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/residential_simplified"
# Aggregate house polygons.
CA.AggregatePolygons(inBuildingFeatures, aggregatedFeatures, 10, 100, 100, "ORTHOGONAL")
# Simplify residential building polygons.
CA.SimplifyBuilding(aggregatedFeatures, simplifiedFeatures, 10, 100, "CHECK_CONFLICTS", inBarrierFeatures, "KEEP_COLLAPSED_POINTS")
Environnements
Informations de licence
- Basic: Non
- Standard: Non
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?