Skip to main content

welltestpy - package to handle well-based Field-campaigns.

Project description

Welcome to WellTestPy

DOI PyPI version Build Status Documentation Status Code style: black

WellTestPy-LOGO

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:

Wells

Pumptest

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:

Fit

Trace

Interaction

The results are:

  • ln(T) = -9.22 which is equivalent to T = 0.99 * 10^-4 m^2/s
  • ln(S) = -9.10 which is equivalent to S = 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

welltestpy-0.3.1.tar.gz (36.7 kB view details)

Uploaded Source

Built Distributions

welltestpy-0.3.1-py3-none-any.whl (54.5 kB view details)

Uploaded Python 3

welltestpy-0.3.1-py2-none-any.whl (54.5 kB view details)

Uploaded Python 2

File details

Details for the file welltestpy-0.3.1.tar.gz.

File metadata

  • Download URL: welltestpy-0.3.1.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

Hashes for welltestpy-0.3.1.tar.gz
Algorithm Hash digest
SHA256 5da9624ebee95b6fcbce16a46062fe2f9e2e4946c01f510539f4bf0f294b7426
MD5 32ba1f6637c42917cac3a40e32ef317c
BLAKE2b-256 5b6918c180677c52b4671cc7e4da6b6ef6d3c045261a6f475c824ece782fcd3a

See more details on using hashes here.

File details

Details for the file welltestpy-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: welltestpy-0.3.1-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

Hashes for welltestpy-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 076130cc52123677ed57e11b551f5210a9a066590e6ea9f8c42683c36696017c
MD5 e0ff022e89d9ae59056644af5616b6b5
BLAKE2b-256 b28a867f8260028939db5861a3d9f2c494a8afd8292770b7fe4746f7cb1235f7

See more details on using hashes here.

File details

Details for the file welltestpy-0.3.1-py2-none-any.whl.

File metadata

  • Download URL: welltestpy-0.3.1-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

Hashes for welltestpy-0.3.1-py2-none-any.whl
Algorithm Hash digest
SHA256 ba10090ee4171fac2b806155b76062d182b969afb6549f6641738a10f60f9435
MD5 d2da6f3436c699dd47b770e7287310b0
BLAKE2b-256 0a37a90ea51f27122352f1839e0475f9e0ed13826eab27472af4b676a00fae68

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page