bug in peakflow?

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

bug in peakflow?

Matteo Dall'Amico-2
Dear JGrass developers,
I have a question about the function h.peakflow.
I have applied h.peakflow to a basin and I have considered a_idf=33.6, n_idf=0.49 and timestep=100 [s]. From the simulation one obtains that tpmax=88811sec
As far as know, h.peakflow considers an event of a constant precipitation that lasts for tpmax. Using the rain curves, one should obtain a total rain of:

33.6*(88811/3600)^0.49=161.62 [mm]

I have opened the output file and I have summed all the values in the precipitation column (third column) obtaining:

[1] 143.5201

which is less than 161.62 [mm].

I have looked to the code and, as far as I understand, the third column is calculated in the file QStatistic.java:

Q[j][3] = h;

The variable h is calculated in the file StatisticJeff.java at the line 87:

double h = a_idf * Math.pow(tpmax / 3600.0, n_idf)/1000;

where tpmax is the precipitation time, and a_idf and n_idf are the parameters of the rain curves. 

I think this is not correct. In fact, this h represents the total height of precipitation fallen in tpmax and is expressed in meters [m]. It results in:
> 33.6*(88811/3600)^0.49/1000
[1] 0.1616217

In fact the third column of the output file is a series of  0.16162 until tpmax. According to the code, this would mean that a rain of 0.16 meters is fallen on the basin for a duration of tpmax which counts for 143.5 meters of rain!!!

For this reason, I think the correct line should be:

Q[j][3] = J*1000*t; // [mm]

which represents rain fallen on the basin during the timestep given in input. J is correctly calculated as:

double J = a_idf * Math.pow(tpmax / 3600.0, n_idf - 1) / (1000.0 * 3600.0); // [m/s]

In this case one would obtain in the output file a series of 0.1819839 [mm] which, multiplied by (88811/100) gives exactly 161.62 [mm] of rain.

Another thing I would like to ask refers to the name Jeff: to me Jeff sounds like "effective rainfall intensity". However in the code the rain is given all in input, i.e. Jeff is equal to J.
Is maybe the name misleading?

Thanks in advance,

Matteo Dall'Amico

JGrass-users mailing list
[hidden email]