.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/climate/plot_12_charney_report_sensitivity.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_12_charney_report_sensitivity.py: The Charney report's sensitivity range (1979) ============================================= A panel of the US National Academy of Sciences chaired by Jule Charney reviewed the climate models of the day. It concluded that doubling CO2 would warm the Earth by 3 K, probably between 1.5 and 4.5 K. It also warned that ocean heat capacity would delay the warming by decades. In a one-box model the delay is the time scale ``C / lambda``, so a more sensitive climate (a smaller ``lambda``) also responds more slowly. .. GENERATED FROM PYTHON SOURCE LINES 12-36 .. image-sg:: /api/gallery/climate/images/sphx_glr_plot_12_charney_report_sensitivity_001.png :alt: Dots: one e-folding time :srcset: /api/gallery/climate/images/sphx_glr_plot_12_charney_report_sensitivity_001.png :class: sphx-glr-single-img .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from earthsciencekit.climate import co2_forcing, equilibrium_warming, heat_capacity_column, response_timescale, step_temperature from earthsciencekit.units import convert doubling = co2_forcing(560, 280, 5.35) capacity = heat_capacity_column(1025, 3990, 100) years = np.linspace(0, 100, 401) time = convert(years, "year", "s") fig, ax = plt.subplots() for sensitivity in [1.5, 3.0, 4.5]: restoring = doubling / sensitivity timescale = response_timescale(capacity, restoring) assert np.isclose(equilibrium_warming(doubling, restoring), sensitivity) assert np.isclose(step_temperature(doubling, restoring, capacity, timescale), sensitivity * (1 - np.exp(-1))) line = ax.plot(years, step_temperature(doubling, restoring, capacity, time), label=f"{sensitivity} K per doubling")[0] ax.axhline(sensitivity, color=line.get_color(), ls=":", lw=0.8) ax.plot(convert(timescale, "s", "year"), sensitivity * (1 - np.exp(-1)), "o", color=line.get_color()) ax.set(xlabel="years after doubling", ylabel="warming [K]", title="Dots: one e-folding time") ax.legend() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.085 seconds) .. _sphx_glr_download_api_gallery_climate_plot_12_charney_report_sensitivity.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_12_charney_report_sensitivity.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_12_charney_report_sensitivity.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_12_charney_report_sensitivity.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_12_charney_report_sensitivity.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_