Skip to content

Commit

Permalink
Update English NB 7
Browse files Browse the repository at this point in the history
+ small corrections to main Spanish NB 7
  • Loading branch information
ehultee committed Nov 18, 2020
1 parent 635c14c commit 0b55d33
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 53 deletions.
18 changes: 9 additions & 9 deletions 7_glaciares_facticos.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Vamos a analizar esta simulación"
"### Vamos a analizar esta simulación"
]
},
{
Expand Down Expand Up @@ -253,7 +253,7 @@
"El glaciar pierde masa durante la fase de retroceso, y despues se mantiene mas o menos constante en la fase de equilibrio.\n",
"\n",
"Esta nos enseña que los glaciares en equilibrio no son proveedores netos de agua: \n",
"Ellos ganan tanta masa como pierden. En el concepto de \"pico de suministro de agua\" de Huss: Hintereisferner ya está en \"pico de suministro de agua\" en esta carrera de compromiso. En un clima más cálido, Hintereisferner podría tener un pico de suministro de agua más adelante.\n",
"Ellos ganan tanta masa como pierden. En el concepto de \"pico de suministro de agua\" de Huss y Hock: Hintereisferner ya está en \"pico de suministro de agua\" en esta carrera de compromiso. En un clima más cálido, Hintereisferner podría tener un pico de suministro de agua más adelante.\n",
"\n",
"![Huss_Hock-peak_water](https://media.springernature.com/full/springer-static/image/art%3A10.1038%2Fs41558-017-0049-x/MediaObjects/41558_2017_49_Fig1_HTML.jpg)\n",
"\n",
Expand Down Expand Up @@ -384,7 +384,7 @@
"### Juego\n",
"\n",
"**¿A qué distancia del equilibrio está este glaciar?**\n",
"Es decir, que sesgo de temperatura sería necesario para mantener este glaciar en equilibrio? Prueba varias valores de \"temp_bias\" para explorar.\n",
"Es decir, que sesgo de temperatura sería necesario para mantener este glaciar en equilibrio? Prueba varias valores de `temp_bias` para explorar.\n",
"\n",
"Para Hintereisferner, -0.8°C no está suficiente! \n",
"\n",
Expand Down Expand Up @@ -453,21 +453,21 @@
"metadata": {
"hide_input": false,
"kernelspec": {
"display_name": "Python 2",
"display_name": "Python 3",
"language": "python",
"name": "python2"
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.17"
"pygments_lexer": "ipython3",
"version": "3.8.3"
},
"toc": {
"base_numbering": 1,
Expand All @@ -484,5 +484,5 @@
}
},
"nbformat": 4,
"nbformat_minor": 2
"nbformat_minor": 4
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,21 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"A couple of real-world OGGM cases for Lizz"
"Our previous notebooks showed how to use OGGM to explore theoretical questions about glaciers: the effect of a different bed slope, the equilibrium line altitude, the mass balance gradient, etc. Now how do we use OGGM to explore real-world glaciers? This notebook gives us some tools."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Set-up "
"## The essentials"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We import our modules. This notebook requires different modules that we have not used before:"
]
},
{
Expand Down Expand Up @@ -61,21 +68,21 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Define the glacier we will play with"
"### Defining the glacier we'll explore"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For this notebook we use the Shallap Glacier, Cordillera Blanca. Some other possibilities to play with:\n",
"In this example we use the Hintereisferner glacier, Austria. Other options are:\n",
"\n",
"- Shallap Glacier: RGI60-16.02207\n",
"- Artesonraju: RGI60-16.02444 ([reference glacier](https://cluster.klima.uni-bremen.de/~github/crossval/1.1.2.dev45+g792ae9c/web/RGI60-16.02444.html))\n",
"- Hintereisferner: RGI60-11.00897 ([reference glacier](https://cluster.klima.uni-bremen.de/~github/crossval/1.1.2.dev45+g792ae9c/web/RGI60-11.00897.html))\n",
"- Columbia: RGI60-02.18415 ([reference glacier](https://cluster.klima.uni-bremen.de/~github/crossval/1.1.2.dev45+g792ae9c/web/RGI60-02.18415.html))\n",
"\n",
"And virtually any glacier you can find the RGI Id from, e.g. in the [GLIMS viewer](https://www.glims.org/maps/glims)"
"And we can simulate virtually any glacier for which we can find an RGI ID, for example from the [GLIMS viewer](https://www.glims.org/maps/glims). Maybe you can find the RGI ID of \"your\" reference glacier there?"
]
},
{
Expand All @@ -94,7 +101,17 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Interactive glacier map "
"## Interactive map of the glacier"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# This will download some data and take some time at first call\n",
"sh = utils.get_rgi_glacier_entities([rgi_id])"
]
},
{
Expand All @@ -103,7 +120,6 @@
"metadata": {},
"outputs": [],
"source": [
"sh = utils.get_rgi_glacier_entities([rgi_id])\n",
"(gv.Shape(sh.geometry.iloc[0]).opts(fill_color=None) *\n",
" gts.tile_sources['EsriImagery'] * gts.tile_sources['StamenLabels']).opts(width=800, height=500, active_tools=['pan','wheel_zoom'])"
]
Expand All @@ -112,14 +128,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Prepare the run"
"## Preparing the model run"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This can take a few minutes on the first call because of data download:"
"This may take a few minutes at first, due to the data download."
]
},
{
Expand All @@ -145,14 +161,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## \"Commitment run\" "
"## \"Committed change\" simulation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This runs a simulation for 300 yrs under a random climate based on the 1985-2015 period (randomly picking years in this period):"
"This cell below runs a simulation for 300 years in a climate based on the period 1985-2015 (randomly selected years from this period):"
]
},
{
Expand All @@ -175,7 +191,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Let's analyse the simulation first "
"### Let's analyze this simualation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We graph the length of the glacier (`length_m`), its volume (` volume_m3`), and the change in its water storage (`delta_water_m3`) during the simulation:"
]
},
{
Expand All @@ -196,14 +219,17 @@
"f, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(16, 4))\n",
"df[['length_m']].plot(ax=ax1)\n",
"df[['volume_m3']].plot(ax=ax2)\n",
"df[['delta_water_m3']].plot(ax=ax3);"
"df[['delta_water_m3']].plot(ax=ax3);\n",
"ax1.set(xlabel='Simulation time [yr]', ylabel='Glacier length [m]');\n",
"ax2.set(xlabel='Simulation time [yr]', ylabel='Glacier volume [m$^{3}$ ice]');\n",
"ax3.set(xlabel='Simulation time [yr]', ylabel='Change in water storage [m$^{3}$ water]');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The volume storage change as monthy timeseries isn't very informative. Let's compute annual sums first:"
"The change in water storage in this form does not tell us much. So, we calculate annual sums:"
]
},
{
Expand All @@ -215,21 +241,23 @@
"annual = df.delta_water_m3.groupby(df.index.astype(int)).sum()\n",
"ax = annual.plot(label='annual average');\n",
"annual.rolling(30, min_periods=30, center=True).mean().plot(ax=ax, label='30 years rolling average');\n",
"plt.axhline(y=0, color='k', ls=':')\n",
"plt.axhline(y=0, color='k', ls=':');\n",
"plt.ylabel('Change in water stored [m$^{-1}$]');\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So the glacier is losing mass in the retreat phase, then more or less constant in the equilbrium phase. This illustrates well that glaciers in equilibrium are not net water resource: they gain as much mass as they give back. In the \"peak water\" concept of Huss: Hintereisferner is already at \"peak water\" in this commitment run. In a warming climate, Hintereisferner might have peak water later on. \n",
"The glacier loses mass during the retreat phase, and then remains more or less constant in the equilibrium phase.\n",
"\n",
"**EHU: Okay, so the 'retreat phase' for HEF is the first 75 years or so? The plot is not very intuitive to me...the y-axis is something like water storage anomaly in m3? So it is initially strongly negative then creeps up to around 0, and that is the new equilibrium?**\n",
"This shows us that glaciers in equilibrium are not net providers of water:\n",
"They gain as much mass as they lose. In Huss and Hock's \"peak water supply\" concept: Hintereisferner is already at \"peak water supply\" in the committed climate pathway. In a warmer climate, Hintereisferner could have a water supply spike later on.\n",
"\n",
"**Fabi: yes, the retreat phase is most visilble on the length and volume plots. About 70 years. \"equilibrium\" is indeed the moment where volume and length oscillate around a value. I've chosen to use random climate instead of constant one, because I think it conveys that in real life glaciers are never in true equilibrium. They always change, but if the climate doesn't change (no trends), there is a sort of equilibrium. Regarding the variable delta_water_m3: it's the glacier volume change per time step in units of m3 of water per month (or per year after agregation on the lower plot). So during retreat the glacier loses mass, and then in a constant climate the glacier gains and loses mass but on 30-yr average its a zero sum for water resources.**\n",
"![Huss_Hock-peak_water](https://media.springernature.com/full/springer-static/image/art%3A10.1038%2Fs41558-017-0049-x/MediaObjects/41558_2017_49_Fig1_HTML.jpg)\n",
"\n",
"It is worth looking at the annual cycle as well:"
"It is also interesting to analyze the annual cycle:"
]
},
{
Expand All @@ -251,7 +279,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Let's try to put this in the climate context "
"## The climate context"
]
},
{
Expand All @@ -273,23 +301,29 @@
"dfs[['delta_water_m3']].plot(ax=ax1);\n",
"dfc[['temp_celcius']].plot(ax=ax2);\n",
"dfc[['prcp_mm_mth']].plot(ax=ax3);\n",
"ax3.set_ylim(0); # just to see the zero"
"ax3.set_ylim(0); # just to see the zero\n",
"ax1.axhline(0, ls=':', color='k', alpha=0.5) # to see the pos/neg months\n",
"ax1.set(xlabel='Month', ylabel='Change in water storage [m$^{3}$ water]');\n",
"ax2.set(xlabel='Month', ylabel='Temperature [deg C]');\n",
"ax3.set(xlabel='Month', ylabel='Precipitation [mm/month]');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For Hintereisferner this is quite easy: it melts in summer, accumulates in winter. The glacier is a source of water in summer as it releases the water accumulated in winter.\n",
"**What do we see in this graph?**\n",
"\n",
"For Hintereisferner this is quite basic: it melts in summer, accumulates in winter. The glacier is a source of water in summer, as it releases accumulated water in winter.\n",
"\n",
"Other climates are more complex! And the temperature index model is also quite controversial in the tropics."
"Other climates (for example the tropical climate) are more complex!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Run another simulation with a temperature bias "
"## Simulation with a temperature bias"
]
},
{
Expand All @@ -315,7 +349,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"And see how the results differ from the commitment simualtion:"
"We see how these results differ from those of the \"obligation\" simulation:"
]
},
{
Expand Down Expand Up @@ -347,13 +381,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"So here, a funny game for several glaciers in the world would be to find out how much in desequilibrium they are, i.e. make the students try several temperature biases and realise how much colder it should be for the glaciers to keep their present geometry. \n",
"### Game\n",
"\n",
"**EHU: the indicator of this would be keeping somewhat constant length/vol?**\n",
"**How far from equilibrium is this glacier?**\n",
"That is, what temperature bias would be necessary to keep this glacier in balance? Try various `temp_bias` values to explore.\n",
"\n",
"**Fabi: yes, so here the target would be to have a length/volume close to the starting value (at year 0).**\n",
"For Hintereisferner, -0.8 ° C is not enough!\n",
"\n",
"For Hintereisferner, 0.8°C is not enough! Note that \"present\" is the date of the RGI outline:"
"We note that the \"current\" year (with which we compare the future state) is the year of the RGI outline:"
]
},
{
Expand All @@ -369,7 +404,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"In the third plot above a funny thing is visible: in a colder climate, the glacier is much bigger, but the annual water storage change is very similar to the small glacier! How is this possible? Let's see: "
"In the third graph above, we see something funny: in colder climate, the glacier is much larger, but the annual change in water storage is very similar to that of the small glacier.\n",
"\n",
"How is this possible? Let's see:"
]
},
{
Expand All @@ -389,33 +426,28 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"This is complex but makes sense: larger glaciers are thicker and higher, they accumulate more mass in winter and their mass turnover is larger. In summer, they reach farther down valley and their ablation area is larger, thus more melt. On the annual average a net zero, but seasonality is different.\n",
"This is complex but makes sense: the largest glaciers are thicker and taller, they accumulate more mass in winter and their volume of mass changes is greater. In summer, they reach further down the valley and their ablation area is larger, therefore more melted. In the annual these average to very small net changes, but the seasonality is different.\n",
"\n",
"**EHU: Yes, makes sense. This is an example where students should look at the plot of annual cycle \"storage change\" and reason through what this means for water resources. Broadly speaking if you are a human downstream stakeholder (farmer, power plant) you want the bigger glacier and its enhanced seasonality because it means more runoff in the melting season. Will have to think about how to present this.**\n",
"**What does this mean for the water supply below?**\n",
"\n",
"**Fabi: I think it depends on the local conditions - stronger cycle can mean more floods in certain areas. In arid tropics you want the runoff to happen during dry season, etc. One of the key message really is that a \"healthy\" equilibirum glacier is a zero sum as water reservoir but an excellent buffer, which usefulness depends on stakeholders as you say.**"
"Can you think of certain parts of the hydro-social system that would like bigger changes? Smaller changes?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Some ideas for more experiments"
"## Other experiments"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There is quite a lot of potential for teaching here I think - let's discuss on slack"
"- Explore other glaciers\n",
"- Compare \"your\" reference glacier with another. How do they differ? How are they similar? Why?\n",
"- ... you can add!"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
Expand All @@ -435,7 +467,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
"version": "3.8.3"
},
"toc": {
"base_numbering": 1,
Expand All @@ -452,5 +484,5 @@
}
},
"nbformat": 4,
"nbformat_minor": 2
"nbformat_minor": 4
}

0 comments on commit 0b55d33

Please sign in to comment.