Etiqueta | Explicación | Tipo de datos |
Entidades de entrada | Las entidades de entrada que deben ser polígonos. | 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 se debe identificar y almacenar la información de adyacencia del polígono.
| Boolean |
Resumen
Crea una clase de entidad que contiene líneas convertidas a partir de límites de polígonos con o sin consideración de los polígonos adyacentes.
Ilustración
Uso
Si la casilla de verificación Identificar y guardar la información de adyacencia de polígonos está activada (neighbor_option con el valor IDENTIFY_NEIGHBORS en Python), se analiza la relación de adyacencia de polígonos. Como se ilustra arriba, los límites se convierten en líneas, tomando en cuenta los segmentos comunes o que se cruzan; se agregan dos nuevos campos, LEFT_FID y RIGHT_FID, a la clase de entidad de salida y en ellos se almacenan los Id. de entidad de los polígonos de entrada existentes a la izquierda y la derecha de cada línea de salida. Los atributos de las entidades de entrada no se mantendrán en la clase de entidad de salida. Las siguientes situaciones le ayudarán a comprender con más detalle el proceso y la salida:
- En una geometría de polígono, el límite exterior se almacena siempre en el sentido de las agujas del reloj. Si el polígono tiene un agujero, el límite del agujero (o 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 para LEFT_FID y el Id. de entidad poligonal como RIGHT_FID.
- Si 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, su LEFT_FID contiene el Id. de la entidad poligonal exterior y RIGHT_FID contiene el Id. de la entidad poligonal interior.
- Si dos polígonos comparten una parte de sus límites, se generará una línea de salida que representará el segmento compartido. El sentido de la línea será arbitrario; LEFT_FID y RIGHT_FID reciben los Id. de las entidades poligonales izquierda o derecha, según corresponda.
- Si 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; por tanto, su LEFT_FID es el Id. de entidad del polígono que cruza y su 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 LEFT_FID y RIGHT_FID serán los mismos que los del otro Id. de entidad poligonal.
- Los multipartes de los polígonos de entrada no se mantienen; todas las líneas de salida son de parte simple.
En el caso de las entidades de entrada de curva paramétrica (verdadera), las líneas de salida siguen siendo curvas verdaderas, incluso si se dividen. Esto no se aplica a los datos de shapefile.
Esta opción utiliza un proceso de ordenamiento en teselas para controlar datasets muy grandes, a fin de mejorar el rendimiento y la escalabilidad. Para más información, consulte Procesamiento en mosaico de datasets grandes.
Si la casilla de verificación Identificar y guardar la información de adyacencia de polígonos está desactivada (neighbor_option con el valor IGNORE_NEIGHBORS en Python), se omite la relación de adyacencia de polígonos. Cada límite de polígono de entrada se escribirá como una entidad de línea encerrada. Un polígono multiparte se convertirá en una línea multiparte en la salida. Los atributos de las entidades de entrada se mantendrán en la clase de entidad de salida. Se agrega a la salida un nuevo campo, ORIG_FID, que contiene los Id. de entidad de entrada de cada línea.
Parámetros
arcpy.management.PolygonToLine(in_features, out_feature_class, {neighbor_option})
Nombre | Explicación | Tipo de datos |
in_features | Las entidades de entrada que deben ser polígonos. | Feature Layer |
out_feature_class | La clase de entidad de línea de salida. | Feature Class |
neighbor_option (Opcional) | Especifica si se debe identificar y almacenar la información de adyacencia del polígono.
| Boolean |
Muestra de código
El siguiente script de la ventana de Python demuestra cómo utilizar la función PolygonToLine en modo inmediato.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.PolygonToLine_management("Habitat_Analysis.gdb/vegtype",
"C:/output/Output.gdb/vegtype_lines",
"IGNORE_NEIGHBORS")
El siguiente script independiente es un ejemplo simple de cómo aplicar la función PolygonToLine en un entorno de scripts.
# Name: PolygonToLine_Example2.py
# Description: Use 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.PolygonToLine_management(inFeatureClass, outFeatureClass)
# Select lines that have LEFT_FID values greater than -1
arcpy.MakeFeatureLayer_management(outFeatureClass, "selection_lyr",
"\"LEFT_FID\" > -1")
result = arcpy.GetCount_management("selection_lyr")
if result[0] == "0":
print("No overlapping or shared boundary lines were found.")
else:
print("{} overlapping or shared boundary lines were found.".format(result[0]))