COMPUTATION -- Errors in flow-duration-curve computations
In Reply Refer To:
Mail Stop 415 July 20, 2000
OFFICE OF SURFACE WATER TECHNICAL MEMORANDUM NO. 2000.02
Subject: COMPUTATION -- Errors in flow-duration-curve computations
This memorandum identifies solutions to two problems recently reported in
computation of flow-duration curves. The problems were detected as a
result of re-computation of monthly flow-duration curves for a
discontinued gage. The first problem that was noticed was that, although
the station had been discontinued, and no new data had been obtained, the
duration-curve percentiles computed by the Adaps DVSTAT program differed
from those computed several years before by the Watstore A969 (DVSTAT)
program. The differences were small but noticeable and larger than
seemed reasonable given that there had been no change in the underlying
data. It also was noticed that in several duration curves the computed
percentiles were all equal for several adjacent percentage values (e.g.,
in one case, the 40th, 45th, and 50th percentiles all were equal to 2.0).
The number of such cases seemed larger than might be expected. Inspection
of the computed duration tables (tables of class-limit flow values, class
counts, and exceedance counts and percentages) and manual interpolation
confirmed that the computed percentiles were incorrect and, in fact, equal
to the lower limit of the class interval. The computed percentiles had
been used by a cooperator for low-flow permitting, and some of the values
had been contested. The Office of Surface Water was asked to investigate.
The problems were investigated primarily by careful reading of the Fortran
computer codes for the Watstore and Adaps programs. The investigation
showed that the first problem affects duration curves computed by the old
(now obsolete) Watstore program A969 (DVSTAT); the second affects duration
curves computed by the current Adaps program DVSTAT. Both errors affect
only the interpolated duration-curve percentiles; the computed duration
tables appear to be correct. The errors are relatively minor in
magnitude, and do not seem likely to materially affect the use or
interpretation of the computed results or to require a general revision of
published results. Additional information on the two errors is given
below so that Districts can decide on a case-by-case basis when
recomputation or revision is necessary. The obsolete Watstore program
will not be corrected. The error in the Adaps DVSTAT program has been
corrected as of NWIS release 3_2 Patch 5, released July 2000.
Both the Watstore A969 and Adaps DVSTAT programs compute the
duration-curve percentiles by linear interpolation between class limits in
the duration table, using forms of the following equation:
y = y0 + ( (p-p0)/(p1-p0) )*(y1-y0)
= y0 + ( (p*N - N0)/(N1-N0) )*(y1-y0)
in which y and p are the flow and percentage values at the specified
percentile, N is the total number of observations, and y0, y1, N0, N1, p0,
and p1 are the flows, exceedance counts, and percentages at the adjacent
class limits of the duration table. The first form of the equation is
recognizable as the standard formula for linear interpolation in the curve
defined by the flow and percentage values at the class limits. The second
form is mathematically equivalent to the first, involving only
multiplication of all percentages in the numerator and denominator of the
fraction by the common factor N. Both errors are the result of incorrect
use of integer arithmetic in evaluating this formula.
The Watstore computation used the second form of the equation, involving
exceedance counts, and incorrectly rounded off the p*N term to the nearest
integer value. The resulting error in p*N can be as much as 0.5, which
results in an error in the interpolated percentile y of
delta y = (0.5/ni)*(y1-y0)
where ni (=(N1-N0)) is the number of observations in the class and (y1-y0)
is the width of the class interval. If the number of observations in the
class is very small, the error may be a substantial fraction of the class
interval width, and if the class interval is wide, the error may be
noticeable. In most cases, however, the record lengths, total number of
daily flows, and standard percentile percentages are such that the number
of observations in the class will be relatively large and the error
correspondingly small. The main exceptions are likely to occur for very
short records or for monthly duration curves (in which the total number of
observations is only 1/12 that for an annual curve). In fact, the
problem was noted in monthly duration curves for a 13-year record; the
errors ranged from about 0.2 cfs at about 4 cfs (95 pct exceedance) to
about 2 cfs at 100 cfs (5 pct exceedance). For long records and/or annual
duration curves, the effects of the rounding in N*p should be minor if not
imperceptible.
The Adaps DVSTAT program used the first form of the interpolation equation
but incorrectly truncated the class width (y1-y0) to the next lower
integer, INT(y1-y0). Thus, if the class width was less than 1, the lower
class limit, y0, was returned as the computed value of the interpolated
percentile. If the class width was between 1 and 2, the value 1 was used
in the interpolation, and so on. The truncated value may be in error by
as much as 1 unit. Thus, the interpolated percentile may be in error by
as much as the class width when the class width is less than 1, by 1/2
class width when the width is between 1 and 2, by 1/3 class width when the
width is between 2 and 3, and so on. The error is relatively small when
the class width is much greater than 1. Thus, the error is of most
significance at the lower tail of the duration curve. In all cases, the
erroneous computation yields lower values of the percentage points than
the correct computation. Thus, the error seems unlikely to adversely
affect the reliability of designs and plans based on the computed low-flow
percentage points. Nonetheless, it is recommended that any future
requests for flow-duration percentiles be satisfied by recomputing the
duration curves using the corrected DVSTAT program.
(signed)
Thomas H. Yorke
Chief, Office of Surface Water
Distribution: A, B, FO, PO
Thomas H. Yorke
Chief, Office of Surface Water
U. S. Geological Survey
415 National Center
Reston, VA 20192
Voice: 703-648-5305
Fax: 703-648-5722