Metadata-Version: 2.1
Name: pymt
Version: 1.2.1
Summary: The CSDMS Python Modeling Toolkit
Home-page: http://csdms.colorado.edu
Author: Eric Hutton
Author-email: huttone@colorado.edu
License: UNKNOWN
Keywords: earth science,model coupling
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Cython
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.6
Requires-Dist: click
Requires-Dist: deprecated
Requires-Dist: jinja2
Requires-Dist: landlab (>=2)
Requires-Dist: matplotlib
Requires-Dist: model-metadata (>=0.7)
Requires-Dist: netcdf4
Requires-Dist: numpy
Requires-Dist: pyyaml
Requires-Dist: scipy
Requires-Dist: shapely
Requires-Dist: six
Requires-Dist: xarray

|PYMT|

The Python Modeling Toolkit (pymt)
==================================

|Build Status| |AppVeyor Status| |License| |Code Style| |Documentation Status| |Coverage Status| |Conda Version|
|Conda Installation| |Conda Downloads| |Codacy| |Binder|

Quick links:

* `User documentation <https://pymt.readthedocs.io/>`_
* `Installation instructions <https://pymt.readthedocs.io/en/latest/install.html>`_
* `List of available models <https://pymt.readthedocs.io/en/latest/models.html>`_

PyMT is an Open Source Python package, developed by the
`Community Surface Dynamics Modeling System <https://csdms.colorado.edu>`_
(CSDMS), that provides the necessary tools used for the coupling of models
that expose the
`Basic Model Interface <https://bmi-spec.readthedocs.io>`_
(BMI). It contains:

* Tools necessary for coupling models of disparate time and space
  scales (including grid mappers)
* Time-steppers that coordinate the sequencing of coupled models
* Exchange of data between BMI-enabled models
* Wrappers that automatically load BMI-enabled models into the PyMT
  framework
* Utilities that support open-source interfaces (UGRID, SGRID, CSDMS
  Standard Names, etc.)
* A collection of community-submitted models, written in a variety
  of programming languages, from a variety of process domains - but
  all usable from within the Python programming language
* A plug-in framework for adding additional BMI-enabled models to
  the framework

What does it look like?  Here is an example of a simple *pymt* program that
couples a *Waves* model with a *Coastline Evolution* model.

.. code-block:: python

    from pymt.models import Cem, Waves

    waves = Waves()
    cem = Cem()

    waves.initialize(*waves.setup())
    cem.initialize(*cem.setup())

    for time in range(1000):
        waves.update()
        angle = waves.get_value("wave_angle")
        cem.set_value("wave_angle", angle)
        cem.update()


This material is based upon work
supported by the National Science Foundation
under Grant No. `1831623`_,
*Community Facility Support:
The Community Surface Dynamics Modeling System (CSDMS)*.

.. _1831623: https://nsf.gov/awardsearch/showAward?AWD_ID=1831623

.. |PYMT| image:: https://github.com/csdms/pymt/raw/master/docs/_static/pymt-logo-header-text.png
   :target: https://pymt.readthedocs.org/
.. |Build Status| image:: https://travis-ci.org/csdms/pymt.svg?branch=master
   :target: https://travis-ci.org/csdms/pymt
.. |AppVeyor Status| image:: https://ci.appveyor.com/api/projects/status/bf8g17c05ugvhvfe/branch/master
   :target: https://ci.appveyor.com/project/mcflugen/pymt/branch/master
.. |License| image:: https://img.shields.io/badge/License-MIT-yellow.svg
   :target: https://opensource.org/licenses/MIT
.. |Code Style| image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/csdms/pymt
.. |Documentation Status| image:: https://readthedocs.org/projects/pymt/badge/?version=latest
   :target: https://pymt.readthedocs.io/en/latest/?badge=latest
.. |Coverage Status| image:: https://coveralls.io/repos/github/csdms/pymt/badge.svg?branch=master
   :target: https://coveralls.io/github/csdms/pymt?branch=master
.. |Conda Version| image:: https://anaconda.org/conda-forge/pymt/badges/version.svg
   :target: https://anaconda.org/conda-forge/pymt
.. |Conda Installation| image:: https://anaconda.org/conda-forge/pymt/badges/installer/conda.svg
   :target: https://conda.anaconda.org/conda-forge
.. |Conda Downloads| image:: https://anaconda.org/conda-forge/pymt/badges/downloads.svg
   :target: https://anaconda.org/conda-forge/pymt
.. |Codacy| image:: https://app.codacy.com/project/badge/Grade/e8e273131ecb4d7d981fe9f4cf3e83d9
    :target: https://www.codacy.com/manual/mcflugen/pymt?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=csdms/pymt&amp;utm_campaign=Badge_Grade
.. |Binder| image:: https://static.mybinder.org/badge_logo.svg
   :target: https://static.mybinder.org/badge_logo.svg






Credits
=======

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

* Eric Hutton <mcflugen@gmail.com>
* Mark Piper <mark.piper@colorado.edu>

Contributors
------------

* Niels Drost
* Tian Gan
* Albert Kettner
* Irina Overeem
* Scott Stewart
* Kang Wang


