Resumen
Fusiona entidades multiparche cerradas superpuestas desde una clase de entidad de entrada.
Ilustración
Uso
-
Para este análisis se requiere una geometría cerrada de multiparche. La herramienta Es 3D cerrado se puede utilizar para determinar si una clase de entidad multiparche contiene entidades cerradas, y se puede utilizar la herramienta Incluir multiparche para eliminar los espacios en las entidades multiparche.
Las entidades multiparche que abarcan volúmenes superpuestos se combinan mediante la intersección de los shells de las entidades y la eliminación de las partes internas redundantes. Este proceso se repite hasta que todas las entidades multiparche de la clase de entidad hayan sido procesadas.
Un campo de agrupación se pueden utilizar para identificar las entidades que se combinarán, como cuando los multiparches representan la construcción de partes en una ciudad donde varias entidades representan un edificio. Esto puede mejorar significativamente el rendimiento al reducir el número de veces que la herramienta tiene que iterar el dataset. En lugar de comparar una entidad con todas las entidades, solo se compara con las que participan en su grupo.
Cuando la optimización está habilitada, la herramienta intenta automáticamente clasificar las entidades en grupos mediante el análisis del cuadro de delimitación de cada entidad. Deshabilitar la optimización puede aumentar el rendimiento de la herramienta si se ha especificado un campo de agrupación. La optimización también se puede deshabilitar en la ausencia de un campo de agrupación si la salida deseada es combinar todas las entidades superpuestas en un solo multiparche.
Tenga cuidado al decidir cuántas entidades agregar, ya que es posible que las entidades muy grandes y complejas sean creadas en la clase de entidad de salida, lo que puede mostrar un rendimiento de visualización deficiente.
Si dos o más entidades multiparche comparten solo un borde o un vértice, se genera una advertencia que indica que la entidad resultante no es sencilla y no se pudo crear. Se devuelve el mismo mensaje si un grupo contiene multiparches que no comparten volumen o espacio.
Se puede crear una tabla opcional para identificar los atributos de las entidades de origen que se combinaron para crear cada salida combinada.
Sintaxis
arcpy.ddd.Union3D(in_feature_class, out_feature_class, {group_field}, {disable_optimization}, {output_all}, {out_table})
Parámetro | Explicación | Tipo de datos |
in_feature_class | Las entidades multiparche que se combinarán. | Feature Layer |
out_feature_class | La clase de entidad multiparche de salida que almacenará las entidades agregadas. | Feature Class |
group_field (Opcional) | El campo que se utiliza para identificar las entidades que se deben agrupar. | Field |
disable_optimization (Opcional) | Especifica si se lleva a cabo o no la optimización en los datos de entrada. La optimización hará un preprocesamiento de los datos de entrada agrupándolos para mejorar el rendimiento y crear salidas únicas para cada conjunto de entidades superpuestas.
| Boolean |
output_all (Opcional) | Determina si la clase de entidad de salida contiene todas las entidades o solo las superpuestas que fueron combinadas.
| Boolean |
out_table (Opcional) | Una tabla de muchas a una que identifica las entidades de entrada que contribuyen a cada salida. | Table |
Muestra de código
Ejemplo 1 de Union3D (ventana de Python)
En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Union3D_3d('multipatch.shp', 'union_output.shp', 'GROUP_FIELD',
'DISABLE', 'ENABLE', 'UnionTable.dbf')
Ejemplo 2 de Union3D (secuencia de comandos independiente)
En el siguiente ejemplo se muestra cómo usar esta herramienta en un script independiente de Python.
'''****************************************************************************
Name: Union3D Example
Description: This script demonstrates how to use the
Union3D tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inMP = "multipatch.shp"
# Ensure output multipatch has a unique name
outMP = arcpy.CreateUniqueName("union_output.shp")
outTbl = arcpy.CreateUniqueName("UnionTable.dbf")
GroupField = "Type"
optimize = "DISABLE"
solids = "ENABLE"
#Execute Union3D
arcpy.ddd.Union3D(inMP, outMP, GroupField, optimize, solids, outTbl)
arcpy.CheckInExtension('3D')
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)
Entornos
Información de licenciamiento
- Basic: Requiere 3D Analyst
- Standard: Requiere 3D Analyst
- Advanced: Requiere 3D Analyst