Glacier surging experiments#
Goals of this notebook:
Learn how to set up a surging glacier using OGGM-Edu.
Understand and describe the effects of glacier surging.
In this notebook we are going to explore surging glaciers and how we can experiment with them using OGGM-Edu.
What is a glacier surge?
A small percentage of glaciers undergo short periods of faster flow. They experience a change in morphology and surface characteristics, which sometimes leads to a marked frontal advance. The speed of the ice increases up to 10 - 1000 times of the normal velocity. Record flows are observed with velocities that exceed 100m per day. Surges happen in decadal cycles and can last for 1 up to 15 years.(Jiskoot, 2011)
We start with importing the necessary classes:
from oggm_edu import SurgingGlacier, Glacier, GlacierBed, MassBalance, GlacierCollection
Basics#
We set up a glacier with a linear bedrock and variable width (see Intro notebook) as a setting for our experiment.
# Bed and mass balance
bed = GlacierBed(altitudes=[3400, 3000, 2500, 1500],
widths=[500, 400, 300, 300])
mass_balance = MassBalance(ela=2900, gradient=4)
bed.plot()
We can then define a surging glacier using the SurgingGlacier
class
surging_glacier = SurgingGlacier(bed=bed, mass_balance=mass_balance)
The surging glacier is essentially the same as a Glacier
but with some added attributes, namely the .normal_years
, .surging_years
and the .basal_sliding_surge
.
By default these are set to 50 years of non-surging and 5 years of surging, with a basal sliding during a surge 10 times higher then when not surging.
These can easily be changed by the user after initialisation.
There are also some changes to how the progression works, and it is not possible to progress a surging glacier to equilibrium.
surging_glacier.normal_years
50
surging_glacier.surging_years
5
# The surging periodicity is also presented in the representation.
surging_glacier
Attribute | |
---|---|
Type | SurgingGlacier |
Age | 0 |
Length [m] | 0.0 |
Area [km2] | 0.0 |
Volume [km3] | 0.0 |
Max ice thickness [m] | 0.0 |
Surging periodicity (off/on) | [[50, 5]] |
Surging now? | False |
surging_glacier.basal_sliding
5.7e-20
surging_glacier.basal_sliding_surge
5.7000000000000005e-19
When we progress this glacier the basal sliding will be increased every 50 years resulting in an increased ice flow.
To learn more about ice flow parameters, take a look at this notebook.
surging_glacier.progress_to_year(400)
surging_glacier.plot_history()
In the plot above we can distinguish the surging periods as a rapid expansion in both length and area (also marked in orange).
surging_glacier.plot()
Surging glacier experiment#
We can compare this to a non-surging glacier. For this we will again employ the glacier collection.
# Create a "normal" glacier based on the same bed and mass balance
glacier = Glacier(bed=bed, mass_balance=mass_balance)
collection = GlacierCollection()
# Add the two glaciers to the collection
collection.add([surging_glacier, glacier])
# Make sure the glaciers are the same age
collection.progress_to_year(400)
/usr/local/pyenv/versions/3.10.12/lib/python3.10/site-packages/oggm_edu/glacier.py:1202: UserWarning: Year has to be above the current age of the glacier. It is not possible to de-age the glacier. Geometry will remain the same.
warnings.warn(msg)
collection.plot_history()
collection.plot()
collection
Type | Age | Length [m] | Area [km2] | Volume [km3] | Max ice thickness [m] | Surging periodicity (off/on) | Surging now? | Bed type | Top [m] | ... | ELA [m] | Original ELA [m] | Temperature bias [C] | Gradient [mm/m/yr] | Id | Max ice velocity [m/yr] | AAR [%] | Response time [yrs] | Creep (Glen A) | Basal sliding | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Glacier | |||||||||||||||||||||
1 | SurgingGlacier | 400 | 15400.0 | 5.515 | 0.781632 | 166.361144 | [50, 5] | False | Linear bed with a variable width | 3400 | ... | 2900 | 2900 | 0 | 4 | NaN | NaN | NaN | NaN | NaN | NaN |
2 | Glacier | 400 | 16400.0 | 5.815 | 1.265717 | 246.235740 | NaN | NaN | Linear bed with a variable width | 3400 | ... | 2900 | 2900 | 0 | 4 | 2 | 110.000054 | 55.751042 | NaN | 2.4e-24 | 0 |
2 rows × 23 columns
Next we can create a glacier with a stronger surge, add this to the collection and compare it to the two previous glaciers.
surging_glacier_strong = SurgingGlacier(bed=bed, mass_balance=mass_balance)
surging_glacier_strong.basal_sliding_surge = 5.7e-20 * 50
collection.add(surging_glacier_strong)
collection.progress_to_year(400)
/usr/local/pyenv/versions/3.10.12/lib/python3.10/site-packages/oggm_edu/glacier.py:1202: UserWarning: Year has to be above the current age of the glacier. It is not possible to de-age the glacier. Geometry will remain the same.
warnings.warn(msg)
/usr/local/pyenv/versions/3.10.12/lib/python3.10/site-packages/oggm_edu/glacier.py:559: UserWarning: Year has to be above the current age of the glacier. It is not possible to de-age the glacier. Geometry will remain the same.
warnings.warn(msg)
collection
Type | Age | Length [m] | Area [km2] | Volume [km3] | Max ice thickness [m] | Surging periodicity (off/on) | Surging now? | Bed type | Top [m] | ... | ELA [m] | Original ELA [m] | Temperature bias [C] | Gradient [mm/m/yr] | Id | Max ice velocity [m/yr] | AAR [%] | Response time [yrs] | Creep (Glen A) | Basal sliding | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Glacier | |||||||||||||||||||||
1 | SurgingGlacier | 400 | 15400.0 | 5.515 | 0.781632 | 166.361144 | [50, 5] | False | Linear bed with a variable width | 3400 | ... | 2900 | 2900 | 0 | 4 | NaN | NaN | NaN | NaN | NaN | NaN |
2 | Glacier | 400 | 16400.0 | 5.815 | 1.265717 | 246.235740 | NaN | NaN | Linear bed with a variable width | 3400 | ... | 2900 | 2900 | 0 | 4 | 2 | 110.000054 | 55.751042 | NaN | 2.4e-24 | 0 |
3 | SurgingGlacier | 400 | 14900.0 | 5.365 | 0.472113 | 103.202973 | [50, 5] | False | Linear bed with a variable width | 3400 | ... | 2900 | 2900 | 0 | 4 | NaN | NaN | NaN | NaN | NaN | NaN |
3 rows × 23 columns
collection.plot_history()
The response of the volume to a surge seems to be lagging behind the response in length somewhat. Can you come up with an explanation for this? Click for a hint
At the first stage of a surge, the glacier is very quick to adjust its length. This doesn't really change the volume of the glacier, only stretches it out. However, this also means that more of the glacier area will be in the ablation zone, and the glacier will begin to loose mass.References#
¹ Hester Jiskoot: Glacier Surging. In: Vijay P. Singh, Pratap Singh, Umesh K. Haritashya (Hrsg.): Encyclopedia of Snow, Ice and Glaciers. Springer, Dordrecht 2011, S. 415–428, ISBN 978-90-481-2641-5