Giter Club home page Giter Club logo

prms-python's Introduction

PRMS-Python

Online documentation

PRMS-Python provides a Python interface to PRMS data files and manages PRMS simulations. This module aims to improve the efficiency of PRMS workflows by giving access to PRMS data structures while providing "pythonic" tools to do scenario-based PRMS simulations. By "scenario-based" we mean testing model hypotheses associated with model inputs, outputs, and model structure. For example, parameter sensitivity analysis, where each "scenario" is an iterative perturbation of one or many parameters. Another example "scenario-based" modeling exercise would be climate scenario modeling: what will happen to modeled outputs if the input meteorological data were to change?

Installation

PRMS-Python versions are available on the Python Package Index PyPI and can be installed and upgraded using pip:

pip install prms-python

Alternatively clone-then-pip:

git clone https://github.com/PRMS-Python/PRMS-Python.git
cd PRMS-Python

then

pip install --editable .

Another option is to download the source code as a zip file, unzip it and within the PRMS-Python root directory run:

python setup.py install

Usage and documentation

We reccomend starting with the "getting started" Jupyter notebook for file structure rules that PRMS-Python uses and then moving on to other example notebooks in the notebooks directory. Online documentation is available here.

Building documentation

This project uses the Sphinx documentation engine for Python The documentation source is located in docs/source. Eventually we can wrap the following steps into a script. But for now, to build the documentation, go to the docs/ directory and run

make html

If it fails because of missing dependencies, just install the dependencies it says it's missing. Publishing the docs is now done automatically with any commits are pushed to the master branch.

Unit tests

I run them using nose but that's not required. From the root repo directory

nosetests -v

Contribute

We welcome anyone seriously interested in contributing to PRMS-Python to do so in anyway they see fit. If you are not sure where to begin you can look for current issues or submit a new issue here. You may also fork PRMS-Python and submit a pull request if you would like to offer your direct changes to the package.

Citing PRMS-Python

If you use PRMS-Python for published work we ask that you please cite the PRMS-Python manuscript as follows:

Volk, J. M., & Turner, M. A. (2019). PRMS-Python: A Python framework for programmatic PRMS modeling and access to its data structures. Environmental Modelling & Software, 114, 152โ€“165. https://doi.org/10.1016/J.ENVSOFT.2019.01.006

prms-python's People

Contributors

johnvolk avatar mt-digital avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.