JordiBolibar / MassBalanceMachine

Global machine learning glacier mass balance modelling, capable of assimilating all sources of glaciological and remote sensing data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MassBalanceMachine

A bridge between mass balance modelling and observations. Global machine learning glacier mass balance modelling that assimilates all glaciological and remote sensing data sources.

  • πŸ”οΈ MassBalanceMachine takes meteorological, topographical and/or other features to predict the surface mass balance of glaciers for a region of interest.
  • ❄️ MassBalanceMachine uses glaciological (stake) and geodetic mass balance data as targets.
  • πŸ“… MassBalanceMachine can make predictions or fill data gaps on an annual, seasonal (summer and winter), and monthly temporal scale for any spatial resolution.

This project is in ongoing development, and new features will be added over the coming months. Please see the contribution guidelines for more information on contributing to this project.

Requirements

You can run the MassBalanceMachine core scripts and notebooks with the following software installed:

Installation and Usage

To run the scripts and the notebooks, install the environment and all the necessary packages using the environment.yml file with the following command:

conda env create -f environment.yml

Ensure you are using the Conda terminal and are in the same directory of the environment.yml file or put in the correct path to the file in the command above. Then activate the environment with:

conda activate MassBalanceMachine

All packages should now be installed correctly, and you are ready to use the MassBalanceMachine core (mbm).

Installation for Windows Users

Note: Topographical features are retrieved using OGGM, which for now requires a Linux environment. For Windows users it is not required to run the model training and evaluation in the remote environment.

If you haven't already, please consult How to install Linux on Windows with WSL. A list of steps is provided for Windows users to run this code on their local machine in a remote environment:

  1. Please see one of the following links, depending on your editor of choice, how to connect WSL as a remote environment:
    1. Visual Studio
    2. PyCharm
    3. Juypyter Notebook
  2. Installing Anaconda on Linux:
    1. Anaconda Docs, or
    2. Steps to Install Anaconda on Windows Ubuntu Terminal
  3. Create a new Anaconda environment from the environment.yml file that is located in the mbm directory.
  4. Access the remote environment, conda activate MassBalanceMachine via the terminal and start a Jupyter Notebook.

Project Structure

  • mbm contains the most important scripts, classes, and notebooks for the MassBalanceMachine project. New users can use these files to get started and add more or change existing files to meet their needs.
  • regions contains MassBalanceMachine instances for different regions in the world. If the region you are interested in is not on this list, you can, with a pull request, add this to the repository. Please make sure you do not upload any confidential or unpublished data. Regions that are covered:
    • [WIP]Iceland
    • [COMING SOON] Switzerland
    • [COMING SOON] Norway
    • [ADD YOUR OWN REGION]. PRs welcome! Message us if you have questions πŸ™‚

Project Roadmap

The following features are on the roadmap to be implemented in the coming months:

  • πŸ›°οΈ MassBalanceMachine uses geodetic mass balance data as an extra target variable on top of glaciological data. This will help calibrate the bias/trend in long simulations where the cumulative mass balance matters.
  • πŸ”„ MassBalanceMachine can do transfer learning for new regions, reducing the training time and making more accurate predictions.
  • πŸ“Š MassBalanceMachine can incorporate physical constraints, in order to merge physical knowledge with data-driven discovery.

Contributors

Julian
Julian

πŸ’» πŸ“– 🚧 πŸ”£ πŸ”¬
khsjursen
khsjursen

πŸ”¬ πŸ’» πŸ€” πŸ”£
Jordi Bolibar
Jordi Bolibar

πŸ”¬ πŸ“† πŸ’΅ πŸ€” πŸ§‘β€πŸ«
Marijn
Marijn

πŸ€” πŸ”£ πŸ”¬
zekollari
zekollari

πŸ”¬ πŸ’΅ πŸ€” πŸ§‘β€πŸ«

Contribution Guidelines

The MassBalanceMachine project is an open-source community project, welcoming new users to fork the repository, start adding new regions, or make changes to the existing code and make a pull request. We encourage you to contact one of the contributors listed above if you have any questions. You can also create new Git issues for new features or changes to existing features.

About

Global machine learning glacier mass balance modelling, capable of assimilating all sources of glaciological and remote sensing data

License:MIT License


Languages

Language:Jupyter Notebook 61.9%Language:Python 38.1%