pymf6


Namepymf6 JSON
Version 1.1.0 PyPI version JSON
download
home_page
SummaryHigh-level Python Wrapper for MODFLOW 6
upload_time2023-04-24 23:13:29
maintainer
docs_urlNone
author
requires_python>=3.7
licenseMIT License
keywords packaging example
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pymf6

## High-Level Python Interface for MODFLOW 6

`pymf6` allows to access MODFLOW variables at run.
This allows a user to access and modify nearly all model data during a run.
A typical use is to change values of boundary conditions based on the current
model state.
With some basic Python programming, many different problems that may be to
difficult to represent with crafting input data in a appropriate manner, may be
solved with `pymf6`.
Example usage include:

* dependent boundary conditions, i.e. the value of one boundary cell depends
  on the value of other model cells, that are calculated during the model run
* "technical" boundary conditions such as coupled extraction and injections
  wells, where the level of the extraction well should not drop under a given
  value and the injection rate should be the extractions rate, that in turn
  is a result of running model
* coupling with other models such reactive transport, unsaturated zone models,
  or sewage pipe models


## Usage Requirements

In order to use `pymf6` you need to

* understand the MODFLOW 6 variables as defined in the input files
* have a working knowledge of Python programming

## Installation

Install with pip:

    pip install pymf6

Install with conda or mamba:

    conda install -c hydrocomputing pymf6

or:

    mamba install -c hydrocomputing pymf6

You need to install `xmipy` with pip afterwards:

    pip install xmipy

because currently `xmipy`  is not available as conda package.

You can also add the channel hydrocomputing permanently with:

    conda config --add channels hydrocomputing

