TIN-Daten-Fläche skizzieren (3D Analyst)

Zusammenfassung

Definiert die Datenfläche oder Interpolationszone eines unregelmäßigen Dreiecksnetzes (TIN) auf Grundlage seiner Dreieckskantenlänge neu.

Abbildung

Abbildung: TIN-Daten-Fläche skizzieren

Verwendung

  • Dieses Werkzeug entfernt keine Quelldaten. Es ändert das Eingabe-TIN, indem seine Kanten so reklassifiziert werden, dass sie in die Interpolationszone eingeschlossen oder aus ihr ausgeschlossen werden. Wenn Sie eine nicht geänderte Version des TIN beibehalten möchten, das verarbeitet wird, können Sie ein dupliziertes Dataset erstellen, indem Sie das Werkzeug TIN kopieren vor der Ausführung dieses Werkzeugs verwenden.

  • Alle Dreieckskanten werden überprüft, bevor die Kantenlängenklassifizierung beginnt. Dies macht jede vorhandene Datenbereichsklassifizierung rückgängig. Wenn das von einer Ausführung erhaltene Ergebnis nicht zufriedenstellend ist, kann das resultierende TIN erneut ausgeführt werden, ohne dass die Originaldaten abgerufen werden müssen.

  • Extreme Kantenlängen, die durch konkave Merkmale in den Quellmesswerten des TINs hervorgerufen werden können, können mithilfe dieses Werkzeugs aus dem gültigen Datenbereich des TINs entfernt werden. Dreiecke mit einer Kante, die die Maximale Kantenlänge überschreitet, werden als NoData-Bereiche ausgeblendet.

    Hinweis:

    Der Wert für Maximale Kantenlänge lässt sich am besten aus dem mittleren Abstand von TIN-Knoten innerhalb der Bereiche ermitteln, die gültige Datenzonen sind. Geben Sie einen Wert ein, der größer ist als der mittlere Punktabstand. Die erfolgreichste Verwendung dieses Werkzeugs basiert auf der Kenntnis der zum Erstellen des TINs verwendeten Daten.

  • Über die Methode wird bestimmt, welche Dreiecke ausgewertet werden.

    Hinweis:

    Verwenden Sie Umfangskanten (method = "PERIMETER_ONLY" in Python), wenn die Datenteile mit konkaven Merkmale an den äußeren Rändern des TIN liegen.

Syntax

arcpy.3d.DelineateTinDataArea(in_tin, max_edge_length, {method})
ParameterErklärungDatentyp
in_tin

Das zu verarbeitende TIN-Dataset.

TIN Layer
max_edge_length

Die zweidimensionale Entfernung, die die maximale Länge einer TIN-Dreieckskante im TIN-Datenbereich definiert. Dreiecke mit mindestens einer Kante, die diesen Wert überschreitet, werden als außerhalb des Interpolationsbereichs des TINs liegend betrachtet und in Karten nicht gerendert bzw. in der Oberflächenanalyse nicht verwendet.

Double
method
(optional)

Die TIN-Kanten, die beim Abgrenzen des Datenbereichs des TIN überprüft werden.

  • PERIMETER_ONLYDurchläuft die Dreiecke in der äußeren Ausdehnung des TIN in Richtung Mitte. Sie wird angehalten, wenn die derzeitige Iteration der Grenzdreieckskanten die Maximale Kantenlänge nicht überschreitet. Dies ist die Standardeinstellung.
  • ALLKlassifiziert die gesamte Sammlung von TIN-Dreiecken nach Kantenlänge.
String

Abgeleitete Ausgabe

NameErklärungDatentyp
derived_out_tin

Das aktualisierte TIN.

TIN-Layer

Codebeispiel

DelineateTinDataArea – Beispiel 1 (Python-Fenster)

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

arcpy.env.workspace = "C:/data"
arcpy.DelineateTinDataArea_3d("elevation", 10, "PERIMETER_ONLY")
DelineateTinDataArea – 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