【水文学法总结】河道内生态流量计算方法(含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%,表示为小数,∈(0,1)
% 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进行封装,简化书写。 Axios官网是:https://www.axios-http.cn 2.1 基本使用 axios 使用是比较简单的,分为以下两步: 引入 axios 的 js 文件 <script src"js/axios-0.18.0.js"></script…...
ip地址和地理位置有关系吗
在互联网时代,网络已经成为了人们生活中不可或缺的一部分。而在网络通信中,IP地址扮演着非常重要的角色。那么,IP地址和地理位置之间是否有关系呢?虎观代理小二二将从以下几个方面进行探讨。 一、IP地址和地理位置的基本概念 首…...
mac指定node版本 mac node版本降级 mac切换node版本
本文解决问题: 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登录界面进行截图,控制鼠标键盘等操作实现(一)
首先常规的账户进程是没办法获取登录界面的信息的,因为登录界面已经不在某个账户下了,登录界面显示了每一个账户的切换。所以得使用System权限的进程。 那么Windows系统究竟是怎么将登录界面与用户桌面隔离开的呢?首先先通过一些Windows操作系…...
因果推断(五)基于谷歌框架Causal Impact的因果推断
因果推断(五)基于谷歌框架Causal Impact的因果推断 除了传统的因果推断外,还有一些机器学习框架可以使用,本文介绍来自谷歌框架的Causal Impact。该方法基于合成控制法的原理,利用多个对照组数据来构建贝叶斯结构时间…...
VR全景加盟项目如何开展?如何共赢VR时代红利?
VR全景作为一个新兴蓝海项目,相信有着很多人刚接触VR行业的时候都会有这样的疑问:VR全景加盟后项目如何开展?今天,我们就从项目运营的三个阶段为大家讲解。 一、了解项目时 目前VR全景已经被应用到各行各业中去,学校、…...
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 下载安装,路径全英文然后记得有一…...
vue-router在vue2/3区别
构建选项区别 vue2-router const router-new VueRouter({mode:history,base:_name,})vue-next-router import { createRouter,createWebHistory} from vue-next-router const routercreateRouter({history:createHistory(/) })在上述代码中我们发现,vue2中的构建选项mode和ba…...
Apache Doris 入门教程33:统计信息
统计信息 统计信息简介 Doris 查询优化器使用统计信息来确定查询最有效的执行计划。Doris 维护的统计信息包括表级别的统计信息和列级别的统计信息。 表统计信息: 信息描述row_count表的行数data_size表的⼤⼩(单位 byte)update_rows收…...
有效需求的特征
如何区分优秀的软件需求和软件需求规格说明书(SRS)与可能导致问题的需求和规格说明书?在这篇文章中,我们将首先讨论单个需求应该具有的几种不同特性。然后,我们将讨论成功的SRS整体应具有的理想特征。 1.有效需求的特…...
基于51单片机无线温度报警控制器 NRF24L01 多路温度报警系统设计
一、系统方案 1、本设计默认采用STC89C52单片机,如需更换单片机请联系客服。 2、接收板LCD1602液晶实时显示当前检测的2点温度值以及对应的上下限报警值。发射板由DS18B20采集温度值,通过无线模块NRF24L01传给接收板。 3、按键可以设置温度上下限值&…...
Spring Data JPA的@Entity注解
一、示例说明 rules\CouponTypeConverter.java Converter public class CouponTypeConverterimplements AttributeConverter<CouponType, String> {Overridepublic String convertToDatabaseColumn(CouponType couponCategory) {return couponCategory.getCode();}Overr…...
CANoe panel中,Path Dialog如何保存选择的文件路径
这里写目录标题 Path Dialog控件的设置系统变量和环境变量 Path Dialog控件的设置 过滤加载的文件类型 填写格式为:Hex file |.hex 其中Hex file为自定义name,.hex为你想识别的文件类型 系统变量和环境变量 系统变量:在canoe的Environmen…...
关于es中索引,倒排索引的理解
下面是我查询进行理解的东西 也就是说我们ES中的索引就相当于我们mysql中的数据库表,索引库就相当于我们的数据库,我们按照mapping规则会根据相应的字段(index为true默认)来创建倒排索引,这个倒排索引就相当于我们索引…...
k8s service (二)
K8s service (二) Endpoint Endpoint是kubernetes中的一个资源对象,存储在etcd中,用来记录一个service对应的所有pod访问地址,它是根据service匹配文件中selector描述产生的。 一个Service由一组Pod组成,这些Pod通过Endpoints…...
桌面软件开发框架 Electron、Qt、WPF 和 WinForms 怎么选?
一、Electron Electron 是一个基于 Web 技术的跨平台桌面应用程序开发框架。它使用 HTML、CSS 和 JavaScript 来构建应用程序界面,并借助 Chromium 渲染引擎提供强大的页面渲染能力。Electron 的主要特点包括: 跨平台:Electron 可以在 Windows、macOS 和 Linux 等多个主流操…...
SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第二天)Mybatis的深入学习
SSM框架的学习与应用(Spring Spring MVC MyBatis)-Java EE企业级应用开发学习记录(第二天)Mybatis的深入学习(增删改查的操作) 上一篇我们的项目搭建好了,也写了简答的Junit测试类进行测试,可以正确映射…...
php网站商城源码/西安网站维护
C/S项目测试 一、C/S的特点 1、C/S结构(Client/Server,客户机/服务器模式) • C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数的业务逻辑和UI展示,又称为胖…...
贝壳找房网站做销售/关键词推广工具
我已经把喝咖啡变成了一种习惯,在咖啡店喝一杯美式、手持一本书,很休闲 这个老板的咖啡店也做定制旅游,挺好的,跟很多群游和团游区别很大,人数也有名额限制也包括时间。 转载于:https://www.cnblogs.com/Soar-Pang/p/1…...
汕头网站建设和运营/浏览器2345网址导航下载安装
不经意地被一位同事问起在javascript里面如何检测右键事件,并且屏蔽原来的右键菜单,上网查找一翻之后发现一些比较简单的方法。如设置onmousedown,检查其event.button的值是不是2(代表右键)。这个方法在FF和IE中都可用…...
电话销售网站建设多少钱一个月/百度站长工具seo查询
阅读目录 一、字符编码 1、什么实字符编码:将人识别的字符转换成计算机能识别的01,而转换的过程或者规则就是字符编码表。 而这种字符编码表表示了一种对应关系。 2、常用的字符编码表有:ascii、unicode、GBK、Shift_JIS、Euc-kr 3、如何理解字符编码…...
建设网站需要的材料/营销网站建设哪家好
你好! 欢迎来到我的博客! 我的博客用来发布一些我学习编程的笔记。 希望我的一些错误能给你提醒,也希望我的思路能给你启发,做出比我更好的解答! 一部分笔记稍后会再完善补充! 原网站在Wordpress࿰…...
盈佳国际天天做赢家网站/软文例文 经典软文范例
Print流 print打印流:只做输出没有输入 打印分为字节打印流和字符打印流 目录Print流PrintWriter: 字符打印流对象输入输出流**作用**:**用法**:**案例一**:对象序列化案例二**一个类声明****对象的输出流**对象的输入流PrintWriter: 字符打印流 print流方法可以打印各种类型…...