Unraveling the HRU water balance in SWAT (III)

End of the story (this continues the previous post). I read one year of data for one HRU from the output.hru in R (), and I applied the water balance equation described in the linked posts. This is basically the following:

t <- 2:12
tt <- t-1
DStorage <- c(NA, SNOFALL[t] - SNOMELT[t] + 
	SW_END[t] - SW_END[tt] + SA_ST[t] -
	SA_ST[tt] + DA_ST[t] - DA_ST[tt])
Flows <- PRECIP + IRR + GW_RCHG -
	ET - REVAP - (SURQ - TLOSS) -
	LATQ - GW_Q - PERC
BAL = Flows - DStorage

So, applying the previous equations I got:

month DStorage Flows BAL
1 NA 65.756 NA
2 22.953 23.520 0.567
3 -11.305 -12.256 -0.951
4 117.181 121.787 4.606
5 95.580 94.697 -0.883
6 -61.553 -65.376 -3.823
7 -44.491 -45.365 -0.874
8 -41.160 -41.339 -0.179
9 24.627 27.013 2.386
10 95.923 99.808 3.885
11 111.954 111.102 -0.852
12 75.269 73.153 -2.116

As it can be seen, the mass balance error (BAL) is one to two orders of magnitude smaller than the flows or the variation in storage. That’s pretty decent, I think.

Please, note that I only had SWAT2005 output files at hand, so the balance for the snowpack is only approximate (since sublimation is not taken into account) and also QTILE is missing. Also, LATQ_CNT is not reported on SWAT2005, so I used LATQ instead. On SWAT2012 output these terms are correctly outputted in output.hru, so the error should be lower. The absence of the lagged terms surf_bs and bss even in SWAT2012 may still generate a little mass balance error, but I could not test this since I only had SWAT2005 output.

The following plot shows the flows, storage variation and mass balance error as computed from a SWAT2005 output.hru file, for a number of years in one random HRU.

Water balance from SWAT2005 HRU output file.

Water balance from SWAT2005 HRU output file.

No Comments

Leave a Reply

Your email is never shared.Required fields are marked *