You also need a working copy of MODFLOW 6.
Please download the version for your operating system from the
[USGS website](https://water.usgs.gov/water-resources/software/MODFLOW-6/).
You might need to compile MODFLOW 6 for Linux and MacOS.
A working installation of `gcc` and `gfortran` should do.
The MODFLOW 6 download comes with a Makefile.

## Configuration

While you can specify the path to MODFLOW 6 DLL for each run, it is
highly recommended to create a configuration.
You need to create a file named `pymf6.ini` in your home directory.
You can find your home directory with different methods.
On Windows, the command:

    set HOMEPATH

should work.

On Posix systems such Linux and MacOSX, the command:

    echo $HOME

should do.

The file `pymf6.ini` needs have to have this content

on Windows:

    [paths]
    dll_path = path\to\mf6\bin\libmf6.dll


on Linux:

    [paths]
    dll_path = path/to/mf6/bin/libmf6.so


on MacOSX:

    [paths]
    dll_path = path/to/mf6/bin/libmf6.dylib

Replace the path `path/to/mf6/bin/` with with your absolute path to the
MODFLOW 6 directory `bin` that contains the shared library you downloaded from
the USGS website (see chapter "Installation" above).

## Test the Install

On the command line run:

    pymf6

The output should look similar to this on Windows:

    pymf6 configuration data
    ========================
    pymf6 version: 1.0.0
    xmipy version: 1.2.0
    ini file path: <Home>\pymf6.ini
    dll file path: <Home>\mf6.4.1\bin\libmf6.dll
    MODFLOW version: 6.4.1

Where `<Home>\` is the your absolute home path.
The output on Linux and MacOSX looks slightly different due to different path
separators and file extensions (see chapter "Configuration" above).

## Run a model

To test the install run a model with command:

    pymf6 path/to/my/model/mfsim.nam

where `path/to/my/model/` is an absolute path to a MODFLOW nam file
that is in a directory of a working MODFLOW model.
For example any model in the directory `examples` that comes with MODFLOW 6
will do.
The output should look similar to this:

    ==================================
    running path/to/my/model/mfsim.nam
    ==================================
    GOOD path/to/my/model/mfsim.nam
    ==================================
    ==================================

## Documentation

Please read the [documentation](https://pymf6.readthedocs.io/en/latest/)
for more details.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "pymf6",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "packaging,example",
    "author": "",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/d5/e1/d5fdda0d7b72dc515d8061043de24ddc7064e0fd3f2f945d4984bfebf436/pymf6-1.1.0.tar.gz",
    "platform": null,
    "description": "# pymf6\n\n## High-Level Python Interface for MODFLOW 6\n\n`pymf6` allows to access MODFLOW variables at run.\nThis allows a user to access and modify nearly all model data during a run.\nA typical use is to change values of boundary conditions based on the current\nmodel state.\nWith some basic Python programming, many different problems that may be to\ndifficult to represent with crafting input data in a appropriate manner, may be\nsolved with `pymf6`.\nExample usage include:\n\n* dependent boundary conditions, i.e. the value of one boundary cell depends\n  on the value of other model cells, that are calculated during the model run\n* \"technical\" boundary conditions such as coupled extraction and injections\n  wells, where the level of the extraction well should not drop under a given\n  value and the injection rate should be the extractions rate, that in turn\n  is a result of running model\n* coupling with other models such reactive transport, unsaturated zone models,\n  or sewage pipe models\n\n\n## Usage Requirements\n\nIn order to use `pymf6` you need to\n\n* understand the MODFLOW 6 variables as defined in the input files\n* have a working knowledge of Python programming\n\n## Installation\n\nInstall with pip:\n\n    pip install pymf6\n\nInstall with conda or mamba:\n\n    conda install -c hydrocomputing pymf6\n\nor:\n\n    mamba install -c hydrocomputing pymf6\n\nYou need to install `xmipy` with pip afterwards:\n\n    pip install xmipy\n\nbecause currently `xmipy`  is not available as conda package.\n\nYou can also add the channel hydrocomputing permanently with:\n\n    conda config --add channels hydrocomputing\n\nYou also need a working copy of MODFLOW 6.\nPlease download the version for your operating system from the\n[USGS website](https://water.usgs.gov/water-resources/software/MODFLOW-6/).\nYou might need to compile MODFLOW 6 for Linux and MacOS.\nA working installation of `gcc` and `gfortran` should do.\nThe MODFLOW 6 download comes with a Makefile.\n\n## Configuration\n\nWhile you can specify the path to MODFLOW 6 DLL for each run, it is\nhighly recommended to create a configuration.\nYou need to create a file named `pymf6.ini` in your home directory.\nYou can find your home directory with different methods.\nOn Windows, the command:\n\n    set HOMEPATH\n\nshould work.\n\nOn Posix systems such Linux and MacOSX, the command:\n\n    echo $HOME\n\nshould do.\n\nThe file `pymf6.ini` needs have to have this content\n\non Windows:\n\n    [paths]\n    dll_path = path\\to\\mf6\\bin\\libmf6.dll\n\n\non Linux:\n\n    [paths]\n    dll_path = path/to/mf6/bin/libmf6.so\n\n\non MacOSX:\n\n    [paths]\n    dll_path = path/to/mf6/bin/libmf6.dylib\n\nReplace the path `path/to/mf6/bin/` with with your absolute path to the\nMODFLOW 6 directory `bin` that contains the shared library you downloaded from\nthe USGS website (see chapter \"Installation\" above).\n\n## Test the Install\n\nOn the command line run:\n\n    pymf6\n\nThe output should look similar to this on Windows:\n\n    pymf6 configuration data\n    ========================\n    pymf6 version: 1.0.0\n    xmipy version: 1.2.0\n    ini file path: <Home>\\pymf6.ini\n    dll file path: <Home>\\mf6.4.1\\bin\\libmf6.dll\n    MODFLOW version: 6.4.1\n\nWhere `<Home>\\` is the your absolute home path.\nThe output on Linux and MacOSX looks slightly different due to different path\nseparators and file extensions (see chapter \"Configuration\" above).\n\n## Run a model\n\nTo test the install run a model with command:\n\n    pymf6 path/to/my/model/mfsim.nam\n\nwhere `path/to/my/model/` is an absolute path to a MODFLOW nam file\nthat is in a directory of a working MODFLOW model.\nFor example any model in the directory `examples` that comes with MODFLOW 6\nwill do.\nThe output should look similar to this:\n\n    ==================================\n    running path/to/my/model/mfsim.nam\n    ==================================\n    GOOD path/to/my/model/mfsim.nam\n    ==================================\n    ==================================\n\n## Documentation\n\nPlease read the [documentation](https://pymf6.readthedocs.io/en/latest/)\nfor more details.\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "High-level Python Wrapper for MODFLOW 6",
    "version": "1.1.0",
    "split_keywords": [
        "packaging",
        "example"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4ce584818b3be74095310ddf7dccb6a2cd126478951a5988733fe91129f251e1",
                "md5": "ece676b6567561c81d6694d83b75f394",
                "sha256": "b3aee01887fa428af3b7af8d749d21d4d84b95166f2182e6e9ab2ee14fafaaea"
            },
            "downloads": -1,
            "filename": "pymf6-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ece676b6567561c81d6694d83b75f394",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 222166,
            "upload_time": "2023-04-24T23:13:25",
            "upload_time_iso_8601": "2023-04-24T23:13:25.556866Z",
            "url": "https://files.pythonhosted.org/packages/4c/e5/84818b3be74095310ddf7dccb6a2cd126478951a5988733fe91129f251e1/pymf6-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d5e1d5fdda0d7b72dc515d8061043de24ddc7064e0fd3f2f945d4984bfebf436",
                "md5": "f8c3cd883c20e4a54022032d4d56bf42",
                "sha256": "0c1fed69798403860f94e6c907ce60c4bffe8024f3f418566decd08676b29922"
            },
            "downloads": -1,
            "filename": "pymf6-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f8c3cd883c20e4a54022032d4d56bf42",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 1156478,
            "upload_time": "2023-04-24T23:13:29",
            "upload_time_iso_8601": "2023-04-24T23:13:29.178845Z",
            "url": "https://files.pythonhosted.org/packages/d5/e1/d5fdda0d7b72dc515d8061043de24ddc7064e0fd3f2f945d4984bfebf436/pymf6-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-24 23:13:29",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "pymf6"
}
        
Elapsed time: 0.06795s