Résumé
Ajoute des sommets le longs d’entités linéaires ou surfaciques et remplace les segments de courbe (Bezier, 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 sommets sont ajoutés à un intervalle n’excédant pas la distance spécifiée. 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.
Le paramètre 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 à l’aide 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 à l’aide du paramètre Maximum Deflection Angle (Angle de déflexion maximal).
Attention :
Cet outil modifie les données en entrée. Pour plus d’informations et connaître les stratégies permettant d’empêcher les modifications de données indésirables, reportez-vous à la rubrique Outils qui modifient ou mettent à jour les données en entrée.
Syntaxe
arcpy.edit.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 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. Les nouveaux sommets ne peuvent pas être insérés à cet intervalle exact le long de la ligne mais seront plutôt insérés dans cette distance depuis le sommet précédent. Il n’est pas possible de s’assurer qu’un sommet est ajouté exactement à l’intervalle spécifié le long du segment de ligne. | 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 ?