Digital Elevation Model (DEM) Data

About DEM Data

Mission information

A DEM is a digital model or 3D* representation of a terrain's surface. With a DEM you are able to obtain and analayse heights within your area of interest, and integrate the data in 3D applications. The data can also be used for the orthorectification of satellite imagery (e.g., Sentinel 1). Sentinel Hub uses Mapzen's DEM, available through Amazon Web Services (AWS) hosted in the US. This dataset is based on SRTM30 (Shuttle Radar Topography Mission, a product with 30m resolution) but is in several places improved with local datasets. Bathymetry data is taken from ETOPO1. It is a static datasource and does not depend on the date.

More information: Mapzen's documentation

*Actually, we should say "2.5D" to be more precise. The terrain surface embedded in 3D space is modeled in a way that precisely one height is assigned to each pixel. This brings limitations as not all 3D shapes (e.g., overhangs, vertical walls, caves) can be fully modeled.

Attribution and use

See Mapzen's terms.

Accessing DEM Data

To access data you need to send a POST request to our process API. The requested data will be returned as the response to your request. Each POST request can be tailored to get you exactly the data you require. To do this requires setting various parameters which depend on the datasource you are querying. This chapter will help you understand the parameters for DEM data. To see examples of such requests go here, and for an overview of all API parameters see the API Reference.

Endpoint Locations

ServiceNotes
services-uswest2.sentinel-hub.com/apiGlobal coverage.

Data type identifier: DEM

Use DEM as the value of the input.data.type parameter in your API requests. This is mandatory and will ensure you get DEM data.

Filtering Options

This chapter will explain the input.data.dataFilter object of the DEM process API.

There are no filtering options available when requesting DEM.

Processing Options

This chapter will explain the input.data.processing object of the DEM process API.

ActionDescriptionValuesDefault
upsamplingDefines the interpolation used for processing when the pixel resolution is greater than the source resolution (e.g. 5m/px with a 10m/px source).NEAREST - nearest neighbour interpolation
BILINEAR - bilinear interpolation
BICUBIC - bicubic interpolation
NEAREST
downsamplingAs above except when the resolution is lower.NEAREST - nearest neighbour interpolation
BILINEAR - bilinear interpolation
BICUBIC - bicubic interpolation
NEAREST
clampNegativeAn option to replace negative orthometric heights with 0. Useful for removing ocean bathymetry, for example.

Note: If clampNegative:true and egm: true it is still possible to have negative output values. This is because the egm offset can be negative and it is applied after clampNegative.
TRUE - negative orthometric heights are replaced with 0.
FALSE - no changes.
FALSE
egmAn option to add geoid heights as determined from the earth gravitational model (EGM96) to the orthometric heights in which case the returned values represent ellipsoidal heights relative to the WGS84 ellipsoid.TRUE - returned values are ellipsoid heights
FALSE - returned values are orthometric heights
FALSE

Available Bands and Data

Information in this chapter is useful when defining input object in evalscript. A string listed in the column Name can be an element of the input.bands array in your evalscript.

Property nameDescriptionResolutionUnits
DEMHeights in metersVarious, depending on the datasource used for the generation of the DEM, see.meters
dataMaskThe mask of data/no data pixels (more).N/A*0 - no data
1 - data

*dataMask has no source resolution as it is calculated for each output pixel.

Scene Object

The evalscript evaluatePixel scene object is not returned/is null when requesting DEM.

Dataset specific constraints

DEM values are in meters and can be negative for areas which lie below sea level (e.g., ocean areas or much of the Netherlands). When requesting a DEM we thus recommend setting the output format in your evalscript to sampleType: SampleType.FLOAT32. More about output formats can be found here.

For output formats sampleType: SampleType.UINT8 and sampleType: SampleType.UINT16 be careful as negative values can be misinterpreted due to signedness issues as well as potential problems due to integer overflow. For example:

  • sampleType: SampleType.UINT8 - a height of 256 meters will be encoded as 0 in such a file due to overflow. A height of -1 meter will be encoded as 255.
  • sampleType: SampleType.UINT16- a height of -15 meters for instance will be encoded as 65520.

One way to handle this adjustment is to ensure there are no negative values in the output by adding a constant to DEM values, e.g. 12000 (the minimum value in DEM is not smaller than -11000 m). If you need actual DEM values (i.e. heights), the constant 12000 must be subtracted from the output values outside of Sentinel Hub.

//VERSION=3
function setup() {
return {
input: ["DEM"],
output:{
id: "default",
bands: 1,
sampleType: SampleType.UINT16
}
}
}
function evaluatePixel(sample) {
return [sample.DEM + 12000]
}

Examples

DEM examples.