Beschriftung | Erläuterung | Datentyp |
Ausgabe-TIN | Das erstellte TIN-Dataset. | TIN |
Koordinatensystem (optional) | Der Raumbezug des Ausgabe-TINs. Legen Sie den Raumbezug auf ein projiziertes Koordinatensystem fest. Geographische Koordinatensysteme werden nicht empfohlen, da die Delaunay-Triangulation nicht garantiert werden kann, wenn die XY-Koordinaten in Winkeleinheiten ausgedrückt sind, was negative Auswirkungen auf die Genauigkeit entfernungsbasierter Berechnungen wie Neigung, Volumen und Sichtbarkeitslinie haben kann. | Coordinate System |
Eingabe-Feature-Class (optional) | Die Eingabe-Features und die zugehörigen Eigenschaften, die zur Definition des TIN beitragen.
| Value Table |
Constrained Delaunay (optional) | Gibt die entlang der Bruchkanten des TINs angewendete Triangulationstechnik an.
| Boolean |
Zusammenfassung
Erstellt ein TIN-Dataset (Triangulated Irregular Network).
Abbildung
Verwendung
-
Vermeiden Sie die Erstellung eines TIN mit dem geographischen Koordinatensystem, da die Delaunay-Triangulationsregel nicht effektiv umgesetzt werden kann, wenn die XY-Einheiten in sphäroidischen Koordinaten ausgedrückt sind.
-
Anhand des Oberflächen-Feature-Typs wird definiert, wie die Eingabe-Features zur Definition der triangulierten Oberfläche beitragen.
- Punkt-Features können als Massenpunkte festgelegt werden, die Datenknoten mit Z-Werten bereitstellen, die in der Triangulation der Oberfläche des Terrain-Layers verwendet werden.
- Linien-Features können als Massenpunkte und Bruchkanten festgelegt werden, die Positionen an einer Oberfläche mit linearen Unterbrechungen in der Neigung darstellen, z. B. Bergkämme, Küstenlinien, Straßenbelagskanten, Gebäudegrundrisse usw.
- Polygon-Features können auch als Massenpunkte und Bruchkanten zusammen mit Clip-Features festgelegt werden, die die Datenfläche definieren, Features ersetzen, die Regionen mit konstanten Z-Werten (z. B. Gewässer) definieren, sowie Features löschen, die innere Flächen angeben, in denen keine Daten vorhanden sind.
Das Werkzeug kann ein aus mehreren Millionen Punkten bestehendes TIN erstellen, sofern genügend Speicher vorhanden ist. Durch die Begrenzung der Anzahl der TIN-Knoten auf einen Wert unter 6 Mio. wird jedoch eine reaktionsschnelle Darstellungs-Performance und allgemeine Benutzerfreundlichkeit sichergestellt. Größere TIN-Oberflächen werden am besten mit einem Terrain-Dataset mit mehreren Auflösungen verwaltet. Beim Arbeiten mit Punktwolkendaten im LAS-Format kann das LAS-Dataset zum effizienten Rendern und Verarbeiten von LAS-Punkten in einer TIN-Oberfläche verwendet werden, die dieselben auf Polylinien und Polygonen basierenden Oberflächeneinschränkungen enthält, die in einem TIN-Dataset unterstützt werden.
-
Legen Sie die Umgebungseinstellung für die Standardversion der TIN-Speicherung auf PRE_10.0 fest, wenn das zu erstellende TIN in Versionen von ArcGIS Desktop vor 10.0 verwendet wird.
Nachdem ein TIN-Dataset erstellt wurde, kann es mit dem Werkzeug TIN bearbeiten modifiziert werden, um weitere Feature-basierte Messungen in die TIN-Oberfläche aufzunehmen. Sie können auch das Werkzeug TIN-Daten-Fläche skizzieren verwenden, um anhand der maximalen Länge einer Dreieckskante zu definieren, welche TIN-Dreiecke die Interpolationszone bilden. Die TIN-Oberfläche kann auch durch interaktive Bearbeitung modifiziert werden.
Parameter
arcpy.ddd.CreateTin(out_tin, {spatial_reference}, {in_features}, {constrained_delaunay})
Name | Erläuterung | Datentyp |
out_tin | Das erstellte TIN-Dataset. | TIN |
spatial_reference (optional) | Der Raumbezug des Ausgabe-TINs. Legen Sie den Raumbezug auf ein projiziertes Koordinatensystem fest. Geographische Koordinatensysteme werden nicht empfohlen, da die Delaunay-Triangulation nicht garantiert werden kann, wenn die XY-Koordinaten in Winkeleinheiten ausgedrückt sind, was negative Auswirkungen auf die Genauigkeit entfernungsbasierter Berechnungen wie Neigung, Volumen und Sichtbarkeitslinie haben kann. | Coordinate System |
in_features [[in_features, height_field, SF_type, tag_value],...] (optional) | Die Eingabe-Features und die zugehörigen Eigenschaften, die zur Definition des TIN beitragen.
| Value Table |
constrained_delaunay (optional) | Gibt die entlang der Bruchkanten des TINs angewendete Triangulationstechnik an.
| Boolean |
Codebeispiel
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.
arcpy.env.workspace = "C:/data"
arcpy.ddd.CreateTin("NewTIN", "NAD 1983 StatePlane California II FIPS 0402 (Feet).prj",
"points.shp Shape.Z masspoints", "constrained_delaunay")
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''****************************************************************************
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
# 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:
# Execute LASToMultipoint
lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code,
"ANY_RETURNS", "", sr, inFormat, zfactor)
# Execute CreateTin
arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
.format(lasMP), "Delaunay")
# Execute CopyTin
arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
# Execute DelineateTinDataArea
maxEdge = ptSpacing * 4
arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
# Execute TinDomain
arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
except arcpy.ExecuteError:
print(arcpy.GetMessages())
except Exception as err:
print(err)