scworland / restore-2018

scripts for predicting streamflow characteristics in ungaged basins for RESTORE
4 stars 2 forks source link

dimensions of FDC #7

Open scworland opened 6 years ago

scworland commented 6 years ago

How should we normalize the flow before calculating FDC and L-moments? I believe this is the approach of the national team:

Qn <- log(Q/tot_basin_area + 0.001)
rrknight-usgs commented 6 years ago

I think that is the best way to do it. Taking area out of the "equation" is good b/c we know that it is a good predictor of flow magnitudes. Removing it by including it in the flow term allows for other things to account for variability that might otherwise have been kicked out, so-to-speak. When I see papers that don't normalize for flow in their statistical models... makes me wonder.

Slightly refined:

Qn <- log((Q/DA) + 0.001)
scworland commented 6 years ago

Another idea is to use a version of the runoff coefficient. We have daily streamflow, daily precip, and basin area. So the pseudo code might look like:

Q2 <- (Q/precip)/area

which results in a dimensionless value. We would calculate L-moments of these values, regionalize those L-moments, and then get back to daily flows at ungaged sites doing something like this:

for (i in 1:length(time)){
Q2[i] <- qdist(x=donor_ep[i],theta1,theta2,theta3...)
Q[i] <- Q[i]*precip[i]*area
}

where qdist is a placeholder for whatever distribution we choose, theta1, theta2... are the parameters estimated from the regionalized L-moments that defines the distribution, and donor_ep is the exceedance probability donated from a gaged site. One thing that is cool about this approach is that it accounts for precip before and after regionalizing. If the goal is accurate predictions... should we use precip from the same day or a lagged version? I have actually started an R package, timepls, to answer this question about lags, but it is not ready for deployment.

ghost commented 6 years ago

For reasoning of my experience, call this runoff coefficient a volumetric runoff coefficient.

Extremely close to my thinking, but I would like to capture the correct exponent on area and possible precip (viz. lm(log(Q)~log(A)+log(P)) as first cut. Or using the mean annual flow, first express it as function of area and precip.

Now RRK and I spoke this morning vaguely on this topic. precip is an issue if you are referring to mean annual precip (MAP) because NWS changes it per se every 10 years for the 30-year window.

My idea is to start like this: gam(log10(MeanAnnualFlow+1)~log10(area) + s(long,lat) + IsEastOfMissRiver) where long and lat are some type of projected coordinate and other is categorical variable. I expect "s(long,lat) + IsEastOfMissRiver" to act as a fixed surrogate to MAP.

Call these predictions "GamMeans" (till in log10 + 1 cfs units), then go to your

The GamMeans represents a first order approximation at the mean annual flow systematically and seamlessly.

Note the minus sign in the next equation and +1 to offset from zero. Q2 <- log10(Q[these are dv, right?]+1) - GamMeans

This spirit removes those perhaps more fixed in stone effects and permits isolation of noise + alternation in your Q2.