Overpass query example

Offshore wind turbines and the water depth

The sea depth at every turbine of offshore wind farms, from the GEBCO grid via elevation=1. Example: the German Bight.

At sea, elevation=1 returns the depth of the sea floor as a negative number, from the GEBCO grid. That works for anything mapped offshore: wind turbines, platforms, buoys or wrecks.

This query finds the wind turbines in the German Bight west of Heligoland and lists them from the deepest water.

The query

[out:json][timeout:25];
node["generator:source"="wind"](53.8,5.8,54.6,7.6);
out;

Run it

Running the query…

Live result from overpass.ch, cached for up to 12 hours. Map data © OpenStreetMap contributors (ODbL). Heights produced using Copernicus WorldDEM™-90 © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved. Sea depths: GEBCO Compilation Group (2026) GEBCO 2026 Grid.

How it works

  1. node["generator:source"="wind"] finds wind turbines, which are mapped as power=generator nodes.
  2. The bounding box lies entirely at sea, so no turbines on land are included.
  3. With elevation=1 each turbine gets an elevation, here between about −23 and −40 m. A direct call to /elevation also tells you "surface": "sea" and which dataset answered.
  4. GEBCO is a grid of about 460 m built from surveys and satellite data. It gives the depth of the surrounding sea floor, not of a single foundation. It is not for navigation.

Variations

  • Whole wind farms as areas: nwr["power"="plant"]["plant:source"="wind"] with out center;.
  • Land and sea mixed: the same call answers with heights on land and depths at sea, so you don't need to know in advance which one a point is.

Run it from your code

The query is unchanged; elevation=1 in the URL adds the heights. Each height uses one lookup from your elevation allowance.

curl 'https://api.overpass.ch/v1/YOUR_API_KEY/interpreter?elevation=1' \
  --data-urlencode 'data@query.overpassql'

Save the query as query.overpassql. It works the same in Overpass Turbo, QGIS and JOSM.

More examples

All examples →