当前位置: 首页 > news >正文

【水文学法总结】河道内生态流量计算方法(含MATLAB实现代码)

生态流量(Ecological Flow, EF) 是指维持河道内生态环境所需要的水流流量。生态流量计算方法众多,主要分为水文学方法、栖息地模拟法、水力学方法、整体法等,各方法多用于计算维持河道生态平衡的最小生态流量(Minimum Ecological Flow, MEF)即生态基流。
水文学方法原理简单、计算快捷,适应于较长河流生态流量的确定。同时该算法也可以用于缺乏水文站点和详细水文数据的河流,应用较为广泛。

【水文学法总结】河道内生态流量计算方法

  • 1 Tennant法
    • 1.1 原理
    • 1.2 MATLAB计算代码
  • 2 最小月多年平均流量法(Minimum average monthly flux method, MAMFE)
    • 2.1 原理
    • 2.2 MATLAB计算代码
  • 3 年内展布计算法(Dynamic calculation method, DCM)
    • 3.1 原理
    • 3.2 MATLAB计算代码
  • 4 FDC法
    • 4.1 原理
    • 4.2 MATLAB计算代码
  • 5 多层次生境条件的改进Tennant法(MTMMHC法)
    • 5.1 原理
    • 5.2 MATLAB计算代码
  • 参考

1 Tennant法

1.1 原理

在这里插入图片描述

1.2 MATLAB计算代码

代码如下:

function [MEF, OEFmin] = getMEF_Tennant( Runoff )
%% 方法1:Tennant法
% 河道内生态流量:采用不同用水期(年/月尺度)相应天然径流量的多年平均同期径流量的百分比
% 输入变量
% Runoff   月均径流序列
% 输出变量
% MEF         最小生态流量
% OEFmin    最优生态流量下限值
% AAF         多年平均年径流量
% AMF        多年平均月径流量nMonth =12;
nYear = length(Runoff)/nMonth;MF = reshape( Runoff, nMonth , nYear );
AAF = mean( sum( MF,2 )  );
AMF = mean( MF ,2 );MEF  = 0.1* AMF;
OEFmin = 0.6* AMF;
end

2 最小月多年平均流量法(Minimum average monthly flux method, MAMFE)

2.1 原理

在这里插入图片描述

2.2 MATLAB计算代码

代码如下:

function MEF = getMEF_MAMFE( Runoff )
%% 方法2:最小月多年平均流量法
% 最小生态流量:河流每年最小月平均流量的多年平均值
% 输入变量
% Runoff   月均径流序列
% 输出变量
% MEF         最小生态流量
% AAFmin    多年最小平均年径流量
% MFmin    多年最小月均径流量
% MF         月均径流量nMonth =12;
nYear = length(Runoff)/nMonth;MF = reshape( Runoff, nMonth , nYear );
MFmin = min( MF ,[], 2 );
AAFmin = mean( MFmin );MEF = AAFmin; 
end

3 年内展布计算法(Dynamic calculation method, DCM)

3.1 原理

年内展布法基于历史流量资料,以年最小径流总量与多年平均径流总量二者之间的比值,得到各月生态流量与各月多年平均径流量之间的关系,以此确定生态流量。

3.2 MATLAB计算代码

代码如下:

function MEF = getMEF_DCM( Runoff )
%% 方法3:年内展布计算法
% 输入变量
% Runoff   月均径流序列‘
% MEF         最小生态流量
% AAFmin    多年最小平均年径流量
% MFmin    多年最小月均径流量
% MF         月均径流量nMonth =12;
nYear = length(Runoff)/nMonth;% 步骤1:根据长时间水文序列天然月均径流资料,分别计算多年平均年径流量和多年最小平均年径流量
MF = reshape( Runoff, nMonth , nYear );
AAF = mean( sum( MF,2 )  );
MFmin = min( MF ,[], 2 );
AAFmin = mean( MFmin );% 步骤2:计算多年最小年均径流量和多年平均年径流量的比值η
eta = AAFmin/AAF;% 步骤3:根据多年平均月径流量,计算各月最小生态流量
AMF = mean( MF , 2 ); 
MEF = AMF* eta;
end

4 FDC法

4.1 原理

4.2 MATLAB计算代码

代码如下:

