Influence of ice flow parameters on glacier size#
Goals of this notebook:
The student will be able to create a glacier and change Glen’s creep parameter and basal sliding parameter.
The student will be able to explain the influences of the two parameters on glacier shape.
The motion of glaciers is determined by two main processes: One is internal deformation of ice due to gravity and the other is basal sliding. These processes can be described by parameters. In this notebook we will examine their influence on glaciers.
First, we have to import the relevant classes from OGGM Edu
from oggm_edu import GlacierBed, MassBalance, Glacier, GlacierCollection
Let’s create a glacier
# Bed
bed = GlacierBed(top=3400, bottom=1500, width=300)
# Mass balance
mass_balance = MassBalance(ela=3000, gradient=4)
# Glaicer
glacier = Glacier(bed=bed, mass_balance=mass_balance)
Glen’s creep parameter#
We start with looking at the internal deformation of the ice, which results in so called creeping.
To describe it we use Glens’s creep parameter.
Our glacier, and OGGM, defaults to set Glen’s creep parameter to the “standard value” defined by Cuffey and Paterson, (2010): \(2.4\cdot 10^{-24}\).
We can check this by accessing the .creep
attribute
glacier.creep
2.4e-24
The parameter relates shear stress to the rate of deformation and is assumed to be constant. It depends on crystal size, fabric, concentration and type of impurities, as well as on ice temperature (Oerlemans, 2001) (you can find a more detailed description of it here).
Next we will change the creep parameter and see what happens.
An easy way to do this is to create a GlacierCollection
and change the creep parameter for some of the glaciers in the collection.
Here we will also introduce the .fill()
method of the GlacierCollection
, which is useful to quickly create a collection with multiple glaciers.
collection = GlacierCollection()
# This fills the collection with 3 copies of the initial glacier.
# Note that .fill copy the initial glacier as well, hence it will
# remain unchanged.
collection.fill(glacier, n=3)
collection
Id | Type | Age | Length [m] | Area [km2] | Volume [km3] | Max ice thickness [m] | Max ice velocity [m/yr] | AAR [%] | Response time [yrs] | ... | Basal sliding | Bed type | Top [m] | Bottom [m] | Width(s) [m] | Length [km] | ELA [m] | Original ELA [m] | Temperature bias [C] | Gradient [mm/m/yr] | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Glacier | |||||||||||||||||||||
1 | 2 | Glacier | 0 | 0.0 | 0.0 | 0.0 | 0.0 | None | NaN | NaN | ... | 0 | Linear bed with a constant width | 3400 | 1500 | 300 | 20.0 | 3000 | 3000 | 0 | 4 |
2 | 3 | Glacier | 0 | 0.0 | 0.0 | 0.0 | 0.0 | None | NaN | NaN | ... | 0 | Linear bed with a constant width | 3400 | 1500 | 300 | 20.0 | 3000 | 3000 | 0 | 4 |
3 | 4 | Glacier | 0 | 0.0 | 0.0 | 0.0 | 0.0 | None | NaN | NaN | ... | 0 | Linear bed with a constant width | 3400 | 1500 | 300 | 20.0 | 3000 | 3000 | 0 | 4 |
3 rows × 21 columns
We can then change the creep parameter of the glaciers within the collection
# Multiply and divide by 10.
# We pass partial expressions to change the initial value.
# Passing an empty string leaves the value un-affected
# Note that running this cell multiple times will continue to change
# the value.
collection.change_attributes({"creep": ["* 10", "", "/ 10"]})
Value interpreted as a creep factor.
Value interpreted as a creep factor.
Value interpreted as a creep factor.
And progress the glaciers within the collection to year 800:
collection.progress_to_year(800)
And plot the collection
collection.plot()
collection.plot_history()
Sliding parameter#
Basal sliding occurs when there is a water film between the ice and the ground. In his seminal paper, Hans Oerlemans uses a so-called “sliding parameter” representing basal sliding.
For our glacier this parameter is available under the .basal_sliding
attribute.
By default it is set to 0, but it can be modified
# Sliding parameter
glacier.basal_sliding
0.0
# Create another collection
collection = GlacierCollection()
collection.fill(glacier, n=2)
Change the basal sliding parameter of one of the glaciers in the collection to \(5.7 \cdot 10^{-20}\) and progress the collection
# Here we demonstrate another way to change attributes of glaciers
# in the collection quickly.
# The dictionary can contain multiple key-value pairs.
collection.change_attributes({'basal_sliding':[0, 5.7e-20]})
collection.progress_to_year(800)
Take a look at the glaciers
collection.plot()
collection.plot_history()
Initially the glacier with higher basal sliding is advancing down the bed quicker compared to the glacier without basal sliding. However, at a certain point in time the larger volume of Glacier 0 lead to a stronger ice flow, and the glacier can extend further down.
If you want to learn more about the processes of glacier flow, we recommend to go through these two pages:
In the documentation of OGGM you find also information about the theory of the ice flow parameters and the application.
References#
¹ Cuffey, K., and W. S. B. Paterson (2010). The Physics of Glaciers, Butterworth‐Heinemann, Oxford, U.K.
² Oerlemans, J. (2001). Glaciers and climate change. CRC Press. (p. 59)