Skip to content

Machine learning-based glacier snow classification pipeline with Google Earth Engine server-side computations

Notifications You must be signed in to change notification settings

RaineyAbe/glasee

Repository files navigation

GlaSEE: Glacier Snow mapping with Earth Engine

Rainey Aberle, Jukes Liu, and Ellyn Enderlin

CryoGARS Glaciology

Department of Geosciences, Boise State University

Correspondence

Rainey Aberle (raineyaberle@u.boisestate.edu)

Description

Pipeline for land cover classification in Sentinel-2 and Landsat 8/9 imagery using machine learning classifiers trained using manually-classified points at the U.S. Geological Survey Benchmark Glaciers.

This repository is the partner to glacier-snow-cover-mapping. Here, rather than classifying and exporting images locally, all computations are done on the Google Earth Engine server and summary statistics are exported to your Google Drive.

Installation

  1. Clone (or fork and then clone) this repository.
$ git clone https://github.com/RaineyAbe/glasee
  1. Install the required packages listed in environment.yml. We recommend using Mamba or Micromamba for environment management.
$ cd glasee
$ micromamba env create -f environment.yml
  1. If using Jupyter for running notebooks, add the environment as an ipykernel:
$ micromamba activate glasee
$ python -m ipykernel install --name glasee

Requirements

  1. Google Earth Engine (GEE) account: used to query imagery and the DEM (if no DEM is provided). Sign up for a free account here.

  2. Google Drive folder for exports.

Examples

The pipeline can be run for a single site or multiple sites at once using glasee_pipeline.ipynb. Snow cover statistics for each site will be exported in multiple CSV files. To compile the CSV files for each site and remove any empty files, see the compile_CSVs.ipynb notebook.

Please refer to each notebook for more information.

Notes on GEE job submissions

GEE enforces user quotas on memory usage (default = 10 MB per query) and the number of concurrent requests (default = 40). The GlaSEE pipeline mitigates exceeding these limits by splitting tasks into smaller date ranges and increasing the image scale only if necessary.

The date range specified by the user is split into smaller ranges before exporting based on the area of the glacier (AOI):

  • AOI < 500 km2: split by month
  • 700 km2 <= AOI < 1100 km2: split by week
  • AOI >= 1100 km2: split by day

For glaciers with areas > 3000 km2, splitting the date range by day is usually not enough to avoid computation time out. Therefore, the images are automatically upscaled to 200 m resolution, which we found empirically to work for glaciers larger than this threshold.

Especially for the largest glaciers, many exports may be empty, depending on image availability. To compile all results and remove empty CSVs from your Google Drive folder, see the compile_CSVs.ipynb notebook in this repo.

Citation

Please reference the following when using or presenting this work:

Aberle, R., Enderlin, E., O’Neel, S., Florentine, C., Sass, L., Dickson, A., et al. (2025). Automated snow cover detection on mountain glaciers using spaceborne imagery and machine learning. The Cryosphere, 19(4), 1675–1693. https://doi.org/10.5194/tc-19-1675-2025

Acknowledgements

This work was funded by BAA-CRREL (award no. W913E520C0017), NASA EPSCoR (award no. 80NSSC20M0222), the NASA Idaho Space Grant Consortium summer internship program, and the SMART (Science, Mathematics, And Research for Transformation) Scholarship-for-Service program. This research was supported by the U.S. Geological Survey Ecosystem Mission Area Climate Research and Development Program.

About

Machine learning-based glacier snow classification pipeline with Google Earth Engine server-side computations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors