A Digital Elevation Model (DEM) is a digital 3D representation of
the bare earth's topography, or "ground surface," used in
geographic information systems (GIS). It is created from
elevation data and can be represented as a raster (a grid of
squares) or a triangular irregular network (TIN). Unlike a Digital
Surface Model (DSM), a DEM excludes features like buildings
and trees to provide a "bare-earth" model for applications such
as flood modeling, land-use studies, and geological
applications.
What is the best interpolation method to calculate the
elevation from a DEM?
Nearest Neighbour
simply takes the nearest pixel
+ Advantage: extremely fast, no smoothing, values are
exactly those from the original grid
- Disadvantage: staircase artefacts, no subpixel
information,
often visually ‘blocky’
Accuracy:
o
correct for categorical data (e.g. land use classes)
o
tends to be most inaccurate for elevation data
because jumps occur
Bilinear Interpolation
takes the 4 nearest pixels and calculates a
weighted average
•
A+ Advantage: smooth transitions, fewer artefacts
•
A- Disadvantage: smooths out small details →
•
Extreme elevations (e.g. mountain peaks) are slightly
softened
•
Accuracy:
o
Typical standard for DEM resampling
o
Good balance between computational effort and
smoothing
Cubic interpolation (cubic / bicubic)
uses the 16 nearest pixels, fits a
cubic function
•
+ Advantage: very smooth surfaces, attractive
•
visualisation
•
- Disadvantage: can produce overshoots (e.g.
•
heights that do not occur in the original → ‘fake peaks’ or
depressions)
•
Accuracy:
o
oftenvisually the most attractive
o
numerically not always ‘realistic’ because it can
generate values that exceed the original min/max
Aster 30m
With Aster we get a precision of ±7m
Swisstopo 0.5m
With Sisstopo 0.5m we get a precision of ±0.3m
Conclusion for DEMs (elevation models)
Accurate in the sense of faithful to the original -> nearest (no
new values, but blocky)
Accurate in the sense of best approximation of true terrain
continuity -> bilinear (standard in GIS, often best compromise)
Smoothest representation for visualisation -> cubic (nice, but
can be exaggerated)
Many GIS programmes (QGIS, GDAL itself) use bilinear for
elevation data by default.
If you want the raw values for scientific analysis -> nearest is
better.
You can find more information for Python an GDAL on my
github repository.