Change Terrain Resolution Bounds (3D Analyst)

Available with 3D Analyst license.

Summary

Changes the pyramid levels at which a feature class will be enforced for a given terrain dataset.

Usage

  • Pyramid resolution bounds can only be assigned for surface types that are not designated as masspoints.

  • Consider adjusting the resolution bounds for a terrain feature when new pyramids are introduced or its current range provides undesirable display performance.

  • The terrain dataset will not be invalidated from this operation and will not need to be rebuilt with the Build Terrain tool.

Parameters

LabelExplanationData Type
Input Terrain

The terrain dataset that will be processed.

Terrain Layer
Input Feature Class

The feature class referenced by the terrain that will have its pyramid-level resolutions modified.

String
Lower Pyramid Resolution
(Optional)

The new lower pyramid-level resolution for the chosen feature class.

Double
Upper Pyramid Resolution
(Optional)

The new upper pyramid-level resolution for the chosen feature class.

Double
Contributes to Overview
(Optional)

Specifies whether the feature class will contribute to the overview of the terrain dataset.

  • Checked—Enforces the feature class at the overview display of the terrain dataset. This is the default.
  • Unchecked—Omits the feature class from the overview display of the terrain dataset.
Boolean

Derived Output

LabelExplanationData Type
Updated Input Terrain

The updated terrain.

Terrain Layer

arcpy.ddd.ChangeTerrainResolutionBounds(in_terrain, feature_class, {lower_pyramid_resolution}, {upper_pyramid_resolution}, {overview})
NameExplanationData Type
in_terrain

The terrain dataset that will be processed.

Terrain Layer
feature_class

The feature class referenced by the terrain that will have its pyramid-level resolutions modified.

String
lower_pyramid_resolution
(Optional)

The new lower pyramid-level resolution for the chosen feature class.

Double
upper_pyramid_resolution
(Optional)

The new upper pyramid-level resolution for the chosen feature class.

Double
overview
(Optional)

Specifies whether the feature class will contribute to the overview of the terrain dataset.

  • OVERVIEW Enforces the feature class at the overview display of the terrain dataset. This is the default.
  • NO_OVERVIEWOmits the feature class from the overview display of the terrain dataset.
Boolean

Derived Output

NameExplanationData Type
derived_out_terrain

The updated terrain.

Terrain Layer

Code sample

ChangeTerrainResolutionBounds example 1 (Python window)

The following sample demonstrates the use of this tool in the Python window:

import arcpy
from arcpy import env

env.workspace = 'C:/data'
arcpy.ddd.ChangeTerrainResolutionBounds('sample.gdb\featuredataset/terrain',
                                       'breaklines', 2.5, 7.5)
ChangeTerrainResolutionBounds example 2 (stand-alone script)

The following sample demonstrates the use of this tool in a stand-alone Python script:

'''****************************************************************************
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)

Related topics