Changelog for pymt
==================

1.2.1 (2020-09-22)
------------------

- Fixed model metadata discovery by using the model_metadata package
  to look for metadata files (#125)


1.2 (2020-09-11)
----------------

- Added a cythonized udunits2 module (#120)

- Documentation improvements

- Use mamba for our continuous integration (#122)


1.1.3 (2020-04-23)
------------------

- Included the cfunits xml data with pymt install (#113)

- Updated notebook readme (#114)

- Updated example notebooks (#112)


1.1.2 (2020-04-08)
------------------

- Removed deployment to PyPI (#111)

- Fixed build of docs on readthedocs (#110)

- Changed behavior of grid_x, y, and z for rectilinear grids (#107)


1.1.0 (2020-02-26)
------------------

- Fixed failing tests (#93)

- Improved documentation (#94, #96, #99, #100, #103, #105)

- Added binder to documentation (#97)

- Added example notebooks for GIPL

- Added support for BMI *rectilinear* grid type (#90)

- Added support for BMI *structured_quadrilateral* grid type (#89)

- Added a sensible BMI class (#86)


1.0.3 (2019-05-15)
------------------

- Include a copy of cfunits package as part of pymt (#85)


1.0.2 (2019-05-14)
------------------

- Fixed cfunits import error on Windows (#84)

- Fixed error getting metadata path from BMI class (#83)


1.0.1 (2019-05-13)
------------------

- Fixed incorrect path from METADATA attribute (#82)

- Imporoved documentation

- Improved example notebooks


1.0.0 (2019-02-18)
------------------

- Added a more pythonic BMI (#55)

- Remove support from Python 2.7

- Fixed CEM notebook (#64)

- Fixed int error on some platforms (#58)

- Improved documentation

- Improved tests


0.2.9 (2019-02-09)
------------------

- Fixed the quickstart tutorial (#55)

- Removed the old way of loading models (i.e. from a package called `csdms`) (#54)

0.2.8 (2019-02-07)
------------------

- Code clean-up (#50, #52)

- Improved the HydroTrend notebook

- Added continuous integration on Windows using AppVeyor (#48)

0.2.7 (2019-01-23)
------------------

- Fixed installation issue where tests folder was installed (#43)

- Removed utility scripts from installation (#42)

- Make installation of ESMF optional (#41)

- Added pymt example notebooks to docs (#40)

- Improved documentation


0.2.6 (2018-10-24)
------------------

- Load pymt plugins as components (#38)


0.2.5 (2018-10-04)
------------------

- Fixed for new model_metadata API (#36)


0.2.4 (2018-09-07)
------------------

- Improved documentation

- Improved continuous integration


0.2.3 (2018-07-06)
------------------

- Removed dependency on nose


0.2.2 (2018-07-02)
------------------

- Removed dependency on nose

- Fixed unit tests failing due to poorly named pytest fixtures.

0.2.1 (2018-07-01)
------------------

- Removed dependency on nose

- Fixed unit tests failing due to poorly named pytest fixtures.

- Fixed formatting so that it is strict PEP8 package-wide

- Fixed bug in setup when creating a config file.

- Fixed bug that used relative path for initdir.

- Fixed coverage and upload results to coveralls.

- Fixed continuous integration.

- Added support for "vector" grid type.

- Added code coverage with CI.

- Added support and testing for Python 3.

- Added new method for discovering component plugins

- Added grid mapper methods to components

- Added quick_plot method to plot a 2D BMI variable

- Added unstructured dataset to BmiCap

- Added change log and script

- Added plugin framework to dynamically load arbitrary components.

- Added a "cite as" section to component metadata and docstring.

- Added setter to change a component's time units.

- csdms/mdpiper/use-https [#27]

- Use tools from the model_metadata package for metadata and staging.

- Use Versioneer for versioning

- Allow multiple authors of components

- Changed to run update_until in model's initialization folder.

- Changed IRF methods to run from within the initialization folder

- Use jinja templates to generate BMI docstrings.


0.2.0 (2016-12-28)
------------------

- Removed dependency on nose

- Fixed unit tests failing due to poorly named pytest fixtures.

- Fixed formatting so that it is strict PEP8 package-wide

- Fixed bug in setup when creating a config file.

- Fixed bug that used relative path for initdir.

- Fixed coverage and upload results to coveralls.

- Fixed continuous integration.

- Added support for "vector" grid type.

- Added code coverage with CI.

- Added support and testing for Python 3.

- Added new method for discovering component plugins

- Added grid mapper methods to components

- Added quick_plot method to plot a 2D BMI variable

- Added unstructured dataset to BmiCap

- Added change log and script

- Added plugin framework to dynamically load arbitrary components.

- Added a "cite as" section to component metadata and docstring.

- Added setter to change a component's time units.

- csdms/mdpiper/use-https [#27]

- Use tools from the model_metadata package for metadata and staging.

- Use Versioneer for versioning

- Allow multiple authors of components

- Changed to run update_until in model's initialization folder.

- Changed IRF methods to run from within the initialization folder

- Use jinja templates to generate BMI docstrings.

- csdms/mcflugen/fix-for-new-bmi [#8]


