Updating a portion of a terrain dataset with new measurements

The ability to update a surface is important to provide accurate, current surface information, available for conducting analysis.

Surface updates can come in different forms:

These kinds of updates are best performed on the measurements used to construct a surface rather than on derivatives like raster DEMs. Those can be re-created as needed after the measurement edits have taken place. Terrain datasets support this editing model because they maintain a direct link to the source measurement data. When you modify the measurements, you are automatically modifying the terrain in the same process. For more basic information on the terrain dataset, see What is a terrain dataset?

How terrains are edited

Editing a terrain dataset is really about editing the source measurements. Using standard feature edit tools, you can manipulate the measurements that reside in feature classes that participate in a terrain.

Terrain datasets are made from one or more feature classes, with simple rules for each feature class that control how they are used to shape the terrain surface. For example, a multipoint feature class containing lidar points can be added as mass points, a line feature class containing streams and lakeshores is used as a source of breaklines, and a polygon feature class can control the data area boundary.

Most feature classes used to define a terrain are what we call referenced. This means that the terrain maintains a pointer, or handle, to them. The terrain prevents its referenced feature classes from being deleted and pays attention to any edits that occur on them including the addition, deletion, or modification of feature geometry. You can use the feature editor in ArcMap as well as geoprocessing tools to modify these feature classes. A terrain will automatically flag itself as dirty in areas where edits were made. Then the terrain can be rebuilt to bring its pyramid scheme in sync with the updated features. It does this based on the dirty areas. It is a way to conduct localized processing, and the entire terrain does not need to be reconstructed.

Multipoint feature classes have the option of being embedded. When multipoints are embedded, the terrain build process copies the points into pyramid tables held private by the terrain and it becomes the container for the points. The terrain does not reference the source feature class. This source feature class can be deleted, allowing you to retrieve what is typically a substantial amount of disk space, approximately 1GB per 150 million points. Terrain-specific tools, Append Terrain Points (which can both add and replace) and Replace Terrain Points, are used to edit the embedded points based on an area of interest. These geoprocessing tools also offer the benefit of being BLOB attribute aware, which is necessary if you have any LAS attributes stored with those multipoints. For more information on BLOBs and lidar attributes, see Creating intensity images from lidar.

These terrain dataset processing tools keep the BLOB-based values in sync with the points relative to the edits. For example, if a few vertices of a multipoint are deleted from an embedded feature class, the terrain will delete the corresponding BLOB-based attribute values for those points.

Appending measurements

Measurements can be added to a terrain dataset through the Append and the Append Terrain Points geoprocessing tools. The Append geoprocessing tool operates on terrain referenced feature classes. The Append Terrain Points tool is used to add or replace points in embedded feature classes.

You can also add a feature class to an existing terrain using the Add Feature Class To Terrain geoprocessing tool. Adding measurements using the Add Feature Class To Terrain geoprocessing tool creates a schema edit that invalidates the entire terrain dataset, requiring a full terrain rebuild. If data is to be added incrementally, it is best to append it to a feature class that already participates in the terrain dataset than add a new feature class to the terrain dataset for each new set of data.

For example, sometimes data is provided in phases—the bare earth lidar points are made available first and the breaklines come later in several deliveries. Knowing this schedule, you can create a terrain dataset referencing the lidar multipoint feature class containing the bare earth points, plus an empty line feature class held in anticipation of the breaklines. The image below displays a zoomed-in view of a terrain dataset made solely with bare earth lidar points.

terrain dataset with only points

When portions of the breaklines are made available, they are added to the terrain dataset by adding them to the line feature class referenced by the terrain dataset. This is done using the Append geoprocessing tool, as shown below.

Append geoprocessing tool

After running the Append geoprocessing tool, the terrain dataset will become dirty in the areas where the lines were added. To determine the dirty areas, add a dirty area renderer from the Symbology tab of the terrain layer's Layer Properties dialog box. The following image displays the Add Renderer dialog box from the terrain dataset Layer Properties. For steps describing how to add the dirty area renderer for a terrain dataset, see Displaying dirty areas of a terrain.

Symbology tab

The purple lines represent the dirty area tiles of a terrain dataset. The terrain layer draws the dirty area depicting a rectangular boundary that surrounds the edited area.

dirty terrain tiles

The terrain dataset now must be rebuilt. This is done using either the Build Terrain geoprocessing tool or the Build Terrain button on the Update tab of the terrain Properties dialog box in ArcCatalog or the Catalog window. Once the terrain dataset is rebuilt, the improvement made by the breaklines is evident. The definition of the water features on the terrain dataset has been improved with the addition of the breaklines as shown in the image below.

terrain dataset with breaklines enforced

Replacing features

With lines and polygons in referenced feature classes, the replacement of measurements is a two-step process. First you delete the old features, then append the new features. If you are only dealing with a handful of features, consider selecting and deleting them using the Editor tools in ArcMap. For larger collections, rely on geoprocessing tools. For example, use Select By Location followed by Delete Features and Append.

It is easiest to replace lidar points if they are embedded in the terrain dataset. The Replace Terrain Points geoprocessing tool has an area of interest or feature layer option to replace points. This will replace all the points within a given area of interest. So if you discover something was wrong with a few source point files that were used to build a terrain dataset, you can replace them without needing to rebuild the entire terrain from scratch. The images below show an example of one area of a bare earth model that was inadvertently loaded with first return lidar data.

The images are hillshades derived from a terrain dataset. The one on the left clearly shows the mistake of either first or all return data being included for a subarea. On the right is the image of the correct data.

area showing a mistake in the bare earth hillshadecorrected bare earth hillshade

To correct this problem, load the replacement data into a new multipoint feature class, then run the Replace Terrain Points geoprocessing tool to update the terrain dataset with the correct lidar point data. By default, the replacement area will come from the extent of the input feature layer, as displayed in the image below.

Replace Terrain Points

Once the points have been replaced, the terrain dataset needs to be rebuilt to update the affected area. Run the Build Terrain geoprocessing tool or use the Build Terrain button on the Update tab of the Terrain Properties dialog box in ArcCatalog or the Catalog window. Both options will update the terrain area affected by the new lidar points.

There are times when updates to a surface model are needed, whether for quality improvement or what-if scenario analysis. It is hard to make these types of updates to derivative products like raster DEMs without ending up with some anomalies around the update area. It is more appropriate to modify the source measurement data from which the surface model is derived. For larger datasets, like those coming from lidar, it is also desirable that datasets be reprocessed only where the updates occur rather than rebuilding everything. Terrain datasets support this by maintaining links to their source measurements in the geodatabase and their use of dirty areas.