Skip to main content

Python tools for multi-objective decision analysis and visualization

Project description

parasolpy

Documentation Status

Python tools for multi-objective decision analysis and visualization, continuing the Parasol project originally published as:

Raseman, W. J., Jacobson, J., & Kasprzyk, J. R. (2019). Parasol: An open source, interactive parallel coordinates library for multi-objective decision making. Environmental Modelling & Software, 116, 153–163. https://doi.org/10.1016/j.envsoft.2019.03.005

Developed by the Kasprzyk Research Group at CU Boulder.

Status

🚧 Active development. APIs are mostly stable but may change between 0.x releases.

Installation

From PyPI:

pip install parasolpy

Requires Python ≥ 3.12.

From source (for development):

Requires Poetry to be installed on your system (e.g. pipx install poetry):

git clone https://github.com/jrkasprzyk/parasolpy.git
cd parasolpy
poetry install

What's inside

parasolpy bundles several modules for reservoir analysis, streamflow synthesis, multi-objective tradeoff exploration, and supporting plotting and file utilities.

Module Purpose
parasolpy.reservoir Sequent-peak reservoir sizing
parasolpy.ism Index-sequential method (ISM) trace ensembles
parasolpy.nowak Nowak et al. (2010) nonparametric streamflow disaggregation
parasolpy.tradeoff Epsilon non-dominance, KMeans labeling, HiPlot parallel coordinates
parasolpy.plotting Heatmap, spaghetti, fan chart, seasonality, exceedance plots
parasolpy.dash_tools Interactive Dash app powering the parasolpy-tradeoff CLI
parasolpy.interactive Terminal prompts for epsilon-experiment workflows
parasolpy.file_processing Borg / RiverWare solution CSV normalization
parasolpy.util Path helpers, unit conversions, XML config parsing

Tradeoff explorer CLI

Once installed, launch an interactive parallel-coordinates explorer against a results folder:

parasolpy-tradeoff path/to/output_folder

Equivalent module invocation (useful during development):

python -m parasolpy.dash_tools path/to/output_folder

Common options:

  • --config FILE — override auto-discovered config XML
  • --solutions FILE — override auto-discovered solutions CSV
  • --title TEXT — heading shown above the plot
  • --colorscale NAME — any Plotly named colorscale (default viridis)
  • --host HOST / --port PORT — bind address (defaults 127.0.0.1:8050)
  • --debug — run Dash in debug mode

Examples

The examples/ directory contains self-contained scripts that generate their own synthetic data — no external files needed. Run any of them from the repo root:

python examples/01_reservoir_sequent_peak.py
python examples/03_tradeoff_parallel_plot.py
# ...etc.

Figures and CSV/HTML outputs land in examples/_output/. See examples/README.md for the full script list.

Lineage and related packages

This package is developed by the Kasprzyk Research Group at CU Boulder. It is not affiliated with the unrelated parasol or pyparasol packages on PyPI, which are independent projects that share the name.

Citation

If you use parasolpy in academic work, please cite the original Parasol paper linked above.

Development

  • Documentation is hosted on Read the Docs. Build it locally with pip install ".[docs]" and sphinx-build -W -b html docs docs/_build/html.
  • Cutting a release? See RELEASING.md for the Poetry-based workflow (version bump, build, publish to PyPI, tag, GitHub Release).
  • Issues and pull requests are welcome on GitHub.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

parasolpy-0.4.0.tar.gz (105.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

parasolpy-0.4.0-py3-none-any.whl (106.7 kB view details)

Uploaded Python 3

File details

Details for the file parasolpy-0.4.0.tar.gz.

File metadata

  • Download URL: parasolpy-0.4.0.tar.gz
  • Upload date:
  • Size: 105.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for parasolpy-0.4.0.tar.gz
Algorithm Hash digest
SHA256 cd31cda149bb067e3ae6d8bf289d8c079ea82b12c3559cd5b23672ff9a6db29d
MD5 ffade2b55bdcaf0fe0fb8c55adcb08a5
BLAKE2b-256 0112f48ee01dfe4852473059a8ae82d7bcfe88a0c25a22a979d76a5c55466924

See more details on using hashes here.

Provenance

The following attestation bundles were made for parasolpy-0.4.0.tar.gz:

Publisher: python-publish.yml on jrkasprzyk/parasolpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file parasolpy-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: parasolpy-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 106.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for parasolpy-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c236578426b936a00cdf2beb9c92a5db151a5b4a82a4beb13e20c5ff518c955
MD5 0dfde3f5e31282c4538f407f49b095f8
BLAKE2b-256 d67e7db5d85502d8341f29adf627a0c92f90a9b5de1685f4d4055aa8b4370093

See more details on using hashes here.

Provenance

The following attestation bundles were made for parasolpy-0.4.0-py3-none-any.whl:

Publisher: python-publish.yml on jrkasprzyk/parasolpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page