TIN-Dreieck (ArcGIS 3D Analyst)
Zusammenfassung
Exportiert Dreiecksflächen aus einem TIN-Dataset (Triangulated Irregular Network, trianguliertes unregelmäßiges Netzwerk) in eine Polygon-Feature-Class und stellt Neigung, Ausrichtung und optionale Schummerungsattribute und einen Tag-Wert für jedes Dreieck bereit.
Bild
Verwendung
Neigung und Ausrichtung werden anhand der Ebene des Dreiecks berechnet. Die Neigung kann nicht ordnungsgemäß berechnet werden, wenn die lineare Einheit des Koordinatensystems des TIN Winkelmaße, wie z. B. Dezimalgrad, verwendet.
Lineare XY- und Z-Einheiten sollten dieselbe Maßeinheit aufweisen, damit bei der Berechnung der Neigung und Schummerung präzise Ergebnisse erzielt werden. Wenn sich die Einheiten unterscheiden, aber für das TIN vertikale und horizontale Koordinatensysteme definiert sind, wird ein entsprechender Z-Faktor automatisch bestimmt. Andernfalls kann der Parameter Z-Faktor verwendet werden, um den auf die Höhenwerte anzuwendenden Konvertierungsfaktor explizit zu definieren.
Ausrichtungswerte werden in Grad ausgedrückt, wobei für Norden 0° angenommen wird. Die Werte nehmen im Uhrzeigersinn zu und werden im Feld Ausrichtung aufgezeichnet. Der Ausrichtungswert -1 wird jedem flachen Dreieck im TIN zugewiesen.
Die Neigung kann in Graden oder Prozent zurückgegeben werden, und der Name des Feldes, in dem die Werte aufgezeichnet werden, hängt von der im Parameter Neigungseinheiten getroffenen Auswahl ab:
- PERCENT – Neigungswerte werden in einem Feld mit dem Namen Slope_Pct gespeichert.
- DEGREE – Neigungswerte werden in einem Feld mit dem Namen Slope_Deg gespeichert.
Schummerungswerte spiegeln das begrenzte Relief wider, das von einer Lichtquelle erzeugt wird, die den im Parameter Schummerung angegebenen Azimut- und vertikalen Winkel annimmt. 0° wird für den Azimutwinkel als Norden angenommen, und der Helligkeitswert liegt im Bereich zwischen 0 bis 255, wobei der Schatten umso dunkler ist, je niedriger die Zahl ist.
Der Parameter Tag-Wertfeld ist nur aktiv, wenn das TIN Tag-Werte aufweist, die explizit definiert wurden.
Syntax
Parameter | Erläuterung | Datentyp |
in_tin |
Das Eingabe-TIN. | TIN Layer |
out_feature_class |
Die Ausgabe-Feature-Class. | Feature Class |
units (optional) |
Die Maßeinheiten zum Berechnen der Neigung.
| String |
z_factor (optional) |
Der Faktor, mit dem die Höhenwerte multipliziert werden. Dieser wird in der Regel verwendet, um lineare Z-Einheiten zu konvertieren, sodass sie den linearen XY-Einheiten entsprechen. Der Standardwert ist 1, wodurch die Höhenwerte unverändert bleiben. | Double |
hillshade HILLSHADE <azimuth>, <angle> (optional) |
Gibt den Azimut und die Höhenwinkel der Lichtquelle beim Anwenden eines Schummerungseffekts für die Feature-Layer-Ausgabe an. Azimut kann von 0 bis 360 Grad reichen, während die Höhe zwischen 0 und 90 liegt. Ein Azimut von 45 Grad und eine Höhe von 30 Grad werden als " HILLSHADE 45, 30 eingegeben. | String |
tag_field (optional) |
Der Name des Feldes im Ausgabe-Feature, das den Dreiecks-Tag-Wert speichert. Dieser Parameter ist standardmäßig leer, wodurch sich Tag-Werte ergeben, die nicht in die Ausgabe geschrieben werden. | String |
Codebeispiel
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht:
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")
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht:
'''****************************************************************************
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)