Lisser des lignes (Cartographie)

Synthèse

Lisse des angles vifs en lignes afin d'améliorer la qualité esthétique ou cartographique.

En savoir plus sur le fonctionnement des outils Lisser les lignes et Lisser un polygone

Illustration

Illustration de l’utilisation de l’outil Lisser les lignes
Il est possible de lisser les angles aigus d’une ligne à l’aide de la méthode PAEK ou de la méthode d’interpolation de Bézier.

Utilisation

  • Le paramètre Algorithme de lissage possède les options suivantes :

    • PAEK (Polynomial Approximation with Exponential Kernel, approximation polynomiale avec noyau exponentiel) : lisse les lignes selon une tolérance de lissage. Chaque ligne lissée peut avoir plus de sommets que sa ligne source. Le paramètre Tolérance de lissage contrôle la longueur d'un chemin « mobile » qui sert à calculer les nouveaux sommets. Plus la longueur est courte, plus le niveau de détail est préservé et plus le temps de traitement est long.
    • Interpolation de Bézier : lisse les lignes sans faire appel à une tolérance en créant des courbes de Bézier évaluées qui correspondent aux lignes en entrée.
  • Utilisez le paramètre Couches d’interruptions en entrée pour identifier les entités qui ne doivent pas être traversées par des lignes lissées. Les entités interruptions peuvent être des points, des lignes ou des polygones.

  • Le traitement de jeux de données volumineux peut dépasser les limites de mémoire. Dans ce cas, envisagez de traiter les données en entrée par partition en identifiant une classe d’entités surfaciques pertinente dans l’environnement Partitions cartographiques. Les portions de 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.

    Attention :

    L’environnement Partitions cartographiques est ignoré lorsque le paramètre Traitement des erreurs topologiques est défini sur l’option Ne pas détecter les erreurs topologiques ou Signaler les erreurs topologiques.

  • Les domaines et sous-types sont copiés dans la sortie, même si l’environnement Transfert des domaines de champ, des sous-types et des règles attributaires n’est pas sélectionné.

  • La classe d’entités linéaires en sortie sera correcte d’un point de vue topologique. Toute erreur topologique dans les données en entrée sera signalée dans la classe d’entités linéaires en sortie. La classe d’entités en sortie inclut les champs supplémentaires suivants :

    • InLine_FID— Les ID des entités en entrée.
    • SmoLnFlag— Les erreurs topologiques de l’entrée. La valeur 1 indique qu’il existe une erreur topologique. La valeur 0 indique qu’il n’existe pas d’erreur topologique.

    Héritage :

    Avant la version ArcGIS Pro 2.2 de cet outil, le paramètre Conserver l’extrémité des anneaux était utilisé pour indiquer si l’extrémité d’un anneau de polygone isolé obtenu devait être conservé. Ce paramètre est encore inclus dans la syntaxe de l’outil pour la compatibilité des scripts et des modèles, mais est désormais ignoré et masqué dans la boîte de dialogue de l’outil.

Paramètres

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

Entités linéaires à lisser.

Feature Layer
Classe d’entités en sortie

Classe d’entités en sortie qui sera créée.

Feature Class
Algorithme de lissage

Spécifie l’algorithme de lissage à utiliser.

  • PAEK (Polynomial Approximation with Exponential Kernel, approximation polynomiale avec noyau exponentiel)Calcule une ligne lissée qui ne passe pas par les sommets de la ligne en entrée. PAEK est l’acronyme de Polynomial Approximation with Exponential Kernel (approximation polynomiale avec noyau exponentiel). Il s’agit de l’option par défaut.
  • Interpolation de BézierLes courbes de Bézier seront ajustées entre les sommets. Les lignes obtenues passeront par les sommets des lignes en entrée. Cet algorithme ne requiert pas de tolérance. La sortie contient des courbes de Bézier approximatives.
String
Tolérance de lissage

Tolérance de lissage qui sera utilisée par l’option PAEK (Polynomial Approximation with Exponential Kernel, approximation polynomiale avec noyau exponentiel) du paramètre Algorithme de lissage. 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. Ce paramètre n’est pas disponible lorsque l’option Interpolation de Bézier du paramètre Algorithme de lissage est utilisée.

Linear Unit
Conserver l’extrémité des lignes fermées
(Facultatif)

Il s'agit d'un ancien paramètre qui n'est plus utilisé. Il était auparavant utilisé pour indiquer si l’extrémité des lignes fermées devait être conservée. Ce paramètre est encore inclus dans la syntaxe de l'outil pour la compatibilité des scripts et des modèles, mais est désormais ignoré et masqué à partir de la boîte de dialogue de l'outil.

Spécifie si les points d’extrémité des lignes fermées seront conservés. Cette option est valide uniquement avec l'algorithme PAEK.

  • Activé : l’extrémité d’une ligne fermée sera conservée. Il s’agit de l’option par défaut.
  • Désactivé : l’extrémité d’une ligne fermée ne sera pas conservée ; elle sera lissée.
Boolean
Traitement des erreurs topologiques
(Facultatif)

