sed-plume


Namesed-plume JSON
Version 0.2.2 PyPI version JSON
download
home_page
SummaryA hypopycnal sediment-carrying plume entering the ocean.
upload_time2023-09-19 04:29:13
maintainerEric Hutton
docs_urlNone
authorEric Hutton
requires_python>=3.9
licenseThe MIT License (MIT) ===================== Copyright (c) `2020` `Eric Hutton` Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords bmi landlab sediment hypopycnal plume
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: https://travis-ci.org/mcflugen/plume.svg?branch=master
   :target: https://travis-ci.org/mcflugen/plume

.. image:: https://ci.appveyor.com/api/projects/status/yle29j1hl6a8yu8p?svg=true
   :target: https://ci.appveyor.com/project/mcflugen/plume

.. image:: https://coveralls.io/repos/github/mcflugen/plume/badge.svg?branch=mcflugen%2Fadd-unit-tests
   :target: https://coveralls.io/github/mcflugen/plume?branch=master

==================================================
plume: A hypopycnal plume model built with landlab
==================================================


Requirements
------------

*plume* requires Python 3.

Apart from Python, *plume* has a number of other requirements, all of which
can be obtained through either *pip* or *conda*, that will be automatically
installed when you install *plume*.

To see a full listing of the requirements, have a look at the project's
*requirements.txt* file.

If you are a developer of *plume* you will also want to install
additional dependencies for running *plume*'s tests to make sure
that things are working as they should. These dependencies are listed
in *requirements-testing.txt*.

Installation
------------

To install *plume*, first create a new environment in
which *plume* will be installed. This, although not necessary, will
isolate the installation so that there won't be conflicts with your
base *Python* installation. This can be done with *conda* as:

.. code:: bash

    $ conda create -n plume python=3
    $ conda activate plume

Stable Release
--------------

*plume*, and its dependencies, can be installed either with *pip*
or *conda*. Using *pip*:

.. code:: bash

    $ pip install plume

Using *conda*:

.. code:: bash

    $ conda install plume -c conda-forge

From Source
```````````

Before building *plume* from source, you will need an installation of
the GNU Scientific Library (gsl). There are several ways to install
this but the easiest is through *conda*,

.. code:: bash

   $ mamba install gsl

After downloading the *plume* source code, run the following from
*plume*'s top-level folder (the one that contains *setup.py*) to
install *plume* into the current environment:

.. code:: bash

    $ pip install -e .

Input Files
-----------

Configuration File
``````````````````

The main *plume* input file is a yaml-formatted text file that lists
constants used by *plume*. Running the following will print a sample
*plume* configuration file:

.. code:: bash

    $ plume generate plume.toml

This will print something like the following,

.. code:: toml

   [plume]
   _version = "0.2.0.dev0"

   [plume.grid]
   shape = [500, 500]
   xy_spacing = [100.0, 100.0]
   xy_of_lower_left = [0.0, 0.0]

   [plume.river]
   filepath = "river.csv"
   width = 50.0
   depth = 5.0
   velocity = 1.5
   location = [0.0, 25000.0]
   angle = 0.0

   [plume.sediment]
   removal_rate = 60.0
   bulk_density = 1600.0

   [plume.ocean]
   filepath = "ocean.csv"
   along_shore_velocity = 0.1
   sediment_concentration = 0.0

   [plume.output]
   filepath = "plume.nc"

Ocean File
``````````

The *plume* ocean file defines parameters of the ocean for each day of
the simulation. This is a csv-formatted text file to *day*, *along-shore velocity*,
and *sediment concentration*.

.. code:: bash

    $ plume generate ocean.csv

.. code::

   # version: 0.2.0.dev0
   # Time [d], Along-shore velocity [m/s], Sediment Concentration [-]
   0.0,0.1,0.0

River File
``````````

The *plume* river file is a csv-formatted text file that gives river parameters
for each day of the simulation. Columns are *time*, *river width*, *river depth*,
and *river velocity*.

.. code:: bash

  $ plume generate river.csv

.. code::

  # version: 0.2.0.dev0
  # Time [d], Width [m], Depth [m], Velocity [m/s]
  0.0,50.0,5.0,1.5

The *plume* river file defines

Output File
-----------

The only output file of *plume* is a *netCDF* file that contains
sediment concentrations for each day of the simulation.

Examples
--------

To run a simulation using the sample input files described above, you first
need to create a set of sample files:

.. code:: bash

    $ mkdir example
    $ plume --cd=example setup

You can now run the simulation:

.. code:: bash

    $ plume --cd=example run

=======
Credits
=======

Development Leads
-----------------

- `Eric Hutton <https://github.com/mcflugen>`_

