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

Model-spicific workflow to build FUSE hydrological models

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

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

Repository

Model-spicific workflow to build FUSE hydrological models

Basic Info
  • Host: GitHub
  • Owner: CH-Earth
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 70.3 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 11 months ago · Last pushed 10 months ago
Metadata Files
Readme Changelog License

README.md

FuseFlow

A Python package for building FUSE hydrological models.

Installation

From PyPI (when published)

bash pip install fuseflow

After installation, the fuseflow command-line tool will be available in your environment.

From Source

bash git clone https://github.com/kasra-keshavarz/fuseflow.git cd fuseflow pip install -e .

Development Installation

bash git clone https://github.com/kasra-keshavarz/fuseflow.git cd fuseflow pip install -e ".[dev]"

Quick Start

Python API

```python from fuseflow import FUSEWorkflow

Create a workflow instance

workflow = FUSEWorkflow( name="myworkflow", cat="/path/to/catchment.geojson", forcingvars={"precip": "precipitation", "temp": "temperature"}, forcingfiles="/path/to/forcing/files/", forcingunits={"precip": "mm/day", "temp": "degC"}, settings={"startdate": "2000-01-01", "enddate": "2010-12-31"} )

Run the workflow

result = workflow.run() print(result)

Save the results

workflow.save("/path/to/output/") ```

Command Line Interface

The package also provides a CLI for running workflows from JSON configuration files:

```bash

Run a workflow from a configuration file

fuseflow --json config.json --output-path ./results

Run with verbose output

fuseflow --json config.json --output-path ./results --verbose

Show help

fuseflow --help

Show version

fuseflow --version ```

See CLI_USAGE.md for detailed CLI documentation and examples.

Features

  • Feature 1: Description
  • Feature 2: Description
  • Feature 3: Description

Documentation

Full documentation is available at [link-to-docs].

Development

Setting up the development environment

  1. Clone the repository: bash git clone https://github.com/kasra-keshavarz/fuseflow.git cd fuseflow

  2. Install in development mode with dev dependencies: bash pip install -e ".[dev]"

  3. Install pre-commit hooks: bash pre-commit install

Running Tests

```bash

Run all tests

pytest

Run tests with coverage

pytest --cov=fuseflow --cov-report=html

Run specific test file

pytest tests/test_core.py ```

Code Quality

```bash

Format code

black src tests

Lint code

flake8 src tests

Type checking

mypy src ```

Building the Package

```bash

Build source and wheel distributions

python -m build ```

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Add tests for your changes
  5. Ensure all tests pass and code is properly formatted
  6. Commit your changes (git commit -m 'Add amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Changelog

See CHANGELOG.md for a list of changes.

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
  • Push event: 1
Last Year
  • Push event: 1

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
.github/workflows/release.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
pyproject.toml pypi
  • cdo >=1.5.0
  • click >=8.2.1
  • distributed >=2023.1.0
  • geopandas >=0.13.2
  • netCDF4 >=1.6.0
  • numpy >=1.22.2
  • pandas >=2.0.0
  • pint >=0.20.0
  • pint-pandas >=0.7.1
  • pint-xarray >=0.5.0
  • pyet >=1.3.0
  • python-dateutil >=2.8.0
  • scipy >=1.15.0
  • timezonefinder >=6.5.9
  • xarray >=0.11