Crear TIN (3D Analyst)
Resumen
Crea un dataset de red irregular de triángulos (TIN).
Uso
-
Las TIN utilizadas para modelado de superficie se deben construir mediante los sistemas de coordenadas proyectadas. Los sistemas de coordenadas geográficas no se recomienda ya que la triangulación de Delaunay no puede garantizarse cuando las coordenadas XY se expresan en unidades angulares y los cálculos basados en distancias, como pendiente, volumen y línea de visión pueden producir resultados incorrectos o confusos.
-
Considere cambiar el tamaño del cuadro de diálogo de la herramienta si el parámetro Clase de entidad de entrada no se muestra de forma legible.
-
Considere limitar el número de nodos cargados en la TIN desde las entidades de entrada en unos pocos millones para mantener la funcionalidad adecuada y rendimiento de visualización. La cantidad máxima de nodos admitidos por una TIN varía en relación a los recursos de memoria contigua y libre en el sistema. Generalmente, de diez a quince millones de nodos representan el mayor tamaño que se puede lograr bajo condiciones normales de funcionamiento en las plataformas Windows de 32 bits. Los datasets más grandes se representan mejor usando un terreno.
Sintaxis
Parámetro | Explicación | Tipo de datos |
out_tin |
El dataset de TIN de salida. | TIN |
spatial_reference (Opcional) |
La referencia espacial de TIN de salida. | Coordinate System |
in_features [[in_feature_class, height_field, SF_type, tag_value],...] (Opcional) | Agregue referencias a una o más clases de entidad que se incluirán en la TIN. Para cada clase de entidad deberá establecer propiedades que indiquen cómo se usa para definir la superficie. in_feature_class: La clase de entidad cuyas entidades se importarán en la TIN. height_field: El campo que especifica el origen de los valores de elevación para las entidades. Se puede usar cualquier campo numérico en la tabla de atributos de la entidad. Si la entidad es compatible con valores z, se podrá leer la geometría de entidad seleccionando la opción Shape.Z. Si no desea altura, especifique la palabra clave <None> para crear entidades carentes de Z cuya elevación sea interpolada desde la superficie. SF_type: El tipo de entidad de superficie define la manera en que la geometría importada desde las entidades se incorpora en la triangulación para la superficie. Las opciones con designación estricta o no estricta se refieren a si los bordes de entidad representan cortes distintivos en la pendiente o un cambio gradual cuando la superficie triangulada se convierte a un ráster. Las siguientes palabra clave están disponible:
tag_value: El campo de enteros de la tabla de atributos de la clase de entidad que se utilizará cuando se establece el tipo de entidad de superficie a una opción relleno de valores. El relleno de etiquetas se usa como una forma básica de atribución del triángulo cuyos límites se implementan en la triangulación como líneas de corte. La opción predeterminada se establece en <ninguno>. | Value Table |
constrained_delaunay (Opcional) | Especifica la técnica de triangulación utilizada a lo largo de las líneas de corte de TIN.
| Boolean |
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.CreateTin_3d("NewTIN", "Coordinate Systems/Projected Coordinate Systems/State Plane/NAD 1983 (Feet)/NAD 1983 StatePlane California II FIPS 0402 (Feet).prj", "points.shp Shape.Z masspoints", "constrained_delaunay")
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)