.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/climate/plot_07_revelle_suess_buffer_factor.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_climate_plot_07_revelle_suess_buffer_factor.py: Revelle and Suess's buffer factor (1957) ======================================== Roger Revelle and Hans Suess showed that seawater resists taking up carbon dioxide. Because of carbonate chemistry, a 10% rise in the CO2 pressure of the air is balanced by only about a 1% rise in the dissolved carbon of the surface ocean. This ratio, about 10, is the buffer (Revelle) factor. In equilibrium the share of added carbon left in the air is ``1 / (1 + M_o / (R M_a))`` for atmospheric and oceanic inventories ``M_a`` and ``M_o``, so the ocean holds far less of it than a simple partition by inventory would suggest. Inventories here are round illustrative values. .. GENERATED FROM PYTHON SOURCE LINES 14-34 .. image-sg:: /api/gallery/climate/images/sphx_glr_plot_07_revelle_suess_buffer_factor_001.png :alt: A buffered ocean leaves more CO2 in the air :srcset: /api/gallery/climate/images/sphx_glr_plot_07_revelle_suess_buffer_factor_001.png :class: sphx-glr-single-img .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from earthsciencekit.climate import carbon_airborne_fraction atmosphere, emission = 600e12, 100e12 # kg C buffer = np.linspace(1, 15, 141) fig, ax = plt.subplots() for ocean, label in [(1000e12, "surface ocean only"), (38000e12, "whole ocean, after mixing")]: increase = emission / (1 + ocean / (buffer * atmosphere)) fraction = carbon_airborne_fraction(increase, emission) np.testing.assert_allclose(increase / atmosphere, buffer * (emission - increase) / ocean) ax.plot(buffer, fraction, label=label) assert np.isclose(fraction[0], atmosphere / (atmosphere + ocean)) ax.axvline(10, color="0.5", ls="--", label="Revelle factor of seawater") ax.set(xlabel="buffer factor R", ylabel="equilibrium airborne fraction", title="A buffered ocean leaves more CO2 in the air") ax.legend() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.088 seconds) .. _sphx_glr_download_api_gallery_climate_plot_07_revelle_suess_buffer_factor.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/climate/plot_07_revelle_suess_buffer_factor.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_07_revelle_suess_buffer_factor.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_07_revelle_suess_buffer_factor.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_07_revelle_suess_buffer_factor.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_