.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/hydrology/plot_14_cooper_jacob_straight_line_method.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_hydrology_plot_14_cooper_jacob_straight_line_method.py: Cooper and Jacob's straight-line method (1946) ============================================== Hilton Cooper and Charles Jacob noticed that once ``u`` is small the Theis well function is just ``-0.5772 - ln u``, so late drawdowns fall on a straight line against the logarithm of time. The drawdown gained per tenfold increase in time gives the transmissivity, and the time at which the line crosses zero drawdown gives the storativity, without matching a type curve. The example recovers both from a synthetic pumping test. .. GENERATED FROM PYTHON SOURCE LINES 12-39 .. image-sg:: /api/gallery/hydrology/images/sphx_glr_plot_14_cooper_jacob_straight_line_method_001.png :alt: Cooper-Jacob: T = 2.00e-03 m^2/s, S = 3.0e-04 :srcset: /api/gallery/hydrology/images/sphx_glr_plot_14_cooper_jacob_straight_line_method_001.png :class: sphx-glr-single-img .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from earthsciencekit.hydrology import cooper_jacob_drawdown, cooper_jacob_transmissivity, theis_drawdown rate, transmissivity, storativity, radius = 0.015, 2e-3, 3e-4, 30.0 time = np.logspace(1.5, 5.5, 41) observed = theis_drawdown(rate, transmissivity, storativity, radius, time) late = radius**2 * storativity / (4 * transmissivity * time) < 0.01 slope, intercept = np.polyfit(np.log10(time[late]), observed[late], 1) fitted_transmissivity = cooper_jacob_transmissivity(rate, slope) zero_time = 10 ** (-intercept / slope) fitted_storativity = 2.25 * fitted_transmissivity * zero_time / radius**2 assert np.isclose(fitted_transmissivity, transmissivity, rtol=0.01) and np.isclose(fitted_storativity, storativity, rtol=0.03) fig, ax = plt.subplots() ax.semilogx(time / 60, observed, "o", label="Theis drawdown at 30 m") line_time = np.logspace(np.log10(zero_time), 5.5, 50) ax.semilogx( line_time / 60, cooper_jacob_drawdown(rate, fitted_transmissivity, fitted_storativity, radius, line_time), label="straight line" ) ax.set(xlabel="time [min]", ylabel="drawdown [m]") ax.set_title(f"Cooper-Jacob: T = {fitted_transmissivity:.2e} m^2/s, S = {fitted_storativity:.1e}") ax.legend() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.125 seconds) .. _sphx_glr_download_api_gallery_hydrology_plot_14_cooper_jacob_straight_line_method.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/hydrology/plot_14_cooper_jacob_straight_line_method.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_14_cooper_jacob_straight_line_method.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_14_cooper_jacob_straight_line_method.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_14_cooper_jacob_straight_line_method.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_