Monitoring Water Resources from Space
The Water Observatory is an Earth-observation-based solution that provides reliable and timely information about surface water levels of waterbodies across the globe. All observations are provided and can be explored interactively via the Water Observatory Dashboard or via RESTful API. The Water Observatory provides a valuable service to local authorities, governmental agencies, natural parks and reserves, agricultural ministries and agencies, stakeholders in food and energy production, and citizens alike.
The global database of water bodies - lakes, dams, reservoirs - is built on top of existing databases:
Global Reservoir and Dam (GRanDv1.01) database,
WWF’s Global Lakes and Wetlands Database (levels 1 and 2).
Unfortunately, the accuracy of polygons outlining the nominal extent of the water bodies in these databases is insufficient (see Figures below). We therefore used these datasets as collection of potentially interesting water bodies and extracted their polygons from the OpenStreetMap. The database is available here.
At the moment, our database consists of over 40000 waterbodies, out of which around 7000 are monitored and displayed in the Water Observatory Dashboard.
Nominal outlines of Alarcon Dam in Spain from BlueDot's water bodies database (blue), GRanD (green), and GLWD (orange). Imagery from Digital Globe, 2018, Google.
The Water Observatory extracts the surface water levels from Sentinel-2 optical satellite imagery provided by the Copernicus program. The algorithm is implemented in Python and among other consists of the following steps:
download single-band image of a Normalized Difference Water Index (NDWI) using Sentinel Hub's WCS service
detect clouds using Sinergise's s2cloudless cloud detector
reject all images that are too cloudy
- run Canny edge detector on the NDWI single-band image and dilate the edges
- derive binary water mask with Otsu’s method using only the dilated-edge-pixels
- polygonize water mask with rasterio
The above water detection algorithm is simple, robust and gives good results. Nevertheless the algorithm can be further improved if needed. The current version of the algorithm is released under MIT license and available at GitHub. Feel free to run it, improve it, and share it.
The Water Observatory results can be explored using its dashboard. Simply navigate the map (pan and zoom)  to select a waterbody (dots in the map). After the waterbody is selected all other elements in the dashboard get updated:
Search console, name of the waterbody and country, date of observation, water coverage and total number of all valid observations for selected waterbody .
True color image of selected waterbody  with nominal water extent (blue line) and observed water extent (orange line).
Surface water levels since end of the 2015 up to the most recent Sentinel-2 image from few days ago. Selection of an observation on another date updates the image .
We plan to add new waterbodies from all over the globe and improve on water detection algorithm.
The development of the Water Observatory is supported by or relies on data from: