Zusammenfassung
Definiert die Datenfläche oder Interpolationszone eines unregelmäßigen Dreiecksnetzes (TIN) auf Grundlage seiner Dreieckskantenlänge neu.
Abbildung
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.
-
Die Methode bestimmt, welche Dreiecke ausgewertet werden.
Syntax
DelineateTinDataArea_3d (in_tin, max_edge_length, {method})
Parameter | Erläuterung | Datentyp |
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.
| String |
Codebeispiel
DelineateTinDataArea – Beispiel 1 (Python-Fenster)
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.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
import exceptions, sys, traceback
# 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:
arcpy.CheckOutExtension("3D")
# Execute LASToMultipoint
arcpy.AddMessage("Creating multipoint features from LAS...")
lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code,
"ANY_RETURNS", "", sr, inFormat, zfactor)
# Execute CreateTin
arcpy.AddMessage("Creating TIN dataset...")
arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
.format(lasMP), "Delaunay")
# Execute CopyTin
arcpy.AddMessage("Copying TIN to delineate data boundary...")
arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
# Execute DelineateTinDataArea
arcpy.AddMessage("Delineating TIN boundary...")
maxEdge = ptSpacing * 4
arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
# Execute TinDomain
arcpy.AddMessage("Exporting data area to polygon boundary...")
arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
arcpy.AddMessage("Finished")
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)
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Erfordert 3D Analyst
- ArcGIS Desktop Standard: Erfordert 3D Analyst
- ArcGIS Desktop Advanced: Erfordert 3D Analyst
Verwandte Themen
- Überblick über das Toolset "Datenmanagement"
- Grundlagen von Oberflächen
- Oberflächenformate
- TIN-basierte Oberflächenkonzepte
- Was ist eine TIN-Oberfläche?
- Grundlagen zum Erstellen von TIN-Oberflächen
- Grundlagen zum Bearbeiten von TIN-Oberflächen
- Bearbeiten von Features eines TINs mit Geoverarbeitungswerkzeugen
- Geoverarbeitungswerkzeuge für TIN-Oberflächen