【Hydro】不同潜在蒸散发计算方法说明

news/2025/2/19 10:50:53/

目录

一、基本概念说明

蒸发 E E E、散发 T T T、蒸散发 E T ET ET

蒸散发 Evapotranspiration 包括蒸发 Evaporation 和散发(或蒸腾) Transpiration。
在这里插入图片描述

潜在蒸散发 E T p ET_p ETp、参考作物蒸散发 E T 0 ET_0 ET0、实际蒸散发 E T a ET_a ETa及作物实际蒸散发 E T c ET_c ETc

蒸散发 E T ET ET是指水从地表蒸发并进入大气中的过程;
潜在蒸散发(Potential Evaportranspiration, E T p ET_p ETp)亦称为可能蒸散发或蒸散发能力,简而言之,是指下垫面充分供水时的蒸散发;目前关于潜在蒸散发的定义还存在很大的分歧,不同学者根据不同的假设条件,提出了具有本质差别的定义。
参考作物蒸散发 E T 0 ET_0 ET0则是指假设作物冠层与大气之间连续充分通气的条件下,作物叶面蒸腾和棵间蒸发损失的总和;
实际蒸散发 E T a ET_a ETa则是指在农田中实际发生的蒸散发,而作物实际蒸散发 E T c ET_c ETc则是指作物实际发生的蒸散发。
下图是几个相关概念的从属关系, E T a ET_a ETa E T c ET_c ETc E T p ET_p ETp E T 0 ET_0 ET0都是ET的次级概念,其中 E T p ET_p ETp E T 0 ET_0 ET0都能与 E T a ET_a ETa产生关联,因此有一定的共性。而 E T c ET_c ETc E T a ET_a ETa的一部分,因为 E T c ET_c ETc E T a ET_a ETa的范围缩小至特定的作物,进而与林地等的 E T a ET_a ETa进行区分。
在这里插入图片描述

二、部分潜在蒸散发估算方法表

国际上估算潜在蒸散发的模型有近50种;分为温度法、质量传输法、辐射法、综合法四类;彭曼方法被证明在不同条件下准确估算潜在蒸散发的值;但该方法需要大量气象数据,受资料和数据精度限制。
下表为13 种估算潜在蒸散发的方法,其中有综合法( P - M 方法) 、4 种温度法、2 种质量传输法以及 6 种辐射法:
在这里插入图片描述

三、SWAT模型中的潜在蒸散发计算

SWAT模型中包括三种潜在蒸散发计算:Penman-Monteith法(Monteith, 1965; Allen, 1986; Allen et al.,1989),Priestley-Taylor法(Priestley and Taylor,1972)和Hargreaves法(Hargreaves and Samani,1985)。SWAT模型也可以读入用户采用其他方法计算的潜在蒸散发量。

SWAT模型中三种方法需要的输入项不同:Penman-Monteith法需要太阳辐射、气温、相对湿度和风速;Priestley-Taylor法需要太阳辐射、气温和相对湿度;Hargreaves法只需要气温。

Penman-Monteith法

在这里插入图片描述
在这里插入图片描述

Priestley-Taylor法

在这里插入图片描述

Hargreaves法

在这里插入图片描述

四、气象干旱等级规范(GB/T 20481—2017)

根据气象干旱等级规范,计算MI(相对湿润度指数)时,标准推荐两种方法计算潜在蒸散量,即Thornthwaite方法和FAO Penman-Monteith方法。其中,FAO Penman-Monteith方法计算误差小,但需要的气象要素多,Thornthwaite 方法计算相对简单,需要的气象要素少,但有一定的局限性。使用者请根据资料条件选择合适的计算方法。

在这里插入图片描述

Thornthwaite方法

以下是Thornthwaite方法介绍
在这里插入图片描述

Thornthwaite方法python代码

以下是摘自互联网,基于Thornthwaite方法的python计算代码
原始数据:
在这里插入图片描述

处理后的数据:
在这里插入图片描述

代码:

