ETOPO1 is a global elevation dataset developed by NOAA. Unlike many DEM datasets, ETOPO1 contains bathymetry (water depth). There are two variants of the dataset, which vary in how elevation is calculated for the Antartic and Greenland ice sheets: an ice-surface variant, and a bedrock-level variant.

The dataset has a 1 arc-minute resolution, which corresponds to a resolution of about 1.8km at the equator.

ETOPO1 was made by aggregating many other datasets. The bulk of the land elevation comes from SRTM30, while most bathymetry is sourced from GEBCO. The comprising datasets were normalised to the same vertical datum (sea level) and horizontal datum (WGS84).


The accuracy of ETOPO1 varies spatially depending on the underlying source data. NOAA estimates the vertical accuracy is no better than 10m.

The quality of ETOPO1 is high: there are no missing values or holes (holes in the SRTM30 source were fixed by hand). Transitions between source datasets are smooth.

ETOPO1 elevation
Pseudocolour render of ETOPO1 elevation.

Adding ETOPO1 to Open Topo Data

Download the grid-registered .tif file from to the data directory and unzip.

mkdir ./data/etopo1
wget -P ./data/etopo1
unzip ./data/etopo1/
rm ./data/etopo1/

The provided .tif file doesn't include projection information, which is needed for Open Topo Data. It can be added with GDAL:

gdal_translate -a_srs EPSG:4326 ./data/etopo1/ETOPO1_Ice_g_geotiff.tif ./data/etopo1/ETOPO1.tif
rm ./data/etopo1/ETOPO1_Ice_g_geotiff.tif

Create a file config.yaml with the following contents

- name: etopo1
  path: data/etopo1/

Rebuild to enable the new dataset at localhost:5000/v1/etopo1?locations=27.98,86.92

make build && make run

Public API

The Open Topo Data public API lets you query ETOPO1 for free:

  "results": [
      "elevation": 1596.0, 
      "location": {
        "lat": 39.747114, 
        "lng": -104.996334
  "status": "OK"

Open Topo Data hosts the ice-elevation version of the dataset (the same as seen in the image above).