=============
Release Notes
=============

.. towncrier release notes start

0.2.2 (2023-09-18)
------------------

Other Changes and Additions
```````````````````````````

- Updated the *cython* code used to calculate the centerline to fix a compile error
  related to the update to *cython* v3. (`#10 <https://github.com/mcflugen/plume/issues/10>`_)
- Added support for Python 3.11, dropped Python 3.8. (`#11 <https://github.com/mcflugen/plume/issues/11>`_)
- Added a *nox* file for routine project maintenance and continuous
  integration. (`#12 <https://github.com/mcflugen/plume/issues/12>`_)


0.2.1 (2022-06-29)
------------------

Bug Fixes
`````````

- Fixed an error when trying to get the version from the command line with
  ``plume --version```. (`#9 <https://github.com/mcflugen/plume/issues/9>`_)


0.2.0 (2022-06-28)
------------------

New Features
````````````

- Updated the *Plume* component to be compatible with *landlab* version 2. This
  will allow *plume* to operate with the newest version of *landlab* and be
  incorporated into other *landlab* frameworks such as the *Sequence* model. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)
- Change the *plume* command-line program to use *toml*-formatted input files. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)
- The *plume* model now builds and runs on Windows! (`#5 <https://github.com/mcflugen/plume/issues/5>`_)


Bug Fixes
`````````

- Fixed a bug where the existing deposit thickness was being zeroed-out before
  the plume was run. The plume now adds sediment to an existing deposit and
  leaves it up to the user to clear an existing deposit. (`#7 <https://github.com/mcflugen/plume/issues/7>`_)


Documentation Enhancements
``````````````````````````

- Updated the documentation to include installation instructions, usage and
  examples. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)


Other Changes and Additions
```````````````````````````

- Setup towncrier to manage the changelog. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)
- Switch from *versioneer* to *zest.releaser* to manage release versions. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)
- Set up continuous integration workflows using GitHub Actions. CI tests include
  testing for code style using *black*, checking for lint with *flake8*,
  testing notebooks and running the test suite. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)
- Updated the package metadata and moved static metaddata from *setup.py*
  to *pyproject.toml*. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)
- Setup up pre-commit hooks for ensuring style, lack of lint, python 3.8+
  syntax, and clean notebooks. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)
- Added a citation file that users of *plume* can use to cite the software. (`#6 <https://github.com/mcflugen/plume/issues/6>`_)
- Removed ocean and river time series from the plume command line interface.
  The plume command now runs just a single plume. (`#7 <https://github.com/mcflugen/plume/issues/7>`_)
- Added GitHub Actions workflows for pushing prereleases to TestPyPI and
  releases to PyPI. (`#8 <https://github.com/mcflugen/plume/issues/8>`_)


0.1.0 (2018-06-13)
------------------

Features
````````

- Create *plume* package that simulates 1D (i.e. centerline), and 2D hypopycnal
  plumes.

Documentation Enhancements
``````````````````````````

- Added a new *Jupyter* notebook that demonstrates how to use simulate 2D and 1D
  plumes using the *plume* package. (`#3 <https://github.com/mcflugen/plume/issues/3>`_)


