Créer un MNT (3D Analyst)

Synthèse

Crée un jeu de données de MNT.

Utilisation

  • La valeur du paramètre The Average Point Spacing (Espacement moyen des points) doit refléter une approximation valable des données qui seront utilisées dans le MNT, car elle servira à définir la taille des tuiles internes du MNT qui sont utilisées pour optimiser l’analyse des données et les performances d’affichage. De manière approximative, chaque tuile ne peut contenir plus de 200 000 points d'altitude source. Si les données ont été rassemblées à des densités considérablement différentes d'un emplacement à un autre, la valeur spécifiée doit privilégier le plus petit espacement.

  • Une fois l’outil exécuté, utilisez l’outil Ajouter un niveau de pyramide au MNT pour spécifier la définition de pyramide, l’outil Ajouter une classe d’entités au MNT pour référencer les sources de données qui participent à la surface, et l’outil Générer un MNT (dans l’ordre) pour achever la construction du MNT.

Paramètres

ÉtiquetteExplicationType de données
Jeu de classes d’entités en entrée

Jeu de données d'entité devant contenir le jeu de données de MNT.

Feature Dataset
MNT en sortie

Nom du jeu de données de MNT.

String
Espacement moyen des points

Distance horizontale moyenne entre les points de données qui seront utilisés dans la modélisation du MNT. Les mesures reposant sur des capteurs, telles que les relevés photogrammétriques, de radar optique (LIDAR) et sonar, possèdent généralement un espacement connu qui doit être utilisé. Utilisez les unités horizontales du système de coordonnées du jeu de classes d’entités pour l’espacement.

Double
Taille maximale de l’aperçu
(Facultatif)

La vue d’ensemble du MNT ressemble au concept de miniature d’image. Il s'agit de la représentation la plus grossière du jeu de données de MNT. La taille maximale représente la limite supérieure du nombre de points de mesure pouvant être échantillonnés pour créer la vue d'ensemble.

Long
Mot-clé de configuration
(Facultatif)

Mot-clé de configuration permettant d’optimiser le stockage du MNT dans une base de données d’entreprise.

String
Type de pyramide
(Facultatif)

Spécifie la méthode d’affinage de points utilisée pour construire les erreurs systématiques.

  • Taille de fenêtreLes points de données dans la surface définie par une taille de fenêtre donnée pour chaque niveau de pyramide sont sélectionnés à l’aide de la valeur du paramètre Window Size Method (Méthode de la taille de fenêtre). Il s’agit de l’option par défaut.
  • Tolérance ZLa précision verticale de chaque niveau de pyramide par rapport aux données de résolution maximale des points de données sera spécifiée.
String
Méthode de la taille de fenêtre
(Facultatif)

Indique comment les points de la surface définie par la taille de fenêtre seront sélectionnés. Ce paramètre s’applique uniquement lorsque le filtre Window Size (Taille de fenêtre) est spécifié dans le paramètre Pyramid Type (Type de pyramide).

  • Z minimumLe point présentant la plus petite valeur d’altitude sera sélectionné. Il s’agit de l’option par défaut.
  • Z maximumLe point présentant la plus grande valeur d’altitude sera sélectionné.
  • Valeur Z la plus proche de la moyenneLe point présentant la valeur d’altitude la plus proche de la moyenne de toutes les valeurs sera sélectionné.
  • Z minimum et maximumLes points présentant la valeur d’altitude la plus petite et la valeur d’altitude la plus grande seront sélectionnés.
String
Méthode d’affinage secondaire
(Facultatif)

