Spring 2011 Edition
By Colin Childs, Esri Writer
This article as a PDF.
Terrain datasets in a geodatabase can help effectively manage, process, and integrate massive point collections of the 3D data that result from collecting high-resolution elevation observations using lidar, sonar, and other technologies.
Terrain data is usually expressed as a series or collection of points with x-, y-, and associated z-values. It generally includes a series of points representing the high and low extremes in the terrain that define topographic features such as streams, levees, ridges, and other phenomena.
With ArcGIS 9.2, Esri introduced the terrain dataset to better handle surface data. This multiresolution, triangulated irregular network (TIN)-based surface is generated using measurements stored as features in geodatabase feature classes. TINs are assembled from a series of data points with x-, y-, and z-values and partition geographic space into contiguous, nonoverlapping triangles (called faces). The nodes of each triangle have an x,y coordinate and a z-value representing the elevation or surface value at that location. Using the TIN, any surface value can be interpolated within a face or along an edge.
Additional rules are defined to generate TIN pyramids representing elevation change.
While there are many reasons for using terrain datasets to manage surface data, here are 10 of the most compelling ones:
Terrain datasets scale to handle vector-based source measurement data such as lidar, photogrammetric, and sonar data. Traditionally, ArcGIS uses feature data, like 3D points, lines, and contours, to make TINs and grids. These surface storage and representation methods are not well suited to large collections of mass point data from sources such as lidar, photogrammetric, and multibeam sonar data.
An ArcGIS terrain dataset offers a database-oriented solution for managing these vector-based source measurements. This is achieved through the use of an updated and efficient TIN-based data structure that generates a multiresolution surface that is created on the fly for a given area of interest and level of detail. The terrain dataset supports point, multipoint, polyline, and polygon-based features and is seamless, fast, and scalable.
Because source measurements are stored, not a derivative surface, they can be edited and replaced with more current or accurate data at anytime.
Terrain datasets and the data used to define them are stored and maintained in a feature dataset in a geodatabase. Consequently, the data management advantages of the geodatabase are available to terrain datasets.
While terrain datasets are supported in all ArcGIS geodatabase formats, it is important to note that these formats have inherent differences in capacities. An ArcSDE geodatabase is the most capable format and is appropriate for terrains involving billions of points and workflows that use a centralized database to manage source measures and terrain datasets in a multiuser editing and versioning environment. File geodatabases can be used for terrains with billions of points but do not allow multiuser editing. Personal geodatabases are the least desirable for terrain datasets, and their use should be restricted to terrains with fewer than 20 million points.
In ArcSDE, versioned terrain datasets support multiple users accessing different representations of the terrain for different projects. What-if scenarios can be modeled by allowing design edits that model proposed changes to be made without actually changing the original surface. If the design is realized, the edits can be posted back to the source data. Possible editing scenarios include workflows in which operators are restricted to editing data layers within constrained areas or workflows in which operators are responsible for edits to individual layers for unconstrained areas such as all lidar data.
The terrain dataset references participating feature classes (source measures) that define how they contribute to the terrain and maintain the rules specifying how these source measures are used within the terrain dataset. Because source measurements are stored, not a derivative surface, they can be edited and replaced with more current or accurate data at any time. Terrains enable users to own and manage the source data and derive end-user products as needed.
Edit a terrain by editing the feature classes that participate in it using standard editing tools. Simply add, remove, or replace data referenced by the terrain. Measurement data can be managed over time, and the terrain dataset can grow as additional or more current data becomes available.
Use the Terrain wizard to create a new terrain dataset in a feature dataset in a geodatabase. In the wizard, supply a name for the new terrain dataset and specify the participating feature classes. In addition, point spacing information, which is collected for photogrammetric, lidar, and sonar surveys and supplied with the source data, can also be specified.
A terrain layer is similar to a TIN layer in that it supports multiple renderers. Triangles in a terrain layer can be symbolized by elevation range, slope, aspect, and hillshade.
The ArcGIS 3D Analyst toolbar provides interactive tools for many types of analysis including the creation of profile graphs.
Rendering very large TINs is generally difficult, partially due to limitations of hardware, such as video cards, and therefore, terrains are beneficial in that areas to be visualized are rendered at an optimized resolution. Terrain datasets employ pyramiding— a form of scale-dependent generalization—when displaying a surface.
The vector-based pyramid levels in terrain datasets are similar to raster pyramids and take advantage of the diminishing accuracy requirements as scales decrease. For each successive pyramid level, as the accuracy requirements necessary to display the surface drop, fewer measurements are used, although the original source measurements are used in these coarser resolution pyramids. No resampling, averaging, or derivative data is used for pyramids.
Since a terrain dataset deploys pyramid levels, ArcMap is able to rapidly generate a TIN surface on the fly at whatever resolution is needed for the scale of the viewer. In the case of lidar data, some phenomena tend to be oversampled so using point thinning filters to retain only those measurements needed to represent the phenomena is important.
When displaying terrain datasets, a terrain layer is created. This layer type is similar to a TIN layer in some regards, as it supports multiple renderers. With a terrain layer, it is possible to color triangles by elevation range, slope, aspect, and hillshade. It is also possible to see the breaklines, triangle edges, and nodes of the triangulated surface.
Terrain datasets are supported for reading and viewing at all licensing levels. However, a terrain can only be created with the ArcGIS 3D Analyst extension. In addition, terrain datasets are not directly supported in ArcScene. The recommended workflow for displaying terrains in ArcGlobe is to make a raster from the source terrain dataset and use this in ArcGlobe.
Multipoints are often used to manage arrays of large point collections, such as lidar point clusters, which can contain literally billions of points. Using a single row for such point geometry is not feasible. Clustering these into multipoint rows enables the geodatabase to handle massive point sets. Clustered multipoints are highly compressed in file geodatabases and SDE, which reduces storage and I/O requirements.
Despite clustering and compression, lidar can still require a significant amount of storage space. An option for large multipoint feature classes is to embed them within the terrain dataset as a way to save storage space. Embedding is performed during the terrain build process. Point geometry and (optionally) lidar attributes are copied directly into the terrain pyramid structure. After the terrain is built, it becomes the container of the points and no longer references the source feature class. This means that the source feature class can be deleted, reducing the storage space required.
The LAS file format is an open standard file format for the interchange of lidar data. It is a binary file format that maintains specific information related to lidar data and is a way for vendors and clients to interchange data and maintain all information specific to that data. Using a LAS file format avoids some of the pitfalls associated with ASCII format points, as the extent, point count, and spatial reference are contained in the header.
ArcGIS uses an updated and efficient TIN-based data structure that generates a multiresolution surface that is created on the fly for a given area of interest and level of detail.
An efficient and cost-effective solution for utilizing LAS point attributes is to use them with a query filter during conversion of LAS points to Multipoint. By doing this, LAS attributes, such as class code or return number, can be used to extract just the points needed, and there is no need to import the attributes.
The geoprocessing tools that interact with terrain datasets are kept primarily within the 3D Analyst toolset and are intended to facilitate automation through the use of scripts and models. These 26 tools are located in these toolsets:
Surface analysis is sometimes best executed interactively rather than in batch mode using geoprocessing tools. The ArcGIS 3D Analyst toolbar provides interactive tools that create contours, create the steepest path, create a line of sight, interpolate point/line/polygon, and create profile graphs.
Surface analysis involves several kinds of processing, including extracting new surfaces from existing surfaces, reclassifying surfaces, and combining surfaces. Some of the types of surface analysis that can be executed using a terrain dataset include
The ASCII format for lidar is not generally recommended, but many legacy data formats often use ASCII as an interchange medium, and thus this workflow is available. ASCII source data in XYZ, XYZI, or 3D ASCII Generate formats can be imported into feature classes using the ASCII 3D To Feature Class geoprocessing tool. After conversion to a feature class, this data can be incorporated into a terrain dataset.
The terrain dataset contributes to effective workflows with lidar and other mass point collection data types by providing scalable, efficient data storage and rapid visualization and enabling powerful surface analysis.