Contents

Welcome to welltestpy

DOI PyPI version Build Status Coverage Status Documentation Status Code style: black

welltestpy-LOGO

Purpose

welltestpy provides a framework to handle, process, plot and analyse data from well based field campaigns.

Installation

You can install the latest version with the following command:

pip install welltestpy

Or from conda

conda install -c conda-forge welltestpy

Documentation for welltestpy

You can find the documentation including tutorials and examples under https://welltestpy.readthedocs.io.

Citing welltestpy

If you are using this package you can cite our Groundwater publication by:

Müller, S., Leven, C., Dietrich, P., Attinger, S. and Zech, A. (2021): How to Find Aquifer Statistics Utilizing Pumping Tests? Two Field Studies Using welltestpy. Groundwater, https://doi.org/10.1111/gwat.13121

To cite the code, please visit the Zenodo page.

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 tools for plotting and triagulation

Requirements

Contact

You can contact us via info@geostat-framework.org.

License

MIT

welltestpy Tutorial

In the following you will find several Tutorials on how to use welltestpy to explore its whole beauty and power.

welltestpy API

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

welltestpy provides a framework to handle and plot data from well based field campaigns as well as a parameter estimation module.

Subpackages

data

welltestpy subpackage providing datastructures.

estimate

welltestpy subpackage providing routines to estimate pump test parameters.

process

welltestpy subpackage providing routines to pre process test data.

tools

welltestpy subpackage providing miscellaneous tools.

Classes

Campaign classes

The following classes can be used to handle field campaigns.

Campaign(name[, fieldsite, wells, tests, ...])

Class for a well based campaign.

FieldSite(name[, description, coordinates])

Class for a field site.

Field Test classes

The following classes can be used to handle field test within a campaign.

PumpingTest(name, pumpingwell, pumpingrate)

Class for a pumping test.

Loading routines

Campaign related loading routines

load_campaign(cmpfile)

Load a campaign from file.

Changelog

All notable changes to welltestpy will be documented in this file.

1.2.0 - 2023-04

See #28, #31 and #32

Enhancements

  • added archive support

  • simplify documentation

  • new arguments val_fit_type and val_fit_name for all estimators to select fitting transformation

  • val_fit_name will be incorporated into the generated plots and the header of the estimation result file

Changes

  • move to src/ based package structure

  • use hatchling as build backend

  • drop py36 support

  • value names for all arguments in the estimators now need to match the call signatures of the used type-curves

Bugfixes

  • minor fixes for the plotting routines and the estimators

1.1.0 - 2021-07

Enhancements

  • added cooper_jacob_correction to process (thanks to Jarno Herrmann)

  • added diagnostic_plots module (thanks to Jarno Herrmann)

  • added screensize, screen, aquifer and is_piezometer attribute to Well class

  • added version information to output files

  • added __repr__ to Campaign

Changes

  • modernized packaging workflow using pyproject.toml

  • removed setup.py (use pip>21.1 for editable installs)

  • removed dev as extra install dependencies

  • better exceptions in loading routines

  • removed pandas dependency

  • simplified readme

Bugfixes

  • loading steady pumping tests was not possible due to a bug

1.0.3 - 2021-02

Enhancements

  • Estimations: run method now provides plot_style keyword to control plotting

Changes

  • Fit plot style for transient pumping tests was updated

Bugfixes

  • Estimations: run method was throwing an Error when setting run=False

  • Plotter: all plotting routines now respect setted font-type from matplotlib

1.0.2 - 2020-09-03

Bugfixes

  • StdyHeadObs and StdyObs weren’t usable due to an unnecessary time check

1.0.1 - 2020-04-09

Bugfixes

  • Wrong URL in setup

1.0.0 - 2020-04-09

Enhancements

  • new estimators

    • ExtTheis3D

    • ExtTheis2D

    • Neuman2004

    • Theis

    • ExtThiem3D

    • ExtThiem2D

    • Neuman2004Steady

    • Thiem

  • better plotting

  • unit-tests run with py35-py38 on Linux/Win/Mac

  • coverage calculation

  • sphinx gallery for examples

  • allow style setting in plotting routines

Bugfixes

  • estimation results stored as dict (order could alter before)

Changes

  • py2 support dropped

  • Fieldsite.coordinates now returns a Variable; Fieldsite.pos as shortcut

  • Fieldsite.pumpingrate now returns a Variable; Fieldsite.rate as shortcut

  • Fieldsite.auqiferradius now returns a Variable; Fieldsite.radius as shortcut

  • Fieldsite.auqiferdepth now returns a Variable; Fieldsite.depth as shortcut

  • Well.coordinates now returns a Variable; Well.pos as shortcut

  • Well.welldepth now returns a Variable; Well.depth as shortcut

  • Well.wellradius added and returns the radius Variable

  • Well.aquiferdepth now returns a Variable

  • Fieldsite.addobservations renamed to Fieldsite.add_observations

  • Fieldsite.delobservations renamed to Fieldsite.del_observations

  • Observation has changed order of inputs/outputs. Now: observation, time

0.3.2 - 2019-03-08

Bugfixes

  • adopt AnaFlow API

0.3.1 - 2019-03-08

Bugfixes

  • update travis workflow

0.3.0 - 2019-02-28

Enhancements

  • added documentation

0.2.0 - 2018-04-25

Enhancements

  • added license

0.1.0 - 2018-04-25

First alpha release of welltespy.