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 almacenar información de polígonos adyacentes está activada (la opción neighbor_option está definida como IDENTIFY_NEIGHBORS en la secuencia de comandos), se analizará la relación de polígono adyacente. Como se ilustra más arriba, los límites se convierten en líneas teniendo en cuenta los segmentos de cruce o compartidos; se agregarán a la clase de entidad de salida dos campos nuevos, LEFT_FID y RIGHT_FID, y se establecerán en los Id. de entidad de los polígonos de entrada 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 lo tanto, para un polígono que no tiene vecinos en el lado izquierdo (afuera) de su límite exterior y el lado izquierdo (adentro) del límite del agujero, las líneas resultantes tendrán un valor de -1 para LEFT_FID y el Id. de la entidad de polígono como RIGHT_FID.
- Si un polígono contiene otro polígono, se generará una línea de salida en el sentido de las agujas del reloj que representará el límite compartido, con el campo LEFT_FID establecido en el Id. de la entidad de polígono exterior y el campo RIGHT_FID establecido en el Id. de la entidad de polígono interior.
- Si dos polígonos comparten una parte de sus límites, se generará una línea de salida que representará el segmento compartido. La dirección de la línea será arbitraria; LEFT_FID y RIGHT_FID se establecerán en los Id. de identidad de polígono de la izquierda o la derecha según corresponda.
- Si un polígono se superpone con otro, se generan dos líneas de salida que representan dos veces cada límite que se cruza: la primera línea representa el límite exterior de uno de los polígonos superpuestos, de modo que LEFT_FID es el Id. de entidad del polígono que atraviesa y RIGHT_FID es su propio Id. de entidad; la segunda línea va en la dirección opuesta y divide al otro polígono, por tanto, sus valores de LEFT_FID y RIGHT_FID coincidirán con el Id. de entidad del otro polígono.
- No se mantienen las multipartes en los polígonos de entrada; las líneas de salida son todas de parte simple.
Si la casilla de verificación Identificar y almacenar información de polígonos adyacentes no está activada (la opción neighbor_option está definida como IGNORE_NEIGHBORS en la secuencia de comandos), se ignorará la relación de polígono adyacente. 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 agregará un campo nuevo, ORIG_FID, a la salida y se establecerá en los Id. de entidad de entrada de cada línea.
Para las entidades de entrada de las curvas paramétricas (verdaderas), las líneas de salida permanecerán como curvas verdaderas incluso si están divididas. Esto no se aplica a los datos de shapefile.
Esta herramienta utilizará un proceso de ordenamiento en tesela para controlar datasets muy grandes para mejorar el rendimiento y la escalabilidad. Para obtener más detalles, consulte Geoprocesamiento con datasets grandes.
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)
La siguiente secuencia de comandos 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 (secuencia de comandos independiente)
La siguiente secuencia de comandos independiente es un ejemplo simple de cómo aplicar la función PolygonToLine en un entorno de secuencias de comandos.
# 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"
# Use error trapping in case a problem occurs when running the tool
try:
# 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.getOutput(0) == "0"):
print("No overlapping or shared boundary lines were found.")
else:
print(result.getOutput(0) + " overlapping or shared boundary lines were found.")
except Exception as err:
print(err.args[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í