Spécifie l’affinage supplémentaire qui sera appliqué pour réduire le nombre de points utilisés sur des surfaces planes lorsque les pyramides de taille de fenêtre sont utilisées. Une surface est considérée comme plane si les hauteurs des points de cette surface sont conformes à la valeur du paramètre Secondary Thinning Threshold (Seuil d’affinage secondaire). Ses répercussions sont plus notables à des niveaux de pyramide de résolution plus élevée, car les petites surfaces ont plus de chances d'être planes que les grandes.

  • AucunAucun affinage secondaire n'est effectué. Il s’agit de l’option par défaut.
  • FaibleUn affinage léger est appliqué pour conserver les discontinuités linéaires (côtés de bâtiments et limites de forêt, par exemple). Cette méthode est recommandée pour les lidar comprenant des points terrestres et non terrestres. Il affine moins de points.
  • ModéréUn affinage modéré est appliqué, ce qui offre un bon équilibre entre performances et précision. Cette méthode ne conserve pas autant de détail que l’affinage léger, mais il s’en rapproche tout en supprimant plus de points dans l’ensemble.
  • ForteUn affinage élevé est appliqué, ce qui supprime le plus de points, mais est moins susceptible de conserver des entités fortement délimitées. Limitez son usage aux surfaces où la pente a tendance à changer progressivement. Par exemple, l’affinage élevé est efficace pour un lidar de terre nue et des données bathymétriques.
String
Seuil d’affinage secondaire
(Facultatif)

Le seuil vertical utilisé pour activer l’affinage secondaire lorsque le paramètre Pyramid Type (Type de pyramide) est défini sur Window Size (Taille de fenêtre). La valeur doit être supérieure ou égale à la précision verticale des données.

Double
Méthode de triangulation
(Facultatif)

Indique si les entités de lignes de fracture seront intégrées dans la surface du MNT en densifiant leurs segments conformément aux règles de triangulation de Delaunay afin de construire une surface TIN.

La triangulation de Delaunay va densifier les entités de lignes de fracture pour accueillir les points qui les entourent de façon à éviter la création de longs triangles fin qui occasionnent généralement des résultats indésirables lors de l’analyse d’une surface TIN. En outre, l’interpolation des voisins naturels et la génération des polygones de Thiessen (Voronoi) peuvent uniquement s’effectuer sur des triangulations de Delaunay conformes.

Une triangulation de Delaunay sous contraintes évite la densification des entités de lignes de fracture, en intégrant les segments de lignes de fracture sous forme de tronçons dans la surface TIN. Envisagez cette option lorsque vous devez explicitement définir certains tronçons dont vous êtes certain qu’ils ne seront pas modifiés (c’est-à-dire fractionnés en plusieurs tronçons) par le triangulateur.

  • DelaunayLes lignes de fracture seront densifiées afin de construire des triangles Delaunay qui accueillent les points qui les entourent. Il s’agit de l’option par défaut.
  • Delaunay sous contraintesLes lignes de fracture ne sont pas densifiées.
String

Sortie obtenue

ÉtiquetteExplicationType de données
MNT en sortie

Nouveau jeu de données de MNT.

Terrain

arcpy.ddd.CreateTerrain(in_feature_dataset, out_terrain_name, average_point_spacing, {max_overview_size}, {config_keyword}, {pyramid_type}, {windowsize_method}, {secondary_thinning_method}, {secondary_thinning_threshold}, {triangulation_method})
NomExplicationType de données
in_feature_dataset

Jeu de données d'entité devant contenir le jeu de données de MNT.

Feature Dataset
out_terrain_name

Nom du jeu de données de MNT.

String
average_point_spacing

Distance horizontale moyenne entre les points de données qui seront utilisés dans la modélisation du MNT. Les mesures reposant sur des capteurs, telles que les relevés photogrammétriques, de radar optique (LIDAR) et sonar, possèdent généralement un espacement connu qui doit être utilisé. Utilisez les unités horizontales du système de coordonnées du jeu de classes d’entités pour l’espacement.

Double
max_overview_size
(Facultatif)

La vue d’ensemble du MNT ressemble au concept de miniature d’image. Il s'agit de la représentation la plus grossière du jeu de données de MNT. La taille maximale représente la limite supérieure du nombre de points de mesure pouvant être échantillonnés pour créer la vue d'ensemble.

Long
config_keyword
(Facultatif)

Mot-clé de configuration permettant d’optimiser le stockage du MNT dans une base de données d’entreprise.

String
pyramid_type
(Facultatif)

