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()
../_images/9ac12ba0186eea7c3dcf6331c16f61eb28de63c167b99df146b10c700307bf82.png
collection.plot_history()
../_images/1fad0b8a203855b465a7729cc5c7b116435ce2e2241e9d3efcfc35915551edbc.png

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()
../_images/460ab0d91060aaad91eb0661fd38d5df301af0405018a7b91ad68c78a0df3e49.png
collection.plot_history()
../_images/dc1237e410b9d861a62e88970429c991fe37953ffaabc902c7002de2531884c1.png

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)

What’s next?#

Back to the table of contents