Résumé
Ajoute des sommets le long d’entités linéaires ou surfaciques. Remplace également les segments de courbe (Bézier, arcs circulaires et arcs elliptiques) par des segments de ligne.
Illustration
Utilisation
Les segments de ligne droite sont densifiés en fonction du paramètre Distance. Les segments de courbe sont simplifiés par densification en fonction des paramètres Distance, Maximum Deflection Angle (Angle de déflexion maximal) ou Maximum Offset Deviation (Écart de décalage maximal).
La densification est réalisée segment par segment.
Une seule méthode de densification peut être sélectionnée pour chaque exécution de l’outil Densifier.
La référence spatiale des données est primordiale pour le résultat généré par cet outil. Densifiez les données dans un système de coordonnées approprié afin de conserver la forme correcte des entités.
Pour chaque sommet de l’entité d’origine, y compris les points de début et de fin, existe un sommet coïncident dans l’entité résultante.
Maximum Vertex Count (Nombre maximum de sommets) contrôle le nombre maximal de sommets dans chaque segment en sortie densifié. Si une opération de densification nécessite une valeur supérieure, les segments sont ajustés pour faire en sorte de ne pas dépasser ce nombre de sommets (+/- 1). En cas de saisie d’une valeur non valide (0 ou moins), aucune limite n’est appliquée aux segments linéaires et l’outil est défini par défaut sur 12 000 pour les segments de courbe.
Lorsque vous configurez Maximum Vertex Count (Nombre maximum de sommets), la valeur définie est utilisée pour le nombre maximal de sommets à la fois pour les segments linéaires et de courbe.
Remarque :
Plus la valeur utilisée est importante et plus une entité risque de devenir très grande. Les entités de trop grande taille peuvent avoir un impact négatif sur les performances. Si une valeur extrêmement faible est utilisée, l’entité en sortie peut être dégénérée, ce qui entraîne une géométrie nulle. Les valeurs extrêmement faibles peuvent également entraîner la création d’entités qui renvoient des résultats inattendus dans les analyses ultérieures.Lors de la densification en fonction du paramètre Maximum Offset Deviation (Écart de décalage maximal), si la géométrie en entrée contient des arcs circulaires, une limite supérieure de décalage est appliquée afin de limiter l’angle entre deux segments de ligne consécutifs en sortie à 10 degrés au maximum. Cet angle peut être dépassé en cas de densification en fonction du paramètre Maximum Deflection Angle (Angle de déflexion maximal).
Attention :
Cet outil modifie les données en entrée. Reportez-vous à la rubrique Outils qui ne génèrent pas de jeux de données en sortie pour obtenir plus d’informations, ainsi que des stratégies pour éviter les modifications de données indésirables.
Syntaxe
Densify(in_features, {densification_method}, {distance}, {max_deviation}, {max_angle}, {max_vertex_per_segment})
Paramètre | Explication | Type de données |
in_features | Classe d'entités linéaires ou surfaciques à densifier. | Feature Layer |
densification_method (Facultatif) | Indique la méthode de densification des entités à utiliser.
| String |
distance (Facultatif) | Distance linéaire maximale entre les sommets. Cette distance est toujours appliquée aux segments de ligne et pour la simplification des courbes. La valeur par défaut est une fonction de la tolérance X,Y des données. | Linear Unit |
max_deviation (Facultatif) | Distance maximale du segment en sortie par rapport à l’original. Ce paramètre concerne uniquement les courbes. La valeur par défaut est une fonction de la tolérance X,Y des données. | Linear Unit |
max_angle (Facultatif) | Angle maximal entre la géométrie en sortie et la géométrie en entrée. La plage correcte est comprise 0 et 90. La valeur par défaut est 10. Ce paramètre concerne uniquement les courbes. | Double |
max_vertex_per_segment (Facultatif) | Nombre maximal de sommets autorisé par segment. En cas de saisie d’une valeur incorrecte (0 ou moins) ou si aucune valeur n’est saisie, aucune limite de nombre de sommets n’est appliquée aux segments linéaires et la valeur par défaut 12 000 est appliquée aux segments de courbe. | Long |
Sortie dérivée
Nom | Explication | Type de données |
out_feature_class | Entités en entrée densifiées. | Classe d’entités |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction Densify en mode immédiat.
import arcpy
arcpy.Densify_edit("C:/data.gdb/lines", "ANGLE", "", "", "0.75")
Le script autonome ci-dessous présente la fonction Densify dans le cadre d’un processus qui utilise également l’outil de mise à jour Snap.
# Name: Snap.py
# Description: Snap climate regions boundary to vegetation layer
# boundary to ensure common boundary is coincident
# import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Make backup copy of climate regions feature class,
# since modification with the Editing tools below is permanent.
climateBackup = "backups/climate.shp"
arcpy.CopyFeatures_management('climate.shp', climateBackup)
# Densify climate regions feature class to make sure there are enough vertices
# to match detail of vegetation layer when layers are snapped.
arcpy.Densify_edit('climate.shp', "DISTANCE", "10 Feet")
# Snap climate regions feature class to vegetation layer vertices and edge.
# First, snap climate region vertices to the nearest vegetation vertex within
# 30 Feet. Second, snap climate region vertices to the nearest vegetation edge
# within 20 Feet.
snapEnv1 = ["Habitat_Analysis.gdb/vegtype", "VERTEX", "30 Feet"]
snapEnv2 = ["Habitat_Analysis.gdb/vegtype", "EDGE", "20 Feet"]
arcpy.Snap_edit('climate.shp', [snapEnv1, snapEnv2])
Environnements
Informations de licence
- Basic: Non
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?