{ "info": { "author": "Sebastian Mueller", "author_email": "sebastian.mueller@ufz.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering", "Topic :: Software Development", "Topic :: Utilities" ], "description": "# Welcome to WellTestPy\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1229051.svg)](https://doi.org/10.5281/zenodo.1229051)\n[![PyPI version](https://badge.fury.io/py/welltestpy.svg)](https://badge.fury.io/py/welltestpy)\n[![Build Status](https://travis-ci.org/GeoStat-Framework/welltestpy.svg?branch=master)](https://travis-ci.org/GeoStat-Framework/welltestpy)\n[![Documentation Status](https://readthedocs.org/projects/welltestpy/badge/?version=latest)](https://geostat-framework.readthedocs.io/projects/welltestpy/en/latest/?badge=latest)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n\n

\n\"WellTestPy-LOGO\"\n

\n\n## Purpose\n\nWellTestPy provides a framework to handle and plot data from well based field campaigns as well as a data interpretation module.\n\n\n## Installation\n\nYou can install the latest version with the following command:\n\n pip install welltestpy\n\n\n## Documentation for WellTestPy\n\nYou can find the documentation under [geostat-framework.readthedocs.io][doc_link].\n\n\n### Example 1: Create a Campaign containing a pumping test\n\nIn the following a simple pumping test is created with artificial drawdown data\ngenerated by the Theis-solution.\n\n```python\nimport numpy as np\nimport welltestpy as wtp\nimport anaflow as ana\n\n### create the field-site and the campaign\nfield = wtp.data.FieldSite(name=\"UFZ\", coordinates=[51.353839, 12.431385])\ncampaign = wtp.data.Campaign(name=\"UFZ-campaign\", fieldsite=field)\n\n### add 4 wells to the campaign\ncampaign.add_well(name=\"well_0\", radius=0.1, coordinates=(0., 0.))\ncampaign.add_well(name=\"well_1\", radius=0.1, coordinates=(1., -1.))\ncampaign.add_well(name=\"well_2\", radius=0.1, coordinates=(2., 2.))\ncampaign.add_well(name=\"well_3\", radius=0.1, coordinates=(-2., -1.))\n\n### generate artificial drawdown data with the Theis solution\nprate = -1e-4\ntime = np.geomspace(10, 7200, 10)\ntransmissivity = 1e-4\nstorage = 1e-4\nrad = [\n campaign.wells[\"well_0\"].radius, # well radius of well_0\n campaign.wells[\"well_0\"] - campaign.wells[\"well_1\"], # distance between 0-1\n campaign.wells[\"well_0\"] - campaign.wells[\"well_2\"], # distance between 0-2\n campaign.wells[\"well_0\"] - campaign.wells[\"well_3\"], # distance between 0-3\n]\ndrawdown = ana.theis(\n rad=rad,\n time=time,\n T=transmissivity,\n S=storage,\n Qw=prate,\n)\n\n### create a pumping test at well_0\npumptest = wtp.data.PumpingTest(\n name=\"well_0\",\n pumpingwell=\"well_0\",\n pumpingrate=prate,\n description=\"Artificial pump test with Theis\",\n)\n\n### add the drawdown observation at the 4 wells\npumptest.add_transient_obs(\"well_0\", time, drawdown[:, 0])\npumptest.add_transient_obs(\"well_1\", time, drawdown[:, 1])\npumptest.add_transient_obs(\"well_2\", time, drawdown[:, 2])\npumptest.add_transient_obs(\"well_3\", time, drawdown[:, 3])\n\n### add the pumping test to the campaign\ncampaign.addtests(pumptest)\n\n### plot the well constellation and a test overview\ncampaign.plot_wells()\ncampaign.plot()\n\n### save the whole campaign\ncampaign.save()\n```\n\nThis will give the following plots:\n\n

\n\"Wells\"\n

\n\n

\n\"Pumptest\"\n

\n\nAnd the campaign is stored to a file called `Cmp_UFZ-campaign.cmp`\n\n\n### Example 2: Estimate transmissivity and storativity\n\nThe pumping test from example 1 can now be loaded and used to estimate the values for\ntransmissivity and storativity.\n\n```python\nimport welltestpy as wtp\n\ncampaign = wtp.data.load_campaign(\"Cmp_UFZ-campaign.cmp\")\nestimation = wtp.estimate.Theisest(\"Estimate_theis\", campaign)\nestimation.setpumprate()\nestimation.settime()\nestimation.genrtdata()\nestimation.run(\n dbname=\"database\",\n plotname1=\"paratrace.pdf\",\n plotname2=\"fit_plot.pdf\",\n plotname3=\"parainteract.pdf\",\n estname=\"estimation.txt\",\n)\n```\n\nThis will give the following plots:\n\n

\n\"Fit\"\n

\n\n

\n\"Trace\"\n

\n\n

\n\"Interaction\"\n

\n\nThe results are:\n\n* `ln(T) = -9.22` which is equivalent to `T = 0.99 * 10^-4 m^2/s`\n* `ln(S) = -9.10` which is equivalent to `S = 1.11 * 10^-4`\n\n\n### Provided Subpackages\n\n```python\nwelltestpy.data # Subpackage to handle data from field campaigns\nwelltestpy.estimate # Subpackage to estimate field parameters\nwelltestpy.process # Subpackage to pre- and post-process data\nwelltestpy.tools # Subpackage with miscellaneous tools\n```\n\n\n## Requirements\n\n- [NumPy >= 1.13.0](https://www.numpy.org)\n- [SciPy >= 0.19.1](https://www.scipy.org)\n- [Pandas >= 0.20.3](https://pandas.pydata.org)\n- [Matplotlib >= 2.0.2](https://matplotlib.org)\n- [AnaFlow](https://github.com/GeoStat-Framework/AnaFlow)\n- [SpotPy](https://github.com/thouska/spotpy)\n\n\n## Contact\n\nYou can contact us via .\n\n\n## License\n\n[GPL][gpl_link] \u00a9 2018-2019\n\n[gpl_link]: https://github.com/GeoStat-Framework/welltestpy/blob/master/LICENSE\n[doc_link]: https://geostat-framework.readthedocs.io/projects/welltestpy/en/latest/\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/GeoStat-Framework/welltestpy", "keywords": "", "license": "GPL - see LICENSE", "maintainer": "Sebastian Mueller", "maintainer_email": "sebastian.mueller@ufz.de", "name": "welltestpy", "package_url": "https://pypi.org/project/welltestpy/", "platform": "Windows", "project_url": "https://pypi.org/project/welltestpy/", "project_urls": { "Homepage": "https://github.com/GeoStat-Framework/welltestpy" }, "release_url": "https://pypi.org/project/welltestpy/0.3.2/", "requires_dist": [ "numpy (>=1.13.0)", "scipy (>=0.19.1)", "pandas (>=0.20.3)", "matplotlib (>=2.0.2)", "anaflow", "spotpy" ], "requires_python": "", "summary": "welltestpy - package to handle well-based Field-campaigns.", "version": "0.3.2" }, "last_serial": 4913289, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "ff0591fd7450e6ca1aaa9fd85f2b7d26", "sha256": "b2527d4f5db221de85269cf0e50e0d5174a85a9640707b182c9b1d66c7cde2f1" }, "downloads": -1, "filename": "welltestpy-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "ff0591fd7450e6ca1aaa9fd85f2b7d26", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 54527, "upload_time": "2019-02-28T09:43:29", "url": "https://files.pythonhosted.org/packages/3d/f9/c0b1270be00547fb0f81cc91d984195f2d5a32098bae20e8f963307b4f71/welltestpy-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c92a7e60d80a59a94e5b51b30d0e3acd", "sha256": "da8260f7613a49a36670ad3668e472ba06c4611274a72cb3ccbb53ecc57d42e6" }, "downloads": -1, "filename": "welltestpy-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c92a7e60d80a59a94e5b51b30d0e3acd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54527, "upload_time": "2019-02-28T09:43:39", "url": "https://files.pythonhosted.org/packages/22/e0/73c3507c938b8d391e274225cf7650dbda620a717425f4d365d7c884bb91/welltestpy-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aae5ae8afe182779f95d18d09181193a", "sha256": "9d64d09da66f5294fad6826da54dfb285bbe7612d779606200bbb8dbeff70ed1" }, "downloads": -1, "filename": "welltestpy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "aae5ae8afe182779f95d18d09181193a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36711, "upload_time": "2019-02-28T09:43:41", "url": "https://files.pythonhosted.org/packages/97/d5/ec2addd1344f37f08dd25e84e8222fa563aab0285e652eb28ea07fbeba35/welltestpy-0.3.0.tar.gz" } ], "0.3.0.dev0": [ { "comment_text": "", "digests": { "md5": "949248085e368db3184deda96e88dc54", "sha256": "3e4105e60f0050ee0641ad7c196b2d21b2ce5a2f3e80d26db681c0f44dd00309" }, "downloads": -1, "filename": "welltestpy-0.3.0.dev0-py2-none-any.whl", "has_sig": false, "md5_digest": "949248085e368db3184deda96e88dc54", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 54826, "upload_time": "2019-02-27T10:10:53", "url": "https://files.pythonhosted.org/packages/82/b2/25e8e2f78db087e8559154007a47a9edffe6e4636cdb79f6379c52af5542/welltestpy-0.3.0.dev0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e543ae4b08329b7c4b5aba138ce95765", "sha256": "6ee4ba807543ce828459c2e8b330f3da41bae671432d46b08155a8a6b07be111" }, "downloads": -1, "filename": "welltestpy-0.3.0.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "e543ae4b08329b7c4b5aba138ce95765", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54825, "upload_time": "2019-02-27T10:10:58", "url": "https://files.pythonhosted.org/packages/3c/25/c1a87aab67bfcbf31f5514228c123db738c13748a8b4d179005452afa358/welltestpy-0.3.0.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5caef4f5187bba2a0534f46d64407cb0", "sha256": "5b96f580101c23685f3db94567879809adef184d83af98ae6241c5ef17c5216a" }, "downloads": -1, "filename": "welltestpy-0.3.0.dev0.tar.gz", "has_sig": false, "md5_digest": "5caef4f5187bba2a0534f46d64407cb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36781, "upload_time": "2019-02-27T10:11:00", "url": "https://files.pythonhosted.org/packages/22/5e/105674e96530c8d9b54fc93bbfb4d37608f1787258e32ef6d067a17f3cb6/welltestpy-0.3.0.dev0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "d2da6f3436c699dd47b770e7287310b0", "sha256": "ba10090ee4171fac2b806155b76062d182b969afb6549f6641738a10f60f9435" }, "downloads": -1, "filename": "welltestpy-0.3.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d2da6f3436c699dd47b770e7287310b0", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 54502, "upload_time": "2019-03-08T00:48:10", "url": "https://files.pythonhosted.org/packages/0a/37/a90ea51f27122352f1839e0475f9e0ed13826eab27472af4b676a00fae68/welltestpy-0.3.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0ff022e89d9ae59056644af5616b6b5", "sha256": "076130cc52123677ed57e11b551f5210a9a066590e6ea9f8c42683c36696017c" }, "downloads": -1, "filename": "welltestpy-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e0ff022e89d9ae59056644af5616b6b5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54503, "upload_time": "2019-03-08T00:48:19", "url": "https://files.pythonhosted.org/packages/b2/8a/867f8260028939db5861a3d9f2c494a8afd8292770b7fe4746f7cb1235f7/welltestpy-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32ba1f6637c42917cac3a40e32ef317c", "sha256": "5da9624ebee95b6fcbce16a46062fe2f9e2e4946c01f510539f4bf0f294b7426" }, "downloads": -1, "filename": "welltestpy-0.3.1.tar.gz", "has_sig": false, "md5_digest": "32ba1f6637c42917cac3a40e32ef317c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36675, "upload_time": "2019-03-08T00:48:21", "url": "https://files.pythonhosted.org/packages/5b/69/18c180677c52b4671cc7e4da6b6ef6d3c045261a6f475c824ece782fcd3a/welltestpy-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "07fa39d433571bad1519b6efa5345a5b", "sha256": "5e8d1095ea3b3eb54e245194668efe59faae35f4db1f5569a80667fd20d89506" }, "downloads": -1, "filename": "welltestpy-0.3.2-py2-none-any.whl", "has_sig": false, "md5_digest": "07fa39d433571bad1519b6efa5345a5b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 54522, "upload_time": "2019-03-08T01:18:29", "url": "https://files.pythonhosted.org/packages/08/4b/c03b1d17e1822dd3255a34a9f46c40704329976f3ea9921b614aef38ef7a/welltestpy-0.3.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b97ce74da91a46734ccbc49bae619f2", "sha256": "9ff203ba167aae07fd6bd231cd2e9e0aaf95b7619cb0ab7becabf7fd84da4a82" }, "downloads": -1, "filename": "welltestpy-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2b97ce74da91a46734ccbc49bae619f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54520, "upload_time": "2019-03-08T01:18:53", "url": "https://files.pythonhosted.org/packages/b8/8a/f1da24cce654a965cc6de4b680909fb59e7148621afa28b5fab85e1b3dac/welltestpy-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5092f55c24aca6482527f89467f1f5b", "sha256": "f38d8a25833b7c9c241b34388f91cdad2d0264ae44eeed4f9ec4badf51afa8a0" }, "downloads": -1, "filename": "welltestpy-0.3.2.tar.gz", "has_sig": false, "md5_digest": "c5092f55c24aca6482527f89467f1f5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36675, "upload_time": "2019-03-08T01:18:55", "url": "https://files.pythonhosted.org/packages/be/19/bbcddac5594418830915ff645d1c363380fb35a808fdd26861668569bd7d/welltestpy-0.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "07fa39d433571bad1519b6efa5345a5b", "sha256": "5e8d1095ea3b3eb54e245194668efe59faae35f4db1f5569a80667fd20d89506" }, "downloads": -1, "filename": "welltestpy-0.3.2-py2-none-any.whl", "has_sig": false, "md5_digest": "07fa39d433571bad1519b6efa5345a5b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 54522, "upload_time": "2019-03-08T01:18:29", "url": "https://files.pythonhosted.org/packages/08/4b/c03b1d17e1822dd3255a34a9f46c40704329976f3ea9921b614aef38ef7a/welltestpy-0.3.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b97ce74da91a46734ccbc49bae619f2", "sha256": "9ff203ba167aae07fd6bd231cd2e9e0aaf95b7619cb0ab7becabf7fd84da4a82" }, "downloads": -1, "filename": "welltestpy-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2b97ce74da91a46734ccbc49bae619f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54520, "upload_time": "2019-03-08T01:18:53", "url": "https://files.pythonhosted.org/packages/b8/8a/f1da24cce654a965cc6de4b680909fb59e7148621afa28b5fab85e1b3dac/welltestpy-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5092f55c24aca6482527f89467f1f5b", "sha256": "f38d8a25833b7c9c241b34388f91cdad2d0264ae44eeed4f9ec4badf51afa8a0" }, "downloads": -1, "filename": "welltestpy-0.3.2.tar.gz", "has_sig": false, "md5_digest": "c5092f55c24aca6482527f89467f1f5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36675, "upload_time": "2019-03-08T01:18:55", "url": "https://files.pythonhosted.org/packages/be/19/bbcddac5594418830915ff645d1c363380fb35a808fdd26861668569bd7d/welltestpy-0.3.2.tar.gz" } ] }