TIN erstellen (3D Analyst)

Zusammenfassung

Erstellt ein TIN-Dataset (Triangulated Irregular Network).

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 bereitstellen, deren Z-Werte 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.
  • Die maximale Anzahl der von einem TIN unterstützten Knoten hängt in erster Linie davon ab, wie viele freie, zusammenhängende Speicherressourcen auf dem Computer verfügbar sind. Sie können die Gesamtzahl der Knoten zur Beibehaltung einer reaktionsschnellen Darstellungs-Performance und allgemeinen Benutzerfreundlichkeit auf einen Wert unter 6 Mio. begrenzen. Größere triangulierte Oberflächen werden am besten mit einem Terrain-Dataset mit mehreren Auflösungen verwaltet.

  • Legen Sie die Umgebungseinstellung für die TIN-Speicherungsversion auf PRE_10.0 fest, wenn das zu erstellende TIN in Versionen von ArcGIS Desktop vor 10.0 verwendet wird.

Syntax

arcpy.3d.CreateTin(out_tin, {spatial_reference}, {in_features}, {constrained_delaunay})
ParameterErklärungDatentyp
out_tin

Das erstellte TIN-Dataset.

TIN
spatial_reference
(optional)

Der Raumbezug des Ausgabe-TIN sollte auf ein projiziertes Koordinatensystem festgelegt werden. 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 Sichtlinie 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.

  • in_features: Das Feature, dessen Geometrie in das TIN importiert wird.
  • height_field: Die Quelle der Höhe für die Eingabe-Features. Jedes numerische Feld aus der Attributtabelle des Eingabe-Features kann mit Shape.Z für die Z-Werte von 3D-Features und Shape.M für die mit der Geometrie gespeicherten M-Werte angegeben werden. Wenn Sie das Schlüsselwort <None> auswählen, wird die Höhe des Features aus der umgebenden Oberfläche interpoliert.
  • sf_type: Die Rolle des Eingabe-Features beim Definieren der TIN-Oberfläche. Die gültigen Optionen hängen von der Geometrie der Eingabe-Features ab. Punkt- und Multipoint-Features können als Mass_Points definiert werden, die Höhenwerte bereitstellen, die als TIN-Datenknoten gespeichert werden. Linien-Features können durch Angabe von Mass_Points oder Hard_Line als Soft_Line oder Bruchkanten festgelegt werden. Polygon-Features können die Interpolationsgrenze durch Festlegen von Hard_Clip oder Soft_Clip, innere Teile ohne Daten durch Auswahl von Hard_Erase oder Soft_Erase oder Flächen mit konstanter Höhe durch Festlegen von Hard_Replace oder Soft_Replace darstellen. Mit Polygonen können außerdem ganzzahlige Attributwerte durch Angabe von Hardvalue_Fill oder Softvalue_Fill zugewiesen werden.
  • tag_field: Ein numerisches Attribut, das von einem ganzzahligen Feld in der Attributtabelle des Eingabe-Features abgeleitet wird, dessen Werte verwendet werden können, um den Datenelementen des TIN eine einfache Form der Attributierung zuzuweisen. Wenn <None> festgelegt wird, werden keine Tag-Werte zugewiesen.
Value Table
constrained_delaunay
(optional)

Gibt die entlang der Bruchkanten des TINs angewendete Triangulationstechnik an.

  • DELAUNAYDas TIN verwendet eine Delaunay-konforme Triangulation, bei der jedes Segment der Bruchkanten verdichtet werden kann, um mehrere Dreieckskanten zu erzeugen. Dies ist die Standardeinstellung.
  • CONSTRAINED_DELAUNAYDas TIN verwendet die Constrained Delaunay-Triangulation, bei der jedes Segment als einzelne Kante hinzugefügt wird. Delaunay-Triangulationsregeln werden überall außer bei Bruchkanten befolgt, die nicht verdichtet werden.
Boolean

Codebeispiel

CreateTin – Beispiel 1 (Python-Fenster)

Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.

arcpy.env.workspace = "C:/data"
arcpy.CreateTin_3d("NewTIN", "NAD 1983 StatePlane California II FIPS 0402 (Feet).prj", 
                   "points.shp Shape.Z masspoints", "constrained_delaunay")
CreateTin – Beispiel 2 (eigenständiges Skript)

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)

Lizenzinformationen

  • Basic: Erfordert 3D Analyst
  • Standard: Erfordert 3D Analyst
  • Advanced: Erfordert 3D Analyst

Verwandte Themen