Polígono a línea (Administración de datos)

Resumen

Crea una clase de entidad de línea a partir de los límites de las entidades de polígono, con una opción para tener en cuenta los polígonos adyacentes.

Ilustración

Ilustración de la herramienta De polígono a línea

Uso

  • Si se activa el parámetro Identificar y guardar la información de adyacencia, se analiza la relación de adyacencia de polígonos. Los límites se convierten en líneas y se tienen en cuenta los segmentos compartidos y cruces. Los campos siguientes se agregarán a la salida:

    • LEFT_FID—El Id. de entidad del polígono de entrada a la izquierda de la línea de salida.
    • RIGHT_FID—El Id. de entidad del polígono de entrada a la derecha de la línea de salida.
    Los atributos de las entidades de entrada no se mantendrán en la salida.

    En las siguientes situaciones se describe con más detalle el proceso y la salida:

    • En una geometría de polígono, el límite exterior siempre se almacena en el sentido de las agujas del reloj. Si el polígono tiene un orificio, el límite del orificio (o límite interior) siempre se almacena en el sentido contrario a las agujas del reloj. Por tanto, para un polígono sin ningún vecino a la izquierda (fuera) de este límite exterior ni a la izquierda (dentro) del límite del orificio, las líneas resultantes tendrán el valor -1 como valor del campo LEFT_FID y el Id. de entidad poligonal como valor del campo RIGHT_FID.
    • Cuando un polígono contiene otro polígono, se genera una línea de salida en el sentido de las agujas del reloj para representar el límite compartido; el valor del campo LEFT_FID será el Id. de la entidad poligonal exterior y el valor del campo RIGHT_FID será el Id. de la entidad poligonal interior.
    • Cuando dos polígonos comparten una parte de sus límites, se genera una línea de salida que representa el segmento compartido. El sentido de la línea será arbitrario y los valores de los campos LEFT_FID y RIGHT_FID serán los Id. de las entidades poligonales izquierda o derecha, según corresponda.
    • Cuando un polígono se superpone con otro polígono, se generan dos líneas de salida que representan dos veces a cada límite que se cruza. La primera línea representa el límite exterior de uno de los polígonos superpuestos; el valor del campo LEFT_FID será el Id. de entidad del polígono que cruza y el valor del campo RIGHT_FID será su propio Id. de entidad poligonal. La segunda línea estará en el sentido opuesto, dividiendo así el otro polígono; por tanto, sus valores de campo LEFT_FID y RIGHT_FID serán los mismos que los del otro Id. de entidad poligonal.
    • Las entidades multiparte de entrada no se mantienen; las líneas de salida serán todas de parte simple.

    En el caso de las entidades de entrada que son curvas paramétricas (verdaderas), las líneas de salida seguirán siendo curvas verdaderas incluso si se dividen.

    Este parámetro utiliza un proceso de ordenamiento en teselas para controlar datasets muy grandes, a fin de mejorar el rendimiento y la escalabilidad.

  • Cuando se activa el parámetro Identificar y guardar la información de adyacencia, los polígonos de entrada se convertirán en una entidad de línea cerrada. Los polígonos multiparte se convertirán en una línea multiparte.

    Se agregará un campo ORIG_FID a la salida con el Id. de entidad de cada línea de entrada. Los atributos de las entidades de entrada se mantendrán en la salida.

Parámetros

EtiquetaExplicaciónTipo de datos
Entidades de entrada

Las entidades poligonales de entrada.

Feature Layer
Clase de entidad de salida

La clase de entidad de línea de salida.

Feature Class
Identificar y almacenar información de polígonos adyacentes
(Opcional)

Especifica si las relaciones de adyacencia de polígonos se identifican y almacenan en la salida.

  • Activado: las relaciones de adyacencia de polígonos se identifican y almacenan en la salida. Si varios segmentos de un polígono comparten límite con otros polígonos, el límite se dividirá de forma que cada segmento compartido de forma única se convierta en una línea con sus dos Id. de entidades poligonales adyacentes almacenados en la salida. Esta es la opción predeterminada.
  • Desactivado: se ignorarán las relaciones de polígonos adyacentes; cada límite de polígono se convertirá en una entidad de línea con el Id. de identidad de polígono original almacenado en la salida.

Boolean

arcpy.management.PolygonToLine(in_features, out_feature_class, {neighbor_option})
NombreExplicaciónTipo de datos
in_features

Las entidades poligonales de entrada.

Feature Layer
out_feature_class

La clase de entidad de línea de salida.

Feature Class
neighbor_option
(Opcional)

Especifica si las relaciones de adyacencia de polígonos se identifican y almacenan en la salida.

  • IDENTIFY_NEIGHBORSLas relaciones de adyacencia de polígonos se identifican y almacenan en la salida. Si varios segmentos de un polígono comparten límite con otros polígonos, el límite se dividirá de forma que cada segmento compartido de forma única se convierta en una línea con sus dos Id. de entidades poligonales adyacentes almacenados en la salida. Esta es la opción predeterminada.
  • IGNORE_NEIGHBORSSe ignorarán las relaciones de polígonos adyacentes; cada límite de polígono se convertirá en una entidad de línea con el Id. de identidad de polígono original almacenado en la salida.
Boolean

Muestra de código

Ejemplo 1 de PolygonToLine (ventana de Python)

La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la función PolygonToLine de modo inmediato.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.PolygonToLine("Habitat_Analysis.gdb/vegtype", 
                               "C:/output/Output.gdb/vegtype_lines",
                               "IGNORE_NEIGHBORS")
Ejemplo 2 de PolygonToLine (script independiente)

El siguiente script independiente es un ejemplo de cómo se utiliza la función 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.")

Temas relacionados