welltestpy - package to handle well-based Field-campaigns.
Project description
Welcome to WellTestPy
Purpose
WellTestPy provides a framework to handle and plot data from well based field campaigns as well as a data interpretation module.
Installation
You can install the latest version with the following command:
pip install welltestpy
Documentation for WellTestPy
You can find the documentation under geostat-framework.readthedocs.io.
Example 1: Create a Campaign containing a pumping test
In the following a simple pumping test is created with artificial drawdown data generated by the Theis-solution.
import numpy as np
import welltestpy as wtp
import anaflow as ana
### create the field-site and the campaign
field = wtp.data.FieldSite(name="UFZ", coordinates=[51.353839, 12.431385])
campaign = wtp.data.Campaign(name="UFZ-campaign", fieldsite=field)
### add 4 wells to the campaign
campaign.add_well(name="well_0", radius=0.1, coordinates=(0., 0.))
campaign.add_well(name="well_1", radius=0.1, coordinates=(1., -1.))
campaign.add_well(name="well_2", radius=0.1, coordinates=(2., 2.))
campaign.add_well(name="well_3", radius=0.1, coordinates=(-2., -1.))
### generate artificial drawdown data with the Theis solution
prate = -1e-4
time = np.geomspace(10, 7200, 10)
transmissivity = 1e-4
storage = 1e-4
rad = [
campaign.wells["well_0"].radius, # well radius of well_0
campaign.wells["well_0"] - campaign.wells["well_1"], # distance between 0-1
campaign.wells["well_0"] - campaign.wells["well_2"], # distance between 0-2
campaign.wells["well_0"] - campaign.wells["well_3"], # distance between 0-3
]
drawdown = ana.theis(
rad=rad,
time=time,
T=transmissivity,
S=storage,
Qw=prate,
)
### create a pumping test at well_0
pumptest = wtp.data.PumpingTest(
name="well_0",
pumpingwell="well_0",
pumpingrate=prate,
description="Artificial pump test with Theis",
)
### add the drawdown observation at the 4 wells
pumptest.add_transient_obs("well_0", time, drawdown[:, 0])
pumptest.add_transient_obs("well_1", time, drawdown[:, 1])
pumptest.add_transient_obs("well_2", time, drawdown[:, 2])
pumptest.add_transient_obs("well_3", time, drawdown[:, 3])
### add the pumping test to the campaign
campaign.addtests(pumptest)
### plot the well constellation and a test overview
campaign.plot_wells()
campaign.plot()
### save the whole campaign
campaign.save()
This will give the following plots:
And the campaign is stored to a file called Cmp_UFZ-campaign.cmp
Example 2: Estimate transmissivity and storativity
The pumping test from example 1 can now be loaded and used to estimate the values for transmissivity and storativity.
import welltestpy as wtp
campaign = wtp.data.load_campaign("Cmp_UFZ-campaign.cmp")
estimation = wtp.estimate.Theisest("Estimate_theis", campaign)
estimation.setpumprate()
estimation.settime()
estimation.genrtdata()
estimation.run(
dbname="database",
plotname1="paratrace.pdf",
plotname2="fit_plot.pdf",
plotname3="parainteract.pdf",
estname="estimation.txt",
)
This will give the following plots:
The results are:
ln(T) = -9.22
which is equivalent toT = 0.99 * 10^-4 m^2/s
ln(S) = -9.10
which is equivalent toS = 1.11 * 10^-4
Provided Subpackages
welltestpy.data # Subpackage to handle data from field campaigns
welltestpy.estimate # Subpackage to estimate field parameters
welltestpy.process # Subpackage to pre- and post-process data
welltestpy.tools # Subpackage with miscellaneous tools
Requirements
Contact
You can contact us via info@geostat-framework.org.
License
GPL © 2018-2019
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file welltestpy-0.3.0.tar.gz
.
File metadata
- Download URL: welltestpy-0.3.0.tar.gz
- Upload date:
- Size: 36.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d64d09da66f5294fad6826da54dfb285bbe7612d779606200bbb8dbeff70ed1 |
|
MD5 | aae5ae8afe182779f95d18d09181193a |
|
BLAKE2b-256 | 97d5ec2addd1344f37f08dd25e84e8222fa563aab0285e652eb28ea07fbeba35 |
File details
Details for the file welltestpy-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: welltestpy-0.3.0-py3-none-any.whl
- Upload date:
- Size: 54.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | da8260f7613a49a36670ad3668e472ba06c4611274a72cb3ccbb53ecc57d42e6 |
|
MD5 | c92a7e60d80a59a94e5b51b30d0e3acd |
|
BLAKE2b-256 | 22e073c3507c938b8d391e274225cf7650dbda620a717425f4d365d7c884bb91 |
File details
Details for the file welltestpy-0.3.0-py2-none-any.whl
.
File metadata
- Download URL: welltestpy-0.3.0-py2-none-any.whl
- Upload date:
- Size: 54.5 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2527d4f5db221de85269cf0e50e0d5174a85a9640707b182c9b1d66c7cde2f1 |
|
MD5 | ff0591fd7450e6ca1aaa9fd85f2b7d26 |
|
BLAKE2b-256 | 3df9c0b1270be00547fb0f81cc91d984195f2d5a32098bae20e8f963307b4f71 |