.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/plate_tectonics/plot_15_parsons_sclater_depth_age.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_plate_tectonics_plot_15_parsons_sclater_depth_age.py: Parsons and Sclater's depth-age law (1977) ========================================== Barry Parsons and John Sclater fitted ocean depth and heat flow against sea-floor age. Out to about 70 million years the depth grows as ``2500 + 350 sqrt(t)`` metres (``t`` in million years), which the cooling half-space reproduces; older floor flattens, as their cooling-plate fit shows. Surface heat flow falls as one over the square root of age. .. GENERATED FROM PYTHON SOURCE LINES 11-38 .. image-sg:: /api/gallery/plate_tectonics/images/sphx_glr_plot_15_parsons_sclater_depth_age_001.png :alt: plot 15 parsons sclater depth age :srcset: /api/gallery/plate_tectonics/images/sphx_glr_plot_15_parsons_sclater_depth_age_001.png :class: sphx-glr-single-img .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from earthsciencekit.plate_tectonics import halfspace_heat_flux, ocean_depth from earthsciencekit.units import convert age_myr = np.linspace(0, 160, 321) age = convert(age_myr * 1e6, "year", "s") depth = ocean_depth(age, 2500, 3300, 1000, 3e-5, 1e-6, 273, 1553) empirical = np.where(age_myr < 70, 2500 + 350 * np.sqrt(age_myr), 6400 - 3200 * np.exp(-age_myr / 62.8)) young = age_myr < 70 np.testing.assert_allclose(depth[young], empirical[young], rtol=0.01) flux = halfspace_heat_flux(age[1:], 1e-6, 3.3, 273, 1553) np.testing.assert_allclose(flux * np.sqrt(age_myr[1:]), flux[0] * np.sqrt(age_myr[1])) fig, (left, right) = plt.subplots(1, 2, figsize=(9, 4)) left.plot(age_myr, depth / 1e3, label="half-space model") left.plot(age_myr, empirical / 1e3, "--", label="Parsons and Sclater fit") left.invert_yaxis() left.set(xlabel="age [million years]", ylabel="ocean depth [km]") left.legend() right.plot(age_myr[1:], flux * 1e3) right.set(xlabel="age [million years]", ylabel="heat flow [mW/m^2]", ylim=(0, 400)) fig.tight_layout() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.170 seconds) .. _sphx_glr_download_api_gallery_plate_tectonics_plot_15_parsons_sclater_depth_age.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/plate_tectonics/plot_15_parsons_sclater_depth_age.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_15_parsons_sclater_depth_age.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_15_parsons_sclater_depth_age.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_15_parsons_sclater_depth_age.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_