Calculates the probability of an event (eg, flood, heat wave, drought) given an average event interval and a specified exceedance period.
Available in version 6.4.0 and later.
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/extval.ncl" function extval_return_prob ( Te [*] : numeric, Nr [*] : numeric ) return_val [ variable of type double if Te .or. Nr is "double"; else, type "float" is returned]
A scalar or one dimensional numeric array containing the average time between events (aka: return period, recurrence interval).Nr
A scalar or one dimensional numeric array specifying the exceedance period (aka: exceedance interval).
A variable of type double if Te .or. Ne is "double"; else, type "float" is returned. The returned variable contains probability [0-1] of an event occurring in the period specified by Nr.
Estimate the event probability (Pe) at a specified exceedance interval (aka: return period):
Pe = 1-(1-Te)^Nr
Example 1: Consider annual maximum discharge for 106 years on Colorado River near Austin, Texas. Eight times river flows exceeded 100,000 cfs in 106 years. Three river flows exceeded 200,000 cfs. What is the probability of a flow exceeding these amounts in the next 5 years? [source: Flood Frequency Analysis (ppt): Dr. David R. Maidment, U.Texas (Austin)].
nYears = 106 ; total number of years Ne = (/ 3, 8 /) ; number of events (200,000 and 100,000 cfs) Tri = (/ nYears/(Ne-1) /) ; (/ 53, 15.2 /) years; *recurrence intervals* Nyr = 5 ; exceedance time (years) Prp = extval_return_prob(Tri, Nyr) ; Prp = (/ 0.091, 0.289 /)
Example 1a: The above example could be phrased in terms of return period of a (say) heat wave or drought. For example:
Eight times heat waves exceeded 10 days in 106 years. Three times heat waves exceeded 20 days. What is the probability of a heat wave exceeding these lengths the next 5 years?
nYears = 106 ; total number of years Ne = (/ 3, 8 /) ; number of events (200,000 and 100,000 cfs) Tri = (/ nYears/(Ne-1) /) ; (/ 53, 15.2 /) years; recurrence intervals* Nyr = 5 ; exceedance time (years) Prp = extval_return_prob(Tri, Nyr) ; Prp = (/ 0.091, 0.289 /)
Example 2: Illustrate returned dimensionality and numeric type:
Ta = 10 ; average recurrence interval Na = 8 Pa = extval_return_prob(Ta, Na) ; Pa is scalar; float Tb = (/ 5.4, 10, 23.7, 50 /) ; average recurrence intervals Nb = 8 Pb = extval_return_prob(Tb, Nb) ; Pb(4); float Tc = 10d0 Nc = (/ 3, 5, 8, 10, 20, 50 /) Pc = extval_return_prob(Tc, Nc) ; Pc(6); double Td = (/ 5, 10, 20, 50.75 /) Nd = (/ 3, 5.3, 8, 10 , 20, 50 /) Pd = extval_return_prob(Td, Nd) ; Pd(4,6); float