Spécifie la méthode d’affinage de points utilisée pour construire les erreurs systématiques.

  • WINDOWSIZELes points de données dans la surface définie par une taille de fenêtre donnée pour chaque niveau de pyramide sont sélectionnés à l’aide de la valeur du paramètre windowsize_method. Il s’agit de l’option par défaut.
  • ZTOLERANCELa précision verticale de chaque niveau de pyramide par rapport aux données de résolution maximale des points de données sera spécifiée.
String
windowsize_method
(Facultatif)

Indique comment les points de la surface définie par la taille de fenêtre seront sélectionnés. Ce paramètre s’applique uniquement lorsque WINDOWSIZE est spécifié dans le paramètre pyramid_type.

  • ZMINLe point présentant la plus petite valeur d’altitude sera sélectionné. Il s’agit de l’option par défaut.
  • ZMAXLe point présentant la plus grande valeur d’altitude sera sélectionné.
  • ZMEANLe point présentant la valeur d’altitude la plus proche de la moyenne de toutes les valeurs sera sélectionné.
  • ZMINMAXLes points présentant la valeur d’altitude la plus petite et la valeur d’altitude la plus grande seront sélectionnés.
String
secondary_thinning_method
(Facultatif)

Spécifie l’affinage supplémentaire qui sera appliqué pour réduire le nombre de points utilisés sur des surfaces planes lorsque les pyramides de taille de fenêtre sont utilisées. Une surface est considérée comme plane si les hauteurs des points de cette surface sont conformes à la valeur du paramètre secondary_thinning_threshold. Ses répercussions sont plus notables à des niveaux de pyramide de résolution plus élevée, car les petites surfaces ont plus de chances d'être planes que les grandes.

  • NONEAucun affinage secondaire n'est effectué. Il s’agit de l’option par défaut.
  • MILDUn affinage léger est appliqué pour conserver les discontinuités linéaires (côtés de bâtiments et limites de forêt, par exemple). Cette méthode est recommandée pour les lidar comprenant des points terrestres et non terrestres. Il affine moins de points.
  • MODERATEUn affinage modéré est appliqué, ce qui offre un bon équilibre entre performances et précision. Cette méthode ne conserve pas autant de détail que l’affinage léger, mais il s’en rapproche tout en supprimant plus de points dans l’ensemble.
  • STRONGUn affinage élevé est appliqué, ce qui supprime le plus de points, mais est moins susceptible de conserver des entités fortement délimitées. Limitez son usage aux surfaces où la pente a tendance à changer progressivement. Par exemple, l’affinage élevé est efficace pour un lidar de terre nue et des données bathymétriques.
String
secondary_thinning_threshold
(Facultatif)

Le seuil vertical utilisé pour activer l’affinage secondaire lorsque le paramètre pyramid_type est défini sur WINDOWSIZE. La valeur doit être supérieure ou égale à la précision verticale des données.

Double
triangulation_method
(Facultatif)

Indique si les entités de lignes de fracture seront intégrées dans la surface du MNT en densifiant leurs segments conformément aux règles de triangulation de Delaunay afin de construire une surface TIN.

La triangulation de Delaunay va densifier les entités de lignes de fracture pour accueillir les points qui les entourent de façon à éviter la création de longs triangles fin qui occasionnent généralement des résultats indésirables lors de l’analyse d’une surface TIN. En outre, l’interpolation des voisins naturels et la génération des polygones de Thiessen (Voronoi) peuvent uniquement s’effectuer sur des triangulations de Delaunay conformes.

Une triangulation de Delaunay sous contraintes évite la densification des entités de lignes de fracture, en intégrant les segments de lignes de fracture sous forme de tronçons dans la surface TIN. Envisagez cette option lorsque vous devez explicitement définir certains tronçons dont vous êtes certain qu’ils ne seront pas modifiés (c’est-à-dire fractionnés en plusieurs tronçons) par le triangulateur.

  • DELAUNAYLes lignes de fracture seront densifiées afin de construire des triangles Delaunay qui accueillent les points qui les entourent. Il s’agit de l’option par défaut.
  • CONSTRAINED_DELAUNAYLes lignes de fracture ne sont pas densifiées.
String

Sortie obtenue

NomExplicationType de données
derived_out_terrain

