pypestutils


Namepypestutils JSON
Version 0.2.1 PyPI version JSON
download
home_page
SummaryPEST utilities for MODFLOW
upload_time2024-01-23 02:47:47
maintainer
docs_urlNone
author
requires_python>=3.8
licenseUnlicense
keywords pest modflow groundwater model
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyPestUtils

Suite of Python tools based on PEST utilities to support parameterization with pilot points, drawing stochastic realizations, and MODFLOW post-processing for structured and unstructured grids. This package consists of a (pre-)compiled shared fortran library, and a corresponding low-level python wrapper around the library functions.  There are also higher-level "helper" functions to further abstract the granular low-level function calls for common workflow elements.  

The low-level functions are relatively strict in their argument types - this is required to effectively pass the array-type data container references to the fortran library.  As such, the low-level python functions perform considerable type checking.  The higher-level helpers attempt to support a variety of argument types and will attempt coerce to the required type.  

This package is currently in pre-alpha development, and is not suitable for use, but early adopters are welcome to have a go.

## Examples

There are several jupyter notebook examples of using pypestutils for a structured and quadtree Freyberg model.  These notebooks rely on both [flopy](https://github.com/modflowpy/flopy) and [pyEMU](https://github.com/pypest/pyemu) to help with visualization and processing.

The use the low-level python interface to the shared fortran library, you create a `PESTUTILSLIB` instance and then can directly call the shared library routines:

```
from pypestutils.pestutilslib import PestUtilsLib
lib = PestUtilsLib() #the constructor searches for the shared lib
grid_info = lib.install_mf6_grid_from_file("grid","freyberg6.disv.grb")
easting,northing,elev = lib.get_cell_centres_mf6("grid",grid_info["ncells"])
```

The higher-level helper functions obsecure the calls the fortran library and string together multiple low-level function calls:

```
import pypestutils.helpers as helpers
grid_info = helpers.get_grid_info_from_file("freyberg6.disv.grb")
```

## Documentation

The documentation for pypestutils can be found [here](https://pypest.github.io/pypestutils/)

The documentation for the shared FORTRAN library can be found [here](docs/pestutilslib/fortran_library_documentation.md)

## Installation

### Dependencies

pypestutils requires `numpy` and `pandas`

### Easy way

Use `pip` to install a built distribution for Windows, Linux or macOS:

    pip install pypestutils

to also include optional requirements use:

    pip install pypestutils[optional]

### From source

Installation from source requires a Fortran compiler and build tools. See [BUILD.md](BUILD.md) for details.

## Disclaimer


This software is preliminary or provisional and is subject to revision. It is
being provided to meet the need for timely best science. This software is
provided "as is" and "as-available", and makes no representations or warranties
of any kind concerning the software, whether express, implied, statutory, or
other. This includes, without limitation, warranties of title,
merchantability, fitness for a particular purpose, non-infringement, absence
of latent or other defects, accuracy, or the presence or absence of errors,
whether or not known or discoverable.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "pypestutils",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "PEST,MODFLOW,groundwater,model",
    "author": "",
    "author_email": "Jeremy White <jtwhite1000@gmail.com>, Mike Taves <mwtoews@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/ad/c5/29ab0f4c558873ea58058659ea35d170061983195032f70c583ba693ad8c/pypestutils-0.2.1.tar.gz",
    "platform": null,
    "description": "# PyPestUtils\n\nSuite of Python tools based on PEST utilities to support parameterization with pilot points, drawing stochastic realizations, and MODFLOW post-processing for structured and unstructured grids. This package consists of a (pre-)compiled shared fortran library, and a corresponding low-level python wrapper around the library functions.  There are also higher-level \"helper\" functions to further abstract the granular low-level function calls for common workflow elements.  \n\nThe low-level functions are relatively strict in their argument types - this is required to effectively pass the array-type data container references to the fortran library.  As such, the low-level python functions perform considerable type checking.  The higher-level helpers attempt to support a variety of argument types and will attempt coerce to the required type.  \n\nThis package is currently in pre-alpha development, and is not suitable for use, but early adopters are welcome to have a go.\n\n## Examples\n\nThere are several jupyter notebook examples of using pypestutils for a structured and quadtree Freyberg model.  These notebooks rely on both [flopy](https://github.com/modflowpy/flopy) and [pyEMU](https://github.com/pypest/pyemu) to help with visualization and processing.\n\nThe use the low-level python interface to the shared fortran library, you create a `PESTUTILSLIB` instance and then can directly call the shared library routines:\n\n```\nfrom pypestutils.pestutilslib import PestUtilsLib\nlib = PestUtilsLib() #the constructor searches for the shared lib\ngrid_info = lib.install_mf6_grid_from_file(\"grid\",\"freyberg6.disv.grb\")\neasting,northing,elev = lib.get_cell_centres_mf6(\"grid\",grid_info[\"ncells\"])\n```\n\nThe higher-level helper functions obsecure the calls the fortran library and string together multiple low-level function calls:\n\n```\nimport pypestutils.helpers as helpers\ngrid_info = helpers.get_grid_info_from_file(\"freyberg6.disv.grb\")\n```\n\n## Documentation\n\nThe documentation for pypestutils can be found [here](https://pypest.github.io/pypestutils/)\n\nThe documentation for the shared FORTRAN library can be found [here](docs/pestutilslib/fortran_library_documentation.md)\n\n## Installation\n\n### Dependencies\n\npypestutils requires `numpy` and `pandas`\n\n### Easy way\n\nUse `pip` to install a built distribution for Windows, Linux or macOS:\n\n    pip install pypestutils\n\nto also include optional requirements use:\n\n    pip install pypestutils[optional]\n\n### From source\n\nInstallation from source requires a Fortran compiler and build tools. See [BUILD.md](BUILD.md) for details.\n\n## Disclaimer\n\n\nThis software is preliminary or provisional and is subject to revision. It is\nbeing provided to meet the need for timely best science. This software is\nprovided \"as is\" and \"as-available\", and makes no representations or warranties\nof any kind concerning the software, whether express, implied, statutory, or\nother. This includes, without limitation, warranties of title,\nmerchantability, fitness for a particular purpose, non-infringement, absence\nof latent or other defects, accuracy, or the presence or absence of errors,\nwhether or not known or discoverable.\n",
    "bugtrack_url": null,
    "license": "Unlicense",
    "summary": "PEST utilities for MODFLOW",
    "version": "0.2.1",
    "project_urls": {
        "Repository": "https://github.com/pypest/pypestutils"
    },
    "split_keywords": [
        "pest",
        "modflow",
        "groundwater",
        "model"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fa0c06aa10a472df9ad2d696070a6ee6ab47becabdc9c9b3e31c2b845ef4ed17",
                "md5": "df408997cb35bb289a080064ba0bd1cf",
                "sha256": "601fb00e2d8af24191dc8fa292a8355a1d2ee36c020b69dbea2d14ed874407c5"
            },
            "downloads": -1,
            "filename": "pypestutils-0.2.1-py3-none-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "df408997cb35bb289a080064ba0bd1cf",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 1572116,
            "upload_time": "2024-01-23T02:47:40",
            "upload_time_iso_8601": "2024-01-23T02:47:40.094586Z",
            "url": "https://files.pythonhosted.org/packages/fa/0c/06aa10a472df9ad2d696070a6ee6ab47becabdc9c9b3e31c2b845ef4ed17/pypestutils-0.2.1-py3-none-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c15011c6c6d0a1735a5417180e04e056b9fbe49e8853f1cc2a43b0692e415696",
                "md5": "191ff640da80a7e99db4494ca8437e99",
                "sha256": "d38d3b7e005aa3f3a452bd1c68b8915fd038978061f46ee0ce8b94a7a384ce0e"
            },
            "downloads": -1,
            "filename": "pypestutils-0.2.1-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "has_sig": false,
            "md5_digest": "191ff640da80a7e99db4494ca8437e99",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 909791,
            "upload_time": "2024-01-23T02:47:42",
            "upload_time_iso_8601": "2024-01-23T02:47:42.217562Z",
            "url": "https://files.pythonhosted.org/packages/c1/50/11c6c6d0a1735a5417180e04e056b9fbe49e8853f1cc2a43b0692e415696/pypestutils-0.2.1-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b687da1eeb45618e36ea99e80b4a26a6541a74984e5f45d075ce5da4635d1136",
                "md5": "5cddca67a2744ba55f0c80a6ab92ad2f",
                "sha256": "8855c631fb68bc809105dc15a125b23f49f6d63ab43b49310b15093218ae9b7a"
            },
            "downloads": -1,
            "filename": "pypestutils-0.2.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5cddca67a2744ba55f0c80a6ab92ad2f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 1451475,
            "upload_time": "2024-01-23T02:47:44",
            "upload_time_iso_8601": "2024-01-23T02:47:44.128288Z",
            "url": "https://files.pythonhosted.org/packages/b6/87/da1eeb45618e36ea99e80b4a26a6541a74984e5f45d075ce5da4635d1136/pypestutils-0.2.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d5465ca56f0b87cd4d7a65c461de88d6c2fde4778cbfef4b38a7fbd823cbe2a2",
                "md5": "afa696a27b45f7c97ddab9147a9da6e5",
                "sha256": "67b94c4c89d55b2212039104c449767e29b88e59c760893ed6c2f683415308f6"
            },
            "downloads": -1,
            "filename": "pypestutils-0.2.1-py3-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "afa696a27b45f7c97ddab9147a9da6e5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 823295,
            "upload_time": "2024-01-23T02:47:45",
            "upload_time_iso_8601": "2024-01-23T02:47:45.497438Z",
            "url": "https://files.pythonhosted.org/packages/d5/46/5ca56f0b87cd4d7a65c461de88d6c2fde4778cbfef4b38a7fbd823cbe2a2/pypestutils-0.2.1-py3-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "adc529ab0f4c558873ea58058659ea35d170061983195032f70c583ba693ad8c",
                "md5": "f3f045b57dbe63df555413a5e813d508",
                "sha256": "b4d03a95a88be29bff9d0e481adb2e9248e921b5ad5dea1566a72165c89713cb"
            },
            "downloads": -1,
            "filename": "pypestutils-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "f3f045b57dbe63df555413a5e813d508",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 217340,
            "upload_time": "2024-01-23T02:47:47",
            "upload_time_iso_8601": "2024-01-23T02:47:47.482199Z",
            "url": "https://files.pythonhosted.org/packages/ad/c5/29ab0f4c558873ea58058659ea35d170061983195032f70c583ba693ad8c/pypestutils-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-23 02:47:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pypest",
    "github_project": "pypestutils",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "pypestutils"
}
        
Elapsed time: 2.74163s