通过Python计算有效降水量

有效降水量是指能够提供给作物蒸发蒸腾,从而减少作物对灌溉水需求的雨量,可美国农业部土壤保持局推荐的方法进行逐日计算,本文将介绍其在Python环境中的实现方式。其公式如下:

\[P_e=\sum_{i=1}^NP_{ei}=\begin{cases}\sum_{i=1}^N\frac{P_i(4.17-0.2P_i)}{4.17}&\quad\text{($P_i < 8.3)$,}\\\\\sum_{i=1}^NP_i(4.17+0.2P_i)&\quad\text{($P_i \geqslant 8.3)$,}\end{cases} \]

式中,Pe 为某生育阶段有效降水量 (mm);Pei 为日有效降水量 (mm/d);Pi 为日降水量 (mm/d)。

1 主要代码

(1)核心算法函数:根据日降水量数据列表,计算总有效降水量

def calculate_pe(data_list):
    Pe = 0
    for Pi in data_list:
        if Pi < 8.3:
            Pe += Pi * (4.17 - 0.2 * Pi) / 4.17
        else:
            Pe += Pi * (4.17 + 0.2 * Pi)
    return Pe

(2)示例代码:从 Excel 表中读取日降水量数据,将其转换为 Python 列表,计算其有效降水量

import openpyxl	# 用于读写Excel文件的Python第三方模块

workbook = openpyxl.load_workbook("Data.xlsx")	# 读取Excel文件:Data.xlsx
worksheet = workbook["Data"]	# 读取该Excel文件中名为"Data"的sheet表
column = worksheet["J"][1:]	# 获取数据表中J列的所有值(不包含首行)
data_list = [cell.value for cell in column]	# 通过列表生成式将所有数据值合并为Python列表

# 计算总有效降水量
Pe = calculate_pe(data_list)
print("总有效降水量:", Pe)

(3)示例数据及运算结果

示例数据列表:
[2.3, 2.8, 3.4, 2.6, 15.5, 4.1, 14.8, 1.9, 5.4, 1.5, 2.8, 1.1, 25.4, 1.9, 2.7, 4.3, 11.1, 2.2, 10.2, 2.1, 4.7, 1.6, 41.8, 7.1, 7.4, 6.5, 10.3, 15.1, 6.4, 1.4, 7.4, 4.1, 3.0, 8.9, 3.1, 9.8, 27.5, 2.4, 6.2, 1.2]

运算结果:1743.3690455635485

2 参考文献

[1] 邹海平, 张京红, 李伟光, 等. 海南岛水稻需水量与缺水量的时空变化特征[J]. 热带生物学报, 2023, 14(5): 569-576.

热门相关:少林武僧在异界   少林武僧在异界   顺明   陆爷的小祖宗又撩又飒   天河大帝