.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/climate/plot_06_callendar_measured_warming.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_06_callendar_measured_warming.py: Callendar's measured warming (1938) =================================== Guy Stewart Callendar compiled temperature records from about 200 stations, found that the world had warmed since the late 19th century, and attributed the warming to carbon dioxide from burning fuel. His estimate of about 2 °C per doubling was larger than the radiative response alone. Planck's restoring coefficient ``4 sigma T**3`` gives only about 1 K per doubling, so feedbacks such as water vapour must amplify it. .. GENERATED FROM PYTHON SOURCE LINES 12-38 .. image-sg:: /api/gallery/climate/images/sphx_glr_plot_06_callendar_measured_warming_001.png :alt: plot 06 callendar measured warming :srcset: /api/gallery/climate/images/sphx_glr_plot_06_callendar_measured_warming_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, outgoing_longwave, planck_feedback temperature = np.linspace(240, 300, 121) step = 0.01 numerical = (outgoing_longwave(temperature + step, 1) - outgoing_longwave(temperature - step, 1)) / (2 * step) np.testing.assert_allclose(numerical, planck_feedback(temperature, 1), rtol=1e-8) doubling = co2_forcing(560, 280, 5.35) planck_only = equilibrium_warming(doubling, planck_feedback(temperature, 1)) assert 0.9 < equilibrium_warming(doubling, planck_feedback(255, 1)) < 1.1 fig, (left, right) = plt.subplots(1, 2, figsize=(10, 4)) left.plot(temperature, planck_feedback(temperature, 1), label="4 sigma T³") left.plot(temperature[::10], numerical[::10], ".", label="slope of emission") left.set(xlabel="emitting temperature [K]", ylabel="Planck restoring [W/(m² K)]") left.legend() right.plot(temperature, planck_only, label="radiative response alone") right.axhline(2.0, color="tab:red", ls="--", label="Callendar's estimate") right.set(xlabel="emitting temperature [K]", ylabel="warming per doubling [K]", ylim=(0, 2.5)) right.legend() fig.tight_layout() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.186 seconds) .. _sphx_glr_download_api_gallery_climate_plot_06_callendar_measured_warming.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_06_callendar_measured_warming.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_06_callendar_measured_warming.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_06_callendar_measured_warming.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_06_callendar_measured_warming.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_