Topographic Differencing

As part of OpenTopography's digital training resources, this page lists the material that we have developed about topographic differencing. The resources include several video tutorials, blog posts with examples of differencing results processed on OpenTopography, material presented at workshops, links to GitHub code repositories, and a differencing exercise designed for undergraduate courses.

Topographic differencing reveals surface change from a variety of tectonic, geomorphic, and anthropogenic processes including earthquakes, volcanic eruptions, river erosion, landslides, sand dune migration, and urban development. Differencing techniques have grown in popularity over the past decade as the number of multi-temporal topographic datasets has increased.

Vertical differencing is the subtraction of gridded elevation data (a.k.a. raster or digital elevation models (DEMs)) that span an event of interest. Early application of this method focused on rivers, although the technique has since been applied to a broader case set. 3D differencing is calculated with a windowed implementation of the Iterative Closest Point (ICP) algorithm. This approach works best when the landscape shifts laterally, for example in surface rupturing earthquakes.

BridgeVertical differencing showing sand dune migration in New Mexico.  

Blog Posts: These blog posts contain examples of differencing results processed at OpenTopography and links to where new jobs can be initiated.


Tutorial for performing vertical differencing on OpenTopography:


Tutorial for performing 3D differencing on OpenTopography and background material:


Differencing Workshop:

This material was created as part of the 2018 EarthCube Research Coordination Network Workshop - Advancing the Analysis of High Resolution Topography (A2 HRT). The full course material is available here.

Here are several presentations about differencing applications and methodology presented at the workshop:

Principles of topographic change detection by Dr. Joe Wheaton:


Change detection & introduction to PIV (Particle Image Velocimetry) by Dr. Craig Glennie:


3D Topographic Differencing of Meter-Scale Topography by Dr. Chelsea Scott:


Matlab ICP differencing code with an example dataset from the 2016 Kumamoto, Japan, Earthquake :

This Github repository contains Matlab code for performing a windowed implementation of the Iterative Closest Point (ICP) algorithm using additional Matlab functions for ICP and reading las files that are available from MathWorks. The example datasets from the 2016 Kumamoto, Japan, earthquake are hosted by OpenTopography and can be downloaded here . This tutorial is designed to be relatively straightforward.

GitHub Code Repositories:

Vertical Topographic Differencing: Here is the vertical differencing code as implemented in OpenTopography.

LIBICP C++ Code for 3D Differencing : This code performs a windowed implementation of 3D ICP differencing in C++ and is forked from Geiger et al. (2012). We implement this code to perform 3D differencing in OpenTopography.

3D Differencing Helper Functions: These Python codes performs the post-processing for the 3D ICP differencing, including making the displayed graphical outputs and geotiff files.

Undergraduate Topographic Differencing Exercise:

In this undergraduate-oriented exercise, students pretend that they are geologists working for the United States Geological Survey (USGS) and must respond to a recent pretend but realistic earthquake along the Wasatch Fault. They aid in the response by mapping the surface rupture and calculating the surface displacement, coseismic slip, and earthquake magnitude from high resolution lidar topographic imagery acquired before and after the earthquake. The exercise is available here.