Metadata-Version: 2.1
Name: welltestpy
Version: 1.1.0rc1
Summary: welltestpy - package to handle well-based Field-campaigns.
Home-page: https://github.com/GeoStat-Framework/welltestpy
Author: Sebastian Müller, Jarno Herrmann
Author-email: info@geostat-framework.org
Maintainer: Sebastian Müller
Maintainer-email: info@geostat-framework.org
License: MIT
Project-URL: Documentation, https://welltestpy.readthedocs.io
Project-URL: Source, https://github.com/GeoStat-Framework/welltestpy
Project-URL: Tracker, https://github.com/GeoStat-Framework/welltestpy/issues
Project-URL: Changelog, https://github.com/GeoStat-Framework/welltestpy/blob/main/CHANGELOG.md
Project-URL: Conda-Forge, https://anaconda.org/conda-forge/welltestpy
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: anaflow (<2,>=1.0.0)
Requires-Dist: matplotlib (<4,>=3.0.0)
Requires-Dist: numpy (<2,>=1.14.5)
Requires-Dist: pandas (<2,>=0.23.2)
Requires-Dist: scipy (<2,>=1.1.0)
Requires-Dist: spotpy (<2,>=1.5.0)
Requires-Dist: packaging (>=20)
Provides-Extra: doc
Requires-Dist: m2r2 (<1,>=0.2.8) ; extra == 'doc'
Requires-Dist: numpydoc (<2,>=1.1) ; extra == 'doc'
Requires-Dist: sphinx (<4,>=3) ; extra == 'doc'
Requires-Dist: sphinx-gallery (<1,>=0.8) ; extra == 'doc'
Requires-Dist: sphinx-rtd-theme (<1,>=0.5) ; extra == 'doc'
Provides-Extra: test
Requires-Dist: coverage[toml] (<6,>=5.2.1) ; extra == 'test'
Requires-Dist: pytest (<7,>=6.0) ; extra == 'test'
Requires-Dist: pytest-cov (<3,>=2.11.0) ; extra == 'test'

# Welcome to welltestpy

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1229051.svg)](https://doi.org/10.5281/zenodo.1229051)
[![PyPI version](https://badge.fury.io/py/welltestpy.svg)](https://badge.fury.io/py/welltestpy)
[![Build Status](https://github.com/GeoStat-Framework/welltestpy/workflows/Continuous%20Integration/badge.svg?branch=main)](https://github.com/GeoStat-Framework/welltestpy/actions)
[![Coverage Status](https://coveralls.io/repos/github/GeoStat-Framework/welltestpy/badge.svg?branch=main)](https://coveralls.io/github/GeoStat-Framework/welltestpy?branch=main)
[![Documentation Status](https://readthedocs.org/projects/welltestpy/badge/?version=latest)](https://geostat-framework.readthedocs.io/projects/welltestpy/en/latest/?badge=latest)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)

<p align="center">
<img src="https://raw.githubusercontent.com/GeoStat-Framework/welltestpy/main/docs/source/pics/WTP.png" alt="welltestpy-LOGO" width="251px"/>
</p>

## 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


## Documentation for welltestpy

You can find the documentation under [https://welltestpy.readthedocs.io][doc_link].


### Example 1: A campaign containing a pumping test

In the following, we will take a look at an artificial pumping test campaign,
that is stored in a file called `Cmp_UFZ-campaign.cmp`.

```python
import welltestpy as wtp

# load the campaign
campaign = wtp.load_campaign("Cmp_UFZ-campaign.cmp")

# plot the well constellation and a test overview
campaign.plot_wells()
campaign.plot()
```

#### This will give the following plots:

<p align="center">
<img src="https://raw.githubusercontent.com/GeoStat-Framework/welltestpy/main/docs/source/pics/01_wells.png" alt="Wells" width="600px"/>
</p>

<p align="center">
<img src="https://raw.githubusercontent.com/GeoStat-Framework/welltestpy/main/docs/source/pics/01_pumptest.png" alt="Pumptest" width="600px"/>
</p>


### 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.

```python
import welltestpy as wtp

campaign = wtp.load_campaign("Cmp_UFZ-campaign.cmp")
estimation = wtp.estimate.Theis("Estimate_theis", campaign, generate=True)
estimation.run()
```

#### This will give the following plots:

Type-Curve fitting:

<p align="center">
<img src="https://raw.githubusercontent.com/GeoStat-Framework/welltestpy/main/docs/source/pics/02_fit.png" alt="Fit" width="600px"/>
</p>

Evolution of parameter estimation with SCE:

<p align="center">
<img src="https://raw.githubusercontent.com/GeoStat-Framework/welltestpy/main/docs/source/pics/02_paratrace.png" alt="Trace" width="600px"/>
</p>

Scatterplot of paramter distribution during estimation:

<p align="center">
<img src="https://raw.githubusercontent.com/GeoStat-Framework/welltestpy/main/docs/source/pics/02_parainter.png" alt="Interaction" width="600px"/>
</p>

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

```python
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

- [NumPy >= 1.14.5](https://www.numpy.org)
- [SciPy >= 1.1.0](https://www.scipy.org)
- [Pandas >= 0.23.2](https://pandas.pydata.org)
- [AnaFlow >= 1.0.0](https://github.com/GeoStat-Framework/AnaFlow)
- [SpotPy >= 1.5.0](https://github.com/thouska/spotpy)
- [Matplotlib >= 3.0.0](https://matplotlib.org)


## Contact

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


## License

[MIT][license_link] © 2018-2021

[license_link]: https://github.com/GeoStat-Framework/welltestpy/blob/main/LICENSE
[doc_link]: https://welltestpy.readthedocs.io