Nouveau jeu de données de MNT.

Terrain

Exemple de code

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

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

arcpy.env.workspace = 'C:/data'
arcpy.ddd.CreateTerrain('source.gdb/Redlands', 'Redlands_terrain',  5,
                      50000, '', 'WINDOWSIZE', 'ZMIN', 'NONE', 1)
2e exemple d'utilisation de l'outil CreateTerrain (script autonome)

L’exemple suivant illustre l’utilisation de cet outil dans un script Python autonome.

"""****************************************************************************
Name: Create Terrain from TIN
Description: This script demonstrates how to create a terrain dataset using
             features extracted from a TIN. It is particularly useful in
             situations where the source data used in the TIN is not available,
             and the amount of data stored in the TIN proves to be too large
             for the TIN. The terrain's scalability will allow improved
             display performance and faster analysis. The script is designed
             to work as a script tool with 5 input arguments.
****************************************************************************"""
# Import system modules
import arcpy

# Set local variables
tin = arcpy.GetParameterAsText(0) # TIN used to create terrain
gdbLocation = arcpy.GetParameterAsText(1) # Folder that will store terran GDB
gdbName = arcpy.GetParameterAsText(2) # Name of terrain GDB
fdName = arcpy.GetParameterAsText(3) # Name of feature dataset
terrainName = arcpy.GetParameterAsText(4) # Name of terrain

try:
    # Create the file gdb that will store the feature dataset
    arcpy.management.CreateFileGDB(gdbLocation, gdbName)
    gdb = '{0}/{1}'.format(gdbLocation, gdbName)
    # Obtain spatial reference from TIN
    SR = arcpy.Describe(tin).spatialReference
    # Create the feature dataset that will store the terrain
    arcpy.management.CreateFeatureDataset(gdb, fdName, SR)
    fd = '{0}/{1}'.format(gdb, fdName)
    # Export TIN elements to feature classes for terrain
    arcpy.AddMessage("Exporting TIN footprint to define terrain boundary...")
    boundary = "{0}/boundary".format(fd)
    # Execute TinDomain
    arcpy.ddd.TinDomain(tin, tinDomain, 'POLYGON')
    arcpy.AddMessage("Exporting TIN breaklines...")
    breaklines = "{0}/breaklines".format(fd)
    # Execute TinLine
    arcpy.ddd.TinLine(tin, breaklines, "Code")
    arcpy.AddMessage("Exporting TIN nodes...")
    masspoints = "{0}/masspoints".format(fd)
    # Execute TinNode
    arcpy.ddd.TinNode(sourceTIN, TIN_nodes)
    arcpy.AddMessage("Creating terrain dataset...")
    terrain = "terrain_from_tin"
    # Execute CreateTerrain
    arcpy.ddd.CreateTerrain(fd, terrainName, 10, 50000, "",
                            "WINDOWSIZE", "ZMEAN", "NONE", 1)
    arcpy.AddMessage("Adding terrain pyramid levels...")
    terrain = "{0}/{1}".format(fd, terrainName)
    pyramids = ["20 5000", "25 10000", "35 25000", "50 50000"]
    # Execute AddTerrainPyramidLevel
    arcpy.ddd.AddTerrainPyramidLevel(terrain, "", pyramids)
    arcpy.AddMessage("Adding features to terrain...")
    inFeatures = "{0} Shape softclip 1 0 10 true false boundary_embed <None> "\
             "false; {1} Shape masspoints 1 0 50 true false points_embed "\
             "<None> false; {2} Shape softline 1 0 25 false false lines_embed "\
             "<None> false".format(boundary, masspoints, breaklines)
    # Execute AddFeatureClassToTerrain
    arcpy.ddd.AddFeatureClassToTerrain(terrain, inFeatures)
    arcpy.AddMessage("Building terrain...")
    # Execute BuildTerrain
    arcpy.ddd.BuildTerrain(terrain, "NO_UPDATE_EXTENT")
    arcpy.GetMessages()

except arcpy.ExecuteError:
    print(arcpy.GetMessages())
except Exception as err:
    print(err)

Rubriques connexes