#!usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: Su
@file: calculateMI.py
@time: 2023/08/17
@desc:
"""
import pandas as pd
import numpy as npdf = pd.read_excel('processdata/lianxi/鄂尔多斯.xlsx')
df[df['temp']<0] = np.nan
ab = df.dropna(axis=0,how='all')# 计算Hi
temp = ab.temp.values
T = np.power(temp/5,1.514)
Hi = pd.DataFrame(T)# 创建一个新DataFrame放入分类好后的站点数据
df2 = pd.DataFrame(ab)
df2.insert(loc=7, column='Hi',value=Hi.values)
# 给站点分类
nameList1 = set(df2.name.values)# 想将结果写入excel,需创建空的dataframe
df_all = pd.DataFrame(data=None)for i in nameList1:# 进行站点遍历dfName = df2[df2['name'] == i]df3 = pd.DataFrame(dfName)# 分年求和nameList2 = set(df3.year.values)for j in nameList2:# 按年遍历dfYear = df3[df3['year'] == j]df4 = pd.DataFrame(dfYear)# 计算Hi的和H_sum = dfYear['Hi'].sum()df4.insert(loc=8, column='H_sum', value=H_sum)# 计算A值A = (6.75e-07)*np.power(H_sum,3) - (7.71e-05)*np.power(H_sum,2) + (1.792e-02)*H_sum + 0.49df4.insert(loc=9, column='A', value=A)# 提取temp、H_sum、A用于计算PETtemp = df4.temp.valuesH_sum = df4.H_sum.valuesA = df4.A.values# 计算PETPET = 16 * np.power((10*temp)/H_sum,A)df4.insert(loc=10, column='PET',value=PET)df5 = pd.DataFrame(df4)# concat 合并有相同字段名的dataframedf_all = pd.concat([df_all, df5],ignore_index=True)# 避免字段名重复写入,一般会做去重处理
data_list = df_all.drop_duplicates(keep='first')
# 写出数据
df_all.to_excel('processdata/lianxi/鄂尔多斯PET.xlsx', index=False)

六、潜在蒸散发计算Python代码

源代码下载:潜在蒸散发计算Python源代码
具体包括以下方法

  • ETBase
  • Abtew
  • Albrecht
  • BlaneyCriddle
  • BrutsaertStrickler
  • Camargo
  • Caprio
  • ChapmanAustralia
  • Copais
  • Dalton
  • DeBruinKeijman
  • DoorenbosPruitt
  • GrangerGray
  • Hamon
  • HargreavesSamani
  • Haude
  • JensenHaiseBasins
  • Kharrufa
  • Linacre
  • Makkink
  • Irmak
  • MattShuttleworth
  • McGuinnessBordne
  • Penman
  • PenPan
  • PenmanMonteith
  • PriestleyTaylor
  • Romanenko
  • SzilagyiJozsa
  • Thornthwait
  • Ritchie
  • Turc
  • Valiantzas

,测试数据集camels_aus测试数据集下载方法:
pip install camels_aus,使用代码下载读取数据集

from camels_aus.repository import CamelsAus, download_camels_aus
download_camels_aus(path=r"E:/Other/ET_Python/data") # 下载到指定目录

读取文件

repo = CamelsAus()
repo.load_from_text_files(r"E:/Other/ET_Python/data")
dataset = repo.data

参考文献

论潜在蒸散发、参考作物蒸散发、实际蒸散发及作物实际蒸散发之差异
计算潜在蒸散量PET的方法
伍海,等,变化环境下12种潜在蒸散发估算方法 在不同干湿区的适用性
气象干旱等级规范(GB/T 20481—2017)


http://www.ppmy.cn/news/1197318.html

相关文章

dorck搭建建zerotier-planet

自建 ZeroTier Planet 服务 这是一个使用 Docker 和 Docker Compose 部署自建 ZeroTier Planet 服务的指南。以下是设置步骤&#xff1a; 先决条件 具有公网 IP 的服务器安装了 Docker 和 Docker Compose防火墙开放了以下端口&#xff1a; TCP 端口&#xff1a;4000、9993、…

2023辽宁省数学建模B题数据驱动的水下导航适配区分类预测完整原创论文分享(python求解)

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了辽宁省数学建模B题完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 B用Python&#xff0b;SPSSPRO求解&…

父子进程之间的等待(wait和waitpid的介绍+原理),status的介绍+恢复退出码(位运算+宏),非阻塞等待(宏),signal查看

目录 父子进程之间的等待 介绍 为什么要有等待 内存泄漏 如何等待 介绍 pid_t wait (int* status) 介绍 status指针 示例 ​编辑 pid_t waitpid (pid_t pid,int* status,int options) pid options WNOHANG -- 非阻塞等待 示例 status 查看status status问题 …

[SSD综述1.6] SSD固态硬盘参数图文解析_选购固态硬盘就像买衣服?

依公知及经验整理,原创保护,禁止转载。 专栏 《SSD入门到精通系列》 <<<< 返回总目录 <<<< ​ 传统的 HDD 是“马达+磁头+磁盘”的机械结构,而 SSD 则是“闪存介质+主控”的纯半导体芯片存储结构,两者在数据存储介质和读写方式上有着本质区别,这…

linux傻瓜式安装Java环境及中间件

linux配置Java环境及中间件 1.傻瓜式安装Java1.下载2.追加3.刷新测试 2.傻瓜式安装docker1.docker卸载2.docker安装 3.Docker傻瓜式安装Redis1.傻瓜式安装安装并配置 4.Docker傻瓜式安装RabbitMQ5.Docker傻瓜式安装MySql1.拉取2.配置 6.傻瓜式安装Nacos1.官网下载nacos2.SQL文件…

量化、蒸馏、分解、剪枝

量化、蒸馏、分解和剪枝都是用于深度学习模型压缩和优化的算法。 量化是一种用于减少深度学习模型计算量和内存消耗的技术。在深度学习中&#xff0c;模型通常使用高精度的浮点数表示参数和激活值&#xff0c;但这种表示方式会占用大量的内存和计算资源。而量化技术通过降低参数…

dubbo没有找到生产者

1、没有找到生产者 com.alibaba.dubbo.rpc.RpcException: No provider available from registry 127.0.0.1:2181 for service .... , please check status of providers(disabled, not registered or in blacklist)2、 查看是不是 对应的providers 没有 注册上去 找到 zk 对应…

代码随想录训练营第60天 | 503.下一个更大元素II ● 42. 接雨水● 84.柱状图中的最大矩形

503.下一个更大元素II 题目链接&#xff1a;https://leetcode.com/problems/next-greater-element-ii/ 解法&#xff1a; 由于是循环数组&#xff0c;可以直接把两个数组拼接在一起&#xff0c;然后使用单调栈求下一个最大值。 写法上&#xff0c;可以巧妙一些&#xff0c…