Résumé
Ajoute une ou plusieurs classes d'entités au MNT.
Utilisation
Les entités en entrée doivent se trouver dans le même jeu de données d'entité que le jeu de données de MNT.
Un ou plusieurs niveaux de pyramide doivent déjà être définis pour le jeu de données de MNT.
Selon le type de surface associé aux entités ajoutées à un MNT, le jeu de données de MNT peut nécessiter une regénération via l'outil Générer un MNT. La boîte de dialogue Propriétés du jeu de données de MNT dans ArcCatalog et la boîte de dialogue Propriétés de la couche de MNT dans ArcMap indiquent toutes deux s'il est nécessaire de régénérer le jeu de données.
Activez l'option de vue d'ensemble pour les lignes de fracture et les types d'entités surfaciques que si les entités contiennent une géométrie simplifiée et qu'elles sont visuellement pertinentes pour l'échelle d'affichage anticipée. Par exemple, les lignes de fracture peuvent ne pas être assez visibles pour être significatives dans un affichage de la vue d'ensemble, alors qu'un polygone de découpage serait utile. Si l'entité de limite est détaillée, généralisez-la et utilisez la représentation la plus grossière pour la vue d'ensemble. La version détaillée doit être utilisée à des échelles d'affichage qui conviennent mieux à sa résolution de détail.
Pour les jeux de données de MNT stockés dans une géodatabase d'entreprise :
- Le MNT cible ne peut pas être inscrit comme versionné.
- La classe d'entités en entrée ne peut pas être inscrite comme versionnée.
Syntaxe
AddFeatureClassToTerrain_3d (in_terrain, in_features)
Paramètre | Explication | Type de données |
in_terrain | MNT auquel sont ajoutées les classes d'entités. Un ou plusieurs niveaux de pyramide doivent déjà être créés pour le jeu de données de MNT. | Terrain Layer |
in_features [[in_features, height_field, SF_type, group, min_resolution, max_resolution, overview, embed, embed_name, embed_fields, anchor],...] | Identifie les entités ajoutées au MNT. Chaque classe d'entités doit résider dans le même jeu de données d'entité que le MNT et son rôle doit être défini via les propriétés suivantes :
| Value Table |
Sortie dérivée
Nom | Explication | Type de données |
derived_out_terrain |
Exemple de code
1er exemple de l'outil AddFeatureClassToTerrain (fenêtre Python)
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"
params = "terrain.gdb/terrainFDS/points2 SHAPE masspoints 2 0 10 true false "\
"points_embed <None> false"
arcpy.AddFeatureClassToTerrain_3d("test.gdb/featuredataset/terrain", params)
2e exemple de l'outil AddFeatureClassToTerrain (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
import exceptions, sys, traceback
from arcpy import env
# 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:
arcpy.CheckOutExtension("3D")
# 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:
# 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)
finally:
arcpy.CheckInExtension("3D")
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert 3D Analyst
- ArcGIS Desktop Standard: Requiert 3D Analyst
- ArcGIS Desktop Advanced: Requiert 3D Analyst
Rubriques connexes
- Vue d'ensemble du jeu d'outils Gestion des données
- Notions de base relatives aux surfaces
- Formats de surface
- Qu'est-ce qu'un jeu de données de MNT?
- Avantages liés à l'utilisation des jeux de données de MNT
- Création d'un jeu de données de MNT à l'aide d'outils de géotraitement
- Types de données source pris en charge dans les jeux de données de MNT
- Outils de chargement et d'importation de données pour les jeux de données de MNT
- Type de surface (SFType)
- Points d'ancrage
- Classes d'entités intégrées
- Limites de résolution de pyramide
- Groupes