.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/volcanology/plot_07_urey_isotope_paleothermometer.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_volcanology_plot_07_urey_isotope_paleothermometer.py: Urey's isotope paleothermometer (1947) ====================================== Harold Urey calculated that the oxygen-18 content of calcite precipitated from water depends on temperature, and proposed reading ancient ocean temperatures from fossil shells. Epstein, Buchsbaum, Lowenstam and Urey calibrated the scale in 1953: about 4 K of cooling per per mil of enrichment. The synthetic shell record below converts delta values into temperatures. .. GENERATED FROM PYTHON SOURCE LINES 11-33 .. image-sg:: /api/gallery/volcanology/images/sphx_glr_plot_07_urey_isotope_paleothermometer_001.png :alt: Epstein et al. (1953) scale, Seasons recorded in a shell :srcset: /api/gallery/volcanology/images/sphx_glr_plot_07_urey_isotope_paleothermometer_001.png :class: sphx-glr-single-img .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from earthsciencekit.units import convert from earthsciencekit.volcanology import isotope_temperature difference = np.linspace(-3, 3, 121) temperature = convert(isotope_temperature(difference, 0), "K", "degC") assert np.all(np.diff(temperature) < 0) assert np.isclose(temperature[60], 16.5) and 3.8 < temperature[40] - temperature[60] < 4.6 layer = np.arange(12) shells = -0.5 + 0.8 * np.sin(2 * np.pi * layer / 12) # synthetic seasonal delta18O, water at 0 per mil fig, (left, right) = plt.subplots(1, 2, figsize=(10, 4)) left.plot(difference, temperature) left.set(xlabel="delta18O calcite - water [per mil]", ylabel="temperature [degC]", title="Epstein et al. (1953) scale") right.plot(layer, convert(isotope_temperature(shells, 0), "K", "degC"), "o-") right.set(xlabel="growth band", ylabel="temperature [degC]", title="Seasons recorded in a shell") fig.tight_layout() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.180 seconds) .. _sphx_glr_download_api_gallery_volcanology_plot_07_urey_isotope_paleothermometer.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/volcanology/plot_07_urey_isotope_paleothermometer.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_07_urey_isotope_paleothermometer.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_07_urey_isotope_paleothermometer.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_07_urey_isotope_paleothermometer.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_