Available with 3D Analyst license.
Summary
Appends points to a point feature referenced by a terrain dataset.
Usage
This tool will invalidate a terrain dataset. Run Build Terrain after adding points or multipoints.
If the terrain is in SDE, it must be registered as versioned.
Syntax
arcpy.3d.AppendTerrainPoints(in_terrain, terrain_feature_class, in_point_features, {polygon_features_or_extent})
Parameter | Explanation | Data Type |
in_terrain | The terrain dataset to process. | Terrain Layer |
terrain_feature_class | The feature class that contributes to the terrain dataset into which the points or multipoints will be added. This parameter only requires the name of the feature class and not its full path. | String |
in_point_features | The feature class of points or multipoints to add as an additional data source for the terrain dataset. | Feature Layer |
polygon_features_or_extent (Optional) | Specify a polygon feature class or arcpy.Extent object to define the area where point features will be added. This parameter is empty by default, which results in all the points from the input feature class being loaded to the terrain feature. | Extent; Feature Layer |
Derived Output
Name | Explanation | Data Type |
derived_out_terrain | The updated terrain. | Terrain Layer |
Code sample
The following sample demonstrates the use of this tool in the Python window.
arcpy.env.workspace = 'C:/data'
arcpy.AppendTerrainPoints_3d('sample.gdb/featuredataset/terrain',
'existing_points', 'new_points.shp')
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.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 Exception as err:
print(err)
Environments
Licensing information
- Basic: Requires 3D Analyst
- Standard: Requires 3D Analyst
- Advanced: Requires 3D Analyst