SynHydro¶
Synthetic Generation Library - stochastic streamflow generation for hydrologic analysis.
SynHydro provides parametric, nonparametric, and machine-learning stochastic generation methods under a unified API. All generators share the same fit() then generate() workflow.
Generators¶
| Class | Type | Frequency | Sites | Reference |
|---|---|---|---|---|
KirschGenerator |
Nonparametric | Monthly | Multi | Kirsch et al. (2013) |
PhaseRandomizationGenerator |
Nonparametric | Daily | Single | Brunner et al. (2019) |
ThomasFieringGenerator |
Parametric AR(1) | Monthly | Single | Thomas & Fiering (1962) |
MATALASGenerator |
Parametric MAR(1) | Monthly | Multi | Matalas (1967) |
MultiSiteHMMGenerator |
Hidden Markov Model | Annual | Multi | Gold et al. (2024) |
WARMGenerator |
Wavelet AR | Annual | Single | Nowak et al. (2011) |
Quick Example¶
import synhydro
Q_obs = synhydro.load_example_data() # daily DataFrame
Q_monthly = Q_obs.resample("MS").mean() # resample to monthly
gen = synhydro.KirschGenerator()
gen.fit(Q_monthly)
ensemble = gen.generate(n_realizations=50, n_years=30, seed=42)
Installation¶
See Getting Started for full setup and data format details.