Who does not like Google Earth Engine (GEE)? It has a neat interactive JS editor with on-the-fly visualisation, a huge open-source data library and a large set of functions and methods bridging the two. Plus, GEE is well documented.
In addition, you can tap into other google cloud services for data storage, Machine Learning to run explorative analysis in your browser or deploy them as and GEE app (free) with an interactive interface for your team.
GEE offers a JS and Python (jay) API to build more complex solutions that allow you to use GEE functions and data in connection to your favourite development environment.
There are also Machine Learning functions() in GEE and the powerful option to connect the Tensor Flow platform.
We enjoy using the browser-based features for proof-of-concept work in spatial data science and environmental project:
- Vegetation cover over time
- The lag time between rainfall and vegetation cover in arid and hyper-arid environments
- Ephemeral stream and water body mapping
- Comparison of land cover classification algorithms (Random Forests and Support Vector Machine)
- Land Surface Temperature
Vegetation Cover
Large-scale environmental projects require baseline studies, and vegetation cover is a sound indicator of environmental value and restoration success. Also, the Sentinel 2 data has a resolution of 10m temporal patterns that are easy to identify with the satellite’s 5-7 day revisit times. This makes for a sound data source for environmental monitoring or urban maintenance and operations assessments. Finally, GEE makes it easy to test for the best vegetation detection indexes, as there are hundreds.
We tapped into the python API to combine the data collection and analysis with a basic emailing reporting system. Defining change detection intervals (weekly, monthly, inter and intraseasonal and long-term) and screening for new data to produce AOI-based vegetation change stats and maps.
- Check for new data (compare to existing results)
- Run analysis and store results
- Generate PDF and email with results
- Send email
Sentinel 2 baseline 4.00 update
While we almost went into production with the current script (GitHub), ESA updated the Sentinel-2 processing baseline in January 2022. One breaking change is the definition of digital numbers (DN) in the source files (Negative reflectance values are now possible, and DNS before and after the change are shifted and no longer comparable). This leads to underdetection biasing the results when comparing pre-2022 with 2022 data.
While there are ways to correct this manually, GEE went ahead and published a harmonised data set as: ee.ImageCollection("COPERNICUS/S2_HARMONIZED").
While some information on ESA’s update was available, it did not appear on my radar, and an in-production product would have led to severe inference problems. Instead, GEE took a few weeks to publish the new data set, which is acceptable as they only provide a pipeline to the ESA data products.
Stuff that I would like to see on GEE in the future
- no-code app building
- soil grid data and WorldClim
- global weather data
- Open Street Map data
But I will also dive into the ML functions (Tensor Flow) and report back.
Leave a Reply