更改 Terrain 分辨率界限 (3D Analyst)

需要 3D Analyst 许可。

摘要

更改要素类在给定 terrain 数据集中强制所处的金字塔等级。

使用情况

  • 只能为未被指定为离散多点的表面类型分配金字塔分辨率界限。

  • 引入新的金字塔或当前范围会导致不良的显示性能时,请考虑调整 terrain 要素的分辨率界限。

  • 执行此操作后,terrain 数据集不会失效,也不必使用构建 Terrain 工具重新构建。

参数

标注说明数据类型
输入 Terrain

将处理的 terrain 数据集。

Terrain Layer
输入要素类

金字塔等级分辨率将被修改的 terrain 引用的要素类。

String
金字塔分辨率下限
(可选)

所选要素类的新金字塔等级分辨率下限。

Double
金字塔分辨率上限
(可选)

所选要素类的新金字塔等级分辨率上限。

Double
参与概视图
(可选)

指定要素类是否参与 terrain 数据集的概视图。

  • 选中 - 在 terrain 数据集的概视图显示中强制显示要素类。这是默认设置。
  • 未选中 - 在 terrain 数据集的概视图显示中忽略要素类。
Boolean

派生输出

标注说明数据类型
更新后的输入 Terrain

更新后的 terrain。

地形图层

arcpy.ddd.ChangeTerrainResolutionBounds(in_terrain, feature_class, {lower_pyramid_resolution}, {upper_pyramid_resolution}, {overview})
名称说明数据类型
in_terrain

将处理的 terrain 数据集。

Terrain Layer
feature_class

金字塔等级分辨率将被修改的 terrain 引用的要素类。

String
lower_pyramid_resolution
(可选)

所选要素类的新金字塔等级分辨率下限。

Double
upper_pyramid_resolution
(可选)

所选要素类的新金字塔等级分辨率上限。

Double
overview
(可选)

指定要素类是否参与 terrain 数据集的概视图。

  • OVERVIEW 在 terrain 数据集的概视图显示中强制显示要素类。这是默认设置。
  • NO_OVERVIEW在 terrain 数据集的概视图显示中忽略要素类。
Boolean

派生输出

名称说明数据类型
derived_out_terrain

更新后的 terrain。

地形图层

代码示例

ChangeTerrainResolutionBounds 示例 1(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

import arcpy
from arcpy import env

env.workspace = 'C:/data'
arcpy.ddd.ChangeTerrainResolutionBounds('sample.gdb\featuredataset/terrain',
                                       'breaklines', 2.5, 7.5)
ChangeTerrainResolutionBounds 示例 2(独立脚本)

下面的示例演示了如何在独立 Python 脚本中使用此工具。

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

相关主题