.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/geophysics/plot_15_cox_doell_dalrymple_polarity_timescale.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_geophysics_plot_15_cox_doell_dalrymple_polarity_timescale.py: Cox, Doell and Dalrymple's polarity timescale (1964) ==================================================== Allan Cox, Richard Doell and Brent Dalrymple dated lava flows from around the world by potassium-argon and measured their polarity. Flows of the same age had the same polarity everywhere, so reversals are global and can be put on a clock: the Brunhes normal epoch, the reversed Matuyama with short normal events, and the normal Gauss. The timescale turned the magnetic stripes at ridges into a speedometer. Spreading crust records it as blocks of alternating magnetization, whose anomaly profile is symmetric about the ridge. .. GENERATED FROM PYTHON SOURCE LINES 13-47 .. image-sg:: /api/gallery/geophysics/images/sphx_glr_plot_15_cox_doell_dalrymple_polarity_timescale_001.png :alt: Reversals recorded by a spreading ridge :srcset: /api/gallery/geophysics/images/sphx_glr_plot_15_cox_doell_dalrymple_polarity_timescale_001.png :class: sphx-glr-single-img .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from earthsciencekit.geophysics import block_magnetic_anomaly from earthsciencekit.units import convert normal_chrons = [(0.0, 0.773), (0.988, 1.072), (1.775, 1.934), (2.595, 3.596)] # Ma boundaries = sorted({0.0, 3.596, *(t for chron in normal_chrons for t in chron)}) rate = convert(2.0, "cm/year", "m/s") # half spreading rate x = np.linspace(-1e5, 1e5, 801) anomaly = np.zeros_like(x) for start, end in zip(boundaries[:-1], boundaries[1:]): sign = 1 if any(lo <= start < hi for lo, hi in normal_chrons) else -1 near, far = rate * convert(start, "Ma", "s"), rate * convert(end, "Ma", "s") for left, right in [(near, far), (-far, -near)]: anomaly += block_magnetic_anomaly(x, left, right, 3000, 3500, sign * 5) anomaly = convert(anomaly, "T", "nT") np.testing.assert_allclose(anomaly, anomaly[::-1], atol=1e-9) matuyama = np.abs(x - rate * convert(1.4, "Ma", "s")).argmin() assert anomaly[x.size // 2] > 0 > anomaly[matuyama] fig, (top, bottom) = plt.subplots(2, 1, sharex=True, figsize=(8, 5), gridspec_kw={"height_ratios": [3, 1]}) top.plot(x / 1e3, anomaly) top.axhline(0, color="k", lw=0.5) top.set(ylabel="anomaly reduced to the pole [nT]", title="Reversals recorded by a spreading ridge") for start, end in normal_chrons: for side in (1, -1): span = sorted([side * rate * convert(start, "Ma", "s") / 1e3, side * rate * convert(end, "Ma", "s") / 1e3]) bottom.axvspan(*span, color="k") bottom.set(xlabel="distance from ridge [km] (black: normal polarity)", yticks=[]) fig.tight_layout() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.154 seconds) .. _sphx_glr_download_api_gallery_geophysics_plot_15_cox_doell_dalrymple_polarity_timescale.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/geophysics/plot_15_cox_doell_dalrymple_polarity_timescale.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_15_cox_doell_dalrymple_polarity_timescale.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_15_cox_doell_dalrymple_polarity_timescale.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_15_cox_doell_dalrymple_polarity_timescale.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_