Intersecar línea 3D con multiparche (3D Analyst)
Resumen
Computa una intersección geométrica de la línea de entrada y las entidades multiparche y devuelve la cantidad de puntos de intersección. Los puntos (de intersección) o las líneas (que resultan de líneas de entrada que se dañan en los puntos de intersección) pueden escribirse opcionalmente en las clases de entidad de salida.
Más información sobre cómo funciona Intersecar línea 3D con multiparche (3D Analyst)
Ilustración
Uso
-
Se requiere una clase de entidad multiparche y una clase de entidad de línea 3D como entrada.
La herramienta determinará la intersección entre cada línea seleccionada (o todas las líneas, si ninguna está seleccionada) en la clase de entidad de línea de entrada, y cada multiparche seleccionado (o todos los multiparches, si ninguno está seleccionado) en la clase de entidad multiparche de entrada.
-
Los valores del atributo de las entidades de línea de entrada se transportan opcionalmente a la clase de entidad de línea de salida opcional.
La herramienta también genera una salida numérica (entero), que proporciona la cantidad de puntos de intersección encontrada, incluso si no se especifica la clase de entidad de salida.
Cada una, ninguna o las dos clases de entidad de salida pueden especificarse (es decir: punto y/o línea o ninguno). Ninguno sólo se utiliza cuando se usa un modelo o secuencia de comandos y se usa el contador de intersección de salida.
Los multiparches no tienen que estar cerrados.
Las entidades de salida tienen geometría tridimensional.
-
Los siguientes campos están presentes en la clase de entidad de punto de salida opcional:
- OID: El OBJECTID del punto.
- Forma: La geometría del punto.
- 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.
-
Los siguientes campos están presentes en la clase de entidad de línea de salida opcional:
- OID: El OBJECTID del punto.
- Forma: La geometría de la línea.
- LINE_OID: El OBJECTID de la línea original a lo largo de la cual se encontró la intersección y desde la cual se generó esta línea nueva.
- FROM_MP_ID: El OBJECTID del multiparche que intersecó la línea original al comienzo de esta línea nueva (-1 si no hay multiparche).
- TO_MP_ID: El OBJECTID del multiparche que intersecó la línea original al final de esta línea nueva (-1 si no hay multiparche).
- 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.
Intersecar línea 3D con multiparche es un operador de conjuntos 3D que forma parte del conjunto de herramientas 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 |
La capa o clase de entidad de línea de entrada. | Feature Layer |
in_multipatch_features |
La capa o clase de entidad multiparche de entrada. | Feature Layer |
join_attributes (Opcional) |
Permite que todos los campos no requeridos (en otras palabras, sin ObjectID o geometría) y los valores de la clase de entidad de línea de entrada se copien en la clase de entidad de línea de salida opcional.
| String |
out_point_feature_class (Opcional) |
La clase de entidad opcional en la que se ubicarán los puntos de intersección. | Feature Class |
out_line_feature_class (Opcional) |
La clase de entidad opcional en la que se ubicarán las líneas (líneas de entrada dañadas en los puntos de intersección). | Feature Class |
Ejemplo de código
La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la función Intersecar línea 3D con multiparche en el modo inmediato.
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')
La siguiente secuencia de comandos de Python muestra cómo utilizar la función Intersecar línea 3D con multiparche en una secuencia de comandos independiente.
'''**************************************************************************** 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)