TIN-Domäne (3D Analyst)
Zusammenfassung
Erstellt eine Linien- oder Polygon-Feature-Class, die die Interpolationszone eines triangulierten unregelmäßigen Netzwerk-Datasets (TIN-Dataset, Triangulated Irregular Network) darstellt.
Bild
![]() |
TIN-Domäne |
Verwendung
-
Mit diesem Werkzeug können Sie eine konvexe Hülle (das kleinste umfassende Polygon) um eine Gruppe von Punkten erstellen. Wenn keine Clip- oder Erase-Polygone zum Definieren des TIN verwendet werden, entspricht die Domäne der konvexen Hülle.
Die Ausgabegeometrie wird in einem Feature-Datensatz abgelegt und kann je nach Art der Interpolationszone eine Singlepart- oder eine Multipart-Geometrie sein. Wenn die Interpolationszone beispielsweise Inseln aufweist oder Löcher enthält, ergibt sich eine Multipart-Geometrie.
Hinweis:
3D-Polygone enthalten Höhenwerte nur entlang des Umfangs von Features, da die inneren Teile des Polygons keine Stützpunkte enthalten. Wenn die Grenzstützpunkte in 3D mit einer Flächenfüllung gezeichnet sind, werden sie willkürlich zu Dreiecken für das Rendern verbunden. Sofern es sich nicht um ein planares Polygon handelt, das entweder geneigt oder horizontal ist, ist es unwahrscheinlich, dass die Füllung die Innenfläche genau darstellt. Aus diesem Grund wird empfohlen, nicht planare 3D-Polygone ohne Füllsymbologie zu zeichnen.
Syntax
Parameter | Erläuterung | Datentyp |
in_tin |
Das Eingabe-TIN. | TIN Layer |
out_feature_class |
Die Ausgabe-Feature-Class. | Feature Class |
out_geometry_type |
Die Geometrie der Ausgabe-Feature-Class.
| String |
Codebeispiel
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.TinDomain_3d('tin', 'tin_domain.shp')
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)