Polygones vers lignes (Gestion des données)

Synthèse

Crée une classe d’entités linéaires convertie à partir de limites de polygone. Vous pouvez définir les paramètres d’outil afin que les segments partagés et leurs ID d’entité surfacique voisins soient analysés. Vous pouvez également définir les paramètres d’outils afin qu’une entité linéaire délimitée soit créée pour chaque polygone en entrée.

Illustration

Illustration de l’outil Polygone vers ligne

Utilisation

  • Si le paramètre Identifier et enregistrer les informations de voisinage du polygone est coché, la relation de voisinage du polygone est analysée. Les limites sont converties en lignes en tenant compte des segments de croisement ou des segments partagés. Les champs suivants sont ajoutés à la sortie :

    • LEFT_FID : ID d’entité du polygone en entrée à gauche de la ligne en sortie.
    • RIGHT_FID : ID d’entité du polygone en entrée à droite de la ligne en sortie.
    Les attributs des entités en entrée ne sont pas conservés dans la sortie.

    Les scénarios suivants décrivent la procédure et la sortie plus en détail :

    • Dans une géométrie de polygone, la limite externe est toujours stockée dans le sens des aiguilles d’une montre. Si le polygone a un trou, la limite du trou (ou intérieure) est toujours stockée dans le sens inverse des aiguilles d’une montre. Par conséquent, dans le cas d’un polygone sans voisin du côté gauche (à l’extérieur) de sa limite externe et du côté gauche (à l’intérieur) de la limite du trou, les lignes résultantes présenteront la valeur -1 pour le champ LEFT_FID et l’ID d’entité surfacique comme valeur pour le champ RIGHT_FID.
    • Si un polygone contient un autre polygone, une ligne en sortie dans le sens horaire est générée afin de représenter la limite partagée. Sa valeur pour le champ LEFT_FID sera l’ID d’entité surfacique externe et sa valeur pour le champ RIGHT_FID sera l’ID d’entité surfacique interne.
    • Si deux polygones partagent une portion de leurs limites, une ligne en sortie est générée afin de représenter le segment partagé. Le sens de la ligne est arbitraire et les valeurs des champs LEFT_FID et RIGHT_FID sont en conséquence l’ID d’entité surfacique de gauche ou de droite.
    • Si un polygone se superpose à un autre polygone, deux lignes en sortie sont générées afin de représenter chaque limite de croisement deux fois. La première ligne représente la limite externe de l’un des polygones superposés. Sa valeur pour le champ LEFT_FID est l’ID d’entité du polygone qu’elle croise et sa valeur pour le champ RIGHT_FID est son propre ID d’entité surfacique. La deuxième ligne est dirigée dans le sens opposé et fractionne l’autre polygone. Ses valeurs pour les champs LEFT_FID et RIGHT_FID sont identiques à l’autre l’ID d’entité surfacique.
    • Les entités multi-parties en entrée ne sont pas gérées ; les lignes en sortie seront toutes en une seule partie.

    Pour les entités en entrée qui sont des courbes paramétriques (vraies), les lignes en sortie restent des courbes vraies, même si elles sont fractionnées.

    Ce paramètre utilise un processus de tuilage pour la gestion des jeux de données très volumineux afin d’améliorer les performances et l’évolutivité.

  • Si le paramètre Identifier et enregistrer les informations de voisinage du polygone est coché, chaque polygone en entrée est converti en entité linéaire délimitée. Les polygones multi-parties sont convertis en ligne multi-partie.

    Un champ ORIG_FID est ajouté à la sortie avec l’ID d’entité de chaque ligne en entrée. Les attributs des entités en entrée sont conservés dans la sortie.

Paramètres

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

Entités surfaciques en entrée.

Feature Layer
Classe d’entités en sortie

Classe d’entités linéaires en sortie.

Feature Class
Identifier et enregistrer les informations de voisinage du polygone
(Facultatif)

Indique si les relations de voisinage du polygone seront identifiées et enregistrées dans la sortie.

  • Activé : les relations de voisinage du polygone seront identifiées et enregistrées dans la sortie. Si différents segments d’un polygone partagent une limite avec d’autres polygones, la limite est fractionnée de sorte que chaque segment partagé de façon unique devienne une ligne, et les deux ID d’entité surfacique voisins sont enregistrés dans la sortie. Il s’agit de l’option par défaut.
  • Désactivé : les relations de voisinage du polygone seront ignorées ; chaque limite de polygone deviendra une entité linéaire dont l’ID d’entité surfacique original sera enregistré dans la sortie.

Boolean

arcpy.management.PolygonToLine(in_features, out_feature_class, {neighbor_option})
NomExplicationType de données
in_features

Entités surfaciques en entrée.

Feature Layer
out_feature_class

Classe d’entités linéaires en sortie.

Feature Class
neighbor_option
(Facultatif)

Indique si les relations de voisinage du polygone seront identifiées et enregistrées dans la sortie.

  • IDENTIFY_NEIGHBORSLes relations de voisinage du polygone seront identifiées et enregistrées dans la sortie. Si différents segments d’un polygone partagent une limite avec d’autres polygones, la limite est fractionnée de sorte que chaque segment partagé de façon unique devienne une ligne, et les deux ID d’entité surfacique voisins sont enregistrés dans la sortie. Il s’agit de l’option par défaut.
  • IGNORE_NEIGHBORSLes relations de voisinage du polygone seront ignorées ; chaque limite de polygone deviendra une entité linéaire dont l’ID d’entité surfacique original sera enregistré dans la sortie.
Boolean

Exemple de code

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

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.PolygonToLine("Habitat_Analysis.gdb/vegtype", 
                               "C:/output/Output.gdb/vegtype_lines",
                               "IGNORE_NEIGHBORS")
Exemple 2 d’utilisation de la fonction PolygonToLine (script autonome)

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

# Name: PolygonToLine_Example2.py
# Description: Use the PolygonToLine function to convert polygons to lines,
#              and report how many shared or overlapping boundary lines
#              were found.

# Import system modules 
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data/landcovers.gdb"
 
# Create variables for the input and output feature classes
inFeatureClass = "bldgs"
outFeatureClass = "bldgs_lines"
 
# Run PolygonToLine to convert polygons to lines using default neighbor_option
arcpy.management.PolygonToLine(inFeatureClass, outFeatureClass)

# Select lines that have LEFT_FID values greater than -1
arcpy.management.MakeFeatureLayer(outFeatureClass, "selection_lyr", 
                                  "\"LEFT_FID\" > -1")
result = arcpy.management.GetCount("selection_lyr")

if result[0] == "0":
    print("No overlapping or shared boundary lines were found.")
else:
    print(f"{result[0]} overlapping or shared boundary lines were found.")

Informations de licence

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

Rubriques connexes