Open scworland opened 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)
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.
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.
How should we normalize the flow before calculating FDC and L-moments? I believe this is the approach of the national team: