EMODnet 2018 Bathymetry

EMODnet maintains a number of bathymetry (sea floor depth) datasets.

There are currently two datasets with full coverage of Europe: a 1/8 arc minute (~200m) version released in 2016, and a 1/16 arc minute (~100m) version released in 2018. The datasets are a composite of bathymetric surveys, Landsat 8 imagery, and GEBCO data.

The vertical datum used is Lowest Astronomical Tide.

Coverage

The 2018 dataset covers a large area around Europe: 15° to 90° latitude, and -36° to 43° longitude. The elevation over land areas is given as NODATA values.

EMOD 2018 coverage map.
Render of EMODnet 2018 sea floor depth.

Adding EMODnet 2018 Bathymetry to Open Topo Data

Make a new folder for the dataset:

mkdir ./data/emod2018

Download the files from EMODnet into ./data/emod2018. You want the 2018 dataset, in ESRI ASCII format. Extract the zip folders, you should have 59 .asc named like A1_2018.asc.

Unlike other datasets, the EMOD tiles aren't aligned on a nice whole-number grid, so Open Topo Data can't tell from the filenames which tile covers which area. To handle this we can build a https://gdal.org/drivers/raster/vrt.html - a single raster file that links to the 59 tiles and which Open Topo Data can treat as a single-file dataset. Unfortunately you'll need to install GDAL for this.

Create a new folder for the VRT:

mkdir ./data/emod2018-vrt

Build the vrt using relative paths so the file will work inside the docker image:

cd ./data/emod2018-vrt
gdalbuildvrt -co VRT_SHARED_SOURCE=0 emod2018.vrt ../emod2018/*.asc
cd ../

Create a config.yaml file, pointing to the VRT folder:

datasets:
- name: emod2018
  path: data/emod2018-vrt/

Rebuild to enable the new dataset at localhost:5000/v1/emod2018.

make build && make run

Extra performance

.asc files take up a lot of disk space and are slow for random reads. Consider converting to a compressed geotiff:

bash gdal_translate -co COMPRESS=DEFLATE -co PREDICTOR=2 {asc_filename} {tif_filename}

Public API

The Open Topo Data public API lets you query NED 10m for free:

curl https://api.opentopodata.org/v1/emod2018?locations=55.884323,2.528276
{
  "results": [
    {
      "elevation": -81.94999694824219, 
      "location": {
        "lat": 55.884323, 
        "lng": 2.528276
      }
    }
  ], 
  "status": "OK"
}

The public API uses the 2018 version of the dataset.