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.0.tar.gz (36.7 kB view details)

Uploaded Source

Built Distributions

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

Uploaded Python 3

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

Uploaded Python 2

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

Hashes for welltestpy-0.3.0.tar.gz
Algorithm Hash digest
SHA256 9d64d09da66f5294fad6826da54dfb285bbe7612d779606200bbb8dbeff70ed1
MD5 aae5ae8afe182779f95d18d09181193a
BLAKE2b-256 97d5ec2addd1344f37f08dd25e84e8222fa563aab0285e652eb28ea07fbeba35

See more details on using hashes here.

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

Hashes for welltestpy-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da8260f7613a49a36670ad3668e472ba06c4611274a72cb3ccbb53ecc57d42e6
MD5 c92a7e60d80a59a94e5b51b30d0e3acd
BLAKE2b-256 22e073c3507c938b8d391e274225cf7650dbda620a717425f4d365d7c884bb91

See more details on using hashes here.

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

Hashes for welltestpy-0.3.0-py2-none-any.whl
Algorithm Hash digest
SHA256 b2527d4f5db221de85269cf0e50e0d5174a85a9640707b182c9b1d66c7cde2f1
MD5 ff0591fd7450e6ca1aaa9fd85f2b7d26
BLAKE2b-256 3df9c0b1270be00547fb0f81cc91d984195f2d5a32098bae20e8f963307b4f71

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