Как рассчитать суточное эвапотранспирацию по уравнению Харгривса-Самани и с помощью Python?

У меня есть данные о погоде за десять лет, включая максимальную температуру (Tmax), минимальная температура (Tmin), осадков и солнечной радиации (Ra) на каждый день.

Сначала я хотел бы рассчитать суммарное испарение (ЭТо) для каждого дня, используя следующее уравнение:

ETo=0.0023*(((Tmax+Tmin)/2)+17.8)*sqrt(Tmax-Tmin)*Ra

Затем вычисление среднемесячных и годовых средних значений всех параметров. (Tmax,Tmin, Rainfall, Ra and ETo) и распечатать их в формате Excel.

Я написал несколько частей. не могли бы вы помочь мне завершить его? Думаю, может понадобиться петля.

import numpy as np
import pandas as pd
import math as mh
# load the weather data file
data_file = pd.read_excel(r'weather data.xlsx', sheet_name='city_1')
# defining time
year = data_file['Year']
month = data_file['month']
day = data_file['day']
# defining weather parameters
Tmax = data_file.loc[:,'Tmax']
Tmin = data_file.loc[:,'Tmin']
Rainfall = data_file.loc[:,'Rainfall']
Ra = data_file.loc[:,'Ra']
# adjusting time to start at zero
year = year-year[0]
month=month-month[0]
day=day-day[0]
#calculation process for estimation of evapotranspiration
ET0=(0.0023*(((Tmax+Tmin)/2)+17.8)*(mh.sqrt(Tmax-Tmin))*Ra

1 ответ

Похоже, у вас одна строка данных (запись) в день.

Поскольку у вас уже есть Tmax, Tmin, Rainfall и Sunhours в строке, вы можете добавить чистую строку ET0 с таким расчетом:

    data_file['ET0'] = data_file.apply(lambda x: 0.0023*(((x.Tmax+x.Tmin)/2)+17.8)*(mh.sqrt(x.Tmax-x.Tmin))*x.Ra, axis=0)
Другие вопросы по тегам