0% found this document useful (0 votes)
18 views26 pages

INF Phyton

The document discusses the use of Python programming for hydrometeorological modeling, specifically in generating unit, dimensional, synthetic, and composite hydrographs. It outlines the advantages and disadvantages of Python, details the methodology for solving hydrological problems using scripts on the Spyder platform, and includes examples of code for generating hydrographs. The paper emphasizes Python's versatility and its application in understanding natural water systems and improving decision-making in hydrology.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views26 pages

INF Phyton

The document discusses the use of Python programming for hydrometeorological modeling, specifically in generating unit, dimensional, synthetic, and composite hydrographs. It outlines the advantages and disadvantages of Python, details the methodology for solving hydrological problems using scripts on the Spyder platform, and includes examples of code for generating hydrographs. The paper emphasizes Python's versatility and its application in understanding natural water systems and improving decision-making in hydrology.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 26

“LA MOLINA

NATIONAL
AGRARIAN
UNIVERSITY

FACULTY OF SCIENCES
DEPARTMENT OF PHYSICS AND METEOROLOGY

ISSUE: USE OF PYTHON TO OBTAIN UNIT,


DIMENSIONAL, SYNTHETIC AND
COMPOSITE HYDROGRAMS.

COURSE: HYDROMETEOROLOGY
TEACHER: MSC. EVER MENACHO CASIMIRO
STUDENT: RONY PAUL PILLACA QUISPE
CODE: 20141076

CYCLE: 2019 I
LIMA – PERU
I. INTRODUCTION
Without a doubt, the world of programming is growing and growing without taking a break
because the world is like that, it grows and does not stop growing. The Python programming
language is used in many activities, including the study of water distribution at different
scales, depending on the interests that are to be achieved. In this context, there is a need to
establish tools that generate support and decision-making, which will allow us to improve
our understanding of the behavior of natural water systems and future dams that will supply
the essential resource for the daily life of humans and other species that inhabit this planet.

This paper shows examples of this modeling using the Python programming language,
which through the application of different libraries has been able to establish the direct flow
hydrographs at the outlet of different basins in order to replicate and thus execute those free
software to calculate the separation of effective precipitation and the transformation of rain
into runoff. Next, in this report, we will present codes generated on the Spyder platform
with the purpose of generating hydrograph estimates that allow us to evaluate the behavior
of flows at the level of a basin or other study areas.
II. GOALS

- Generate codes in the Spyder platform of the Python programming language to solve
hydrological problems.
III. BACKGROUND
Python is a scripting programming language. Scripting languages are those languages that
use an interpreter instead of being compiled. It is the opposite of Perl, a language with
which it competes in friendship. Most Python users consider it to be a cleaner and more
elegant language for programming. This type of source code allows us to separate the
program into modules, this language has a wide variety of standard modules that can be
used for programming, or even as a basis for learning to program in Python.

Figure No. 2. Hyetograph produced by a 6-hour rainfall.


Source: Python.org

Advantages of Python
• Concise syntax for arrays and non-arrays allows us to have a clearer program.
• Interpreted language makes development easier.
• Object-oriented programming makes code more robust.
• Internal data sets are very easy to manage and provide highly competent tools.
(example. dictionaries).
• Large number of users and developers in industry and science (Google, NOAA,
ECMWF, etc.)

Disadvantages of Python
• It runs much slower than compiled code (but there are tools to far overcome this).
• Libraries and multiple versions can conflict (this can be avoided with the correct use
of development environments).

Python is a simple and powerful programming language; its simplicity is remarkable


compared to other programming languages and its power is based on the number of tools
available for different areas of study. Currently, Python has different and varied packages in
the field of Hydrology, which are also linked to GIS, mathematics, statistics, etc. tools. This
versatility of Python makes it a multifunctional tool for professionals related to hydrology.
IV. METHODOLOGY
4.1.MATERIALS

- Python software, in addition to the use of the free distribution of Anaconda (Spyder
platform).
- An operating system (computer or laptop).
- Hydrology problems.

4.2.PROCEDURE

4.2.1. Procedure for problem 1


- Data:

1. Using a script solve the following problem. Given a basin with an area of 100 km2, and a
concentration time of 6 h, the following is requested:

a) Determine and draw the synthetic unit hydrograph of 2 h duration according to the SCS
method (Dimensionless hydrograph).
b) Determine the composite hydrograph of the flood produced by a rainfall whose net
hyetograph is shown in the figure.

Table No. 1 – Data from the dimensionless hydrograph of problem 1.

DIMENSIONAL HYDROGRAM

t/tp Q/Qp
0 0
0.2 0.1
0.4 0.31
0.6 0.66
0.8 0.93
1 1
1.2 0.93
1.4 0.78
1.6 0.56
1.8 0.39
2 0.28
2.2 0.21
2.4 0.15
2.6 0.11
2.8 0.08
3 0.05
3.5 0.02
4 0.01
4.5 0.005
5 0

2 4 6 Time (hours)

Figure No. 2. Hyetograph produced by a 6-hour rainfall.


- Development of script No. 1 for your solution

@author: Paul In this section we indicate the import of the


packages that will be used, in addition to
import pandas as pd indicating where our data table is located
import numpy as np (Table No. 1).
xls = pd.ExcelFile('E:\\TF\\problemasHU.xlsx') print(xls . We name our matrix that represents Sheet 1
sheet_names)
of the Excel workbook (file
^Reading income flow data exercise_1 = xls.parse('exercise_l') problemsHU.xlsx) as 'exercise_1'
print(exercise_1)
Next, a dataframe called 'df' is created to
#A dataframe is created from the data facilitate working with matrices.
df = pd , DataFrame(exercise_1)
Resolution of statement A of question 1: First we insert the basin data (concentration time,
#Resolution of Question A
basin area).
#didrograna AdimansionaL lasting 2h_—
tc = 6-------------------------------------------------------------
We calculate the peak flow rate Qp with the
ta = 2 - empirical formula.
tp = (ta/2) -I- 8.6*6
We define the columns of our data matrix which
Katcuo of Qp (m3/5/cm)---------------------------------------------- will later be transformed to 'numpy' to generate a
Area = 100 __________
table in dataframe format and finally exported
Qp = 2.08*(Area/tp) ——
in .xlsx format.
LfrllDROGRAL-lA UNITAfllON of D = 2S -
T = df['t/tp']*tp —K The plotting of the hydrographs was done with
q = df['Q/Qp']*Qp the matplotlib package, and with the plt.plot
tCOHVETlR q in numpy •—- command it was defined which variables were to
Q = np,array(q)
flow rate = pd. DataFrame(Q,T) be plotted, the form that the graph was to take
print(flow) J was also defined, in this case it is of the form '.-ro'
Importing the data table
flow .to_excel( ' E : \\TF\\prela .xlsx" ) ________________ (2h duration)

Hydrograph Locating _____


import matplotlib. pyplot as pit
pit, plot(T,q, '-.ro'j label = ' Unit Hydrograph of
pit.Klabelf'Time (h)', fontsize = 20)
pit. ylabel( 'Flow rate (m3/s/cm)', fontsize = 20) plt.legend( )
pit. savefig ' E :\\TF\\PREla . png' ) To solve statement B, we insert the data for the
calculations. The calculation of the hydrographs
that make up the total was carried out by
Resolution of statement B of question 1: interpolation in order to obtain a matrix 'y' that
is equal to linear(x), where x is the 'numpy'
#Resolution of Question 8
ffHydrograin compound denoted because it returns the numbers evenly
t0 = 2 spaced in a specific interval. This is done in
tl = 4
t2 = 3 order to complete the missing NaN data with
zeros to facilitate and avoid errors in the
from scipy. interpolate import interpld execution of the code. Then the hydrographs
x = np, linspace(0,22,12)
linear = interpld(T,q, 1 linear ') were obtained for each effective precipitation
y = linear(x) recorded by the hyetograph (HO, H1 and H2).
And finally, the matrices are added to obtain the
H0 = y*t0
Hl = y*tl Composite Hydrograph (Qr), which will be
H2 = y*t2 exported in a table in Excel format with the
ml = np.zeros(2)
m2 = np.zeros(1)
command 'name'.to_excel('path_to_exit_file')

HUe = np . append(He,m1)
HUI = np . append(m2,np . append(Hltm2))
HU2 = np . append(H2,m1)

Qr = HU0 + HUI + HU2


Qresultant = pd.DataFrame(T,Qr)
Qresultant. to_excel( ' E :\\TF\\prelb.x1sx" )
1
plt.plot(HU0, '-c", label = Hydrograph for 2cm of PP' )
1
plt.plot(HU1, -g', label = 1Hydrograph for 4cm of PP' )
plt.plot(HU2, " -b', label = 1Hydrograph for 3cm of PP' )
Finally, with the matplotlib package and the command in its contents 'plt.plot' we specify the
curves aswe
import matplotlib.pyplot pit want to represent, of which we have the hydrographs for 2cm, 3cm and 4cm of
effective precipitation. And we specify Qr, the curve that represents the sum of the
aforementioned hydrographs.
plt.plot(Qr, "-.ro', label = 1 Total Hydrograph')
plt.xlabel('Time (h)', fontsize = 18) The output of the result is specified in the
pit.ylabelf'Flow rate (m3/5/cm)', fontsize = 18) pit.legend() last line, file PRE1B.png
pit. savefig( ' E :\\TF\\PRE1b' )

4.2.2. Procedure for problem 2


- Data:
2. Given the unit hydrograph of a four-hour rainfall, the following is requested:
a) Find the unit hydrograph of a 2-hour rainfall using the S-Hydrograph method.
b) From the unit hydrograph of a 2-hour rainfall, find the 12-h unit hydrograph. Present the solution
to this problem using a script.
Table No. 2. 4-hour Unit Hydrograph data.
Time(h) 0 4 8 12 16 20 24

Q(m3/s/cm) 0 12 75 132 180 210 183

Time(h) 28 32 36 40 44 48 52

Q(m3/s/cm 156 135 124 96 87 66 54

Time(h) 56 60 64 68 72 76 80

Q(m3/s/cm) 42 33 24 18 12 6 0
Development of script No2. for your
solution
Created on Sat Jul 20 14:41:00 2019 import pandas as pd packages that will be used, in addition to
@author: Paul
indicating where our data table is located
import numpy as np (Table No. 2).

xls = pd . ExcelFile( 'E :\\ We name our matrix as 'exercise_2', which


TF\\problemasHU.xlsx) represents Sheet 2 of the Excel workbook
print(xls . sheet_names)
(file problemasHU.xlsx) that has the path
exercise_2 = xls.parse('exercise_2') print (exercise_2) 'E:/TF/problemaHU.xlsx'

df = pd . DataFrame(exercise_2) Next, a dataframe called 'df' is created to


In this section we indicate the import of the facilitate working with matrices.

Resolution of statement A of question 2. First we convert the 4h Flow units to m3/s.


Secondly, we calculate the accumulated
hydrograph S.
# 55 USE THE CURVE 5 METHOD -
Q4h = df['Q(m3/s/cm)']*4/10 — And to do this, we resort to the creation of
a 'for' conditional, for 21 data, in which it
Qacum = np.empty(21)
Qacum[] = 0 ____________________________________________ is specified that Qacum(i) = Qacum(i-1) +
Q4h(i).
for i in range(1,21): _____
Qacum[i] = Qacum[i-1] + Q4h[i] — Next, we define the columns of our data
US = Qacum print(Qacum) matrix which will later be transformed to
'numpy' to generate a table in dataframe
c = pd, DataFrame (Qacum) ____________ format and finally exported in .xlsx format,
print(c)
c , to_excel( ' E : \\TF\pre2a , xlsx' ) see results.
^HS Chart
import matplotlib , pyplot as pit-------------------------------------------------- The plotting of the hydrographs was done
pit. plot(df[ ' T'] JHSJ rs'j label = 'Hydrograph S') with the matplotlib package, and with the
pit.Klabel('Time (h)', fontsize = IS) plt.plot command the variables to be
pit.ylabel('Flow rate (m3/s)', fontsize = IS)
pit.legend() plotted were defined, the form that the
pit. savefig( ' E :/TF/PRE2a . png' ) graph was going to take was also defined,
in this case it is of the form '--rs', see
results.
Resolution of statement B of question 2. To solve statement B, you need he
package
RESOLUTION OF THE SECOND STATEMENT
InterpolatedUnivariateSpline to
be able to generate an
interpolation, this is done in order
to complete the missing NaN data
with zeros to facilitate and not generate
errors in the execution of the code.
To calculate the unit hydrograph, it is
necessary to perform the transformations to
the interpolated table, which will be
exported in a table in Excel format with the
command
'name'.to_excel('path_to_the_exit_file')
Finally, with the matplotlib package and
the command in its contents 'plt.plot' we
specify the curves we want to represent, of
which we have Qacum (accumulated flows)
and the unit hydrograph found by the S
Curve method for a duration of 2h.
The result output is PRE2b.png

4.2.3. Procedure for problem 3

- Data
3. Present the solution to this problem using a script. The following flood arrives at a section of a
river, with transit parameters K = 10 hours and x = 0.08.
Table No. 3.
Hydrograph
data.
T(h) 0 3 6 9 12 15 18 21 24

Q(m3/s) 50 65 125 200 320 475 545 490 37

T(h) 30 33 36 39 42 45 48 51

Q(m3/s) 250 200 165 140 120 100 85 75


Development of script No3. for your
solution

Created on Sun Jul 21 16:45:20 2019 In this section we import the packages that
^author: Paul will be used (pandas and numpy), in
addition to indicating where our data table
is located (Table No. 3).
import pandas as pd import
numpy as np
We name our matrix as 'exercise_3', which
xls = pd.ExcelFile('E:\\TFN\problemasHU.xlsx') print(xls . s represents Sheet 3 of the Excel workbook
heet_names ) (file problemasHU.xlsx) that has the path
'E:/TF/problemaHU.xlsx'
exercise_3 = xls . parsef 1 exercise_3 1 ) print
(exercise_3)
Next, a dataframe called 'df' is created to
df = pd . DataFrame(exercise_3) facilitate working with matrices.

^Inlet flow rate


Q = pd.DataFrame(exercise_3)
Q = df['Q'] ' '
time = df['T']
#Values in list
I = np.array(Q) In addition, we select our dataframe from
T = np, array(time)
' ^CALCULATION OF HYDROGRAPH TRANSIT
the file 'problemasHU.xlsx' to
■ ^parameters of /iuskingum generate a 2x18 matrix of columns T (time)
k = 10
x = 0.08 and Q (input flows).
t=3
The method used to determine the transit of
#Calculation of the Huskingum coefficient floods or also called hydrograph transit is the
C0 = (-k*x -I- 0.5*t)/(k - k*x + 0.5*t)
Cl = (k*x + 0.5*t)/(k - k*x + 0.5*t) c2=(k- k*K - 0.5*t)/(k - k*x + Muskingun method, where the parameters to
0.5*t) be used (x, k) are first specified. Next, the
Muskingun coefficients (C0, C1 and C2) are
■^Safety flow rate calculation Qs
QS = np , empty(18) calculated.
QS[0] = 18
Secondly, we create a new matrix called QS
for i in range(1,18): (Output Flow) which is represented by a data
QS[i] = C©*I[i] + Cl*I[il] + C2*QS[il] ■ print(Qs)
#Calculation of maximum output flow max_flow = max(QS)
frame of 18 rows, which will be calculated
print (max_flow) using the empirical expression demonstrated
in the Muskingum method. Likewise, with
the command max('for table Qs') we
generate the peak flows for the
hydrograph
#Inflow and outflow data table flows = pd.DataFrame(QS,1) To calculate the unit hydrograph, it is necessary
print(flows) to perform the transformations to the
flows .to_excel( 1 E :\\TF\\pre3 .xlsx' )
interpolated table, which will be exported in a
^Flow rate graph table in Excel format with the command
import matplotlib.pyplot as pit 'name'.to_excel('path_to_the_exit_file')
plt.plot(df['T'], I, label = 'Entry')
plt.plot(df['T'], Q5, '-mo ., label = 'Output') Finally, with the matplotlib package and the
pit.Klabel('Time'j fontsize = 18)
command in its contents 'plt.plot' we specify the
pit.ylabel('Flow'j fontsize = 18) pit.legend()
pit. savefig( ' E :/TF/PRE3 . png') curves that we want to represent, which are
represented with the input and output flow rates.
The output of the result is specified in the last
line, file PRE3.png

4.2.4. Procedure for problem 4

- Data
4. Solve this problem by using a script. There are two sub-basins A and B, which converge at a point
downstream of them. The following effective precipitation events occur in these sub-basins.
Table No. 4. Hyetograph data for each sub-basin.
T(h) Precipitation in A (mm) Precipitation in B (mm)

0.5 5

1 3

1.5 4

2 2

2.5 3

Up to the point of confluence, the Muskingum parameters for both basins are:
Table No. 5. Parameters for applying the Muskingun method for each sub-basin.
Sub-basin A Sub-basin B

K value (hours) 10 6

Value of x 0.02 0.03

The half-hour unit hydrograph for both sub-basins is:


Table No. 6. Hydrograph data.
T(h) 0 0.5 1 1.5 2 2.5 3 3.5

Q(m3/s/mm) 0 1.8 30.9 85.6 41.8 14.6 5.5 1.8

It is requested to calculate the resulting direct runoff hydrograph at the confluence of both
- Development of a script to solve problem 4

Created on Sun Jul 21 17:09:53 2019

^author: Paul
In this section we import the packages that
import pandas as pd ______________________________
will be used (pandas and numpy), in
import numpy as np------------------- addition to indicating where our data table
is located (Table No. 4).
xls = pd.ExcelFile('E:\TF\problemasHU.xlsx') print(xls .
sheet_names) We name our matrix as 'exercise_4', which
exercise_4 = xls . parse( 'exercise_4' ) --------------------- represents Sheet 4 of the Excel workbook
print (ex er cicio_4) (file problemasHU.xlsx) that has the path
'E:/TF/problemaHU.xlsx'
df = pd . DataFrame(exercise_4) ------------------------
Next, a dataframe called 'df' is created to
#Inflow rate
df = pd . DataFrame(exercise_4) facilitate working with matrices.
Q = df [ 'Q(m3/s/mm) ' ]

U = np.array(Q)
print(U)
SUB-BASIN A

#SUB-BASIN A = 5
tl = 4 t2 = 3

^Direct flow calculation


QA0 = t*U
QA1 = tl*U
QA2 = t2*U This methodology for calculating the
hydrograph for sub-basin A will be
ml = np.zeros(2) replicated for sub-basin B.
m2 = np.zeros(4)
QD0 = np , append (QA0,m2) To determine the flow for sub-basin A, it is
QD1 = np , append(np . append(m1,QA1) „m1) necessary to sum the direct flows generated
QD2 = np, append(m2,QA2) (QD0, QD1 and QD2) which are completed
QRA = QD0 + QD1 -l- QD2
with 0 to avoid errors in the code
^Pluskingum parameters k=10 calculations, and with this we create the
x = 0.02 QRA matrix.
t = 0.5
The method used to determine the transit of
#Calculation of the Muskingum coefficient floods or also called hydrograph transit is
A = (-k*x + 0.5*t)/(k - k*x + 0.5*t) the Muskingun method, where the
Al = (k*x + 0.5*t)/(k - k*x -l- 0.5*t) parameters to be used (x, k) are first
A2 = (k - k*x - 0.5*t)/(k - k*x + 0.5*t) specified. Next, the Muskingun coefficients
(A0, A1 and A2) are calculated.
#Calculation of output flow rate Qs
QSA = np. empty(12) Secondly, we create a new matrix called QS
QSA[0] = 0
(Output Flow) which is represented by a
for i in range(1,12): data frame of 18 rows, which will be
QSA[i] = A0*ORA[i] -I- A1*ORA[i-1] + A2*QRA[il] calculated using the empirical expression
demonstrated in the Muskingum method.
And with a for and the empirical formula
of the method we find QSA (outflow for
sub-basin A), in the same way for sub-basin
B.
- SUB-BASIN B
^SUB-BASIN B tbe = 3 tbl = 2

DIRECT FLOW
QBe = tbe*U QB1 = tbl*U

mbl = np.zeros(1)
mb2 = np.zeros(3)
QDb® = np.append(np.append(mb1,QB0),m1)
QDb1 = np.append(mb2,QB1) QRB = QDbe + QDb1

^Pluskingum parameters kb = 6
xb = 0.03 t = 0.5

#Calculation of the iuskingum coefficient


B® = (-kb*xb + 0.5*t)/(kb - kb*xb + 0.5*t)
Bl = (kb*xb + 0.5*t)/(kb - kb*Kb + 0.5*t)
B2 = (kb - kb*xb - 0.5*t)/(kb - kb*xb + 0.5*t)

^rSatisfaction flow rate Qs QSB = np . empty(11) QSB[0] = 0

for i in range(1,11):
QSB[i] = B*QRB[i] + B1*QRB[i-1] + B2*QRB[i-1]

- For the BASIN.


#CALCULATION OF TOTAL OUTPUT
QSBF = np . append (QSB,mb1) Qs = QSA + QSBF print(QS)
To calculate the unit hydrograph, it is
T = [0,0. 5,1,1. 5,2,2. 5,3,3. 5,4,4. 5,5,5. 5]
Time = np.array(T) necessary to perform transformations to the
QRA = np . append( 'QRA' , QSA) QRB = np.append('QRB', QSBF) interpolated table, for which the tables must
QR = np. append( 'Qr ' j QS) print(Time) have the same dimensions, and to do so, the
import matplotlib . pyplot as pit np.append command is used, which
pit. plot(QSA, '-rp', label = 'Subbasin A') pit,plot(QSBj '-c+'j label = indicates the completion of the data with
'Subbasin B' ) plt.plot(Qs, '-yD', label = 'Basin1) pit .Klabel('Time'j the generated QSB matrix. And Qs
fontsize = 14) pit.ylabel('Flow'j fontsize = 14) pit,legend()
pit, savefig(1 E:/TF/PRE4. png1)
represents the sum of the input flows A and
B.
Finally, with the matplotlib package and
the command in its contents 'plt.plot' we
specify the curves that we want to
represent, which are represented with the
outlet flows of each sub-basin.
The output of the result is specified in the
last line, file PRE4.png
V. RESULTS
5.1. PROBLEM 1

- SYNTHETIC HYDROGRAM OF 2 HOURS DURATION


T(h) Q(m3/s)
0 0
1 4.52174
2 14.0174
3 29.8435
4 42.0522
5 45.2174
5.5 42.0522
6 35.2696
7 25.3217
8 17.6348
9 12.6609
10 9.49565
11 6.78261
12 4.97391
13 3.61739
14 2.26087
16 0.90435
19 0.45217
22 0.22609
23 0
From the determined result we can observe that from a dimensionless hydrograph and using the SCS
method of the dimensionless hydrograph, the unit hydrograph could be found for a duration of 2h,
which has a duration of approximately 24 hours with a peak flow equal to 45.2174 m3/s; likewise,
there is a decrease in flow starting 5 hours after the beginning of the storm.
COMPOSITE HYDROGRAM PRODUCED BY THE HYETOGRAM (Figure 2)

t/tp Q (m3/s/cm)
0 0.00
1 83.85
2 282.84
3 365.18
4 253.93
5 129.44
6 64.21
7 30.37
8 13.39
9 6.51
10 3.60
11 1.67
12 0.39
13 0.00
Column Q represents the sum of the hydrographs produced by 2 cm, 3 cm and 4 cm of effective
precipitation recorded by the hyetograph. This resulting hydrograph is also known as the composite
hydrograph (red dashed lines).
5.2. PROBLEM 2

- UNIT HYDROGRAM OF 2 HOURS DURATION USING THE S. HYDROGRAM


METHOD.

T (h) Qacum
0 0
1 4.8
2 34.8
3 87.6
4 159.6 600
5 243.6 -
6 316.8 500
7 379.2 -
8 433.2 400

9 482.8
íü 300
10 521.2 ■
11 556 200
EI
12 582.4 -
T
13 604 100 -
14 620.8
15 634
16 643.6 0 10 20 30 40 50 60 70 80
17 650.8 Time (h)
18 655.6
19 658
20 658
Curve S represents the total direct runoff generated by a continuous rainstorm, that is, of infinite
duration, which was calculated from a unit hydrograph (see Table No. 2). Having an approximate
maximum value equal to 658 m3/s.
UNIT HYDROGRAM OF 12h.
Table No. 5. 12H Unit Hydrograph resulting from a 2h hydrograph

T(h) Q (m3/s) T(h) Q (m3/s)


0 1.7E-15 20 91.206
1 -4.3501 21 90.2476
2 28.3501 22 83.7524
3 59.8501 23 70.7155
4 90.1499 24 61.2845
5 118.95 25 56.6403
6 145.05 26 51.3597
7 168.602 27 44.7233
8 191.398 28 39.2767
9 210.144 29 35.2164
10 209.856 30 30.7836
11 191.572 31 25.911
12 174.428 32 22.089
13 162.069 33 19.3897
14 149.931 34 16.6103
15 138.151 35 13.5301
16 131.849 36 10.4699
17 129.326 37 7.48998
18 118.674 38 4.51002
19 100.794 39 1.51002
40 -1.51
Time(h)
To obtain the 12-hour unit diagram, it was first necessary to work with the S curve calculated in the
previous exercise. Initially, the parameter K was calculated, which for our exercise was equal to 0.16.
Our parameter K was then multiplied with the S curve shifted 24 hours, obtaining the table shown
previously and the present graph. It is observed that the peak flow of our unit hydrograph is 200 m3/s,
and that the flow lasts 40 hours before being extinguished.
5.3.PROBLEM 3

T(h) I (m3/s) O (m3/s)


0 50 18
3 65 27.9533
6 125 42.2654
9 200 70.3686
12 320 114.564
15 475 182.303
18 545 268.947
21 490 342.747
24 372 376.313
27 300 370.394
30 250 347.386
33 200 316.811
36 165 281.77
39 140 247.395
42 120 215.976
45 100 187.759
48 85 162.172
51 75 139.881

In the following results, the table of the resulting hydrograph for the inlet and outlet flow is
presented, which was generated from the Muskingum method with parameters equal to x = 0.08
and k = 10 hours. This method of calculating flood transits helps us determine the hydrograph
produced by a flow at a point in a watercourse using known hydrographs at one or more points
upstream.
- .4.PROBLEM 4

- SUB-BASIN A

Table No. 6. Resulting from the accumulated hydrograph method for


sub-basin A.

T(h) QD0 QD1 QD2 QRA


0 0 0 0 0
0.5 9 0 0 9
1 154.5 0 0 154.5
1.5 428 7.2 0 435.2
2 209 123.6 0 332.6
2.5 73 342.4 5.4 420.8
3 27.5 167.2 92.7 287.4
3.5 9 58.4 256.8 324.2
4 0 22 125.4 147.4
4.5 0 7.2 43.8 51
5 0 0 16.5 16.5
5.5 0 0 5.4 5.4

The inflow of basin A will be the sum of these 3 flows for the different effective rainfall recorded
by the hyetograph. It is observed that the peak flow of the basin is 420.8 m3/s at approximately
2.5 hours.

- SUB-BASIN B

Table No. 7. Resulting from the accumulated hydrograph method for sub-basin B.

T(h) QDb0 QDb1 QRB


0 0 0 0
0.5 0 0 0
1 5.4 0 5.4
1.5 92.7 0 92.7
2 256.8 3.6 260.4
2.5 125.4 61.8 187.2
3 43.8 171.2 215
3.5 16.5 83.6 100.1
4 5.4 29.2 34.6
4.5 0 11 11
5 0 3.6 3.6
5.5 0 0 0
The inflow of basin B will be the sum of these 2 flows for the different effective rainfall recorded
by the hyetograph. It is observed that the peak flow of the basin is 260.4 m3/s at approximately 2
hours.

- TRANSIT HYDROGRAM.
Table No. 8. Hydrograph resulting from the Muskingum method.

T(h) QSA QSBF QS


0 0 0 0
0.5 0.044776 0 0.044776
1 1.21419 0.061664 1.275854
1.510.236867 1.497686 11.734553
230.868864 10.914777 41.783641
2.546.319169 30.600173 76.919342
364.286375 43.795989 108.08236
3.5 75.56964 56.562121 132.13176
487.059707 59.389178 146.44889
4.5 89.58211 57.073836 146.65595
5 87.49096 53.192883 140.68384
5.583.903848 0 83.903848

It is observed that at a certain point the flow becomes practically constant and then begins to
slowly decrease. And that the influence of sub-basin B is much less than that of A.
VI. DISCUSSIONS
If you want to create a unit hydrograph, it is necessary to have a hydrograph measured at the
gauge; it is common that the basin we are studying does not have a hydrometric station. Faced
with this problem, a method was developed to obtain unit hydrographs using only the
physiographic data of the basin: Synthetic Unit Hydrograph. From the results obtained in
problem 1 it was observed that the flow will be positive from 00 hours of the start of the runoff
until approximately 20 hours. Highlighting the peak flow rate of 45.21 m3/s/cm at 5 hours. From
this he obtained a dimensionless hydrograph, dividing the flow scale by the peak flow, as well as
the time scale by the time at which the peak occurs.

On the other hand, to create a composite hydrograph, the time intervals first had to be
homogenized, that is, every 2 hours for this exercise. They were then shifted to a 2-hour interval
for each hydrograph. The relationship K is calculated between the excess durations, that is:

Where “de” is the excess duration for the unit hydrograph used to calculate the S curve, and “de'
“is the excess duration for the unit hydrograph to be obtained. The parameter K will be multiplied
by each value of the previously calculated hydrograph.

Figure 3. Curve shifted for a duration


of'Source: Villon 2010.
The S curve represents the direct runoff generated by a continuous uniform rainfall of infinite
duration; for this exercise it was drawn from a unit hydrograph, and from this other hydrographs
were obtained. It is observed that the value becomes constant from 658 m3/s.
Figure 4. S-curve, S-hydrograph method – accumulated
hydrographSource: Villon 2010.
The S curve is based on the sum of different unit hydrographs obtained from an already known
one. The sum of these generates a flow that only tends to increase. That is, for problem 2b of the
12-hour unit diagram, it was necessary to first work with the S curve calculated in the previous
exercise. Initially, the parameter K was calculated, which was equal to 0.16. Our parameter K
was then multiplied with the S curve shifted 24 hours, obtaining table No. 5 and the present
graph. It is observed that the peak flow of our unit hydrograph is 200 m3/s, and that the flow lasts
40 hours before being extinguished.

Finally, to calculate the output flow of basin A in question 4, it was necessary to multiply the
effective rainfall by the flow given by data and depending on the time of occurrence of the
rainfall, these will be moved, therefore, the input flow of basin A will be the sum of those 3 flows
for the different rainfalls. It is observed that the peak flow of the basin is 420.8 m3/s at
approximately 2.5 hours, another thing that can be said is that there is no base flow. As in sub-
basin A, the total flow in basin B will be the sum of flows for each precipitation, in this case there
are 2 precipitations. The peak flow is 260.4 m3/s at 2 hours. It can be said that compared to the
peak flow of sub-basin A, this sub-basin B contributes approximately half the runoff of A. To
find the outflow of the basin, the Muskingum flood transit equation must be used for each sub-
basin and then a sum is performed to obtain the total outflow of the entire basin.
VII. CONCLUSIONS

- In the first exercise, a peak flow rate of 45.21 m3/s/cm was found at around 4.6
hours for the 2-hour duration hydrograph. Similarly, for the composite hydrograph,
a peak flow rate equal to 365 m3/s was recorded before 4 hours; these hydrographs
were obtained from a dimensionless hydrograph.

- In the second exercise, a constant value was found for the S curve equal to 658 m3/s
which was obtained by the S Hydrogram method for a duration of 2 hours.
Likewise, for statement B, the result was a 12-hour unit hydrograph with a peak
flow rate equal to 376 m3/s, which suffered an attenuation of the hydrograph.

- In the third exercise, the inlet hydrograph showed a peak flow of 545 (m3/s) that
occurs at approximately 6:00 p.m., while the outlet hydrograph found a peak flow of
378.61 m3/s that occurs at 12:00 a.m., accompanied by an intensity of 372 m3/s.

- In the fourth exercise, it can be concluded that only one avenue of traffic could be
considered in sub-basin A towards the basin's gauging point, because in sub-basin B
the traffic is not as strong.

You might also like