Triangulación del TIN (3D Analyst)
Resumen
Exporta caras de triángulo de un dataset de red de triángulos irregular (TIN) a una clase de entidad de polígono y proporciona la pendiente, el aspecto y atributos opcionales de sombreado y valor de etiqueta para cada triángulo.
Ilustración
Uso
La pendiente y los cálculos de orientación se basan en el plano del triángulo. La pendiente no se puede calcular correctamente si la unidad lineal del sistema de coordenadas del TIN utiliza medidas angulares, como grados decimales.
Las unidades lineales XY y Z deben estar en la misma unidad de medida para que los cálculos de sombreado y de la pendiente proporcionen resultados precisos. Si las unidades difieren pero el TIN tiene sus sistemas de coordenadas verticales y horizontales definidos, un factor Z apropiado se determina automáticamente. De lo contrario, el parámetro del Factor Z se puede utilizar para definir explícitamente el factor de conversión que se aplicará en los valores de elevación.
Los valores de orientación se expresan en grados y asumen que Norte es 0°. Los valores aumentan a la derecha y se registran en el campo Orientación. Un valor de orientación de -1 se asigna para cualquier triángulo plano en el TIN.
La pendiente se puede devolver en grados o porcentaje, y el nombre de campo en el que están registrados los valores depende de la selección realizada en el parámetro Unidades de pendiente:
- PORCENTAJE: los valores de la pendiente se almacenarán en un campo denominado Slope_Pct.
- GRADOS: los valores de la pendiente se almacenarán en un campo denominado Slope_Deg.
Los valores de sombreado reflejan el relieve localizado producido desde una fuente de luz que asume el acimut y el ángulo vertical especificado en el parámetro de sombreado. Se asume que el 0° es el Norte para el acimut y el valor de brillo se expresa de 0 a 255, donde, cuanto menor es el número, más oscura es la sombra.
El parámetro Campo de valor de etiqueta solo estará activo si el TIN tiene valores de etiqueta que se definieron explícitamente.
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 |
units (Opcional) |
Las unidades de medida que se utilizarán para el cálculo de la pendiente.
| String |
z_factor (Opcional) |
El factor por el que se multiplicarán los valores de elevación. Esto se suele usar para convertir unidades lineales Z que coinciden con las de las unidades lineales XY. El valor predeterminado es 1, que no altera los valores de elevación. | Double |
hillshade HILLSHADE <azimuth>, <angle> (Opcional) |
Especifica los ángulo acimut y de altitud del origen de luz al aplicar un efecto de sombreado para la salida de la capa de entidades. Acimut puede variar de 0 a 360 grados, considerando que la altitud puede variar de 0 a 90. Un acimut de 45 grados y la altitud de 30 grados se ingresará como "HILLSHADE 45, 30". | String |
tag_field (Opcional) |
El nombre de campo en la entidad de salida que almacenará el valor de etiqueta del triángulo. Este parámetro está vacío por defecto, lo que resultará en valores de etiqueta no escritos en la 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.TinTriangle_3d("tin", "tin_triangle.shp", "DEGREE", 1,"HILLSHADE 310,45", "tag")
El siguiente ejemplo muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python:
'''****************************************************************************
Name: TinTriangle Example
Description: This script demonstrates how to use the
TinTriangle tool to extract triangles from each TIN in the
target workspace.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data" # the target workspace
# Create list of TINs
TINList = arcpy.ListDatasets("*", "Tin")
# Verify the presence of TINs in the list
if TINList:
for dataset in TINList:
# Set Local Variables
TINList = arcpy.ListDatasets("*", "Tin")
slopeUnits = "PERCENT"
zfactor = 1
hillshade = "HILLSHADE 300, 45" # defines hillshade azimuth & angle
tagField = "Tag"
Output = dataset + "_triangles.shp" # name of the output file
#Execute TinTriangle
arcpy.ddd.TinTriangle(dataset, Output, slopeUnits, zfactor,
hillshade, tagField)
print "Finished."
else:
print "There are no TIN(s) in the " + env.workspace + " directory."
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)