簡體   English   中英

如何通過 hargreaves-samani 方程和使用 python 計算每日蒸發量?

[英]How to calculate daily evapotranspiration by hargreaves-samani equation and using python?

我有一個十年的天氣數據,包括每天的最高溫度 ( Tmax )、最低溫度 ( Tmin )、降雨量和太陽輻射 ( Ra )。

首先,我想使用以下公式計算每天的蒸散量 (ETo):

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

看起來您每天有一個數據行(記錄)。

由於您在行中已經有 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM