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.
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})
Parameter | Erklärung | 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 |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
derived_out_tin | Das aktualisierte TIN. | TIN-Layer |
Codebeispiel
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")
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)
Umgebungen
Lizenzinformationen
- Basic: Erfordert 3D Analyst
- Standard: Erfordert 3D Analyst
- Advanced: Erfordert 3D Analyst