Deltares / aqua-monitor

Monitoring surface water changes from space at global scale
GNU Lesser General Public License v3.0
54 stars 18 forks source link

Aqua Monitor shows how the Earth's surface water has changed during the last 30 years.

http://aqua-monitor.appspot.com

See also the following Nature Climate Change paper: http://nature.com/nclimate/journal/v6/n9/full/nclimate3111.html

The website shows static map by default, visualizing surface water changes which occurred during 1985-2016 as explained in the above paper (see supplementary materials).

A dynamic mode can be turned on for a more detailed analysis. In this mode, the surface water changes are computed on-the-fly using parameters provided by the user. Additionally, percentile composite images are generated for two selected years.

The following Google Earth Engine script can be used to generate surface water changes on-the-fly: https://code.earthengine.google.com/ca025b5b16b195c18793936cb56b6a69. And the following was used to generate static maps: https://code.earthengine.google.com/ca025b5b16b195c18793936cb56b6a69.

The results presented in the paper include a few additional clean-up steps (noise clean-up in the mountains using HAND mask, deforestation-like changes). But they were excluded during static map generation.

How to build?

Install Node.js, which is used by build scripts to compile sources and prepare everything for deployment.

Then run the following commands:

After that, run:

The resulting dist/ directory can be used to deploy everything as a Google App Engine app.

Use "gulp watch" to monitor sources continuously during development - they will be automatically compiled into dist/ on every change. See gulpfile.babel.js for the rules used to do this.

How to run and deploy?

To deploy the Aqua Monitor under Google App Engine. The following files need to be added / modified:

Deploy using gcloud:

Test locally

Since we're using Python 2.7 here, we need old version of GCS tools here, such as dev_appserver.py

Installing this on Windows for development purposes is not easy. One way to do this is via https://pypi.org/project/gae_installer/:

(Google App Engine Standard environment, Python 2.7)

On Windows use (assumin virtualenv with Python 2.7 named aqua-monitor):

On Linux (after you upgrade gcloud with the relevant components) gcloud components install app-engine-python-extras

Open the aqua monitor at port 8081

Advanced parameter, not exposed yet to the user interface

This will work only at high zoom levels, the following (experimental) arguments can be used to tune the algorithm:

Format: http://aqua-monitor.appspot.com?min_year=1990&max_year=1995