User Tools

Site Tools


en:hydro:nash

Nash-Cascade

The Nash cascade is a sequence of $N$ linear stores in series, each having a residence time of $K$ time units. The resulting mathematical form of the Nash-cascade is:

$$h(t) = (t/K)^{N-1}*exp\left(\frac{-t/K}{K*\Gamma(N)}\right)$$

where $h(t)$ is the unit hydrograph in terms of a unit discharge and $\Gamma$ is the gamma function $\gamma(N)=(N-1)!$ for integer values $N$. $N$ can also have rational values.

|Nash.R
n <- 3
k <- 0.2
ks <- 0.1
kl <- 0.3
x <- seq(0.1,3,by=0.05)
y <- 1/(k*gamma(n))*(x/k)^(n-1)*exp(-x/k)
plot(x,y,col=2, xlab= " ", ylab="Q", xlim=range(0:3), ylim=range(0:3))
abline( h = seq( 5, 25, 5 ),lty = 2,col = colors()[440])
abline( v = seq( 1, 4, 1 ),lty = 2,col = colors()[440])
curve(1/(ks*gamma(n))*(x/ks)^(n-1)*exp(-x/ks), add = TRUE, col="blue")
curve(1/(k *gamma(n))*(x/k )^(n-1)*exp(-x/k ), add = TRUE, col="red")
curve(1/(kl*gamma(n))*(x/kl)^(n-1)*exp(-x/kl), add = TRUE, col="green")
|Nash.py
from pylab import *
from scipy import *
from math import *
from numpy import *
 
N = 5
k = 0.5
t = arange(0.0, 100, 1)
 
def Nash(t,N,k):
    h = (t/k)**(N-1)*exp((-t/k)/(k*gamma(N)))
    return h
 
plot(t, Nash(t,N,k))
xtext = xlabel('time')
ytext = ylabel('response')
setp(xtext, size='medium', name='courier', weight='bold', color='g')
setp(ytext, size='medium', name='helvetica', weight='light', color='b')
show()

Model in R: Nash-Kaskade mit Shiny/R Studio in HTML

en/hydro/nash.txt · Last modified: 2019/05/09 12:38 by ckuells