Dominio del TIN (3D Analyst)
Resumen
Crea una clase de entidad de línea o polígono que representa la zona de interpolación de un dataset de red irregular de triángulos (TIN).
Ilustración
Uso
-
Esta herramienta se puede utilizar para generar una envoltura convexa (el polígono de delimitación mínimo) alrededor de un conjunto de puntos. Si no se utiliza ningún polígono de recorte o de borrado para definir el TIN, el dominio es equivalente a la envoltura convexa.
La geometría de salida se coloca en un registro de entidad y puede ser una geometría única o multiparte, según la naturaleza de la zona de interpolación. Por ejemplo, si la zona de interpolación está compuesta por islas o contiene orificios, la geometría resultante será multiparte.
Nota:Los polígonos 3D solo contienen valores de elevación a lo largo del perímetro de las entidades, ya que las partes interiores del polígono no incluirán ningún vértice. Cuando se dibujan en 3D con un relleno de área, los vértices limítrofes se conectan arbitrariamente en triángulos para su representación. A menos que el polígono sea plano, ya sea con pendiente u horizontal, es poco probable que el relleno represente en forma precisa la superficie interior. Por esta razón, se recomienda que los polígonos 3D no planares se dibujen sin una simbología de relleno.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_tin |
El TIN de entrada. | TIN Layer |
out_feature_class |
La clase de entidad de salida. | Feature Class |
out_geometry_type |
La geometría de la clase de entidad de salida.
| String |
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.TinDomain_3d('tin', 'tin_domain.shp')
El siguiente ejemplo muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python:
'''****************************************************************************
Name: Define Data Boundary of LAS File
Description: This script demonstrates how to delineate data boundaries of
LAS files with irregularly clustered points. It is intended for
use as a script tool with one input LAS file.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
# Set local variables
inLas = arcpy.GetParameterAsText(0) #input LAS file
ptSpacing = arcpy.GetParameterAsText(1) # LAS point spacing
classCode = arcpy.GetParameterAsText(2) # List of integers
returnValue = arcpy.GetParameterAsText(3) # List of strings
outTin = arcpy.GetParameterAsText(4) # TIN created to delineate data area
outBoundary = arcpy.GetParameterAsText(5) # Polygon boundary file
try:
arcpy.CheckOutExtension("3D")
# Execute LASToMultipoint
arcpy.AddMessage("Creating multipoint features from LAS...")
lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code,
"ANY_RETURNS", "", sr, inFormat, zfactor)
# Execute CreateTin
arcpy.AddMessage("Creating TIN dataset...")
arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
.format(lasMP), "Delaunay")
# Execute CopyTin
arcpy.AddMessage("Copying TIN to delineate data boundary...")
arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
# Execute DelineateTinDataArea
arcpy.AddMessage("Delineating TIN boundary...")
maxEdge = ptSpacing * 4
arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
# Execute TinDomain
arcpy.AddMessage("Exporting data area to polygon boundary...")
arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
arcpy.AddMessage("Finished")
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)