Crear TIN (3D Analyst)

Resumen

Crea un dataset de red irregular de triángulos (TIN).

Uso

Sintaxis

CreateTin_3d (out_tin, {spatial_reference}, {in_features}, {constrained_delaunay})
ParámetroExplicaciónTipo 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:

  • del tipo de superficieLos puntos de elevación que se importarán como nodos
  • línea dura o línea suavizadaLas líneas de corte que implementan el valor de una altura
  • recorte o recorte suavizadoEl dataset de polígono que define el límite de la TIN
  • borrado o borrado suavizado El dataset de polígono que define los agujeros en las partes internas de la TIN
  • sustitución o sustitución suavizadaEl dataset de polígonos que define áreas de altura constante
  • relleno de valor o inclusión de valor suavizadoEl dataset de polígono que define los valores de etiqueta para los triángulos con base en el campo de enteros especificado en la columna tag_value

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.

  • DELAUNAYTIN utilizará la triangulación conforme de Delaunay, que puede densificar cada segmento de las líneas de corte para producir varios bordes de triángulo. Esta es la opción predeterminada.
  • CONSTRAINED_DELAUNAYTIN hará uso de la triangulación de Delaunay con límites, la cual va a agregar cada segmento como un único borde. Las normas de la triangulación de Delaunay se respetan en todas partes excepto en las líneas de corte, que no se densificarán
Boolean

Ejemplo de código

Ejemplo 1 de CreateTin (ventana de Python)

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")
Ejemplo 2 de CreateTin (secuencia de comandos independiente)

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)

Entornos

Temas relacionados

9/11/2013