Domaines TIN (3D Analyst)

Synthèse

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

Illustration de l'outil Domaines TIN
Domaines TIN

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 le rendu. 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é de dessiner des polygones 3D non planaires sans symbologie de remplissage.

Paramètres

ÉtiquetteExplicationType de données
TIN en entrée

Jeu de données TIN qui sera traité.

TIN Layer
Classe d’entités en sortie

Classe d’entités qui va être produite.

Feature Class
Type de classe d’entités en sortie

Géométrie de la classe d'entités en sortie.

  • LINELa sortie sera une classe d'entités linéaires prenant en charge les valeurs z.
  • POLYGONLa sortie sera une classe d'entités surfaciques prenant en charge les valeurs z.
String

arcpy.ddd.TinDomain(in_tin, out_feature_class, out_geometry_type)
NomExplicationType de données
in_tin

Jeu de données TIN qui sera traité.

TIN Layer
out_feature_class

Classe d’entités qui va être produite.

Feature Class
out_geometry_type

Géométrie de la classe d'entités en sortie.

  • LINELa sortie sera une classe d'entités linéaires prenant en charge les valeurs z.
  • POLYGONLa sortie sera une classe d'entités surfaciques prenant en charge les valeurs z.
String

Exemple de code

Exemple 1 d'utilisation de l'outil TinDomain (fenêtre Python)

L’exemple suivant illustre l’utilisation de cet outil dans la fenêtre Python.

arcpy.env.workspace = 'C:/data'
arcpy.ddd.TinDomain('tin', 'tin_domain.shp', out_geometry_type='POLYGON')
Exemple 2 d'utilisation de l'outil TinDomain (script autonome)

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

# 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)

Rubriques connexes