Other Changes and Additions
```````````````````````````

- Set up continuous integration testing with Travis-CI. CI builds are run
  for Linux and Mac. Windows support is not yet available. (`#1 <https://github.com/mcflugen/plume/issues/1>`_)
- Added a suite of tests, which use *pytest*, for testing the *plume*
  package. (`#2 <https://github.com/mcflugen/plume/issues/2>`_)
- Added *versioneer* to manage package release versions. (`#4 <https://github.com/mcflugen/plume/issues/4>`_)

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "sed-plume",
    "maintainer": "Eric Hutton",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "mcflugen@gmail.com",
    "keywords": "bmi,landlab,sediment,hypopycnal plume",
    "author": "Eric Hutton",
    "author_email": "mcflugen@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/31/ab/c08a83a2259af79ab32fff0ff15f8719356277bebdf9dab6f54a4c6488ea/sed-plume-0.2.2.tar.gz",
    "platform": null,
    "description": ".. image:: https://travis-ci.org/mcflugen/plume.svg?branch=master\n   :target: https://travis-ci.org/mcflugen/plume\n\n.. image:: https://ci.appveyor.com/api/projects/status/yle29j1hl6a8yu8p?svg=true\n   :target: https://ci.appveyor.com/project/mcflugen/plume\n\n.. image:: https://coveralls.io/repos/github/mcflugen/plume/badge.svg?branch=mcflugen%2Fadd-unit-tests\n   :target: https://coveralls.io/github/mcflugen/plume?branch=master\n\n==================================================\nplume: A hypopycnal plume model built with landlab\n==================================================\n\n\nRequirements\n------------\n\n*plume* requires Python 3.\n\nApart from Python, *plume* has a number of other requirements, all of which\ncan be obtained through either *pip* or *conda*, that will be automatically\ninstalled when you install *plume*.\n\nTo see a full listing of the requirements, have a look at the project's\n*requirements.txt* file.\n\nIf you are a developer of *plume* you will also want to install\nadditional dependencies for running *plume*'s tests to make sure\nthat things are working as they should. These dependencies are listed\nin *requirements-testing.txt*.\n\nInstallation\n------------\n\nTo install *plume*, first create a new environment in\nwhich *plume* will be installed. This, although not necessary, will\nisolate the installation so that there won't be conflicts with your\nbase *Python* installation. This can be done with *conda* as:\n\n.. code:: bash\n\n    $ conda create -n plume python=3\n    $ conda activate plume\n\nStable Release\n--------------\n\n*plume*, and its dependencies, can be installed either with *pip*\nor *conda*. Using *pip*:\n\n.. code:: bash\n\n    $ pip install plume\n\nUsing *conda*:\n\n.. code:: bash\n\n    $ conda install plume -c conda-forge\n\nFrom Source\n```````````\n\nBefore building *plume* from source, you will need an installation of\nthe GNU Scientific Library (gsl). There are several ways to install\nthis but the easiest is through *conda*,\n\n.. code:: bash\n\n   $ mamba install gsl\n\nAfter downloading the *plume* source code, run the following from\n*plume*'s top-level folder (the one that contains *setup.py*) to\ninstall *plume* into the current environment:\n\n.. code:: bash\n\n    $ pip install -e .\n\nInput Files\n-----------\n\nConfiguration File\n``````````````````\n\nThe main *plume* input file is a yaml-formatted text file that lists\nconstants used by *plume*. Running the following will print a sample\n*plume* configuration file:\n\n.. code:: bash\n\n    $ plume generate plume.toml\n\nThis will print something like the following,\n\n.. code:: toml\n\n   [plume]\n   _version = \"0.2.0.dev0\"\n\n   [plume.grid]\n   shape = [500, 500]\n   xy_spacing = [100.0, 100.0]\n   xy_of_lower_left = [0.0, 0.0]\n\n   [plume.river]\n   filepath = \"river.csv\"\n   width = 50.0\n   depth = 5.0\n   velocity = 1.5\n   location = [0.0, 25000.0]\n   angle = 0.0\n\n   [plume.sediment]\n   removal_rate = 60.0\n   bulk_density = 1600.0\n\n   [plume.ocean]\n   filepath = \"ocean.csv\"\n   along_shore_velocity = 0.1\n   sediment_concentration = 0.0\n\n   [plume.output]\n   filepath = \"plume.nc\"\n\nOcean File\n``````````\n\nThe *plume* ocean file defines parameters of the ocean for each day of\nthe simulation. This is a csv-formatted text file to *day*, *along-shore velocity*,\nand *sediment concentration*.\n\n.. code:: bash\n\n    $ plume generate ocean.csv\n\n.. code::\n\n   # version: 0.2.0.dev0\n   # Time [d], Along-shore velocity [m/s], Sediment Concentration [-]\n   0.0,0.1,0.0\n\nRiver File\n``````````\n\nThe *plume* river file is a csv-formatted text file that gives river parameters\nfor each day of the simulation. Columns are *time*, *river width*, *river depth*,\nand *river velocity*.\n\n.. code:: bash\n\n  $ plume generate river.csv\n\n.. code::\n\n  # version: 0.2.0.dev0\n  # Time [d], Width [m], Depth [m], Velocity [m/s]\n  0.0,50.0,5.0,1.5\n\nThe *plume* river file defines\n\nOutput File\n-----------\n\nThe only output file of *plume* is a *netCDF* file that contains\nsediment concentrations for each day of the simulation.\n\nExamples\n--------\n\nTo run a simulation using the sample input files described above, you first\nneed to create a set of sample files:\n\n.. code:: bash\n\n    $ mkdir example\n    $ plume --cd=example setup\n\nYou can now run the simulation:\n\n.. code:: bash\n\n    $ plume --cd=example run\n\n=======\nCredits\n=======\n\nDevelopment Leads\n-----------------\n\n- `Eric Hutton <https://github.com/mcflugen>`_\n\n=============\nRelease Notes\n=============\n\n.. towncrier release notes start\n\n0.2.2 (2023-09-18)\n------------------\n\nOther Changes and Additions\n```````````````````````````\n\n- Updated the *cython* code used to calculate the centerline to fix a compile error\n  related to the update to *cython* v3. (`#10 <https://github.com/mcflugen/plume/issues/10>`_)\n- Added support for Python 3.11, dropped Python 3.8. (`#11 <https://github.com/mcflugen/plume/issues/11>`_)\n- Added a *nox* file for routine project maintenance and continuous\n  integration. (`#12 <https://github.com/mcflugen/plume/issues/12>`_)\n\n\n0.2.1 (2022-06-29)\n------------------\n\nBug Fixes\n`````````\n\n- Fixed an error when trying to get the version from the command line with\n  ``plume --version```. (`#9 <https://github.com/mcflugen/plume/issues/9>`_)\n\n\n0.2.0 (2022-06-28)\n------------------\n\nNew Features\n````````````\n\n- Updated the *Plume* component to be compatible with *landlab* version 2. This\n  will allow *plume* to operate with the newest version of *landlab* and be\n  incorporated into other *landlab* frameworks such as the *Sequence* model. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)\n- Change the *plume* command-line program to use *toml*-formatted input files. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)\n- The *plume* model now builds and runs on Windows! (`#5 <https://github.com/mcflugen/plume/issues/5>`_)\n\n\nBug Fixes\n`````````\n\n- Fixed a bug where the existing deposit thickness was being zeroed-out before\n  the plume was run. The plume now adds sediment to an existing deposit and\n  leaves it up to the user to clear an existing deposit. (`#7 <https://github.com/mcflugen/plume/issues/7>`_)\n\n\nDocumentation Enhancements\n``````````````````````````\n\n- Updated the documentation to include installation instructions, usage and\n  examples. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)\n\n\nOther Changes and Additions\n```````````````````````````\n\n- Setup towncrier to manage the changelog. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)\n- Switch from *versioneer* to *zest.releaser* to manage release versions. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)\n- Set up continuous integration workflows using GitHub Actions. CI tests include\n  testing for code style using *black*, checking for lint with *flake8*,\n  testing notebooks and running the test suite. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)\n- Updated the package metadata and moved static metaddata from *setup.py*\n  to *pyproject.toml*. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)\n- Setup up pre-commit hooks for ensuring style, lack of lint, python 3.8+\n  syntax, and clean notebooks. (`#5 <https://github.com/mcflugen/plume/issues/5>`_)\n- Added a citation file that users of *plume* can use to cite the software. (`#6 <https://github.com/mcflugen/plume/issues/6>`_)\n- Removed ocean and river time series from the plume command line interface.\n  The plume command now runs just a single plume. (`#7 <https://github.com/mcflugen/plume/issues/7>`_)\n- Added GitHub Actions workflows for pushing prereleases to TestPyPI and\n  releases to PyPI. (`#8 <https://github.com/mcflugen/plume/issues/8>`_)\n\n\n0.1.0 (2018-06-13)\n------------------\n\nFeatures\n````````\n\n- Create *plume* package that simulates 1D (i.e. centerline), and 2D hypopycnal\n  plumes.\n\nDocumentation Enhancements\n``````````````````````````\n\n- Added a new *Jupyter* notebook that demonstrates how to use simulate 2D and 1D\n  plumes using the *plume* package. (`#3 <https://github.com/mcflugen/plume/issues/3>`_)\n\n\nOther Changes and Additions\n```````````````````````````\n\n- Set up continuous integration testing with Travis-CI. CI builds are run\n  for Linux and Mac. Windows support is not yet available. (`#1 <https://github.com/mcflugen/plume/issues/1>`_)\n- Added a suite of tests, which use *pytest*, for testing the *plume*\n  package. (`#2 <https://github.com/mcflugen/plume/issues/2>`_)\n- Added *versioneer* to manage package release versions. (`#4 <https://github.com/mcflugen/plume/issues/4>`_)\n",
    "bugtrack_url": null,
    "license": "The MIT License (MIT) =====================  Copyright (c) `2020` `Eric Hutton`  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "A hypopycnal sediment-carrying plume entering the ocean.",
    "version": "0.2.2",
    "project_urls": {
        "changelog": "https://github.com/mcflugen/plume/blob/main/CHANGES.rst",
        "documentation": "https://github.com/mcflugen/plume/blob/main/README.rst",
        "homepage": "https://github.com/csdms",
        "repository": "https://github.com/mflugen/plume"
    },
    "split_keywords": [
        "bmi",
        "landlab",
        "sediment",
        "hypopycnal plume"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "31abc08a83a2259af79ab32fff0ff15f8719356277bebdf9dab6f54a4c6488ea",
                "md5": "c5f7cd848648d86a44e7d38c93772c0d",
                "sha256": "9614d6d17f307eb4e27c0e441c9859c1919ed33cc6d03a092a355c4475ae35f6"
            },
            "downloads": -1,
            "filename": "sed-plume-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "c5f7cd848648d86a44e7d38c93772c0d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 22601,
            "upload_time": "2023-09-19T04:29:13",
            "upload_time_iso_8601": "2023-09-19T04:29:13.425898Z",
            "url": "https://files.pythonhosted.org/packages/31/ab/c08a83a2259af79ab32fff0ff15f8719356277bebdf9dab6f54a4c6488ea/sed-plume-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-19 04:29:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mcflugen",
    "github_project": "plume",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "sed-plume"
}
        
Elapsed time: 0.11576s