Intersecar línea 3D con multiparche (3D Analyst)
Resumen
Determina y devuelve el número de intersecciones geométricas en las entidades de línea y multiparche. Entidades de punto que representan la intersección y las entidades de línea que representan las líneas de entrada divididas en dichos puntos se pueden escribir opcionalmente en las clases de entidad de salida.
Ilustración
![Intersect 3D Line With Multipatch example Intersect 3D Line With Multipatch example](00q9/GUID-6B640EA8-3F8D-4620-9B9D-928DAB4EB846-web.png)
Uso
-
Las entidades de línea 2D no son compatibles con esta herramienta. Las entidades de línea 3D habilitadas para z son necesarias porque los cálculos de intersección se realizan en entidades 3D en un espacio 3D euclidiano. Las entidades de línea 2D con definiciones de altura almacenadas en un campo de atributos se pueden convertir a 3D utilizando Entidad a 3D por atributo.
El conteo de intersección se devolverá como un resultado entero en la ventana de mensajes y se puede usar en un modelo o secuencia de comandos para establecer las precondiciones de las operaciones posteriores.
-
El salida de punto opcional representa puntos de intersección entre la línea de entrada y las entidades multiparche y contiene los siguientes atributos:
- LINE_OID: el OBJECTID de la línea original a lo largo de la cual se encontró la intersección.
- MPATCH_OID: el OBJECTID del multiparche que intersecó la línea en esta ubicación.
- DIST_3D: la distancia 3D a lo largo de la línea original en la que se encontró la intersección.
-
La salida de línea opcional divide las entidades de línea de entrada en los puntos de intersección y contiene los siguientes atributos:
- LINE_OID: el OBJECTID de la línea original de la cual se derivó la nueva línea.
- FROM_MP_ID: OBJECTID de la entidad de multiparche que se interseca con el principio de la línea. Para indicar que el principio de la línea no es un punto de intersección se utiliza el valor -1.
- TO_MP_ID: OBJECTID de multiparche que se interseca con el final de la línea. Para indicar que el principio de la línea no es un punto de intersección se utiliza el valor -1.
Nota:
Si una línea no se interseca con un multiparche, se copia directamente con la salida y a sus campos FROM_MP_ID y TO_MP_ID se les atribuirá un valor de -1.
- DIST_3D: la distancia 3D a lo largo de la línea original en la que se encontró la intersección y que representa el comienzo de esta línea nueva.
- LENGTH_3D: la longitud 3D de esta línea nueva. La suma de las longitudes de cada línea nueva derivada de una línea original será igual a la longitud 3D de esa línea original.
Se puede hacer referencia a los valores de atributos de las líneas originales en las entidades de salida opcionales mediante el uso de la clase de entidad de la línea de salida a través del parámetro Unir atributos.
Esta herramienta es un operador de conjuntos 3D que provee funciones analíticas sobre entidades 3D. Consulte Trabajar con operadores de conjuntos 3D para obtener más información sobre qué operadores de conjuntos existen y cómo se utilizan.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_line_features |
Las entidades de línea que se intersecarán con entidades multiparche. | Feature Layer |
in_multipatch_features |
Las entidades multiparche que las líneas intersecarán. | Feature Layer |
join_attributes (Opcional) |
Define si los atributos de las entidades de línea de entrada se conservarán en la clase de entidad de línea de salida.
| String |
out_point_feature_class (Opcional) |
Las entidades opcionales que representan puntos de intersección entre la línea 3D y un multiparche. | Feature Class |
out_line_feature_class (Opcional) |
Entidades de línea opcionales que dividen líneas 3D de entrada en puntos de intersección con entidades multiparche. | Feature Class |
Ejemplo de código
El siguiente ejemplo muestra cómo usar de esta herramienta en la ventana Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Intersect3DLineWithMultiPatch_3d('inLine.shp', 'inMultipatch.shp',
'IDS_ONLY', 'outPts.shp', 'outLine.shp')
El siguiente ejemplo muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python:
'''****************************************************************************
Name: Intersect3DLineWithMultiPatch Example
Description: This script demonstrates how to
use the Intersect3DLine tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inLineFC = 'sample.gdb/lines_3d'
inMP = 'sample.gdb/test_MP'
# Ensure a unique name is produced for output files
outPoint = arcpy.CreateUniqueName('OutPt_3DIntersect', 'sample.gdb')
outLine = arcpy.CreateUniqueName('OutLine_3DIntersect', 'sample.gdb')
# Execute Intersect 3D Line with Multipatch
arcpy.Intersect3DLineWithMultiPatch_3d(inLineFC, inMP, 'IDS_ONLY',
outPoint, outLine)
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)