Delinear área de datos de TIN (3D Analyst)
Resumen
Redefine el área de datos, o la zona de interpolación, de una red irregular de triángulos (TIN) con base en la longitud de la arista del triángulo.
Ilustración
Uso
-
La TIN de origen será modificado con esta herramienta. Si prefiere no modificar la entrada, considere crear un dataset duplicado utilizando la herramienta Copiar TIN .
Todos lo triángulos se marcan como interiores antes de comenzar la clasificación de la longitud de la arista. Esto deshace cualquier clasificación de área de datos preexistente de manera efectiva. Si el resultado obtenido de una iteración es poco satisfactorio, puede ejecutar de nuevo la herramienta sin tener que obtener los datos originales.
Las longitudes máximas de la arista producidas por las características cóncavas en las mediciones de origen de la TIN se pueden quitar del área de datos válida de la TIN a través de esta herramienta. Los triángulos que tienen un borde superior a la Longitud máxima de arista se enmascararán como áreas NoData.
Nota:El valor de la Longitud máxima de arista se determina mejor a partir del espaciado promedio de los nodos de la TIN dentro de las áreas que se consideran zonas de datos válidas. Proporcione un valor que sea mayor que el espaciado promedio. El uso más exitoso de esta herramienta está basado en el conocimiento de los datos utilizados para crear la TIN.
-
El Método determina qué triángulos se evalúan.
Nota:Utilice PERIMETER_ONLY si las partes de los datos cóncavos están relegados a los extremos externos de la TIN.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_tin |
El TIN de entrada. | TIN Layer |
max_edge_length |
La distancia bidimensional que define la longitud máxima de la arista del triángulo de una TIN en el área de datos de TIN. Los triángulos con una o más aristas que superen este valor se considerarán fuera de la zona de interpolación de la TIN y no se representarán en mapas ni se utilizarán en el análisis de superficies. | Double |
method (Opcional) |
El método usado para delinear el área de datos de TIN.
| 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.DelineateTinDataArea_3d("elevation", 10, "PERIMETER_ONLY")
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)