Créer un TIN (3D Analyst)

Synthèse

Crée un jeu de données de réseau triangulé irrégulier (TIN).

Illustration

Illustration de l’outil Créer un TIN.

Utilisation

  • Évitez de créer un TIN avec un système de coordonnées géographiques, car la règle de triangulation de Delaunay ne peut pas être appliquée de manière efficace lorsque les unités x,y sont exprimées dans des coordonnées sphériques.

  • Le type d'entité de surface détermine dans quelle mesure les entités en entrée vont contribuer à la définition de la surface triangulée.

    • Les entités ponctuelles peuvent être spécifiées en tant que points de masse qui offrent des nœuds de données dont les valeurs Z sont utilisées dans la triangulation de la surface.
    • Les entités linéaires peuvent être spécifiées en tant que points cotés et lignes de fracture, qui représentent les emplacements le long d'une surface avec des discontinuités linéaires au niveau de la pente (par exemple, des lignes de crête, des lignes de rivage, des limites de chaussée, des emprises de bâtiment, etc.).
    • Les entités surfaciques peuvent également être spécifiées en tant que points de masse et lignes de fracture, ainsi que les entités de découpage qui définissent la zone de données, remplacent les entités qui définissent les régions par des valeurs Z constantes (plans d’eau, par exemple) et effacent les entités qui indiquent des zones internes où aucune donnée n’est présente.
  • L’outil peut créer un TIN composé de plusieurs millions de points si la mémoire est suffisante. Toutefois, le fait de limiter le nombre de nœuds TIN à moins de 6 millions garantit la réactivité des performances d’affichage et la facilité d’utilisation. Il est préférable de gérer les surfaces TIN plus importantes à l’aide d’un jeu de données de MNT à plusieurs résolutions. Lorsque vous utilisez des données de nuage de points au format LAS, le jeu de données LAS permet d’afficher et de traiter efficacement les points LAS dans une surface TIN qui intègre les mêmes contraintes de surface basées sur des polylignes et des polygones que celles qui sont prises en charge dans un jeu de données TIN.

  • Définissez le paramètre d’environnement Version de stockage TIN sur PRE_10.0 si le TIN en cours de création va être utilisé dans des versions de ArcGIS Desktop antérieures à 10.0.

  • Une fois un jeu de données TIN créé, vous pouvez le modifier à l’aide de l’outil Mettre à jour un TIN afin d’intégrer des mesures supplémentaires basées sur des entités à la surface TIN. Vous pouvez également utiliser l’outil Délimiter la zone de données d’un TIN pour définir les triangles TIN qui constituent la zone d’interpolation en fonction de la longueur maximale de segment d’un triangle. Il est également possible de modifier la surface TIN grâce à la mise à jour interactive.

Paramètres

ÉtiquetteExplicationType de données
TIN en sortie

Jeu de données TIN qui va être généré.

TIN
Système de coordonnées
(Facultatif)

Référence spatiale du TIN en sortie. Définissez la référence spatiale sur un système de coordonnées projetées. Il est déconseillé d’utiliser des systèmes de coordonnées géographiques car la triangulation de Delaunay ne peut pas être garantie lorsque les coordonnées x,y sont exprimées en unités angulaires, ce qui peut avoir un effet négatif sur la précision des calculs basés sur la distance, comme la pente, le volume et la ligne de visée.

Coordinate System
Classe d’entités en entrée
(Facultatif)

Les entités en entrée et leurs propriétés associées qui contribueront à la définition du TIN.

  • Entités en entrée : entité dont la géométrie va être importée dans le TIN.
  • Champ de hauteur : source d’élévation des entités en entrée. Les champs numériques issus de la table attributaire des entités en entrée peuvent être utilisés, ainsi que Shape.Z pour les valeurs z des entités 3D et Shape.M pour les valeurs m stockées dans la géométrie. Si le mot-clé <None> est sélectionné, l’élévation de l’entité est interpolée à partir de la surface environnante.
  • Type : définit le rôle des entités dans la modélisation de la surface TIN. Consultez les conseils d'utilisation de l'outil pour plus d'informations sur les types d'entités de surface.
  • Champ de balise : un attribut numérique est affecté aux éléments de données du TIN à l’aide des valeurs obtenues d’un champ d’entier figurant dans la table attributaire des entités en entrée.
