Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
184 changes: 169 additions & 15 deletions docs/transient/04pumpingtests/confined1_oude_korendijk.ipynb

Large diffs are not rendered by default.

186 changes: 170 additions & 16 deletions docs/transient/04pumpingtests/confined2_grindley.ipynb

Large diffs are not rendered by default.

178 changes: 163 additions & 15 deletions docs/transient/04pumpingtests/confined3_sioux.ipynb

Large diffs are not rendered by default.

504 changes: 504 additions & 0 deletions docs/transient/04pumpingtests/confined4_nevada.ipynb

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/transient/04pumpingtests/figs/Moench.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 18 additions & 1 deletion docs/transient/04pumpingtests/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ problems such as pumping tests and slug tests. More to come soon.
confined1_oude_korendijk
confined2_grindley
confined3_sioux
confined4_nevada

.. toctree::
:maxdepth: 1
Expand All @@ -29,15 +30,24 @@ problems such as pumping tests and slug tests. More to come soon.
:caption: Slug tests

slug1_pratt_county
slug2_falling_head
slug2_multiwell
slug3_falling_head
slug4_dawsonville

.. toctree::
:maxdepth: 1
:hidden:
:caption: unconfined aquifers

unconfined1_moench

Confined Pumping Tests
----------------------

1. :doc:`Oude Korendijk <confined1_oude_korendijk>` - One layer confined pumping test with two observation wells
2. :doc:`Grindley <confined2_grindley>` - One layer confined pumping test with data from both observation well and pumping well.
3. :doc:`Sioux <confined3_sioux>` - One layer confined pumping test with three observation wells.
4. :doc:`Nevada <confined4_nevada>` - Multiple layer confined pumping test with two observation wells.

Leaky Pumping Tests (Semi-confined)
-----------------------------------
Expand All @@ -51,3 +61,10 @@ Slug Tests

1. :doc:`Pratt County <slug1_pratt_county>` - Slug test with data from the partially penetrating test well.
2. :doc:`Multi well <slug2_multiwell>` - Slug test with data from both fully penetrating test well and observation well.
3. :doc:`Falling head <slug3_falling_head>` - Slug test in an unconfined aquifer with a partially penetrating well.
4. :doc:`Dawsonville <slug4_dawsonville>` - Slug test in a confined aquifer with a fully penetrating well.

Unconfined Pumping Tests
------------------------

1. :doc:`Moench <unconfined1_moench>` - Unconfined pumping test with a partially penetrating well and observation wells at multiple depths.
126 changes: 109 additions & 17 deletions docs/transient/04pumpingtests/leaky1_dalem.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,13 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
Expand Down Expand Up @@ -86,7 +92,13 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"# data of observation well 30 m away from pumping well\n",
Expand Down Expand Up @@ -126,7 +138,13 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"# known parameters\n",
Expand Down Expand Up @@ -158,7 +176,13 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"# unkonwn parameters: kaq, Saq, c\n",
Expand Down Expand Up @@ -186,7 +210,13 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"cal = tft.Calibrate(ml)\n",
Expand All @@ -204,7 +234,13 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"display(cal.parameters.loc[:, [\"optimal\"]])\n",
Expand All @@ -214,7 +250,13 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"hm_1 = ml.head(r1, 0, t1)\n",
Expand Down Expand Up @@ -257,7 +299,13 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"cal2 = tft.Calibrate(ml)\n",
Expand All @@ -269,29 +317,47 @@
"cal2.series(name=\"obs2\", x=60, y=0, t=t2, h=h2, layer=0, weights=1 / np.max(np.abs(h2)))\n",
"cal2.series(name=\"obs3\", x=90, y=0, t=t3, h=h3, layer=0, weights=1 / np.max(np.abs(h3)))\n",
"cal2.series(name=\"obs4\", x=120, y=0, t=t4, h=h4, layer=0, weights=1 / np.max(np.abs(h4)))\n",
"cal2.fit(report=True)"
"cal2.fit(report=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"display(cal2.parameters[[\"layers\", \"optimal\"]])\n",
"print(f\"RMSE: {cal2.rmse(weighted=False):.5f} m\")"
"display(cal2.parameters[[\"optimal\"]])\n",
"print(f\"RMSE: {cal2.rmse(weighted=False):.3f} m\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"### Comparison of results"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"The performance of `timflow` is compared with other models and with parameter values reported in Kruseman and de Ridder (1970). The published values were obtained by graphical matching to a Hantush type curve (Hantush, 1955). In addition to the `timflow` results and the literature values, results from AQTESOLV (Duffield, 2007) and MLU (Hemker & Post, 2014) are included for comparison. Both AQTESOLV and MLU were applied to minimize the sum of the squared log-transformed drawdowns. AQTESOLV only fitted the model to the observation well at r = 90 m, whereas the other models were calibrated using data from multiple observation wells.\n",
"\n",
Expand All @@ -301,7 +367,15 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": [
"hide-input"
]
},
"outputs": [],
"source": [
"t = pd.DataFrame(\n",
Expand All @@ -314,7 +388,7 @@
" cal2.parameters[\"optimal\"].values, cal2.rmse(weighted=False)\n",
")\n",
"t.loc[\"AQTESOLV\"] = [41.5575, 4.4625e-05, 327.920, 0.03818]\n",
"t.loc[\"MLU\"] = [48.108, 4.324e-05, 539, 0.042426]\n",
"t.loc[\"MLU\"] = [45.297, 4.865e-05, 328, 0.042426]\n",
"t.loc[\"Hantush\"] = [45.332, 4.762e-5, 331.141, 0.005917]\n",
"\n",
"t_formatted = t.style.format(\n",
Expand All @@ -325,7 +399,13 @@
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"## References\n",
"\n",
Expand All @@ -349,6 +429,18 @@
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.3"
}
},
"nbformat": 4,
Expand Down
36 changes: 31 additions & 5 deletions docs/transient/04pumpingtests/leaky2_hardixveld.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@
"outputs": [],
"source": [
"display(cal.parameters.loc[:, [\"optimal\"]])\n",
"print(f\"RMSE: {cal.rmse():.5f} m\")"
"print(f\"RMSE: {cal.rmse():.3f} m\")"
]
},
{
Expand Down Expand Up @@ -208,14 +208,20 @@
"metadata": {},
"outputs": [],
"source": [
"display(cal1.parameters[\"optimal\"])\n",
"print(f\"RMSE: {cal1.rmse():.5f} m\")"
"display(cal1.parameters[[\"optimal\"]])\n",
"print(f\"RMSE: {cal1.rmse(weighted=False):.3f} m\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"tm = np.logspace(np.log10(to[0]), np.log10(to[-1]), 100)\n",
Expand Down Expand Up @@ -266,7 +272,15 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": [
"hide-input"
]
},
"outputs": [],
"source": [
"t = pd.DataFrame(\n",
Expand Down Expand Up @@ -307,6 +321,18 @@
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.3"
}
},
"nbformat": 4,
Expand Down
Loading