Domaines TIN (3D Analyst)
Récapitulatif
Crée une classe d'entités linéaires ou surfaciques représentant la zone d'interpolation d'un jeu de données TIN.
Illustration
Utilisation
-
Cet outil permet de produire une enveloppe convexe (polygone d'emprise minimale) autour d'un ensemble de points. Si aucun polygone d'effacement ou de découpage n'est utilisé pour définir le TIN, le domaine équivaut à l'enveloppe convexe.
La géométrie en sortie est placée dans un seul enregistrement d'entité et peut être une géométrie unique ou multi-parties, selon la nature de la zone d'interpolation. Par exemple, si la zone d'interpolation est composée d'îlots ou contient des trous, la géométrie résultante sera multi-parties.
Remarque :Les polygones 3D contiennent seulement des valeurs d'altitude le long du périmètre des entités, car les portions intérieures du polygone ne contiendront pas de sommets. En cas de dessin en 3D avec une zone de remplissage, les sommets de limite sont connectés arbitrairement aux triangles pour l'affichage. A moins que le polygone soit plane, incliné ou horizontal, il est peu probable que le remplissage représente précisément la surface intérieure. Pour cette raison, il est recommandé que des polygones 3D non planaires soient dessinés sans symbologie de remplissage.
Syntaxe
Paramètre | Explication | Type de données |
in_tin |
TIN en entrée. | TIN Layer |
out_feature_class |
Classe d'entités en sortie. | Feature Class |
out_geometry_type |
Géométrie de la classe d'entités en sortie.
| String |
Exemple de code
L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python :
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.TinDomain_3d('tin', 'tin_domain.shp')
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome :
'''****************************************************************************
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)