Intersecar línea 3D con multiparche (3D Analyst)

Resumen

Devuelve el número de intersecciones geométricas entre líneas 3D y entidades multiparche y proporciona asimismo entidades opcionales que representan puntos de intersección y dividen también las líneas 3D en dichos puntos.

Ilustración

Ejemplo de Intersecar línea 3D con multiparche

Uso

  • El recuento de intersecciones se devolverá en la ventana de mensajes y se puede usar en un modelo o script para establecer las precondiciones de las operaciones posteriores.

  • Esta herramienta determina los puntos de intersección en un espacio 3D euclidiano. La herramienta no admite las entidades de línea 2D, pero las entidades de línea 2D con definiciones de altura almacenadas en un campo de atributos se pueden convertir a 3D utilizando De entidad a 3D por atributo.

  • La 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: OBJECTID de la línea original a lo largo de la cual se encontró la intersección.
    • MPATCH_OID: OBJECTID del multiparche que intersecó la línea en esta ubicación.
    • DIST_3D: 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: OBJECTID de la línea original de la que se derivó la nueva línea.
    • FROM_MP_ID: OBJECTID de la entidad 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 del 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 en la salida y sus campos FROM_MP_ID y TO_MP_ID incluirán -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.

Sintaxis

arcpy.3d.Intersect3DLineWithMultiPatch(in_line_features, in_multipatch_features, {join_attributes}, {out_point_feature_class}, {out_line_feature_class})
ParámetroExplicaciónTipo de datos
in_line_features

Entidades de línea que se intersecarán con las entidades multiparche.

Feature Layer
in_multipatch_features

Las entidades multiparche que las líneas intersecarán.

Feature Layer
join_attributes
(Opcional)

Atributos de la entidad de línea que se almacenarán con las entidades de salida opcionales.

  • IDS_ONLY Solo se almacenarán los números de identificación de las entidades. Esta es la opción predeterminada.
  • ALLTodos los atributos se almacenarán.
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 de entrada en cada punto de intersección con una entidad multiparche.

Feature Class

Salida derivada

NombreExplicaciónTipo de datos
out_intersection_count

El recuento de intersecciones.

Largo

Muestra de código

Ejemplo 1 de Intersect3DLineWithMultipatch (ventana de Python)

En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.

arcpy.env.workspace = 'C:/data'
arcpy.Intersect3DLineWithMultiPatch_3d('inLine.shp', 'inMultipatch.shp', 
                                     'IDS_ONLY', 'outPts.shp', 'outLine.shp')
Ejemplo 2 de Intersect3DLineWithMultipatch (script independiente)

En el siguiente ejemplo se muestra cómo usar esta herramienta en un script independiente de Python.

'''****************************************************************************
Name: Intersect3DLineWithMultiPatch Example
Description: This script demonstrates how to
             use the Intersect3DLine tool.
****************************************************************************'''
# Import system modules
import arcpy

# Set environment settings
arcpy.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)

Información de licenciamiento

  • Basic: Requiere 3D Analyst
  • Standard: Requiere 3D Analyst
  • Advanced: Requiere 3D Analyst

Temas relacionados