Délimiter la zone de données d’un TIN (3D Analyst)

Synthèse

Redéfinit la zone de données, ou zone d'interpolation, d'un réseau triangulé irrégulier (TIN) à partir de la longueur du segment de triangle.

Illustration

Illustration de l’outil Délimiter la zone de données d’un TIN

Utilisation

  • Cet outil n’élimine aucune des données source. Il modifie le TIN en entrée en reclassifiant ses arêtes pour qu’elles soient incluses ou exclues de la zone d’interpolation. Si vous souhaitez conserver une version intacte du TIN qui va être traité, créez un double du jeu de données à l’aide de l’outil Copier TIN avant d’exécuter cet outil.

  • Toutes les arêtes des triangles sont évaluées avant le début de la classification de la longueur des arêtes. Cette opération annulera toute classification de zone de données existante. Si le résultat provenant d'une exécution n'est pas satisfaisant, le TIN obtenu peut être de nouveau exécuté sans qu'il soit nécessaire d'obtenir les données d'origine.

  • Les longueurs de segment extrêmes produites par des caractéristiques concaves dans les mesures source du TIN peuvent être supprimées de la zone des données valide du TIN à l’aide de cet outil. Les triangles dont un segment excède la longueur de segment maximale (champ Maximum Edge Length) sont masqués en tant que zones NoData.

    Remarque :

    La valeur Maximum Edge Length (Longueur de segment maximale) est déterminée de façon plus précise à partir de l’espacement moyen des nœuds TIN au sein des surfaces considérées comme des zones de données valides. Fournissez une valeur supérieure à l’espacement moyen. Pour employer cet outil de manière optimale, il est nécessaire de connaître les données utilisées pour créer le TIN.

  • La méthode (champ Method) détermine les triangles qui sont évalués.

    Remarque :

    Utilisez Perimeter Edges (Tronçons de périmètre) (method = "PERIMETER_ONLY" dans Python) si les portions de données concaves sont reléguées aux extrémités externes du TIN.

Paramètres

ÉtiquetteExplicationType de données
TIN en entrée

Jeu de données TIN qui sera traité.

TIN Layer
Longueur de segment maximale

Distance bidimensionnelle qui définit la longueur maximale d’un segment de triangle TIN dans la zone de données du TIN. Les triangles dont un ou plusieurs segments excèdent cette valeur seront considérés comme étant à l'extérieur de la zone d'interpolation du TIN et ne seront pas représentés dans des cartes ni utilisés dans une analyse de surface.

Double
Méthode
(Facultatif)

Tronçons TIN qui seront évalués lors de la délimitation de la surface des données du TIN.

  • PERIMETER_ONLYSe répète sur les triangles à partir de l’étendue extérieure du TIN et s’arrête avant que l’itération actuelle des arêtes du triangle de contour ne dépasse la valeur Maximum Edge Length (Longueur de segment maximale). Il s’agit de l’option par défaut.
  • ALLClassifie l'intégralité de la collection de triangles TIN selon la longueur d'arête.
String

Sortie obtenue

ÉtiquetteExplicationType de données
TIN mis à jour

TIN mis à jour.

Couche du TIN

arcpy.ddd.DelineateTinDataArea(in_tin, max_edge_length, {method})
NomExplicationType de données
in_tin

Jeu de données TIN qui sera traité.

TIN Layer
max_edge_length

Distance bidimensionnelle qui définit la longueur maximale d’un segment de triangle TIN dans la zone de données du TIN. Les triangles dont un ou plusieurs segments excèdent cette valeur seront considérés comme étant à l'extérieur de la zone d'interpolation du TIN et ne seront pas représentés dans des cartes ni utilisés dans une analyse de surface.

Double
method
(Facultatif)

Tronçons TIN qui seront évalués lors de la délimitation de la surface des données du TIN.

  • PERIMETER_ONLYSe répète sur les triangles à partir de l’étendue extérieure du TIN et s’arrête avant que l’itération actuelle des arêtes du triangle de contour ne dépasse la valeur Maximum Edge Length (Longueur de segment maximale). Il s’agit de l’option par défaut.
  • ALLClassifie l'intégralité de la collection de triangles TIN selon la longueur d'arête.
String

Sortie obtenue

NomExplicationType de données
derived_out_tin

TIN mis à jour.

Couche du TIN

Exemple de code

1er exemple d'utilisation de l'outil DelineateTinDataArea (fenêtre Python)

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

arcpy.env.workspace = "C:/data"
arcpy.ddd.DelineateTinDataArea("elevation", 10, "PERIMETER_ONLY")
2e exemple d'utilisation de l'outil DelineateTinDataArea (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