https://github.com/ch-earth/fuseflow
Model-spicific workflow to build FUSE hydrological models
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
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
Metadata Files
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
Clone the repository:
bash git clone https://github.com/kasra-keshavarz/fuseflow.git cd fuseflowInstall in development mode with dev dependencies:
bash pip install -e ".[dev]"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
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for your changes
- Ensure all tests pass and code is properly formatted
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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
- Repositories: 10
- Profile: https://github.com/CH-Earth
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
- actions/checkout v4 composite
- actions/setup-python v4 composite
- codecov/codecov-action v3 composite
- actions/checkout v4 composite
- actions/setup-python v4 composite
- 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