Pastas Plugins

Welcome to the pastas-plugins repository, your one-stop-shop for customized, cutting-edge additions to Pastas.

Pastas plugins are a way to extend the functionality of Pastas. This repository aims to provide a template for developing, documenting and testing plugins so that they can be shared with the Pastas community.

Check out the documentation for the plugins that are currently included below, or check out the Examples section for notebooks showcasing the plugins in action.

Current plugins

The following plugins are currently available:

  • Cross-correlation: analyze and visualize the cross-correlation between two time series.

  • Modflow: using a Modflow model as a response function in Pastas.

  • Reservoirs: use reservoir models to simulate time series.

  • Responses: extra response functions for Pastas.

  • PEST: PEST(++) solver for Pastas.

Installation

To install the plugins, you can use pip:

pip install pastas-plugins

If you want to use a specific plugin and want to ensure you install all the requisite dependencies, you can use the following command:

pip install pastas-plugins[<name of plugin>]

If you want to install them all:

pip install pastas-plugins[all]

Usage

Import the pastas-plugins module with:

import pastas_plugins as pp

This gives you access to the following functions:

pp.list_plugins()         # list of all plugins
pp.show_plugin_versions() # show plugin versions

The function pp.show_plugin_versions() will indicate if any dependencies are missing for a particular plugin. See the Installation section above for tips on how to install dependencies for a particular plugin.

To use a particular plugin, you’ll have to import it explicitly, e.g.:

from pastas_plugins import responses

rfunc = responses.Theis()

Separate plugins are each stored in a separate submodule within the pastas-plugins package. You do not need to install the dependencies for each plugin if you’re only interested in one particular plugin.

Write your own plugin

Interested in writing your own plugin? See the Developers section for a guide on how to get started.