Skip to main content

PyBFS

PyBFS - Python Baseflow Separation

A Python implementation of physically-based Baseflow Separation algorithms for hydrological analysis. PyBFS uses a coupled surface-subsurface reservoir model to separate total streamflow into surface flow, baseflow, and direct runoff components.

Features

  • Physically-based baseflow separation using coupled reservoir models
  • Forecast baseflow using initial conditions
  • Comprehensive visualization tools
  • Well-documented API with NumPy-style docstrings

Installation

pip install pybfs

From source

git clone https://github.com/BYU-Hydroinformatics/pybfs.git
cd pybfs
pip install .

Development installation

git clone https://github.com/BYU-Hydroinformatics/pybfs.git
cd pybfs
pip install -e .

Quick Start

import pandas as pd
from pybfs import get_values_for_site, base_table, PyBFS, plot_baseflow_simulation

# Load streamflow data
streamflow_data = pd.read_csv('streamflow.csv')

# Load site parameters
params_df = pd.read_csv('site_parameters.csv')

# Get parameters for specific site
site_number = 2312200
basin_char, gw_hyd, flow = get_values_for_site(params_df, site_number)

# Extract parameters
area, lb, x1, wb, por = basin_char[0], basin_char[1], basin_char[2], basin_char[3], basin_char[4]
alpha, beta, ks, kb, kz = gw_hyd[0], gw_hyd[1], gw_hyd[2], gw_hyd[3], gw_hyd[4]

# Generate baseflow table
SBT = base_table(lb, x1, wb, beta, kb, streamflow_data, por)

# Run PyBFS baseflow separation
result = PyBFS(streamflow_data, SBT, basin_char, gw_hyd, flow)

# Visualize results
plot_baseflow_simulation(streamflow_data, result)

Requirements

  • Python 3.7 or higher
  • numpy >= 1.19.0
  • pandas >= 1.1.0
  • matplotlib >= 3.3.0

Documentation

Full documentation is available at: Documentation

Paper data and reproduction scripts

The data and analysis scripts for the streamflow partitioning paper (Webster-Esho et al., manuscript under review) live in a separate repository: https://github.com/EniolaWebsterEsho/streamflow_separation_paper_2026

License

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

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

Citation

If you use PyBFS in your research, please cite:

PyBFS - Python Baseflow Separation
BYU Hydroinformatics
https://github.com/BYU-Hydroinformatics/pybfs

Support

For issues, questions, or contributions, please visit: https://github.com/BYU-Hydroinformatics/pybfs/issues

Release files for pybfs 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pybfs 0.2.0
File Size Uploaded
pybfs-0.2.0.tar.gz 429.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pybfs 0.2.0
File Interpreter ABI Platform
pybfs-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 468.6 kB

Release files / pybfs-0.2.0.tar.gz

Download URL pybfs-0.2.0.tar.gz
Size 429.9 kB
Tags Source
SHA-256 checksum
How to use checksums
5db00e556dd26a370052815e03c3600699e90555aa6e56d533b3f147897bddd2
BLAKE2b-256 checksum
How to use checksums
0f88f5d0fd9f741edc06ac5ab932dc509db6fcf762ca94ac556c531edddbe46c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / pybfs-0.2.0-py3-none-any.whl

Download URL pybfs-0.2.0-py3-none-any.whl
Size 38.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ab3f3f2e4c8b7645e9e3db8d1f5104254e6ea7e340724fede82af10492aee82e
BLAKE2b-256 checksum
How to use checksums
194e6a1fc1f79ac97ebd7f784967d0a403324850e4aee1aafe9de7772495ef4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page