Skip to content

Commit

Permalink
Update master-branch to Pastas 1.0: Arrabiata (#529)
Browse files Browse the repository at this point in the history
  • Loading branch information
raoulcollenteur committed Feb 6, 2023
2 parents 2bbc91e + 9a4c525 commit 05fc109
Show file tree
Hide file tree
Showing 132 changed files with 5,638 additions and 5,572 deletions.
87 changes: 65 additions & 22 deletions .github/workflows/ci.yml
Expand Up @@ -14,41 +14,84 @@ on:

jobs:
test:
name: ${{ matrix.name }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ['3.8', '3.9', '3.10']
include:
- name: Test suite with py38-ubuntu
python: "3.8"
toxenv: py38
- name: Test suite with py39-ubuntu
python: "3.9"
toxenv: py39
- name: Test suite with py310-ubuntu
python: "3.10"
toxenv: py310
- name: Formatting with black + isort
python: "3.9"
toxenv: format
- name: Linting with flake8
python: "3.9"
toxenv: lint
- name: Test suite for Jupyter Notebooks
python: "3.9"
toxenv: notebooks
env:
# Color Output
# Rich (pip)
FORCE_COLOR: 1
# Tox
PY_COLORS: 1
# Pytest
PYTEST_ADDOPTS: "--color=yes"
steps:
- uses: actions/checkout@v3

- name: Set up Python ${{ matrix.python-version }}
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

python-version: ${{ matrix.python }}
check-latest: true
cache: "pip"
cache-dependency-path: pyproject.toml

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[ci]
- name: Lint with black
uses: psf/black@stable
pip install tox
- name: Setup tox environment
run: tox -e ${{ matrix.toxenv }} --notest

- name: Test
run: tox -e ${{ matrix.toxenv }} --skip-pkg-install

- name: Store coverage
uses: actions/upload-artifact@v3
with:
options: "--check"
jupyter: true

- name: Run tests and notebooks
if: ${{ github.event_name == 'pull_request' }}
run: |
py.test ./tests
- name: Run tests only
if: ${{ github.event_name == 'push' }}
run: |
py.test ./tests -m "not notebooks"
name: coverage
path: coverage.xml
if-no-files-found: ignore

coverage:
name: Coverage
runs-on: ubuntu-latest
needs: test
steps:
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v4
with:
check-latest: true

- name: Get coverage
uses: actions/download-artifact@v3
with:
name: coverage

- name: Run codacy-coverage-reporter
if: github.repository == 'pastas/pastas'
if: ${{ github.repository == 'pastas/pastas' && success() }}
uses: codacy/codacy-coverage-reporter-action@master
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Expand Up @@ -16,6 +16,7 @@ examples/notebooks/.ipynb_checkpoints/
gui/settings
build
dist
.tox

.idea/.name
.cache/v/cache/lastfailed
Expand All @@ -32,3 +33,7 @@ dist

.DS_Store
/doc/api/generated/
Test_Model.pdf
test.pas
doc/about/publications.bib
doc/about/references.bib
18 changes: 10 additions & 8 deletions README.rst
Expand Up @@ -13,16 +13,18 @@ Pastas: Analysis of Groundwater Time Series
:target: https://mit-license.org/
.. image:: https://img.shields.io/pypi/pyversions/pastas
:target: https://pypi.python.org/pypi/pastas
.. image:: https://img.shields.io/pypi/dm/pastas
:target: https://pypi.org/project/pastas/
.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.1465866.svg
:target: https://doi.org/10.5281/zenodo.1465866
.. image:: https://api.codacy.com/project/badge/Grade/952f41c453854064ba0ee1fa0a0b4434
:target: https://www.codacy.com/gh/pastas/pastas
.. image:: https://api.codacy.com/project/badge/Coverage/952f41c453854064ba0ee1fa0a0b4434
:target: https://www.codacy.com/gh/pastas/pastas
.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.1465866.svg
:target: https://doi.org/10.5281/zenodo.1465866
.. image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/pastas/pastas/master?filepath=examples%2Fnotebooks%2F1_basic_model.ipynb
.. image:: https://readthedocs.org/projects/pastas/badge/?version=latest
:target: https://pastas.readthedocs.io/en/latest/?badge=latest
.. image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/pastas/pastas/master?filepath=examples%2Fnotebooks%2F1_basic_model.ipynb

Pastas: what is it?
~~~~~~~~~~~~~~~~~~~
Expand All @@ -34,10 +36,10 @@ built-in optimization, visualisation, and statistical analysis tools.

Documentation & Examples
~~~~~~~~~~~~~~~~~~~~~~~~
- Documentation is provided on a dedicated website: http://pastas.readthedocs.io/
- Documentation is provided on the dedicated website `pastas.dev <http://www.pastas.dev/>`_
- Examples can be found on the `examples directory on the documentation website <https://pastas.readthedocs.io/en/dev/examples/index.html>`_
- View and edit a working example notebook of a Pastas model in `MyBinder <https://mybinder.org/v2/gh/pastas/pastas/master?filepath=examples%2Fnotebooks%2F1_basic_model.ipynb>`_
- A list of Publications that used Pastas is available in a `dedicated GitHub repo <https://github.com/pastas/pastas_research>`_
- A list of publications that use Pastas is available in a `dedicated Zotero group <https://www.zotero.org/groups/4846685/pastas/items/32FS5PTW/item-list>`_

Get in Touch
~~~~~~~~~~~~
Expand All @@ -50,7 +52,7 @@ Get in Touch

Quick installation guide
~~~~~~~~~~~~~~~~~~~~~~~~
To install Pastas, a working version of Python 3.7, 3.8 or 3.9 has to be
To install Pastas, a working version of Python 3.8, 3.9 or 3.10 has to be
installed on your computer. We recommend using the `Anaconda Distribution
<https://www.continuum.io/downloads>`_ as it includes most of the python
package dependencies and the Jupyter Notebook software to run the notebooks.
Expand Down Expand Up @@ -90,7 +92,7 @@ Pastas
- numpy>=1.7
- matplotlib>=3.1
- pandas>=1.1
- scipy>=1.3
- scipy>=1.8
- numba>=0.51

To install the most important optional dependencies (solver LmFit and function visualisation Latexify) at the same time with Pastas use::
Expand Down
Binary file added doc/_static/Eawag_logo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/_static/TUD_logo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/_static/example_output.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/_static/history_initial.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 36 additions & 0 deletions doc/about/01_history.rst
@@ -0,0 +1,36 @@
History
=======

The Development of Pastas started in the spring of 2016 at the TU Delft and Artesia in the Netherlands. Researchers
at the TU Delft required a flexible framework that could support future research on time series analysis of
groundwater data. Consulting company `Artesia <https://www.artesia-water.nl>`_ on the other hand, needed a tool
that allowed them to perform more complex analyses in a scripted environment. As such, Pastas was developed under
a fruitful partnership between academia and private industry, a collaboration that continues to this day.

.. figure:: ./../_static/history_initial.jpg
:figwidth: 600px

Drawing the initial design of Pastas on a whiteboard (5th of April, 2016)

Python was chosen as the programming language for Pastas, being a flexible and open-source language that allows for
quick prototyping. Moreover, many if not most hydrologists learn Python during their education, making the software
available to many. From the start, all code was made completely open-source under MIT license, embracing open science
and FAIR (Findability, Accessibility, Interoperability, and Reuse) data practices.

International use of Pastas and research grew substantially after the publication of the Pastas article in the
international journal Groundwater :cite:p:`collenteur_pastas_2019`. In addition, the University of Graz in Austria
and now the Swiss research institute Eawag employed one of the maintainers, further pushing the international use and
development of Pastas. Since its inception, Pastas has been applied in over a dozen countries worldwide. Supporting
international research continues to be an important goal of Pastas. For a list of peer-reviewed publications using
Pastas please see the :doc:`Publications page <05_publications>`.

Pastas 1.0
----------

In february 2023, Pastas version 1.0 was released, the celebration of 7 years of research and development of Pastas.
Pastas was already operational for a couple of years, but the a lot of features were still changing. In Pastas 1.0
focus lies on Pastas main goal: time series analysis on groundwater levels. This was done by improving the
documentation, removing unused features, unifying the API and relying more on high quality Python packages such as
Pandas, NumPy and Numba. With version 1.0, Pastas is ready for further future developments!


110 changes: 110 additions & 0 deletions doc/about/02_team.rst
@@ -0,0 +1,110 @@
Pastas Team
===========

Active maintainers
------------------

Core team
~~~~~~~~~
The following people are part of the core team of Pastas and can merge pull requests on the Pastas GitHub.


.. grid:: 1 2 3 4

.. grid-item::

.. figure:: https://avatars2.githubusercontent.com/u/12051167?s=460&u=ad0baaa3520ab942c93af44ea8e296b44ea459ac&v=4
:figwidth: 150px
:target: https://github.com/raoulcollenteur

Raoul Collenteur
(Eawag)

.. grid-item::
.. figure:: https://avatars3.githubusercontent.com/u/1363400?s=460&u=8d34d0824bd0f43a63f29c0b71fbfae435a15565&v=4
:figwidth: 150px
:target: https://github.com/mbakker7

Mark Bakker
(TU Delft)

.. grid-item::
.. figure:: https://avatars3.githubusercontent.com/u/18527362?s=460&u=3e1faab416c86e141ff0860017a5a02133830b08&v=4
:figwidth: 150px
:target: https://github.com/rubencalje

Ruben Caljé
(Artesia)

.. grid-item::
.. figure:: https://avatars1.githubusercontent.com/u/6552225?s=460&u=ba73dc4a63fe3d5707a2da9276143d16672ad413&v=4
:figwidth: 150px
:target: https://github.com/dbrakenhoff

Davíd Brakenhoff
(Artesia)

Developers
~~~~~~~~~~

The following people are part of the development team of Pastas and help develop new features.

.. grid:: 1 2 3 4

.. grid-item::
.. figure:: https://avatars.githubusercontent.com/u/10562903?v=4
:figwidth: 120px
:target: https://github.com/OnnoEbbens

Onno Ebbens
(Artesia)

.. grid-item::
.. figure:: https://avatars.githubusercontent.com/u/66305055?v=4
:figwidth: 120px
:target: https://github.com/martinvonk

Martin Vonk
(Artesia & TU Delft)

All the people who have contributed code to the Pastas project can be found on `GitHub Contributor list <https://github
.com/pastas/pastas/graphs/contributors>`_.


Institutional partners
----------------------
Institutional partners are companies and universities that support the project by employing maintainers and developers.
Current institutional partners include:

.. grid:: 1 2 3 3

.. grid-item-card::


.. figure:: ./../_static/Eawag_logo.png
:figwidth: 150px
:target: https://www.eawag.ch/en/

.. grid-item-card::

.. figure:: ./../_static/TUD_logo.png
:figwidth: 150px
:target: https://www.tudelft.nl

.. grid-item-card::

.. figure:: ./../_static/Art_logo.jpg
:figwidth: 150px
:target: http://www.artesia-water.nl

Past Institutional support
--------------------------
The following institutions have employed maintainers in the past or past maintainers:

.. grid:: 1 2 3 3

.. grid-item-card::

.. figure:: ./../_static/logo_graz.png
:figwidth: 150px
:target: https://erdwissenschaften.uni-graz.at/en/
73 changes: 73 additions & 0 deletions doc/about/03_citing.rst
@@ -0,0 +1,73 @@
Citing and logo
===============

If you find Pastas useful in your work, please cite the `Pastas article published in Groundwater journal <https://doi.org/10.1111/gwat.12925>`_:

Collenteur, R., Caljé, R., Klop, S., Schaars, F., & Bakker, M. (2019). Pastas: open source software for the analysis of groundwater time series. Groundwater, 57. https://doi.org/10.1111/gwat.12925

.. code-block:: text
@article{Collenteur_Pastas_open_source_2019,
author = {Collenteur, R.A. and
Caljé, R. and
Klop, S.A. and
Schaars, F. and
Bakker, M.},
doi = {10.1111/gwat.12925},
journal = {Groundwater},
month = {7},
title = {{Pastas: open source software for the analysis of groundwater time series}},
volume = {57},
year = {2019}
}
To cite a specific version of Pastas, you can cite `one of the releases on Zenodo <https://doi.org/10.5281/zenodo
.7585471>`_:

.. code-block:: text
@software{raoul_collenteur_2023_7585471,
author = {Raoul Collenteur and
Mark Bakker and
Ruben Caljé and
Frans Schaars},
title = {{Pastas: open-source software for the analysis of
hydrogeological time series}},
month = jan,
year = 2023,
publisher = {Zenodo},
version = {v1.0.0},
doi = {10.5281/zenodo.7585471},
url = {https://doi.org/10.5281/zenodo.7585471}
}
Naming
------

Pastas is written as one, non-capitalized word: "Pastas".

Logo
----

.. figure::
./../_static/logo.png
:figwidth: 200px

Color
-----

.. raw:: html

<table class="table">
<tr>
<td style="text-align: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
<circle cx="50" cy="50" r="50" fill="#009BE0"/>
</svg>
<br/>
<b style="color: #009BE0;">Pastas Blue</b><br/>
RGB: R0 G155 B224<br/>
HEX: #009BE0
</td>
</tr>
</table>

0 comments on commit 05fc109

Please sign in to comment.