make.interpolation¶
make.interpolation will estimate the geometry of a landslide failure surface by interpolating between the landslide extent and user-defined xyz points. The following is typical usage for make.interpolation.
Prepare a topography file as a geotif.
Prepare a polygon reflecting the landslide extent and a set of points reflected estimated failure surface locations.
Run
make.interpolationto generate results. Inspect the output and adjust any input parameters as needed.
A code snippet that uses make.interpolation and a few other digger functions in the context of the 2025 Tracy Arm event (Shugar and othesr, 2026) may be found in the file digger/examples/pre-run/tracy_arm/tracy_arm_reconstruction.py.
"""An example of using multiple tools to reconstruct topography and
estimate a landslide slip surface.
"""
import rasterio
from rasterio.merge import merge
from digger import make
from digger.utils import interpolate
# reconstruct the bathymetry
make.interpolation(
topo_path="../../../data/tracy_arm_topo.tif",
mask_path="../../../data/tracy_arm_new_water.geojson",
points_path="../../../data/tracy_arm_water_points.geojson",
b_prefix="merged_new_water",
sense="subtract",
smooth=True,
smooth_sigma=7,
write_tt3=False,
edge_adjustment=0,
)
interpolate.polygon(
topo_path="merged_new_water.tif",
mask_path="../../../data/tracy_arm_interp_shoreline.geojson",
smooth=True,
smooth_sigma=5,
file_out="merged_new_water_shoreline_adj_clipped.tif",
)
# merge this into full extent:
# List the paths to the input raster files
to_merge = [
"../../../data/tracy_arm_topo.tif",
"merged_new_water_shoreline_adj_clipped.tif",
]
src_ds = [rasterio.open(f) for f in to_merge]
# Merge the datasets
mosaic, out_transform = merge(src_ds, method="last")
# Get the metadata from the first source dataset and update it for the output
out_meta = src_ds[0].meta.copy()
out_meta.update(
{
"driver": "GTiff",
"height": mosaic.shape[1],
"width": mosaic.shape[2],
"transform": out_transform,
"crs": src_ds[0].crs,
}
)
# Write the merged raster to a new file
with rasterio.open("merged_new_water_shoreline_adj.tif", "w", **out_meta) as dest:
dest.write(mosaic)
# Close the source datasets
for src in src_ds:
src.close()
# Estimate the landslide slip surface
make.interpolation(
topo_path="merged_new_water_shoreline_adj.tif",
mask_path="../../../data/tracy_arm_source.geojson",
points_path="../../../data/tracy_arm_ls_points.geojson",
sense="subtract",
write_tt3=False,
edge_adjustment=-10,
)
After this code runs, it will produce geotif files that specify the modified topobathymetry.
It will also create diagnostic figures.
The standard two diagnostic figures from make.interpolation are
Fig. 3 An example of the diagnostic output provided by digger.make.interpolation.¶
Fig. 4 An example of the diagnostic output provided by digger.make.interpolation.¶
References
Shugar, D.H., Barnhart, K.R., Berdahl, M., Caplan-Auerbach, J., Ekström, G., Fathian, A., Geertsema, M., Hicks, S.P., Higman, B., Jensen, E.K., Karasözen, E., Lynett, P., Lyons, J., Monahan, T., Roe, G., Svennevig, K., Toney, L., Van Wyk De Vries, M., and West, M.E., 2026, A 481-meter-high landslide-tsunami in a cruise ship–frequented Alaska fjord: Science, https://doi.org/10.1126/science.aec3187.