Modifier l’échelle de référence du MNT (3D Analyst)

Disponible avec une licence 3D Analyst.

Synthèse

Permet de modifier l'échelle de référence associée à un niveau de pyramide de MNT.

Utilisation

  • Modifiez l'échelle de référence de pyramide de MNT si les performances de vitesse d'affichage ne conviennent pas ou requièrent une plus grande densification des points de données dans la plage de l'échelle d'affichage de la pyramide.

  • Il peut être également nécessaire d'ajouter ou de supprimer un niveau de pyramide lors de la modification de la résolution d'un niveau de pyramide, ce qui peut être fait à l'aide des outils Ajouter un niveau de pyramide ou Supprimer un niveau de pyramide.

  • Lorsqu'il est utilisé dans une base de données ArcSDE, le MNT en entrée ne peut pas être inscrit comme versionné.

Paramètres

ÉtiquetteExplicationType de données
MNT en entrée

Jeu de données de MNT qui sera traité.

Terrain Layer
Ancienne échelle de référence

Echelle de référence d'un niveau de pyramide existant.

Long
Nouvelle échelle de référence

Nouvelle échelle de référence pour le niveau de pyramide.

Long

Sortie obtenue

ÉtiquetteExplicationType de données
MNT en entrée mis à jour

MNT mis à jour.

Couche de MNT

arcpy.ddd.ChangeTerrainReferenceScale(in_terrain, old_refscale, new_refscale)
NomExplicationType de données
in_terrain

Jeu de données de MNT qui sera traité.

Terrain Layer
old_refscale

Echelle de référence d'un niveau de pyramide existant.

Long
new_refscale

Nouvelle échelle de référence pour le niveau de pyramide.

Long

Sortie obtenue

NomExplicationType de données
derived_out_terrain

MNT mis à jour.

Couche de MNT

Exemple de code

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

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

arcpy.env.workspace = 'C:/data'
arcpy.ddd.ChangeTerrainReferenceScale('terrain.gdb/terrainFDS/terrain1', 
                                   1000, 2000)
2e exemple d'utilisation de l'outil ChangeTerrainReferenceScale (script autonome)

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

'''****************************************************************************
Name: Update Terrain
Description: This script demonstrates how to update a terrain dataset
             with new elevation measurements obtained from Lidar by
             importing LAS files to multipoint features, then appending the
             new points to another multipoint feature that participates in a
             terrain. The terrain's pyramids are modified to optimize its
             draw speed.
****************************************************************************'''
# Import system modules
import arcpy

try:
    # Set environment settings
    arcpy.env.workspace = "C:/data"

    # Set Variables
    inTerrain = "sample.gdb/featuredataset/terrain"
    currentPts = "existing_points"
    lasFiles = ['las/NE_Philly.las',
                'las/NW_Philly.las']
    newPts = 'in_memory/update_pts'
    # Define spatial reference of LAS files using factory code
    # for NAD_1983_StatePlane_Pennsylvania_South
    lasSR = arcpy.SpatialReference(2272)

    arcpy.AddMessage("Converting LAS files to multipoint features...")
    arcpy.ddd.LASToMultipoint(lasFiles, newPts, 1.5, 2, 1,
                              'INTENSITY', lasSR)

    arcpy.AddMessage("Appending LAS points to {0}..."\
                     .format(currentPts))
    arcpy.ddd.AppendTerrainPoints(inTerrain, currentPts, newPts)

    arcpy.AddMessage("Changing terrain pyramid reference scales...")
    arcpy.ddd.ChangeTerrainReferenceScale(inTerrain, 1000, 500)
    arcpy.ddd.ChangeTerrainReferenceScale(inTerrain, 2500, 2000)

    arcpy.AddMessage("Adding terrain pyramid level...")
    arcpy.ddd.AddTerrainPyramidLevel(inTerrain, "", "4 4500")

    arcpy.AddMessage("Changing pyramid resolution bounds for breaklines...")
    arcpy.ddd.ChangeTerrainResolutionBounds(inTerrain, "breaklines", 5, 4)

    arcpy.AddMessage("Building terrain...")
    arcpy.ddd.BuildTerrain(inTerrain)

    arcpy.AddMessage("Completed updates.")

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

Rubriques connexes