function MEF = getMEF_FDC( Runoff )
%% 方法4:FDC法
% 取流量历时曲线,频率为90%时流量为河道内最小生态流量
% 输入变量
% Runoff   月均径流序列‘percent = 0.9;
flag = 0;
MEF = GetThreshold( Runoff , percent  , flag);
end% 调用函数
% -------------------------------------------------------------------------------
function Th = GetThreshold( X , percent , flag)
% GetThreshold函数可根据样本数据集X得到percent阈值下的临界值
% 输入参数 Input parameter
% X             数据(所有样本),可为降水Precipitation,为向量数据
% percent   阈值百分数,如90%95%,表示为小数,∈(01% flag          取值为0,表示取小值;取值为1,表示取大值
% 输出参数 Output parameter
% Th       相应阈值下数值X = reshape( X,[],1 );       % 确保输入序列X为行向量n = length( X );
I = zeros(n,1);
[Xsorted, ~] = sort( X, 'ascend');              % 按升序排列
for i=1:nI(i) = find( X(i)==Xsorted);
endif flag==0percent = 1-percent;
endP = (I-0.44)./(n+0.12);
[~, ThIndex] = min( abs(P-percent) );
Th = X(ThIndex);%{
figure(1)
hold on;box on;
h(1) = plot( X, P ,'k.','MarkerSize', 8);
h(2) = plot( Th,percent ,'rp','MarkerSize', 10,'MarkerFaceColor','r','MarkerEdgeColor','r');
h(3) = plot( [0 Th],[ percent percent],'k--','linewidth',1);
xlabel("X(P/T)");
ylabel("Percent");
set(gca,'FontSize',14,'Fontname', 'Times New Roman');
%}
end

5 多层次生境条件的改进Tennant法(MTMMHC法)

5.1 原理

在这里插入图片描述
在这里插入图片描述
生态流量采用MTMMHC法计算,其主要优势在于:
①同传统Tennant法以平均流量的单一百分比作为生态流量不同,它计算出不同月份不同水平年的生态流量,其中水平年的划分基于月平均流量序列的不同保证率,能充分考虑流量的年内变化和年际变化(时间变异性);
②它以不同水平年组不同月份的月中值流量代替Tennant法中年平均流量或月平均流量,考虑了极端年际流量及流量年内分布不均的影响(时间变异性);
③采用MTMMHC法计算流域内不同子流域的各级生态流量,即在不同河段采用不同的生态流量,能改进在整个流域采用同一个生态流量的情况(空间变异性)。

5.2 MATLAB计算代码

代码如下:

参考

相关文章:

【水文学法总结】河道内生态流量计算方法(含MATLAB实现代码)

生态流量(Ecological Flow, EF) 是指维持河道内生态环境所需要的水流流量。生态流量计算方法众多,主要分为水文学方法、栖息地模拟法、水力学方法、整体法等,各方法多用于计算维持河道生态平衡的最小生态流量(Minimum …...

特斯拉Model 3的七年狂飙

‍ 作者 | 张祥威 编辑 | 德新 发布一周拿下32万张订单,之后用时五年,交付量突破100万辆。粗略计算,自2016年发布至今,特斯拉Model 3已交付超150万辆。 放眼新能源赛道,如此战绩 别无二家。 Model 3踩中纯电动车的…...

物流签收异常,财务对账复杂,怎么解决?

电子商务行业的蓬勃发展为人们的购物体验带来了巨大的便利,然而,随之而来的物流签收异常和财务对账复杂问题却给电商企业的财务部门带来了一系列困扰。 每天大量的订单和货物流转,不可避免地导致了物流签收数据与财务记录之间的不一致和差异…...

docker之镜像与数据卷

镜像 简介 1.镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于环境开发的软件,他包含运行某个软件所需的所有内容,包括代码、运行时库、环境变量、配置文件 2.将所有的应用和环境11,直接打包成docker镜像&…...

服务器为什么会被攻击?43.248.186.x

进入信息时代,各种行业对数据的安全和技术要求也越来越高,同时也遇到了各种各样的服务器故障问题,但是网络攻击才是最大的伤害,在这上面造成了企业不必要的损失,那么服务器为什么会被攻击,这里给大家讲解一下服务器被攻击有哪几种情况 一、服…...

文心一言 VS 讯飞星火 VS chatgpt (79)-- 算法导论7.4 4题

四、请用go语言,证明:RANDOMIZED-QUICKSORT 期望运行时间是 Ω(nlgn)。 文心一言: 首先,为了证明RANDOMIZED-QUICKSORT的期望运行时间是Ω(nlg n),我们需要证明在最坏的情况下,该算法的运行时间是O(nlg n)。然后&…...

整理mongodb文档:索引

个人博客 整理mongodb文档:索引 个人博客,求关注,有问题的地方欢迎指出,觉得讲解的繁琐的也请指出 文章概叙 本文主要还是在shell下的操作。让大家了解下mongodb中index的用途,基本的索引的新增、查看、删除等,最后…...

EPICS libCom库(4) -- epicsTimer

epicsTimer.h描述了一个C和C timer功能。 1 C接口 1.1 epicsTimerNotify和epicsTimer /* 使用一个timer的代码必须实现epicsTimerNotify */ class LIBCOM_API epicsTimerNotify { public:enum restart_t { noRestart, restart };class expireStatus {public:LIBCOM_API expir…...

成都大运会,保障大型活动无线电安全需要…

成都大运会 7月28日,备受关注的第31届世界大学生夏季运动会在成都正式开幕。据悉,这是全球首个5G加持的智慧大运会,也是众多成熟信息技术的综合“应用场”。使用基于5G三千兆、云网、8K超高清视频等技术,在比赛现场搭建多路8K摄像…...

【Spring Boot】构建RESTful服务 — 实战:实现Web API版本控制

实战:实现Web API版本控制 前面介绍了Spring Boot如何构建RESTful风格的Web应用接口以及使用Swagger生成API的接口文档。如果业务需求变更,Web API功能发生变化时应该如何处理呢?可以通过Web API的版本控制来处理。 1.为什么进行版本控制 …...

6.Web后端开发【SpringBoot入门】

文章目录 1 SpringBoot快速入门1.1 Web分析 2. HTTP协议2.1 HTTP-概述2.1.1 介绍2.2.2 特点 2.2 HTTP-请求协议2.3 HTTP-响应协议2.3.1 格式介绍2.3.2 响应状态码 常见的相应状态码 3 WEB服务器3.1 服务器概述 1 SpringBoot快速入门 Spring的官网Spring Boot 可以帮助我们非常…...

[ubuntu]ubuntu18.04使用自带共享桌面实现vncserver连接

vncserver有很多方法比如你安装vnc4server,tightvncserver,x11vnc等都可以实现vnc局域网连接,今天使用系统共享桌面设置vnc连接 Ubuntu开启远程桌面 Ubuntu18.04使用gnome桌面环境,系统自带屏幕共享和远程登录功能,默认使用的是vino作为VNC…...

docker启用cgroup v2

要求 本人的操作系统是kali,基于debian docker info如果你这里是2那么说明启用了,如果是1,那么就未启用 对于Docker来说,Cgroups v2的使用需要满足以下条件: Linux内核版本在4.15以上。 uname -r 系统已经启用Cgro…...

Java课题笔记~ Axios

Axios 对原生的AJAX进行封装&#xff0c;简化书写。 Axios官网是&#xff1a;https://www.axios-http.cn 2.1 基本使用 axios 使用是比较简单的&#xff0c;分为以下两步&#xff1a; 引入 axios 的 js 文件 <script src"js/axios-0.18.0.js"></script…...

ip地址和地理位置有关系吗

在互联网时代&#xff0c;网络已经成为了人们生活中不可或缺的一部分。而在网络通信中&#xff0c;IP地址扮演着非常重要的角色。那么&#xff0c;IP地址和地理位置之间是否有关系呢&#xff1f;虎观代理小二二将从以下几个方面进行探讨。 一、IP地址和地理位置的基本概念 首…...

mac指定node版本 mac node版本降级 mac切换node版本

本文解决问题&#xff1a; mac指定node版本 mac切换node版本 mac node版本降级 第一步 进行nvm 安装操作 brew install nvm 执行 nvm --version nvm --version 出现zsh: command not found: nvm问题去进行配置第二步 nvm配置 1.输入: vim ~/.bash_profile 点击 i 进行插入…...

C# Windows登录界面进行截图,控制鼠标键盘等操作实现(一)

首先常规的账户进程是没办法获取登录界面的信息的&#xff0c;因为登录界面已经不在某个账户下了&#xff0c;登录界面显示了每一个账户的切换。所以得使用System权限的进程。 那么Windows系统究竟是怎么将登录界面与用户桌面隔离开的呢&#xff1f;首先先通过一些Windows操作系…...

因果推断(五)基于谷歌框架Causal Impact的因果推断

因果推断&#xff08;五&#xff09;基于谷歌框架Causal Impact的因果推断 除了传统的因果推断外&#xff0c;还有一些机器学习框架可以使用&#xff0c;本文介绍来自谷歌框架的Causal Impact。该方法基于合成控制法的原理&#xff0c;利用多个对照组数据来构建贝叶斯结构时间…...

VR全景加盟项目如何开展?如何共赢VR时代红利?

VR全景作为一个新兴蓝海项目&#xff0c;相信有着很多人刚接触VR行业的时候都会有这样的疑问&#xff1a;VR全景加盟后项目如何开展&#xff1f;今天&#xff0c;我们就从项目运营的三个阶段为大家讲解。 一、了解项目时 目前VR全景已经被应用到各行各业中去&#xff0c;学校、…...

Win10+anaconda+CUDA+pytorch+vscode配置

Win10anacondaCUDApytorchvscode配置 1.安装anaconda2.安装CUDA确认CUDA版本确认CUDA和pytorch版本安装CUDA 3.安装cudnn4.安装Pytorch5.vscode配置安装VScodevscode配置pytorch环境 1.安装anaconda 官网https://www.anaconda.com 下载安装&#xff0c;路径全英文然后记得有一…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...