Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hymod model for catchments

306 views

Published on

This describe how the Hymod (Moore 1985) model works. It is used as an example of catchment model which includes runoff production.

Published in: Education
  • Be the first to comment

  • Be the first to like this

Hymod model for catchments

  1. 1. Riccardo Rigon Hymod as an example of a rainfall-runoff model R. Rigon, G. Formetta, M. Bancheri, W.Abera S.Bertoni,2006?
  2. 2. 2 What Hymod does The basin is assumed to be composed by a group of storages which follow a distribution F(C) where C is the value of the storage which can vary from 0 to Cmax. If Cmax is exceeded, that water in excedance goes directly into runoff. If we call precipitation P, this is: RH = P + C(t) Cmax if P + C(t) > Cmax Generically, it is: RH = max(0, P(t) + C(t) Cmax) Which is true even if P(t)+C(t) < Cmax Introduction Riccardo Rigon
  3. 3. 3 There is a residual runoff RS produced by using the curve, which is valid even if C(t)+P(t) < Cmax: F(C) = 1 ✓ 1 C Cmax ◆b The volume below the curve goes into this residual runoff Storage (probability) function Riccardo Rigon
  4. 4. 4 Van Delft et al. 2009 figure said it properly for runoff Generating runoff What Hymod does Riccardo Rigon
  5. 5. 5 TC Petri net representation of Hymod Petri net description Riccardo Rigon
  6. 6. 6 In figure C(t)=2 P=2 Cmax =10. Therefore for a correct interpretation of the figure in previous slides, the area below a curve is the runoff produced. A correct interpretation of the plot says that all the precipitation below the curve is produced as R, the rest remaining stored at time t+1 . Let’s represent the curves in the right direction Storage (probability) function Riccardo Rigon
  7. 7. 7 The area below each one of the curve is The integral result can be written as: Z C(t)+P (t) C(t) F(C)dC = Z C(t)+P (t) C(t) 1 ✓ 1 C Cmax ◆b dC F(P(t), C(t), Cmax, b) = P(t) 1 Cb max(b + 1) h (Cmax C(t))) b+1 (Cmax C(t) P(t))) b+1 i Storage (probability) function So: Riccardo Rigon
  8. 8. 8 1) Update C* Summarizing 2) Update the Rs 3) Update S The algorithm of separation Riccardo Rigon
  9. 9. 9 Introducing AET S(t) continuously increases unless ET acts. In this case there is a fourth step: Where the left arrow means assignment, and AET is the actual ET AET(t) = S(t) Smax ET (t) The algorithm of separation Riccardo Rigon
  10. 10. 10 Say ↵ is coefficient to be calibrated R = Rsub + Rsup Runoff volumes is then split into surface runoff and subsurface storm runoff Riccardo Rigon
  11. 11. 11 Therefore, we have three LINEAR systems of reservoirs. The quick system SQ(t) = S1(t) + S2(t) + S3(t) Runoff volumes Riccardo Rigon
  12. 12. 12 The subsurface system: The groundwater system: Runoff volumes and groundwater Riccardo Rigon
  13. 13. 13 It seems a quite complicate system, but every hydrologist knows it can be “exactly” solved. For the quick system Three little reservoirs Riccardo Rigon
  14. 14. 14 And: And: Other two linear reservoirs Riccardo Rigon
  15. 15. 15 has the structure for some function f and input I, and, therefore, the storage part injected at time is: These formulas and their companions for Qi(t) and AET(t) can be used to estimate the various residence times. Riccardo Rigon Separating water of different ages
  16. 16. 16 Find this presentation at http://abouthydrology.blogspot.com Ulrici,2000? Other material at Questions ? R.F.B.A
  17. 17. 17 Simple R script to estimate the Hymod functions Annex F <- function(C,Cmax,b){1-(1-C/Cmax)^b} Intf <-function(P,C,Cmax,b){P+1/((Cmax^b)*(b+1))*((Cmax-C-P)^(b+1)-(Cmax-C)^(b+1))} If(10,0,10,0.5) Intf(10,0,10,1.5) Intf(10,0,10,5) Intf(10,0,10,1000) Intf(2,2,10,0.5) Intf(2,2,10,1.5) x <-seq(from=0,to=10,by=0.1) plot(x,F(x,10,0.5),type="l",col="blue",ylab="F(C)",xlab="C") text(6,0.25,"b=0.5", col ="blue",cex=.8) lines(x,F(x,10,1.5),type="l",col="red",ylab="F(C)",xlab="C") text(4.5,0.42,"b=1.5", col ="red",cex=.8) lines(x,F(x,10,5),type="l",col="darkblue",ylab="F(C)",xlab="C") text(2.5,0.65,"b=5", col ="darkblue",cex=.8) lines(x,F(x,10,1000),type="l",col="darkblue",ylab="F(C)",xlab="C") text(1,0.9,"b=1000", col ="darkblue",cex=.8) abline(v=2,color="grey") abline(v=4,color="grey") y <-seq(from=0,to=100,by=1) plot(y,Intf(10,0,10,y),type="l",col="darkblue",ylab="Runoff Production",xlab="b") y <-seq(from=0,to=20,by=0.2) plot(y,Intf(10,0,10,y),type="l",col="darkblue",ylab="Runoff Production",xlab="b") R.F.B.A
  18. 18. 18 y <-seq(from=0,to=20,by=0.2) plot(y,Intf(2,2,10,y),type="l",col="darkblue",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,1,10,y),type="l",col="black",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,3,10,y),type="l",col="blue",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,4,10,y),type="l",col="darkgreen",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,5,10,y),type="l",col="green",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,6,10,y),type="l",col="orange",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,7,10,y),type="l",col="red",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,8,10,y),type="l",col="darkred",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,8,10,y),type="l",col="violet",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") y <-seq(from=0,to=20,by=0.2) plot(y,Intf(2,2,10,y),type="l",col="darkblue",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,1,10,y),type="l",col="black",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,3,10,y),type="l",col="blue",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,4,10,y),type="l",col="darkgreen",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,5,10,y),type="l",col="green",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,6,10,y),type="l",col="orange",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,7,10,y),type="l",col="red",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,8,10,y),type="l",col="darkred",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") lines(y,Intf(2,8,10,y),type="l",col="violet",ylab="Runoff Production",xlab="b",main="P(t)=2 Cmax =10") Simple R script to estimate the Hymod functions Annex R.F.B.A

×