pywr

Pywr is a generalised network resource allocation model written in Python.

https://github.com/pywr/pywr

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    3 of 21 committers (14.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (20.6%) to scientific vocabulary

Keywords

hydrology water-resources
Last synced: 7 months ago · JSON representation

Repository

Pywr is a generalised network resource allocation model written in Python.

Basic Info
  • Host: GitHub
  • Owner: pywr
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 23.1 MB
Statistics
  • Stars: 173
  • Watchers: 17
  • Forks: 63
  • Open Issues: 142
  • Releases: 35
Topics
hydrology water-resources
Created about 11 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog License

README.rst

====
Pywr
====

Pywr is a generalised network resource allocation model written in Python. It aims to be fast, free, and extendable.

.. image:: https://github.com/pywr/pywr/workflows/Build/badge.svg?branch=master
   :target: https://github.com/pywr/pywr/actions?query=workflow%3ABuild

.. image:: https://img.shields.io/badge/chat-on?logo=zulip&color=blue
   :alt: Static Badge
   :target: https://pywr.zulipchat.com

.. image:: https://codecov.io/gh/pywr/pywr/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/pywr/pywr

Overview
========

`Documentation `__

Pywr is a tool for solving network resource allocation problems at discrete timesteps using a linear programming approach. It's principal application is in resource allocation in water supply networks, although other uses are conceivable. A network is represented as a directional graph using `NetworkX `__. Nodes in the network can be given constraints (e.g. minimum/maximum flows) and costs, and can be connected as required. Parameters in the model can vary time according to boundary conditions (e.g. an inflow timeseries) or based on states in the model (e.g. the current volume of a reservoir).

Models can be developed using the Python API, either in a script or interactively using `IPython `__/`Jupyter `__. Alternatively, models can be defined in a rich `JSON-based document format `__.

.. image:: https://raw.githubusercontent.com/pywr/pywr/master/docs/source/_static/pywr_d3.png
   :width: 250px
   :height: 190px

New users are encouraged to read the `Pywr Tutorial `__.

Design goals
============

Pywr is a tool for solving network resource allocation problems. It has many similarities with other software packages such as WEAP, Wathnet, Aquator and MISER, but also has some significant differences. Pywr’s principle design goals are that it is:

- Fast enough to handle large stochastic datasets and large numbers of scenarios and function evaluations required by advanced decision making methodologies;
- Free to use without restriction – licensed under the GNU General Public Licence;
- Extendable – uses the Python programming language to define complex operational rules and control model runs.

Installation
============

Pywr should work on Python 3.7 (or later) on Windows, Linux or OS X.

See the documentation for `detailed installation instructions `_.

For a quick start use pip:

.. code-block:: console

    pip install pywr

For most users it will be easier to install the binary packages made available from `PyPi `_ or the `Anaconda Python distribution `__. Note that these packages may lag behind the development version.

Citation
========

Please consider citing the following paper when using Pywr:


    Tomlinson, J.E., Arnott, J.H. and Harou, J.J., 2020. A water resource simulator in Python. Environmental Modelling & Software. https://doi.org/10.1016/j.envsoft.2020.104635


License
=======

Copyright (C) 2014-20 Joshua Arnott, James E. Tomlinson, Atkins, University of Manchester


This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA  02110-1301 USA.

Owner

  • Name: Pywr
  • Login: pywr
  • Kind: organization

A collection of repositories related to the Pywr ngeneralised network resource allocation modelling library.

GitHub Events

Total
  • Create event: 22
  • Release event: 7
  • Issues event: 1
  • Watch event: 21
  • Delete event: 19
  • Issue comment event: 30
  • Push event: 52
  • Pull request review comment event: 2
  • Pull request review event: 18
  • Pull request event: 40
  • Fork event: 5
Last Year
  • Create event: 22
  • Release event: 7
  • Issues event: 1
  • Watch event: 21
  • Delete event: 19
  • Issue comment event: 30
  • Push event: 52
  • Pull request review comment event: 2
  • Pull request review event: 18
  • Pull request event: 40
  • Fork event: 5

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 1,286
  • Total Committers: 21
  • Avg Commits per committer: 61.238
  • Development Distribution Score (DDS): 0.414
Past Year
  • Commits: 26
  • Committers: 2
  • Avg Commits per committer: 13.0
  • Development Distribution Score (DDS): 0.154
Top Committers
Name Email Commits
James Tomlinson t****e@g****m 754
Joshua Arnott j****h@s****t 451
James Batchelor j****r@o****m 44
Batchelor J****r@a****m 7
khaledk2 k****d@m****k 5
Lauren Petch 3****h 4
James Batchelor j****r@a****m 3
JackJohnson93 4****3 3
matrosoe m****e@g****m 2
Stefano Simonelli 1****i 2
Vicente Jander 6****r 1
Mohammed Basheer 4****r 1
Kevis Pachos k****4@u****k 1
Jose Miguel Gonzalez j****a@p****k 1
Iñigo Ricalde 3****e 1
David Rheinheimer r****r 1
Av Nish a****h@o****m 1
adlwk2 1****2 1
knoxsp k****p 1
m7142yosuke 4****e 1
tom-gribbin 7****n 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 56
  • Total pull requests: 116
  • Average time to close issues: 5 months
  • Average time to close pull requests: 2 months
  • Total issue authors: 20
  • Total pull request authors: 12
  • Average comments per issue: 4.02
  • Average comments per pull request: 0.78
  • Merged pull requests: 99
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 30
  • Average time to close issues: N/A
  • Average time to close pull requests: 12 days
  • Issue authors: 0
  • Pull request authors: 5
  • Average comments per issue: 0
  • Average comments per pull request: 0.73
  • Merged pull requests: 21
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • jetuk (14)
  • BaptisteFrancois (7)
  • xoxshirl (5)
  • ahamilton144 (4)
  • ccalvocm (4)
  • Batch21 (3)
  • aiduran (3)
  • s-simoncelli (2)
  • knoxsp (2)
  • wdvichete84 (2)
  • MaVerDel (1)
  • drheinheimer (1)
  • KevisPachos (1)
  • terfani (1)
  • TrevorJA (1)
Pull Request Authors
  • jetuk (99)
  • Batch21 (21)
  • s-simoncelli (4)
  • 05michaelallen (2)
  • pmslavin (2)
  • dependabot[bot] (2)
  • laurenpetch (2)
  • MohammedBasheer (2)
  • Jmiguel17 (1)
  • adlwk2 (1)
  • JackJohnson93 (1)
Top Labels
Issue Labels
enhancement (9) bug (7) question (5) documentation (4) good first issue (4) housekeeping (2) deployment (2) performance (1) appveyor (1) waiting for upstream (1) needs review (1)
Pull Request Labels
housekeeping (2) dependencies (2) deployment (1)

Packages

  • Total packages: 4
  • Total downloads:
    • pypi 2,223 last-month
  • Total docker downloads: 230
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 6
    (may contain duplicates)
  • Total versions: 124
  • Total maintainers: 2
proxy.golang.org: github.com/pywr/pywr
  • Versions: 47
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 7 months ago
pypi.org: pywr

Python Water Resource model

  • Versions: 46
  • Dependent Packages: 0
  • Dependent Repositories: 6
  • Downloads: 2,219 Last month
  • Docker Downloads: 230
Rankings
Docker downloads count: 2.9%
Forks count: 5.6%
Dependent repos count: 6.0%
Stargazers count: 6.0%
Average: 6.2%
Downloads: 6.7%
Dependent packages count: 10.1%
Maintainers (1)
Last synced: 7 months ago
conda-forge.org: pywr

Pywr is a tool for solving network resource allocation problems at discrete timesteps using a linear programming approach. It's principal application is in resource allocation in water supply networks, although other uses are conceivable. It uses Cython extensions for computational efficiency.

  • Versions: 28
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Forks count: 22.9%
Stargazers count: 29.7%
Dependent repos count: 34.0%
Average: 34.5%
Dependent packages count: 51.2%
Last synced: 7 months ago
pypi.org: pywr-stoch

Python Water Resource model

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 4 Last month
Rankings
Dependent packages count: 7.6%
Average: 40.0%
Downloads: 43.0%
Dependent repos count: 69.5%
Maintainers (1)
Last synced: 7 months ago

Dependencies

setup.py pypi
  • ipython *
  • jinja2 *
  • matplotlib *
  • networkx *
  • openpyxl *
  • packaging *
  • pandas *
  • scipy *
  • tables *
.github/workflows/black.yml actions
  • actions/checkout v2 composite
  • psf/black stable composite
.github/workflows/build.yml actions
  • JamesIves/github-pages-deploy-action 3.7.1 composite
  • actions/checkout v2 composite
  • actions/download-artifact v2 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v2 composite
  • pypa/gh-action-pypi-publish release/v1 composite
pyproject.toml pypi