https://github.com/ch-earth/pyviscous

PyVISCOUS: Open-Source VISCOUS Code in Python

https://github.com/ch-earth/pyviscous

Science Score: 39.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 4 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

PyVISCOUS: Open-Source VISCOUS Code in Python

Basic Info
  • Host: GitHub
  • Owner: CH-Earth
  • License: other
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 7.49 MB
Statistics
  • Stars: 5
  • Watchers: 2
  • Forks: 7
  • Open Issues: 5
  • Releases: 2
Created over 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

PyVISCOUS: Open-Source VISCOUS Code in Python

VISCOUS is a variance-based global sensitivity analysis framework (Sheikholeslami et al. 2021, Liu et al. 2024). Functioning as a "given-data" method, VISCOUS utilizes existing model input and output data, such as water model parameters and responses, to provide valuable approximations of first- and total-order Sobol’ sensitivity indices. The input-output data can be from previous model runs conducted for various modeling purposes (e.g., model calibration and uncertainty analysis).

Install pyviscous

Approach 1: From PyPI pip install pyviscous

Approach 2: From source ```

Clone the repository (replace with your GitHub username)

git clone https://github.com//pyviscous.git

Navigate into the cloned directory

cd pyviscous

Install pyviscous using pyproject.toml-based build system

pip install . ``` Note: This assumes you have forked the repository from GitHub manually.

Approach 3: Use pyviscous without installing
If you prefer not to install pyviscous, or you'd like to develop or quickly test pyviscous, you can directly run it by adding the source directory to your system path: import sys sys.path.insert(0, "<path_to_directory>") import pyviscous Replace with the absolute path to your local pyviscous folder.

Before using pyviscous this way, ensure its dependencies are installed manually: pip install "wheel>=0.36" pip install copulae

Installation notes for Approach 3
(1) Why wheel>=0.36 is needed?
- When the wheel package is not installed, pip falls back to the legacy setup.py install method to install copulae where dependencies like numpy are required at the build time. - Since copulae uses a pyproject.toml-based build system, pip builds it in an isolated environment to prevent interference from your existing environment. This means it cannot access pre-installed packages like numpy, leading to the error ModuleNotFoundError: No module named 'numpy'. - Installing wheel>=0.36 enables pip to use the modern PEP 517/518 build process, which correctly handles build-time dependencies like numpy inside the isolated environment.

(2) Install copulae using pip, not conda.
The conda version of copulae lacks some source code and functionality, which can lead to runtime errors or missing features.

(3) Automatic dependencies installed by copulae.
When you install copulae (e.g., version 0.7.9), the following packages are installed automatically via pip:
- numpy>=1.20 - pandas>=1.1 - scikit-learn>=1.2 - scipy>=1.5 - statsmodels>=0.12 - typing-extensions>=4.0.0 - wrapt>=1.12

You do not need to install these manually unless you want to control or pin their versions.

Examples

We provide five demonstration notebooks in the example directory, including the Rosenbrock function and four Sobol’ functions from Liu et al. (2024). Additionally, a real case study of the Bow at Banff basin, Alberta, Canada, is included to show the real-world application of VISCOUS. Each example includes scripts for input-output data generation or reading, VISCOUS setup and execution, and evaluation of sensitivity results.

Credits

VISCOUS was originally developed by Sheikholeslami et al. (2021) and enhanced by Liu et al. (2023). - Sheikholeslami, R., Gharari, S., Papalexiou, S. M., & Clark, M. P. (2021) VISCOUS: A variance-based sensitivity analysis using copulas for efficient identification of dominant hydrological processes. Water Resources Research, 57, e2020WR028435. https://doi.org/10.1029/2020WR028435 - Liu, H., Clark, M. P., Gharari, S., Sheikholeslami, R., Freer, J., Knoben, W. J. M., Marsh C. B., & Papalexiou, S. M. (2024) An improved copula-based framework for efficient global sensitivity analysis. Water Resources Research, 60, e2022WR033808. https://doi.org/10.1029/2022WR033808


This package was created with Cookiecutter and the https://github.com/audreyr/cookiecutter-pypackage project template.

Owner

  • Name: CH-Earth: Computational Hydrology for a small planet
  • Login: CH-Earth
  • Kind: organization

Computational software for hydrology and related geosciences from collaborative multi-institution projects (e.g., NCAR, U. Saskatchewan, U. Washington)

GitHub Events

Total
  • Issues event: 2
  • Issue comment event: 5
  • Push event: 4
  • Pull request event: 1
  • Fork event: 3
Last Year
  • Issues event: 2
  • Issue comment event: 5
  • Push event: 4
  • Pull request event: 1
  • Fork event: 3

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 1
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • ShervanGharari (1)
  • kasra-keshavarz (1)
Pull Request Authors
  • kasra-keshavarz (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 30 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 8
  • Total maintainers: 1
pypi.org: pyviscous

Python codes to implement the VISCOUS global sensitivity analysis framework

  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 30 Last month
Rankings
Dependent packages count: 6.6%
Average: 25.8%
Dependent repos count: 30.6%
Downloads: 40.1%
Maintainers (1)
Last synced: 10 months ago