.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/glaciology/plot_05_haskell_mantle_viscosity.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code or to run this example in your browser via JupyterLite. .. rst-class:: sphx-glr-example-title .. _sphx_glr_api_gallery_glaciology_plot_05_haskell_mantle_viscosity.py: Haskell's mantle viscosity from rebound (1935) ============================================== Norman Haskell treated the mantle under Fennoscandia as a viscous half-space and asked how fast a depression the size of the former ice sheet would recover. Matching the raised shorelines gave a viscosity of about 1e21 Pa s, still the standard value. The example builds a synthetic uplift history for a 3000 km depression and recovers the viscosity from the slope of its logarithm. .. GENERATED FROM PYTHON SOURCE LINES 11-33 .. image-sg:: /api/gallery/glaciology/images/sphx_glr_plot_05_haskell_mantle_viscosity_001.png :alt: Haskell: 1e21 Pa s, uplift today 6.4 mm/year :srcset: /api/gallery/glaciology/images/sphx_glr_plot_05_haskell_mantle_viscosity_001.png :class: sphx-glr-single-img .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from earthsciencekit.constants import GRAVITY, SECONDS_PER_YEAR from earthsciencekit.glaciology import haskell_viscosity, rebound_uplift_rate, remaining_depression, viscous_relaxation_time wavelength, density = 3.0e6, 3300.0 tau = viscous_relaxation_time(wavelength, 1e21, density, GRAVITY) time = np.linspace(0, 10e3, 201) * SECONDS_PER_YEAR remaining = remaining_depression(time, 300.0, tau) slope = np.polyfit(time, np.log(remaining), 1)[0] assert np.isclose(haskell_viscosity(-1 / slope, wavelength, density, GRAVITY), 1e21) rate_today = rebound_uplift_rate(time[-1], 300.0, tau) * SECONDS_PER_YEAR * 1e3 fig, ax = plt.subplots() ax.plot(time / SECONDS_PER_YEAR / 1e3, remaining, label=f"relaxation time {tau / SECONDS_PER_YEAR:.0f} years") title = f"Haskell: 1e21 Pa s, uplift today {rate_today:.1f} mm/year" ax.set(xlabel="time since deglaciation [kyr]", ylabel="uplift still to come [m]", title=title) ax.legend() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.076 seconds) .. _sphx_glr_download_api_gallery_glaciology_plot_05_haskell_mantle_viscosity.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../../lite/lab/index.html?path=api/gallery/glaciology/plot_05_haskell_mantle_viscosity.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_05_haskell_mantle_viscosity.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_05_haskell_mantle_viscosity.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_05_haskell_mantle_viscosity.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_