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 mantienen 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 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 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 genera una línea de salida que representa 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 escribe como una entidad de línea cerrada. Los polígonos multiparte se convierten en líneas multiparte en la salida. Los atributos de las entidades de entrada se mantienen 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.
Sintaxis
PolygonToLine_management (in_features, out_feature_class, {neighbor_option})
Parámetro | 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
Ejemplo 1 de PolygonToLine (ventana de Python)
El siguiente script de la ventana de Python demuestra cómo utilizar la función PolygonToLine en el modo inmediato.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.PolygonToLine_management("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 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]))
Entornos
- Espacio de trabajo actual
- Espacio de trabajo temporal
- Valor Z de salida predeterminado
- Resolución M
- Tolerancia M
- Dominio M de salida
- Dominio Z de salida
- Sistema de coordenadas de salida
- Extensión
- La salida tiene valores M
- La salida tiene valores Z
- Cuadrícula espacial de salida 1
- Cuadrícula espacial de salida 2
- Cuadrícula espacial de salida 3
- Resolución XY
- Tolerancia XY
- Resolución Z
- Tolerancia Z
Información sobre licencias
- ArcGIS Desktop Basic: No
- ArcGIS Desktop Standard: No
- ArcGIS Desktop Advanced: Sí