respec / BASINS

BASINS source code development repository. For official releases see EPA:
https://www.epa.gov/exposure-assessment-models/basins
28 stars 16 forks source link

DFLOW 30B3 design flow too high per low flow period and excursion counting scheme #55

Open TongZhai opened 1 year ago

TongZhai commented 1 year ago

USGS Hydrologic Toolbox (and formerly Groundwater and Surface Water Toolbox) converted the original DFLOW program to .NET, which calculates a higher biologically-based design flow due to the low flow period, hence, excursion counting scheme. The .NET version is used in the BASINS as version 4.1, the standalone DFLOW 3.1 version, and the Hydrologic Toolbox.

The original DFLOW was written by EPA scientist Lew Rossman in FORTRAN, that version's algorithm was described in the Appendix C of Technical Guidance Manual for Performing Wasteload Allocations, Book VI: Design Conditions – Chapter 1: Stream Design Flow for Steady-State Modeling (1986).

Specifically, using streamflow from USGS gage 07096250, from 6/1/2012 to 9/29/2012, per 30B3 low flow excursion counting, the original DFLOW program counts multiple excursions (4) per low-flow period, whereas .NET version counts 1. This leads to the "overestimate" of the design flow (1.06 cfs) by .NET version, whereas the original DFLOW estimates to be 0.11 cfs. SW Toolbox appears to count each low-flow period as a single excursion, regardless of how many excursion periods there are within a low-flow period.

Also, it seems the .NET version uses simple running average of flow values vs. the original DFLOW that uses running harmonic mean of flow values. We have not found documentation explaining the use of simple running average in calculation of biologically-based low flow design flow.

These differences are to be investigated and preferably resolved such that the .NET version of DFLOW can reproduce the original DFLOW results, as it is described in the Wasteload Allocation guidance document.

TongZhai commented 1 year ago

After consultation with the original DFLOW program developer, Lew Rossman, who kindly provided the original source code for the DFLOW program, it is determined that the biologically-based design flow uses harmonic mean running averages of flow value.

Lew also pointed out that for the human health overall harmonic mean flow, we might want to consider using the more robust method published in the following paper: James F. Limbrunner, Richard M. Vogel, and Linfield C. Brown, “Estimation of Harmonic Mean of a Lognormal Variable”, Journal of Hydrologic Engineering, Volume 5, Issue 1, January 2000, https://doi.org/10.1061/(ASCE)1084-0699(2000)5:1(59). This will be implemented in subsequent Hydrologic Toolbox version.

TongZhai commented 1 year ago

Per Lew Rossman's original implementation of DFLOW, the .NET implementation of xBy is updated and results match exactly with the old DFLOW now. Changes have been checked into [BASINS/DFLOW](7087eb156b37e42d61e5e1044bef3d7301b85786, 97a45f7f8160c6707eec1192a507c1b4e732cda6, 19a3f984b26f14d8723eee1f322327a08c2acf3b) and BASINS/atcIntegratedDesignFlow