追加 Terrain 点 (3D Analyst)

需要 3D Analyst 许可。

摘要

向 terrain 数据集引用的点要素追加点。

使用情况

  • 此工具将使 terrain 数据集失效。请在添加点或多点后运行构建 Terrain

  • 如果 terrain 位于 SDE 中,则必须将其注册为版本。

参数

标注说明数据类型
输入 Terrain

将处理的 terrain 数据集。

Terrain Layer
输入 Terrain 数据源

要添加点或多点的 terrain 数据集的构成要素类。

String
输入点

要添加为 terrain 数据集的附加数据源的点或多点的要素类。

Feature Layer
感兴趣区
(可选)

指定用于定义要添加点要素的区域的面要素类或范围值。默认情况下此参数为空,这样输入要素类的所有点都将被加载到 terrain 要素中。

Extent; Feature Layer

派生输出

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

更新后的 terrain。

地形图层

arcpy.ddd.AppendTerrainPoints(in_terrain, terrain_feature_class, in_point_features, {polygon_features_or_extent})
名称说明数据类型
in_terrain

将处理的 terrain 数据集。

Terrain Layer
terrain_feature_class

要添加点或多点的 terrain 数据集的构成要素类。

此参数只需要要素类的名称,不需要完整路径。

String
in_point_features

要添加为 terrain 数据集的附加数据源的点或多点的要素类。

Feature Layer
polygon_features_or_extent
(可选)

指定用于定义要添加点要素的区域的面要素类或 arcpy.Extent 对象。默认情况下此参数为空,这样输入要素类的所有点都将被加载到 terrain 要素中。

Extent; Feature Layer

派生输出

名称说明数据类型
derived_out_terrain

更新后的 terrain。

地形图层

代码示例

AppendTerrainPoints 示例 1(Python 窗口)

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

arcpy.env.workspace = 'C:/data'
arcpy.ddd.AppendTerrainPoints('sample.gdb/featuredataset/terrain', 
                           'existing_points', 'new_points.shp')
AppendTerrainPoints 示例 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)

相关主题