[Summary of hydrological methods] Calculation method of ecological flow in the river (including MATLAB implementation code)

Ecological Flow (EF) refers to the water flow required to maintain the ecological environment in the river. There are many methods for calculating ecological flow, mainly divided into hydrological method, habitat simulation method, hydraulic method, integral method, etc., and each method is mostly used to calculate the minimum ecological flow (Minimum Ecological Flow, MEF) to maintain the ecological balance of the river, that is, the ecological base flow .
The hydrological method is simple in principle and fast in calculation, and is suitable for determining the ecological flow of relatively long rivers. At the same time, the algorithm can also be used for rivers that lack hydrological stations and detailed hydrological data, and are widely used.

1 Tennant method

1.1 Principle

insert image description here

1.2 MATLAB calculation code

code show as below:

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 Principle

insert image description here

2.2 MATLAB calculation code

code show as below:

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-year distribution calculation method (Dynamic calculation method, DCM)

3.1 Principle

The intra-annual distribution method is based on historical flow data, using the ratio between the annual minimum total runoff and the annual average runoff to obtain the relationship between the monthly ecological flow and the annual average runoff in each month, so as to determine the ecological flow .

3.2 MATLAB calculation code

code show as below:

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 method

4.1 Principle

4.2 MATLAB calculation code

code show as below:

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:n
    I(i) = find( X(i)==Xsorted);
end

if flag==0
    percent = 1-percent;
end

P = (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 Modified Tennant method for multi-level habitat conditions (MTMMHC method)

5.1 Principle

insert image description here
insert image description here
The ecological flow is calculated by the MTMMHC method, and its main advantages are:
①Different from the traditional Tennant method, which uses a single percentage of the average flow as the ecological flow, it calculates the ecological flow in different months and different horizontal years, and the division of horizontal years is based on the monthly average flow sequence The different guaranteed rates can fully consider the intra-annual and inter-annual changes of flow (time variability);
②It replaces the annual average flow or monthly average flow in the Tennant method with the monthly median flow of different levels of year groups and different months, taking into account The impact of extreme interannual flow and uneven distribution of flow within a year (time variability);
③Using the MTMMHC method to calculate the ecological flow of different sub-basins in the watershed, that is, using different ecological flow in different river sections can improve the ecological flow in the entire watershed. Use the case of the same ecological flow (spatial variability).

5.2 MATLAB calculation code

code show as below:

reference

Guess you like

Origin blog.csdn.net/qq_44246618/article/details/132354378