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

Récapitulatif

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

Utilisation

Syntaxe

ChangeTerrainReferenceScale_3d (in_terrain, old_refscale, new_refscale)
ParamètreExplicationType de données
in_terrain

Jeu de données de MNT en entrée.

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

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 :

import arcpy
from arcpy import env

arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.ChangeTerrainReferenceScale_3d('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
from arcpy import env
import exceptions, sys, traceback

try:
    arcpy.CheckOutExtension("3D")
    
    # Set environment settings
    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()
    lasSR.factoryCode = 2272
    lasSR.create()
    
    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.AppendTerrainPoints_3d(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.ChangeTerrainResolutionBounds_3d(inTerrain, "breaklines", 5, 4)
    
    arcpy.AddMessage("Building terrain...")
    arcpy.ddd.BuildTerrain(inTerrain)
    
    arcpy.AddMessage("Completed updates.")

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

Thèmes connexes

9/12/2013