arcpy.3d.AppendTerrainPoints(in_terrain, terrain_feature_class, in_point_features, {polygon_features_or_extent})
|
名称
|
说明
|
数据类型
|
|
in_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。
|
Terrain Layer
|
代码示例
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)