Densifier (Mise à jour)

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

La courbe est densifiée en segments linéaires en fonction des paramètres Décalage, Distance ou Angle.
La courbe est densifiée en segments linéaires en fonction des paramètres Décalage, Distance ou Angle.

Utilisation

    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.

  • 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).

Syntaxe

Densify(in_features, {densification_method}, {distance}, {max_deviation}, {max_angle}, {max_vertex_per_segment})
ParamètreExplicationType 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.

  • DISTANCELa valeur du paramètre distance est appliquée aux courbes de la même manière que pour les lignes droites. Il s’agit de l’option par défaut.
  • OFFSETLa valeur du paramètre max_deviation est appliquée aux courbes.
  • ANGLELa valeur du paramètre max_angle est appliquée aux courbes.
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

NomExplicationType de données
out_feature_class

Entités en entrée densifiées.

Classe d’entités

Exemple de code

Exemple 1 d'utilisation de l'outil Densifier (fenêtre Python)

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")
Exemple 2 d'utilisation de l'outil Densifier (script autonome)

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])

Informations de licence

  • Basic: Non
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes