4.4.
DIAGRAMA DE FLUJO
VARIABLES DEL MODELO PARA EL BALANCE HÍDRICO SUPERFICIAL CON
SU ACRÓNIMO
Tabla 1
Variable del modelo entrada salida símbolo
Precipitación Pp_mes p
mensual
Evapotranspiración Etp_mes etp
potencial mensual
Reserva máxima de Reserva max res
agua en el suelo
Evapotranspiración Etr_mes etr
real mensual
Déficit mensual Déficit_mes D
Reserva inicial de Reserva ini Reserva _mes r
agua en el suelo
Balance hídrico Pp_etp_mes P-etp
excedente Excedente_mes E
4.6. PSEUDOCODIGO
CALCULO DE LA EVAPOTRANSPIRACION POR ELMETODO
THORNTHWAITE
ABREVIATURAS:
ETP: Evapotranspiración potencial corregida
N: Número máximo de horas sol, dependiendo del mes y de la latitud
d: número de días del mes
1)FORMULA: 𝐸𝑇𝑃𝑠𝑖𝑛. 𝑐𝑜𝑟𝑟. =16((10∗𝑡) /𝐼) **𝑎
#Donde:
[Link].: ETP mensual en mm para meses de 30 días y 12 horas de sol
(teóricas)
T: temperatura media mensual, °C
I: índice de calor anual, sumatoria de las (i)
2) 𝑎=675∗ (10**−9) ∗𝐼**3−771∗ (10**−7) ∗𝐼**2+1792∗ (10**−5) ∗𝐼+0.49239
3)Se calcula el índice de calor anual (I) sumando los 12 valores de i:
POR FORMULA: 𝐼= Σ𝑖
4)Se calcula un índice de calor mensual “i” (ºC). a partir de la temperatura
media mensual (t)
POR FORMULA: 𝑖= (𝑡/5) **1.514
5)REMPLAZAMOS EN FORMULA FINAL
##obtención de evapotranspiración potencial corregida
𝐸𝑇𝑃=𝐸𝑇𝑃𝑠𝑖𝑛. 𝑐𝑜𝑟𝑟. (𝑁/12) (𝑑/30)
4.7 PROGRAMACION EN PYTHON
FUNCIONES PARA HALLAR LOS DATOS REQUERIDOS PARA LA
OBTENCION DE LA EVAPOTRANSPIRACION MEDIANTE EL METODO DE
THORNTHWAITE
#Hallamos la temperatura media. mean halla el promedio de un vector/array/lista/matriz
#axis = 1 - Opera por columnas.
#axis = 0 - Opera por filas.
def hallarTempMedia(datos):
tmed = datos[["T Max","T Min"]].mean(axis=1)
datos['T Med'] = tmed
print("\nTEMPERATURA MEDIA CALCULADA:\n",datos)
return datos
#Hallamos el indice climático mensual
#[Link](x,y) = x elevado a y
def indiceClimatico(datos):
ic = [Link]((datos[['T Med']]/5),1.514)
datos['Ind Clim'] = ic
print("\nINDICE CLIMÁTICO MENSUAL CALCULADO:\n",datos)
return datos;
#Hallamos el indice efectivo anual.
#sum() suma los valores de una lista/array/fila...
def indiceEfectivoAnual(datos):
i = datos[['Ind Clim']].sum()
#Realizamos el Casteo a float (conversión de tipo de dato).
i = float(i)
print("\nINDICE EFECTIVO ANUAL CALCULADO: ", i)
return i
#Determinación del exponente (a), que varía con el índice anual de calor
def exponente_a(i):
a = 0.6751 * (10 ** -6) * (i ** 3) - 0.771 * (10 ** -4) * (i ** 2) + 0.01792 * i +
0.49239
#a = 0.6751*[Link](10,-6)*[Link](i,3) - 0.771*[Link](10,-4)*[Link](i,2)
+ 0.01792*i + 0.49239
print("\nEXPONENTE 'a' CALCULADO: ", a)
a = float(a)
return a
#HALLAMOS LA EVAPOTRANSPIRACIÓN SIN CORREGIR
#.iat[fila,columna] - Nos permite ingresar a un valor en específico en nuestro dataframe
o matriz de datos.
def evapotranspiracionSC(datos,mes,i,a):
Tmed = datos[[Link] == mes].iat[0, 5]
print("\nTEMPERATURA MEDIA DEL MES:",mes," ES = ", Tmed)
#esc = 1.6*((10*Tmed/i)**a)
esc = 1.6*([Link](10*Tmed/i,a))
print("LA EVAPOTRANSPIRACIÓN SIN CORREGIR EN EL MES ",mes," ES = ",
esc)
return esc
#Hallamos el Factor de Corrección.
def factorCorreccion(datos,mes):
fc = (datos[[Link] == mes].iat[0, 4]/12)*(datos[[Link] == mes].iat[0,1]/30)
print("EL FACTOR DE CORRECCIÓN EN EL MES",mes," ES = ", fc)
return fc
def evapotranspiracionC(datos, mes,i,a):
ec = evapotranspiracionSC(datos,mes,i,a)*factorCorreccion(datos,mes)
print("LA EVAPOTRANSPIRACIÓN CORREGIDA EN EL MES ",mes," ES = ",
ec)
return ec
#Función que actualiza los valores por mes según se seleccione éste.
#*args Se utiliza para pasar una lista de argumentos de longitud variable sin palabras
clave. Ésto permite reconocer los cambios realizados
#por la función trace más adelante declarada.
#global nos permite trabajar con una variable en el programa. Es una variable global.
def cambios(*args):
print("Cambio Realizado")
print([Link]())
global datosE,indice,a
calculosFinales(datosE,[Link](),indice,a)