Value Table
Delaunay sous contraintes
(Facultatif)

Spécifie la technique de triangulation qui est utilisée le long des lignes de fracture du TIN.

  • Désactivé - Le TIN utilise la triangulation de Delaunay qui peut densifier chaque segment des lignes de rupture pour produire plusieurs arêtes de triangle. Il s’agit de l’option par défaut.
  • Activé - Le TIN utilise la triangulation de Delaunay avec contrainte qui ajoute chaque segment sous la forme d'une arête unique. Les règles de triangulation de Delaunay sont reconnues partout, sauf le long des lignes de fracture, lesquelles ne sont pas densifiées.
Boolean

arcpy.ddd.CreateTin(out_tin, {spatial_reference}, {in_features}, {constrained_delaunay})
NomExplicationType de données
out_tin

Jeu de données TIN qui va être généré.

TIN
spatial_reference
(Facultatif)

Référence spatiale du TIN en sortie. Définissez la référence spatiale sur un système de coordonnées projetées. Il est déconseillé d’utiliser des systèmes de coordonnées géographiques car la triangulation de Delaunay ne peut pas être garantie lorsque les coordonnées x,y sont exprimées en unités angulaires, ce qui peut avoir un effet négatif sur la précision des calculs basés sur la distance, comme la pente, le volume et la ligne de visée.

Coordinate System
in_features
[[in_features, height_field, SF_type, tag_value],...]
(Facultatif)

Les entités en entrée et leurs propriétés associées qui contribueront à la définition du TIN.

  • in_features : entité dont la géométrie va être importée dans le TIN.
  • height_field : source d’élévation des entités en entrée. Les champs numériques issus de la table attributaire des entités en entrée peuvent être spécifiés, ainsi que Shape.Z pour les valeurs z des entités 3D et Shape.M pour les valeurs m stockées avec la géométrie. Si le mot-clé <None> est sélectionné, l’élévation de l’entité est interpolée à partir de la surface environnante.
  • sf_type : rôle des entités en entrée qui va être défini dans la définition de la surface TIN. Les options valides dépendent de la géométrie des entités en entrée. Les entités ponctuelles et multi-points peuvent être définies comme Mass_Points, qui contribuent aux valeurs d’altitude qui sont stockées sous forme de nœuds de données TIN. Les entités linéaires peuvent être désignées comme Mass_Points ou lignes de fracture en spécifiant Hard_Line ou Soft_Line. Les entités surfaciques peuvent représenter la limite d’interpolation en spécifiant Hard_Clip ou Soft_Clip, des portions intérieures sans données en choisissant Hard_Erase ou Soft_Erase, ou des zones de hauteur constante en spécifiant Hard_Replace ou Soft_Replace. En outre, les polygones peuvent également servir à attribuer des valeurs attributaires entières en spécifiant Hardvalue_Fill ou Softvalue_Fill.
  • tag_field : attribut numérique découlant d’un champ d’entier dans la table attributaire des entités en entrée dont les valeurs peuvent servir à affecter une forme élémentaire d’attribution aux éléments de données du TIN. Si vous indiquez <None>, aucune valeur de balise n’est attribuée.
Value Table
constrained_delaunay
(Facultatif)

Spécifie la technique de triangulation qui est utilisée le long des lignes de fracture du TIN.

  • DELAUNAYLe TIN utilise la triangulation de Delaunay qui peut densifier chaque segment des lignes de rupture pour produire plusieurs arêtes de triangle. Il s’agit de l’option par défaut.
  • CONSTRAINED_DELAUNAYLe TIN utilise la triangulation de Delaunay avec contrainte qui ajoute chaque segment sous la forme d'une arête unique. Les règles de triangulation de Delaunay sont reconnues partout, sauf le long des lignes de fracture, lesquelles ne sont pas densifiées.
Boolean

Exemple de code

Exemple 1 d’utilisation de la fonction CreateTin (fenêtre Python)

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

arcpy.env.workspace = "C:/data"
arcpy.ddd.CreateTin("NewTIN", "NAD 1983 StatePlane California II FIPS 0402 (Feet).prj", 
                   "points.shp Shape.Z masspoints", "constrained_delaunay")
Exemple 2 d’utilisation de la fonction CreateTin (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