TIN-Dreieck (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.
Abbildung
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 |
The input TIN. | TIN Layer |
out_feature_class |
The output feature class. | Feature Class |
units (optional) |
The units of measure to be used in calculating slope.
| String |
z_factor (optional) |
The factor by which elevation values will be multiplied. This is typically used to convert Z linear units that match those of the XY linear units. The default is 1, which leaves elevation values unchanged. | 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
The following sample demonstrates the use of this tool in the Python window:
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")
The following sample demonstrates the use of this tool in a stand-alone Python script:
'''**************************************************************************** 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)