Densifier (Mise à jour)

Synthèse

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

Illustration de l’outil Densifier
La courbe est densifiée en segments linéaires en fonction du paramètre Décalage, Distance ou Angle.

Utilisation

    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.

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

Paramètres

ÉtiquetteExplicationType de données
Entités en entrée

Classe d'entités linéaires ou surfaciques à densifier.

Feature Layer
Méthode de densification
(Facultatif)

Indique la méthode de densification des entités à utiliser.

  • DistanceLes lignes droites et les courbes sont densifiées à l’aide de la distance spécifiée. Il s’agit de l’option par défaut.
  • DécalageLes courbes sont densifiées à l’aide de l’écart de décalage maximal.
  • AngleLes courbes sont densifiées à l’aide de l’angle de déflexion maximal.
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
Ecart de décalage maximal
(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
Angle de déflexion maximal (degrés)
(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
Nombre maximum de sommets (par 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 obtenue

ÉtiquetteExplicationType de données
Entités en entrée mises à jour

Entités en entrée densifiées.

Feature Class

arcpy.management.Densify(in_features, {densification_method}, {distance}, {max_deviation}, {max_angle}, {max_vertex_per_segment})
NomExplicationType 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.

  • DISTANCELes lignes droites et les courbes sont densifiées à l’aide de la distance spécifiée. Il s’agit de l’option par défaut.
  • OFFSETLes courbes sont densifiées à l’aide de l’écart de décalage maximal.
  • ANGLELes courbes sont densifiées à l’aide de l’angle de déflexion maximal.
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 obtenue

NomExplicationType de données
out_feature_class

Entités en entrée densifiées.

Feature Class

Exemple de code

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

Le script ci-dessous pour la fenêtre Python illustre l’utilisation de la fonction Densify en mode immédiat.

import arcpy
arcpy.edit.Densify("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.management.CopyFeatures('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.edit.Densify('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.edit.Snap('climate.shp', [snapEnv1, snapEnv2])