.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/seismology/plot_08_zoeppritz_reflection.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_seismology_plot_08_zoeppritz_reflection.py: Zoeppritz's reflection coefficients (1919) ========================================== Karl Zoeppritz derived how a plane wave divides at a boundary between two elastic media. At normal incidence his equations reduce to the impedance contrast: the pressure transmission can exceed one, yet the reflected and transmitted energy fractions always sum to one. .. GENERATED FROM PYTHON SOURCE LINES 10-34 .. image-sg:: /api/gallery/seismology/images/sphx_glr_plot_08_zoeppritz_reflection_001.png :alt: Energy is shared, never created :srcset: /api/gallery/seismology/images/sphx_glr_plot_08_zoeppritz_reflection_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none sediment/basement: R = 0.459, T = 1.459 | .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from earthsciencekit.seismology import reflection_coefficient, seismic_impedance, transmission_coefficient ratio = np.logspace(-2, 2, 201) r = reflection_coefficient(1, ratio) t = transmission_coefficient(1, ratio) reflected, transmitted = r * r, t * t / ratio np.testing.assert_allclose(reflected + transmitted, 1, atol=1e-14) # A sediment-on-basement contact. z1, z2 = seismic_impedance(2200, 2500), seismic_impedance(2700, 5500) print(f"sediment/basement: R = {reflection_coefficient(z1, z2):.3f}, T = {transmission_coefficient(z1, z2):.3f}") fig, ax = plt.subplots() ax.semilogx(ratio, reflected, label="reflected energy") ax.semilogx(ratio, transmitted, label="transmitted energy") ax.axvline(z2 / z1, color="k", ls=":", label="sediment on basement") ax.set(xlabel="impedance ratio Z2/Z1", ylabel="incident energy fraction", title="Energy is shared, never created") ax.legend() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.152 seconds) .. _sphx_glr_download_api_gallery_seismology_plot_08_zoeppritz_reflection.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/seismology/plot_08_zoeppritz_reflection.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_08_zoeppritz_reflection.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_08_zoeppritz_reflection.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_08_zoeppritz_reflection.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_