Giter VIP home page Giter VIP logo

glacier_simulator's Introduction

docs/_static/logo.png


OGGM is a modular open source model for glacier dynamics

OGGM is able to simulate past and future mass balance, volume and geometry of (almost) any glacier in the world, in a fully automated and extensible workflow.

The model accounts for glacier geometry (including contributory branches) and includes an explicit ice dynamics module. We rely exclusively on publicly available data for calibration and validation. OGGM is modular and supports novel modelling workflows: it LOVES to be remixed and reused!

docs/_static/ex_tasman.jpg

Installation, documentation

The documentation is hosted on ReadTheDocs: http://docs.oggm.org

Get in touch

About

Version:Pypi version Supported python versions
Citation:GMD Paper Zenodo
Tests:Code coverage Linux build status Mass balance cross validation Documentation status Benchmark status
License:BSD-3-Clause License
Authors:

See the version history for a list of all contributors.

glacier_simulator's People

Contributors

fmaussion avatar pat-schmitt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

glacier_simulator's Issues

Wrong area calculation for mass balance plot and glacier wide mass balance

While programming the AAR I looked over the area calculation for the glacier wide mass balance and saw that I calculated the area and the whole glacier wide mass balance with a wrong model picture in mind. I orientated myself more in how the plot is showing the area than the model intern area is handled.

To make clear what I mean here a small draft when looking from above, the indices show grid points, first row current implementation in the simulator, second row how the model area looks like

20201203_105432

So currently the area is calculated using a trapezoidal area between grid points and the mass balance is calculated at the mean elevation of this trapezoid. And the area around the ELA is accounted partly to the accumulation and partly to the ablation area, depending on where the ELA is located relative in the cell.

So my plan is to use now the model point of view and using the model bin_area, and just use the surface_h to determine if the area shoulf count for the accumulation or ablation area (so no area splitting in one cell according to ELA position)

@fmaussion what do you think?

Change right panel to area histogram

The bin size can be quite large (~ 50) so the bars are visible, and they can get a color (from Red to Blue) scaled to the mass-balance value.

Show model progress option affects the equilibrium condition

I may understand why this happens, but we need to work around this problem -> the model behavior should be exact same regardless of the "show" step.

Furthermore, the "advance model" button also stops when "equilibrium" is reached. This also shouldn't happen!

Add more safeguards to prevent long model runs

By playing along yesterday I came on two ideas to stop a run when it becomes very unstable:

  • we could add a wall-clock timer for each 10 years step that would stop the run if a 10 years step needs too long to run. For example:
import signal

def _timeout_handler(signum, frame):
    raise TimeoutError('This run was killed because of timeout')

step_timeout = 10
signal.signal(signal.SIGALRM, _timeout_handler)

while (t_rate > 0.001) and (model.yr < max_calc_years) and (was_close_zero < 5):
        # Start the timer
        signal.alarm(step_timeout)
        model.run_until(model.yr + dyears)
        signal.alarm(0)
        

Or something similar.

  • we could stop the simulation when the glacier grows out of the domain. I think that this solution would be enough and would make the complex one above obsolete.

@pat-schmitt , thoughts?

Possible change in text interface

In the current advanced interface the text looks like:

Years to advance model: 150

Would if be to have a changing text so that it reads:

Advance the model for X years

Where "X" is updated with the slider?

Wrong unit for Annual Mass-Balance and Glacier-wide Mass-Balance

OGGM returns the Mass-Balance in the unit m/yr, and it must be multiplied with rho_ice to get mm w.e./yr.

I will change the unit in the Mass-Balance plot (upper right figure) and multiply the Glacier-wide Mass-Balance (info text lower right) with rho_ice.

General direction

I really like the app, this is going in the perfect direction!

A few quick thoughts (not much time today):

  • the "climate" part should be left for another app. I.e this app focuses on glacier shape and size
  • as such, the "simulation time" slider should be removed and all runs should be "run_until_equilibrium"
  • is there a way to signify in the app that the glacier is running? I.e. show the current simulation year or volume change or something....
  • if there is a way to include the slope of the bed as slider that would be awesome ( maybe this could replace the choice for parabola or trapeze, which is too complex at this stage
  • the lower plot (glacier shape) could also be filled with a glacier
  • another bedrock profile: wide at the top, narrow at the bottom

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.