SRTM vs LiDAR DEMs for Regional Watershed Modeling
Choosing a base elevation source is the first irreversible decision in a watershed study: every downstream flow direction grid, drainage divide, and calibrated runoff volume inherits the resolution and error structure of the DEM underneath it. This guide compares the two dominant options for regional work, the near-global SRTM radar surface and locally flown LiDAR, as a decision reference within the SRTM & LiDAR Data Acquisition topic, part of the wider Hydrology Data Preparation & DEM Processing coverage on this site.
The two sources are not interchangeable. SRTM is a 30 m radar product that reports the scattering surface of whatever the beam hit first, including canopy and rooftops. LiDAR is a sub-meter laser product that can be classified to bare earth. The right answer depends almost entirely on basin size and the smallest feature your model has to resolve.
The Two Sources at a Glance
The Shuttle Radar Topography Mission flew C-band interferometric radar in 2000 and produced a consistent elevation grid covering land between 56S and 60N. The one-arc-second release is nominally 30 m at the equator, and its vertical error is specified at roughly 16 m LE90, meaning 90 percent of points fall within 16 m of a reference surface. Because it is radar, and because C-band does not penetrate dense vegetation, the reported surface sits within the canopy rather than on the ground.
LiDAR is an active laser survey flown from aircraft. Modern collections return point densities of several to dozens of points per square meter, and vendors classify the last-return ground points to build a bare-earth digital terrain model at 1 m or finer. Vertical accuracy of a well-controlled bare-earth product is commonly 10 to 20 cm RMSE, roughly two orders of magnitude tighter than SRTM. The cost of that fidelity is coverage and volume: LiDAR exists only where someone paid to fly it, and the files are enormous.
That single geometric difference, whether the surface follows the canopy or the ground, drives most of the hydrologic consequences discussed below.
Side-by-Side Comparison
| Attribute | SRTM (radar) | LiDAR (laser) |
|---|---|---|
| Horizontal resolution | 30 m (1 arc-second); 90 m legacy | 1 m or finer (0.5 m common) |
| Coverage | Near-global, 56S to 60N, single consistent grid | Local and patchy; only flown survey areas |
| Vertical accuracy | ~16 m LE90 (~6 m RMSE typical) | 0.1 to 0.2 m RMSE bare-earth |
| Surface type | First-return: canopy tops and rooftops | Bare-earth DTM after ground classification |
| Vegetation bias | Several meters upward under dense canopy | Removed by ground-return classification |
| Data volume (per county) | Hundreds of MB | Tens to hundreds of GB (tiled) |
| Processing cost | Low: fits in memory, fast routing | High: tiling, mosaicking, heavy compute |
| Best for | Regional to continental basins | Urban, low-relief, engineering-scale basins |
The volume row deserves emphasis because it scales quadratically. Moving from 30 m to 1 m multiplies cell count by 900 for the same footprint. A basin that loads as a single 300 MB SRTM array becomes a multi-hundred-gigabyte LiDAR mosaic that must be tiled, virtually rastered, and streamed rather than held in memory. That mechanical reality, as much as accuracy, decides which source is tractable at a given scale.
What the Accuracy Difference Does to Hydrology
Vertical error propagates into flow routing in ways that are not proportional to the error magnitude, because routing depends on the sign of elevation differences between neighbors, not their absolute values. On steep terrain, a 6 m SRTM error is small relative to the elevation drop across a 30 m cell, so flow directions stay correct and the delineated divide is faithful. In flat terrain the same 6 m error can exceed the true relief across several cells, producing spurious pits, parallel drainage artifacts, and divides that wander off the true watershed boundary.
Canopy bias adds a systematic, not random, error. Under continuous forest the SRTM surface sits meters above ground, and because that offset varies with canopy height it distorts local gradients. Ridgelines shift toward taller stands and shallow first-order channels can be routed into the wrong sub-basin. LiDAR removes this by classifying ground returns, which is precisely why urban and forested engineering studies cannot rely on radar surfaces. The trade-off between capturing this micro-topography and paying for the compute is the same one examined for national grids in choosing between 10 m and 1 m DEM resolution for delineation.
Inspecting Each Source in Python
Before committing to a DEM, load both candidate rasters and log their resolution, extent, CRS, and vertical characteristics. The function below uses rasterio to report the metadata that actually drives the decision, and it flags the two failure modes that most often surprise analysts: a geographic CRS reported in degrees, and a NoData sentinel that will corrupt statistics if left unmasked.
import logging
import numpy as np
import rasterio
from rasterio.warp import transform_bounds
logger = logging.getLogger(__name__)
def profile_dem_source(dem_path: str, label: str) -> dict:
"""Report the decision-relevant properties of a DEM source.
Logs horizontal resolution, geographic extent, CRS, and a coarse
vertical-range summary so SRTM and LiDAR candidates can be compared
on equal footing before one is selected for a watershed study.
"""
with rasterio.open(dem_path) as src:
res_x, res_y = src.res
crs = src.crs
# SRTM 1-arc-second arrives in EPSG:4326 (degrees); LiDAR is usually
# a projected CRS in metres. Degrees here means resolution is angular.
units = "degrees" if crs and crs.is_geographic else "metres"
# Report extent in lon/lat regardless of native CRS for a fair compare
wgs84_bounds = transform_bounds(crs, "EPSG:4326", *src.bounds)
band = src.read(1, masked=True) # honour the NoData sentinel
valid = band.compressed()
z_min = float(np.min(valid)) if valid.size else float("nan")
z_max = float(np.max(valid)) if valid.size else float("nan")
n_cells = src.width * src.height
approx_mb = n_cells * band.dtype.itemsize / 1e6
logger.info(
"[%s] res=%.6g x %.6g %s | CRS=%s | cells=%d (~%.0f MB) | "
"extent(lon/lat)=%.4f,%.4f -> %.4f,%.4f | elev %.1f..%.1f m",
label, res_x, res_y, units, crs, n_cells, approx_mb,
wgs84_bounds[0], wgs84_bounds[1], wgs84_bounds[2], wgs84_bounds[3],
z_min, z_max,
)
if crs and crs.is_geographic:
logger.warning(
"[%s] CRS is geographic; reproject to a projected metric CRS "
"before flow routing to avoid distorted gradients.", label
)
return {"res_x": res_x, "units": units, "n_cells": n_cells,
"approx_mb": approx_mb, "z_min": z_min, "z_max": z_max}
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s")
profile_dem_source("srtm_1arcsec.tif", "SRTM")
profile_dem_source("lidar_1m_dtm.tif", "LiDAR")
Running this against paired sources makes the trade-off concrete: the SRTM line reports a handful of megabytes in degrees, while the LiDAR line reports orders of magnitude more cells in metres. If you have not yet retrieved a radar tile, the companion walkthrough on how to download SRTM DEMs for Python hydrology workflows covers the acquisition and mosaicking steps that precede this profiling call. Bare-earth LiDAR tiles for the United States are cataloged through the USGS 3DEP program.
Decision Guidance by Basin Scale
The clearest way to choose is by drainage area and the smallest feature the model must resolve.
Choose SRTM when:
- The basin exceeds roughly 500 km2 and you need consistent coverage across it, especially across international borders where LiDAR is unavailable or inconsistent.
- Relief is moderate to high, so the 16 m LE90 vertical error is small relative to cell-to-cell elevation drops and flow routing stays robust.
- The study is a regional or continental screening exercise where main-stem drainage networks, not shallow channels, drive the analysis.
- Compute or storage is constrained and a single in-memory grid is a decisive practical advantage.
Choose LiDAR when:
- The basin is small, urban, or low-relief, where sub-meter micro-topography such as curbs, ditches, road crowns, and levees controls the flow path.
- Canopy or building bias in the radar surface would misplace divides or misroute first-order channels through forest or built-up terrain.
- The work is engineering-grade, feeding floodplain mapping, stormwater design, or conveyance sizing where centimeter vertical accuracy is required.
- Bare-earth LiDAR coverage exists for the full extent and your pipeline can tile and stream the volume.
In the transition zone the deciding factor is relief and land cover. A steep, sparsely vegetated 200 km2 catchment is well served by SRTM; a flat, forested, or heavily urbanized basin of the same area needs LiDAR to keep drainage divides honest. When only part of an extent has LiDAR, resampling to a common grid is often necessary, and the connectivity pitfalls of doing so are covered in the spatial resolution tradeoffs topic.
Frequently Asked Questions
Is SRTM accurate enough for regional watershed delineation?
For basins larger than roughly 50 km2 with moderate to high relief, SRTM at 30 m resolution and about 16 m LE90 vertical accuracy delineates drainage divides and main-stem channels reliably. Its accuracy degrades in flat terrain and where dense canopy or buildings bias the radar surface upward, so low-relief and urban studies usually need LiDAR.
Why does SRTM overestimate elevation under forest canopy?
SRTM is a C-band radar product whose returns come from the scattering phase center within the canopy rather than the ground. In dense forest this places the modeled surface several meters above bare earth, which shifts ridgelines and can misroute shallow drainage. LiDAR classifies ground returns explicitly and delivers a true bare-earth surface.
How much larger are LiDAR DEMs than SRTM for the same area?
A 1 m LiDAR DEM has roughly 900 times as many cells as a 30 m SRTM grid over the same footprint, so storage and memory scale accordingly. A county that fits in a few hundred megabytes of SRTM can require hundreds of gigabytes of tiled LiDAR, which is why regional and continental studies often stay on SRTM.
Related Topics
- SRTM & LiDAR Data Acquisition — parent topic covering how to source, download, and mosaic both radar and laser elevation products
- How to Download SRTM DEMs for Python Hydrology Workflows — the acquisition walkthrough that produces the radar tiles profiled on this page
- Spatial Resolution Tradeoffs — how grid cell size interacts with delineation accuracy, drainage density, and compute cost
- Choosing Between 10 m and 1 m DEM Resolution for Delineation — the same accuracy-versus-cost decision applied to national grids rather than data sources
- Hydrology Data Preparation & DEM Processing — the overview tying elevation sourcing to the full DEM conditioning workflow