Précise la manière de traiter les erreurs topologiques (qui ont pu s’introduire au cours du processus, notamment les croisements et les superpositions de lignes).

  • Ne pas détecter les erreurs topologiquesLes erreurs topologiques ne seront pas identifiées. Il s’agit de l’option par défaut.
  • Signaler les erreurs topologiquesSi des erreurs topologiques sont détectées, elles seront signalées.
  • Résoudre les erreurs topologiquesSi des erreurs topologiques sont détectées, elles seront résolues.
String
Couches de barrières en entrée
(Facultatif)

Entrées contenant les entités qui jouent le rôle d’interruptions pour le lissage. Les lignes lissées obtenues ne touchent pas ni ne traversent les entités interruptions. Par exemple, lors du lissage des isolignes, la saisie des entités de point côté comme interruptions garantit que les isolignes lissées ne sont pas lissées sur ces points. La sortie n'enfreindra pas l'altitude comme décrit par les points côtés mesurés.

Feature Layer

arcpy.cartography.SmoothLine(in_features, out_feature_class, algorithm, tolerance, {endpoint_option}, {error_option}, {in_barriers})
NomExplicationType de données
in_features

Entités linéaires à lisser.

Feature Layer
out_feature_class

Classe d’entités en sortie qui sera créée.

Feature Class
algorithm

Spécifie l’algorithme de lissage à utiliser.

  • PAEKCalcule une ligne lissée qui ne passe pas par les sommets de la ligne en entrée. PAEK est l’acronyme de Polynomial Approximation with Exponential Kernel (approximation polynomiale avec noyau exponentiel). Il s’agit de l’option par défaut.
  • BEZIER_INTERPOLATIONLes courbes de Bézier seront ajustées entre les sommets. Les lignes obtenues passeront par les sommets des lignes en entrée. Cet algorithme ne requiert pas de tolérance. La sortie contient des courbes de Bézier approximatives.
String
tolerance

Tolérance de lissage qui sera utilisée par l’option PAEK du paramètre algorithm. 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. Vous devez saisir le chiffre 0 comme emplacement réservé si vous utilisez l’option BEZIER_INTERPOLATION du paramètre algorithm.

Linear Unit
endpoint_option
(Facultatif)

Il s'agit d'un ancien paramètre qui n'est plus utilisé. Il était auparavant utilisé pour indiquer si l’extrémité des lignes fermées devait être conservée. Ce paramètre est encore inclus dans la syntaxe de l'outil pour la compatibilité des scripts et des modèles, mais est désormais ignoré et masqué à partir de la boîte de dialogue de l'outil.

Spécifie si les points d’extrémité des lignes fermées seront conservés. Cette option est valide uniquement avec l'algorithme PAEK.

  • FIXED_CLOSED_ENDPOINTL’extrémité d’une ligne fermée sera conservée. Il s’agit de l’option par défaut.
  • NO_FIXEDL’extrémité d’une ligne fermée ne sera pas conservée ; elle sera lissée.
Boolean
error_option
(Facultatif)

Précise la manière de traiter les erreurs topologiques (qui ont pu s’introduire au cours du processus, notamment les croisements et les superpositions de lignes).

  • NO_CHECKLes erreurs topologiques ne seront pas identifiées. Il s’agit de l’option par défaut.
  • FLAG_ERRORSSi des erreurs topologiques sont détectées, elles seront signalées.
  • RESOLVE_ERRORSSi des erreurs topologiques sont détectées, elles seront résolues.
String
in_barriers
[in_barriers,...]
(Facultatif)

Entrées contenant les entités qui jouent le rôle d’interruptions pour le lissage. Les lignes lissées obtenues ne touchent pas ni ne traversent les entités interruptions. Par exemple, lors du lissage des isolignes, la saisie des entités de point côté comme interruptions garantit que les isolignes lissées ne sont pas lissées sur ces points. La sortie n'enfreindra pas l'altitude comme décrit par les points côtés mesurés.

Feature Layer

Exemple de code

Exemple  1 d’utilisation de la fonction SmoothLine (fenêtre Python)

Le script ci-dessous pour la fenêtre Python montre comment utiliser la fonction SmoothLine en mode immédiat.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.cartography.SmoothLine("contours.shp", "C:/output/output.gdb/smoothed_contours", "PAEK", 100)
Exemple 2 d’utilisation de la fonction SmoothLine (script autonome)

Le script autonome ci-dessous illustre l’utilisation de la fonction SmoothLine.

# Name: SmoothLine_Example2.py
# Description: Simplify and then smooth coastlines

# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data/Portland.gdb/Hydrography"

# Set local variables
inCoastlineFeatures = "coastlines"
barriers = "C:/data/Portland.gdb/Structures/buildings"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/coastlines_simplified"
smoothedFeatures = "C:/data/PortlandOutput.gdb/coastlines_smoothed"

# Simplify coastlines.
arcpy.cartography.SimplifyLine(inCoastlineFeatures, simplifiedFeatures, "POINT_REMOVE", 50, 
                "RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", "CHECK", barriers)

# Smooth coastlines.
arcpy.cartography.SmoothLine(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "", 
              "FLAG_ERRORS", barriers)

Informations de licence

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

Rubriques connexes