Method for automatically screening session flood based on actually measured daily average flow

Through the automatic screening method based on actual measured daily average flow, the problems of strong subjectivity and low efficiency during extraction floods in the prior art are solved, and the flood screening effect with high precision and high efficiency is achieved.

CN119598110APending Publication Date: 2025-03-11XIAN UNIV OF TECH

Patent Information

Application Number
CN202411152492.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-21
Publication Date
2025-03-11

AI Technical Summary

Technical Problem

The prior art has problems such as strong subjectivity, low efficiency and easy to miss flooding when automatically extracting flooding from continuous hydrological data.

Method used

Through an automatic screening method based on the measured daily average flow, the peak threshold and flood maximum value are set to determine the flood peak, the independence of the peak value is determined, the start and end time of the scene flood is determined, and the start and end time ranges of the two independent peak processes are partially overlapped.

Benefits of technology

It realizes accurate identification of flood peak locations, improves screening efficiency, reduces subjectivity, and has the advantages of high precision, high efficiency and applicability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119598110A_ABST
    Figure CN119598110A_ABST
Patent Text Reader

Abstract

The invention discloses a method for automatically screening session flood based on actually-measured daily average flow. The method specifically comprises the following steps that 1, a peak threshold value is set from actually-measured daily average flow data, and a flood maximum value is searched for to determine a flood peak value; 2, judging the independence of the peak values by setting time interval limitation between two adjacent peak values and flow minimum value limitation of a peak value interval; 3, determining the starting and ending time of the session flood by setting a session flood starting and ending flow threshold value and a time interval limit of a corresponding flood peak; and 4, when the starting and ending time ranges of the flood process corresponding to the two independent peak values are partially overlapped, the session flood is segmented. According to the method provided by the invention, the flood peak position can be accurately identified, and the screening efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention belongs to the technical field of flood prediction and relates to a method for automatically screening flood events based on measured daily average flow. Background Art

[0002] Hydrological observation data are usually recorded in calendar years, and the hydrological data obtained are usually continuous. The runoff data at short time intervals used in flood processes are usually daily runoff data. In a year, multiple floods may occur, and the flood types are complex, with single peaks and complex peaks. In hydrological research, it is often necessary to extract flood events to further study the characteristics of flood events. However, at present, the method of extracting flood events from continuous hydrological data is mostly manual extraction, which is based on observing the start and end time of the flood based on daily flow data and combining expert experience for extraction. There are disadvantages such as large subjective factors and low efficiency, and it is easy to miss the flood process.

[0003] The invention patent application with the publication number CN112561214A discloses a method and system for automatically identifying floods. When identifying floods, a flood peak threshold is set to select floods of different magnitudes; for complex floods, a flood peak time distance threshold is set, and only floods with larger flood peaks are retained within the threshold; the start and end flow thresholds are set, and the start and end times of the flow process are determined in combination with the function convexity; the rain peak threshold is set to identify the rainfall process, and the start and end times define the rainfall runoff process while taking into account the rainfall process and the flow rise process at the outlet section of the basin. This method only limits the complex peak distance and the start and end flows from the perspective of the distance threshold, and does not give clear restrictions and segmentation methods for the minimum flow limit of the complex peak interval, the start and end flow threshold limits, and the segmentation method when the start and end flows of different sessions coincide. Overall, this method cannot accurately identify floods, and there are still problems of strong subjectivity and lack of scientific accuracy when dividing floods. Summary of the invention

[0004] The purpose of the present invention is to provide a method for automatically screening flood events based on the measured daily average flow rate. The method can accurately identify the flood peak position and improve the screening efficiency.

[0005] The technical solution adopted by the present invention is a method for automatically screening flood events based on the measured daily average flow, which specifically includes the following steps:

[0006] Step 1, setting the peak value threshold and finding the flood maximum value from the measured daily average flow data to determine the flood peak value;

[0007] Step 2: By setting the time interval limit between two adjacent peaks and the minimum flow limit between the peaks, the independence of the peaks is determined;

[0008] Step 3, determining the start and end time of the flood by setting the start and end flow thresholds of the flood and the time interval limit with the corresponding flood peak;

[0009] Step 4: When the start and end time ranges of the flood processes corresponding to two independent peaks partially overlap, split the flood events.

[0010] The present invention is also characterized in that:

[0011] The specific process of step 1 is as follows:

[0012] Step 1.1, select N consecutive flow rates from the measured daily average flow data to form a sequence Q, the sequence length is n, and i = 1, 2, ..., n;

[0013] Step 1.2, arrange the sequence Q in step 1.1 in ascending order, record the value corresponding to the 90% sample, set the value as the threshold k, and find the flow in the sequence Q whose value is greater than the threshold k;

[0014] Step 1.3, create empty arrays MAX and RealMAX, use the first-order posterior difference method to find the location of the maximum value in the sequence Q and record it as array MAX, and select the values ​​in the maximum value that are greater than k as the peak, and save the date of the peak sequence into the array RealMAX, and the length of the peak sequence is recorded as n1.

[0015] The specific process of step 2 is as follows:

[0016] Step 2.1, create an empty array B, and save the first value RealMAX(1) in the RealMAX array obtained based on step 1.3 into B, that is, B=RealMAX(1), and RealMAX(1) is the position of the first peak;

[0017] Step 2.2, specify the standard time interval Δt, create an empty array currentValue, and set currentValue=RealMAX(1)+Δt;

[0018] Step 2.3, according to step 1.3, the sequence length of the RealMAX array is n1, let s = 2, 3, ... n1, starting from the second item in the RealMAX array, compare the RealMAX(s) array with the currentValue, if currentValue ≤ RealMAX(s), save RealMAX(s) to array B, update currentValue` = RealMAX(s) + Δt, if currentValue > RealMAX(s), do not save it to array B;

[0019] Step 2.4, after traversing RealMAX(s), we get the expanded array B', which is the position of the date corresponding to the first peak of all single peaks and complex peaks that meet the time interval restriction in the time series;

[0020] Step 2.5, create an empty array E, and save the first value RealMAX(1) in the RealMAX array obtained based on step 1.3 into E. RealMAX(1) is the position of the first peak.

[0021] Step 2.6, clear the value of the currentValue` array in step 2.3, and set currentValue`=RealMAX(1)+Δt based on the standard time interval Δt specified in step 2.2;

[0022] Step 2.7, based on step 2.3, i = 2, 3, ... n1, traverse the array starting from the second item in the RealMAX array, compare RealMAX(s) with currentValue`, if currentValue`≤RealMAX(s), save RealMAX(s-1) to array E, and update currentValue``=RealMAX(s)+Δt; ​​if currentValue`>RealMAX(i), do not save it to array E;

[0023] Step 2.7, after traversing RealMAX(s), we get the expanded array E', which is the position of the date corresponding to the last peak of all single-peak and complex-peak cases that meet the time interval restriction in the time series;

[0024] Step 2.9, based on steps 2.1 to 2.8, the expanded arrays B' and E' are obtained. The overlapping values ​​in arrays B' and E' are the locations of single peaks, and the non-overlapping values ​​in arrays B' and E' are the locations of the first and last peaks corresponding to the complex peak flood, that is, the locations of the peaks that meet the time interval restrictions in the independence condition are determined;

[0025] Step 2.10, create an empty array Min, compare the flow sizes corresponding to adjacent positions of arrays B` and E`, take the minimum value and record it in array Min;

[0026] Step 2.11, create an empty ANDMin array, find the minimum flow value of the flow interval corresponding to arrays B`(s) and E`(s), and save it in the ANDMin array;

[0027] Step 2.12, create an empty array DULIXING, multiply the Min array obtained based on step 2.10 by the specified coefficient 0.75, compare the array ANDMin(s) with 0.75*Min(s), if ANDMin(s)≥0.75*Min(s), save i to the array DULIXING, if ANDMin(s)<0.75*Min(s), do not save i to the array DULIXING, at this time, the position i recorded in the array DULIXING all meets the restriction on the minimum flow value between the two peak intervals in the independence condition;

[0028] Step 2.13, create empty arrays oldB and oldE, and record B` and E` at this time in oldB and oldE respectively;

[0029] Step 2.14, delete (DULIXING(i+1)) in array B`, delete (DULIXING(i)) in array E`, array B` and array E` will be updated to new arrays B`` and E``;

[0030] Step 2.15, repeat steps 2.9-2.14 several times. The condition for jumping out of the loop is that the B`` array is equal to the oldB array, and the E`` array is equal to the oldE array. The loop stops when the array DULIXING is an empty array. At this time, the peaks that meet the independence time interval limit and the interval minimum flow limit are screened out.

[0031] The specific process of step 3 is:

[0032] Step 3.1, create an empty array qishi, found_idx = -1, initialized to -1, indicating that the starting point of the flood event is not found;

[0033] Step 3.2, based on the value B`` obtained in step 2.14, the sequence length is m1, let j = 1, 2, ... m1, start traversal from B``(j), perform Q(i) traversal within B``(j), i = B``(j-1), search forward, if Q(i) ≤ 0.5*Q(B``(j)), let found_idx = i, add i to the array qishi, if Q(i) > 0.5*Q(B``(j)), do not add i to the array qishi;

[0034] Step 3.3, create an empty array yuzhi and an empty array realqishi, based on the standard time interval Δt specified in step 2.2, set yuzhi = B``-1.5*Δt, compare qishi(i) and yuzhi(i), take the maximum and save it in the array realqishi, at this time, the starting point positions of the floods are all saved in the array realqishi;

[0035] Step 3.4, create an empty array jieshu, found_idx = -1, initialized to -1, indicating that the end point of the flood event is not found;

[0036] Step 3.5, based on the value E`` obtained in step 2.14, the sequence length is m2, let v = 1, 2, ... m2, start traversal from E``(v), perform Q(i) traversal within E``(v), i = E``(v+1), search forward, if Q(i) ≤ 0.5*Q(E``(v)), let found_idx = i, add i to the array jieshu, if Q(i) > 0.5*Q(E``(v)), do not add i to the array jieshu;

[0037] Step 3.6, create empty array endyuzhi and empty array realjieshu, let endyuzhi = E``+1.5*Δt, compare jieshu(i) and yuzhi(i), take the smallest one and save it in array realjieshu. At this time, the end point positions of all flood sessions are saved in array realjieshu.

[0038] The specific process of step 4 is:

[0039] Step 4.1 Based on step 3.3 and step 3.6, get the array realqishi and the array realjieshu respectively, and compare the sizes of realqishi(i) and realjieshu(i);

[0040] Step 4.2, if realqishi(i)>realjieshu(i), it indicates that the start and end time ranges of the flood processes corresponding to adjacent independent peaks partially overlap, then find the minimum value of the interval between Q(realjieshu(i)) and Q(realqishi(i)) in Q, and create an empty array H, save the minimum value at the position of Q(i) in array H, and replace realqishi(i) and realjieshu(i) with H(i).

[0041] The beneficial effects of the present invention are that the method proposed by the present invention can accurately identify the location of the flood peak, and judge the independence of the peak value by limiting the time interval between the two peaks and limiting the minimum flow threshold of the interval, so as to distinguish between single peak and complex peak types. In addition, the start and end time of the flood can be determined by setting the start and end flow threshold of the flood and the time interval limit with the corresponding flood peak. When the start and end flow of the flood overlap, a clear segmentation method is also given, and the actual operability is strong. In addition, the method only needs to prepare continuous daily average flow data, input relevant flow thresholds and time interval limit thresholds, and then the flood process can be automatically screened out. Compared with the traditional manual identification method, the method of the present invention weakens the subjectivity of empirical observation and judgment to a certain extent, and has the advantages of high accuracy, high efficiency and strong applicability. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] Figure 1 It is a flow chart of a method for automatically screening flood events based on the measured daily average flow rate of the present invention;

[0043] Figure 2 A schematic diagram of flood forecasting using the method of the present invention for automatically screening flood events based on the measured daily average flow rate;

[0044] 3(a) to (d) are test result diagrams of Examples 1 to 4 of the method for automatically screening flood events based on the measured average daily flow rate of the present invention. DETAILED DESCRIPTION

[0045] The present invention is described in detail below with reference to the accompanying drawings and specific embodiments.

[0046] The present invention provides a method for automatically screening flood events based on the measured daily average flow rate, such as Figure 1 As shown in the figure, the specific process includes the following: (1) Determination of flood peak value. The continuous N flow rates in the measured daily average flow data are organized into an array Q, which is arranged in ascending order, and the value corresponding to the 90% sample is recorded and set as the threshold k; the flow rate in the sequence Q with a value greater than the threshold k is found; the maximum value in the sequence Q is obtained by the first-order post-difference method, and the value greater than k is selected as the flood peak; (2) Determination of peak independence. The time interval Δt between two peaks is w Greater than the given standard interval time Δt; at the same time, the minimum flow rate Q between two adjacent peak intervals must be met minLess than 0.75 times of the smallest of the two peaks; (3) Determination of the start and end time of the flood. The start and end flow of the flood must be less than or equal to 0.5 times of the corresponding peak flow; the interval between the date corresponding to the start and end flow of the flood and the date corresponding to the peak flow must be less than or equal to 1.5 times of the given standard time interval Δt; (4) When the start and end time ranges of the flood process corresponding to two independent peaks partially overlap, the flood is divided. Starting from the extreme value of the function, the present invention considers the cases of single peak and complex peak, and combines the peak threshold, the time interval limit of two adjacent peaks in the case of complex peak, the minimum flow size limit of the interval, the start and end flow screening and other restrictive conditions to automatically screen the flood process.

[0047] The process of flood classification is as follows: Figure 2 As shown in the figure, it includes single-peak and complex-peak floods. First, extract the flow exceeding the threshold k from the measured daily average flow sequence, find the maximum value according to the first-order post-difference method, and find the maximum value that is greater than or equal to the threshold to determine the flood peak, as shown in the figure Q p1 , Q p21 , Q p22 and Q p3 Four points; determine the independence of the flood peak, such as Q in the figure p1 and Q p21 Whether the two peak points are independent can be used to distinguish between single peak and complex peak types; then the start and end time of the corresponding flood is found from the flood peak to both sides, as shown in Q b1 , Q e1 , Q e2 , Q b3 and Q e3 Five points, including Q e1 As Q p1 and Q p21 The minimum flow rate in the interval is Q p1 The corresponding flood end flow is Q p21 The starting flow of the corresponding flood.

[0048] The flood peak position can be determined by using the flow threshold and the first-order post-difference method. The principle is as follows: select N consecutive flow rates from the measured daily average flow data to form a sequence Q; use the sort function to arrange them in ascending order to obtain the sequence q, and record the value corresponding to the 90% sample, set it as the threshold k, and find the flow in the sequence Q whose value is greater than the threshold k, as shown in the figure Q p1 , Q p21 , Q p22 and Q p3 Four points; use the first-order post-difference method to find the location of the maximum value in the sequence Q and record it as the array MAX, and select the value greater than k in the maximum value as the peak, and save the date of the peak sequence into RealMAX.

[0049] To determine the independence of peaks, a standard interval time Δt is required to be given, and the time interval between two adjacent peaks and the minimum value of the interval between two peaks are restricted. The conditions for determining the independence of peaks are: the time interval Δt between two peaks is specified. q It is greater than the given standard interval time Δt and must meet the minimum flow value Q between the two peak intervals. min Less than 0.75 times the minimum between the two peaks, that is, ANDMin(i)<0.75*Min(i); as shown in the figure, Q p21 and Q p22 The time interval between two points Δt q2 <Δt, the time interval restriction of the independence condition is not met, and it is considered that Q p21 and Q p22 The two points are not independent, that is, they are the peak values ​​of the same flood, which is a complex peak flood.

[0050] Determine the start and end time of the flood, set the start and end flow thresholds of the flood and the time interval limit with the corresponding flood peak, find the start and end point positions forward or backward according to the size and position of the flood peak flow, and determine the start and end time of the flood. It is stipulated that the start and end flows must be less than or equal to 0.5 times of the corresponding flood peak flow, and the interval between the date corresponding to the start and end flow of the flood and the date corresponding to the flood peak flow must be less than or equal to 1.5 times of the given standard time interval Δt.

[0051] It is stipulated that when the peak value limit is outside the time interval limit, the time point where the time interval limit is located is taken; when the peak value limit is within the time interval limit, the time point where the peak value limit is located is taken.

[0052] If the start and end time of different floods overlap, the segmentation method is: when the start and end time ranges of two independent peak processes partially overlap, the minimum value between the two flood peaks is used as the segmentation point. p1 and Q p21 If the start and end times of the corresponding floods coincide, then the minimum flow rate Q between the two points is taken. e1 The corresponding time T Qe1 As a split time node.

[0053] The Jialing River is a first-level tributary on the left bank of the Yangtze River, and Beibei Station is the outlet control station of the entire basin. The flood season of the Jialing River is from May to October. Taking the measured average daily flow data of the Jialing River in 2007, 2012, 2014 and 2018 as examples, the standard time interval Δt is set to 5 days, and the length of the time series in each year is 184, and automatic flood screening is performed.

[0054] Example 1 (Calculation of peak values ​​and the start and end flow rates of corresponding floods in the array of daily average flow rates measured during the flood season in 2007)

[0055] Step 1, find the peak value: Purpose: Find the peak value in the sequence Q whose value is greater than the threshold, and record the position of the peak value in the time series. Input: measured daily average flow sequence Q, flow threshold k. Output: array RealMAX that records the maximum flow position that meets the threshold k. The specific process is as follows:

[0056] (1) The measured daily average flow data of the flood season in 2007 with stable and fluctuating processes are organized into a sequence Q, with a sequence length n of 184, where i = 1, 2, ..., n. The sequence Q is sorted in ascending order to obtain a new sequence q, and the value corresponding to the 90% sample is found and set as the threshold k = 7978m 3 / s;

[0057] (2) Calculate the first-order backward difference of sequence Q, find the maximum value and save it in array MAX, MAX = [4, 10, 15, 20, 23, 26, 28, 33, 42, 51, 54, 59, 63, 69, 79, 82, 92, 96, 101, 103, 105, 111, 116, 125, 132, 139, 141, 150, 154, 162, 164, 173, 180, 183];

[0058] (3) Filter out the corresponding flow in the array MAX that satisfies the value greater than the threshold k, and form a new value RealMAX=[51,69,79,82,92,154]. The position recorded in RealMAX is the maximum flow position that satisfies the threshold k.

[0059] Step 2: Determine peak independence: Purpose: Determine single peak and complex peak types by limiting the time interval between two adjacent peaks and the minimum value of the two peak intervals. Input: Given standard time interval Δt, actual time interval Δt between two peaks q , the minimum flow limit ANDMin(i) between two peaks, the minimum flow between the two peaks is 0.75*Min(i). Output: Array B that stores the first peak of all single peaks and multiple peaks that meet the independence condition, and array E that stores the last peak of all single peaks and multiple peaks that meet the independence condition. The specific process is as follows:

[0060] (1) Create an empty array B and save the first value 51 in the RealMAX array into B, that is, B =

[51] . At this time, the position corresponding to the first peak is recorded in B;

[0061] (2) Specify the standard time interval Δt=5, set currentValue=RealMAX(1)+Δt, that is, currentValue=56;

[0062] (3) The sequence length of the RealMAX array is n1=6, let s=2, 3, …, 6. Starting from the second item in the RealMAX array, the RealMAX(s) array is compared with the currentValue. If currentValue≤RealMAX(s), RealMAX(s) is saved in array B and currentValue`=RealMAX(s)+Δt is updated. If currentValue>RealMAX(s), it is not saved in array B. For example, the second item in the RealMAX array, RealMAX(2)=69, is compared with currentValue=56. Since currentValue satisfies≤RealMAX(2), RealMAX(2) is saved in array B and currentValue`=RealMAX(2)+Δt is updated, that is, currentValue`=74. This process is repeated until RealMAX(6) is compared.

[0063] (4) After traversing RealMAX(s), we get the expanded array B`=[51,69,79,92,154], which is the position of the date corresponding to the first peak of all single peaks and complex peaks in the time series;

[0064] (5) Create an empty array E, save the first value 51 in the RealMAX array to E, that is, B =

[51] . At this time, the position corresponding to the first peak is recorded in B. Clear the value of the currentValue` array in step (3), set currentValue` = RealMAX(1) + Δt, that is, currentValue` = 56;

[0065] (6) Based on step (3), we know that n1=6, i=2, 3, ... 6. We traverse the array from the second item in the RealMAX array and compare RealMAX(s) with currentValue`. If currentValue`≤RealMAX(s), we save RealMAX(s-1) to the array E and update currentValue``=RealMAX(s)+Δt. If currentValue`>RealMAX(i), we do not save it to the array E. For example, we compare the second item in the RealMAX array, RealMAX(2)=69, with currentValue`=56. Since currentValue` satisfies≤RealMAX(2), we save RealMAX(1) to the array E (because RealMAX(1) is already in E, we can omit it), and update currentValue``=RealMAX(2)+Δt, that is, currentValue``=74. We repeat this process until RealMAX(6) is compared.

[0066] (7) After traversing RealMAX(s), we get the expanded array E`=[51,69,82,92,154], which is the position of the date corresponding to the last peak of all single peaks and complex peaks in the time series;

[0067] (8) Arrays B` and E` are obtained. The overlapping values ​​[51, 69, 92, 154] in arrays B` and E` are the positions of single peaks,

[79] in array B` is the position of the first peak of the complex peak, and

[82] in array E` is the position of the last peak of the complex peak. The positions of the peaks that meet the peak threshold and time interval restrictions can be determined, and single peaks and complex peaks can be distinguished.

[0068] (9) Create an empty array Min, compare the flow rates corresponding to adjacent positions of arrays B' and E', take the minimum value and record it in array Min, array Min = [11800, 13800, 12000, 8500];

[0069] (10) Create an empty ANDMin array, find the minimum flow value of the flow interval corresponding to arrays B`(s) and E`(s), and save it in array ANDMin. Array ANDMin = [1850, 2300, 2740, 906];

[0070] (11) Create an empty array DULIXING, multiply the Min array obtained based on step (9) by the specified coefficient 0.75, compare the sizes of the array ANDMin and 0.75*Min, if ANDMin(i)≥0.75*Min(i), save i to the array DULIXING. Because 0.75*Min=[8850,10350,9000,6375], ANDMin(i)<0.75*Min(i), the array DULIXING is an empty array;

[0071] (12) Create empty arrays oldB and oldE, and record B' and E' at this time in oldB and oldE respectively;

[0072] (13) Delete (DULIXING(i+1)) in array B`, delete (DULIXING(i)) in array E`, and the B` array and E` array will be updated to new arrays. Based on step (11), it is known that the array DULIXING is an empty array, so the B` array and E` array remain unchanged, that is, B` array = B`` array, E` array = E`` array. At this time, the peaks of the time interval limit and the interval minimum flow limit that meet the independence conditions are screened out.

[0073] Step 3, determine the start and end time of the flood: Purpose: Set the start and end flow thresholds of the flood and the time interval limit with the corresponding flood peak, find the start and end points forward or backward according to the size and position of the flood peak flow, and determine the start and end time of the flood. Input: arrays B`` and E`` that meet the independence conditions, arrays yuzhi and enyuzhi that meet the time interval limit, and start and end flow thresholds. Output: arrays realqishi and array realjieshu that meet the time interval limit and flow threshold. The specific process is as follows:

[0074] (1) Create an empty array qishi, found_idx = -1, initialized to -1, indicating that the starting point of the flood event is not found;

[0075] (2) Based on the value B`` obtained in step 2, the length of the sequence is m1=5, let j=1,2,…5, start traversing from B``(j), perform Q(i) traversal within B``(j), i=B``(j-1), search forward, if Q(i)≤0.5*Q(B``(j)), let found_idx=i, add i to the array qishi, if Q(i)>0.5*Q(B``(j)), do not add i to the array qishi, the array qishi=[49,66,78,90,153];

[0076] (3) Create an empty array yuzhi and an empty array realqishi. Based on the standard time interval Δt specified in step 202, set yuzhi = B``-1.5*Δt, array yuzhi = [43.5, 61.5, 71.5, 84.5, 146.5]. Compare qishi(i) and yuzhi(i), take the maximum and save it in array realqishi. At this time, the starting point positions of all floods are saved in array realqishi. Array realqishi = [49, 66, 78, 90, 153].

[0077] (4) Create an empty array jieshu, found_idx = -1, initialized to -1, indicating that the end point of the flood event has not been found;

[0078] (5) Based on the value E`` obtained in step 2, the length of the sequence is m2=5, let v=1,2,…5, start traversing from E``(v), perform Q(i) traversal within E``(v), i=E``(v+1), search forward, if Q(i)≤0.5*Q(E``(v)), let found_idx=i, add i to the array jieshu, if Q(i)>0.5*Q(E``(v)), do not add i to the array jieshu, array jieshu=[53, 71, 84, 94, 158];

[0079] (6) Create empty arrays endyuzhi and realjieshu, set endyuzhi = E`` + 1.5*Δt, array endyuzhi = [58.5, 76.5, 89.5, 99.5, 161.5], compare jieshu(i) and yuzhi(i), take the smallest one and save it in array realjieshu. At this time, the end point positions of all floods are saved in array realjieshu, array realjieshu = [53, 71, 84, 94, 158].

[0080] (7) The array realqishih and array realjieshu respectively record the starting point and ending point of the flood, and the starting and ending flows must be less than or equal to 0.5 times the corresponding peak flow. The interval between the dates corresponding to the starting and ending flows of the flood and the dates corresponding to the peak flow must be less than or equal to 1.5 times the given standard time interval Δt.

[0081] Step 4, split the continuous flood: Purpose: When the start and end time ranges of two independent peak processes partially overlap, the minimum value between the two flood peaks is used as the split point. Input: all starting point arrays realqishi and all ending point arrays realjieshu. Output: the minimum value between Q(realjieshu(i)) and Q(realqishi(i)). The specific process is as follows:

[0082] (1) Compare the size of realqishi(i) and realjieshu(i);

[0083] (2) If realqishi(i)>realjieshu(i), then find the minimum value between Q(realjieshu(i)) and Q(realqishi(i)) in Q, save the minimum value at the position of Q(i) in array H, and replace realqishi(i) and realjieshu(i) with H(i). Since realqishi(i) is less than realjieshu(i), it means that there is no partial overlap of the start and end time ranges of two independent peak processes. At this time, array H is an empty array. The flood process information table of the flood season in 2007 is shown in Table 1.

[0084] Table 1 Flood process information table of Beibei station in 2007

[0085]

[0086] The flood process in 2007 is shown in Figure 3(a), where the x-axis is the time series (d) and the y-axis is the daily average flow (m 3 / s). The peak threshold k is 7978m 3 / s, as shown by the flow value corresponding to the red dotted line in Figure 3(a); the maximum value in the flow sequence greater than the threshold k is the peak value, and the red and blue points in Figure 3(a) are the peak points. According to the independence judgment condition, there are 4 single-peak floods and 1 complex peak identified by Beibei Station in the flood season of 2007. The red points in Figure 3(a) are all single-peak peak points and the first peak point of the complex peak, and the blue points are the remaining peak points of the complex peak; according to the start and end point screening conditions, the starting point corresponding to the floods screened by Beibei Station in the flood season of 2007 is shown as the green point in Figure 3(a), and the end point is shown as the black point in the figure.

[0087] Example 2 (Calculation of peak values ​​and corresponding start and end flow rates of flood events in the array of daily average flow rates measured during the flood season of 2012)

[0088] Step 1, find the peak value: Purpose: Find the peak value in the sequence Q whose value is greater than the threshold, and record the position of the peak value in the time series. Input: measured daily average flow sequence Q, flow threshold k. Output: array RealMAX that records the maximum flow position that meets the threshold k. The specific process is as follows:

[0089] (1) The measured daily average flow data of the flood season in 2012 with stable and fluctuating processes are organized into a sequence Q, with a sequence length n of 184, where i = 1, 2, ..., n. The sequence Q is sorted in ascending order to obtain a new sequence q, and the value corresponding to the 90% sample is found and set as the threshold k = 10650m 3 / s;

[0090] (2) Calculate the first-order backward difference of sequence Q, find the maximum value and save it in the array MAX, MAX = [5,10,13,17,23,27,30,35,40,48,55,57,60,67,71,78,81,84,90,94,100,105,113,118,126,134,140,148,152,154,156,158,162,167,169,177,179,181,183];

[0091] (3) Filter out the corresponding flow in the array MAX that satisfies the value greater than the threshold k, and form a new value RealMAX=[67,71,84,126,134]. The position recorded in RealMAX is the position of the maximum flow that satisfies the threshold k.

[0092] Step 2: Determine peak independence: Purpose: Determine single peak and complex peak types by limiting the time interval between two adjacent peaks and the minimum value of the two peak intervals. Input: Given standard time interval Δt, actual time interval Δt between two peaks q , the minimum flow limit ANDMin(i) between two peaks, the minimum flow between the two peaks is 0.75*Min(i). Output: Array B that stores the first peak of all single peaks and multiple peaks that meet the independence condition, and array E that stores the last peak of all single peaks and multiple peaks that meet the independence condition. The specific process is as follows:

[0093] (1) Create an empty array B and save the first value 67 in the RealMAX array into B, that is, B =

[67] . At this time, the position corresponding to the first peak is recorded in B;

[0094] (2) Specify the standard time interval Δt=5, set currentValue=RealMAX(1)+Δt, that is, currentValue=72;

[0095] (3) The sequence length of the RealMAX array is n1=5, let s=2, 3, …, 5. Starting from the second item in the RealMAX array, the RealMAX(s) array is compared with the currentValue. If currentValue≤RealMAX(s), RealMAX(s) is saved in array B and currentValue`=RealMAX(s)+Δt is updated. If currentValue>RealMAX(s), it is not saved in array B. For example, the second item in the RealMAX array, RealMAX(2)=71, is compared with currentValue=72. Since currentValue does not satisfy ≤RealMAX(2), RealMAX(2) is not saved in array B. Similarly, currentValue=currentValue` is updated until RealMAX(5) is compared.

[0096] (4) After traversing RealMAX(s), the expanded array B`=[67,84,126,134] is obtained, which is the position of the date corresponding to the first peak of all single peaks and complex peaks in the time series;

[0097] (5) Create an empty array E and save the first value 67 in the RealMAX array to E, that is, B =

[67] . At this time, the position corresponding to the first peak is recorded in B. Clear the value of the currentValue` array in step (3) and set currentValue` = RealMAX(1) + Δt, that is, currentValue` = 72;

[0098] (6) Based on step (3), we know that n1=5, i=2, 3, ... 5. We traverse the array from the second item in the RealMAX array and compare RealMAX(s) with currentValue`. If currentValue`≤RealMAX(s), we save RealMAX(s-1) to array E and update currentValue``=RealMAX(s)+Δt. If currentValue`>RealMAX(i), we do not save it to array E. For example, we compare the second item in the RealMAX array, RealMAX(2)=71, with currentValue`=72. Since currentValue` does not satisfy ≤RealMAX(2), we do not save RealMAX(1) to array E and update currentValue``=RealMAX(2)+Δt, i.e., currentValue``=74. We continue to do this until RealMAX(5) is compared.

[0099] (7) After traversing RealMAX(s), the expanded array E`=[71,84,126,134] is obtained, which is the position of the date corresponding to the last peak of all single peaks and complex peaks in the time series;

[0100] (8) Arrays B` and E` are obtained. The overlapping values ​​[84, 126, 134] in arrays B` and E` are the positions of single peaks,

[67] in array B` is the position of the first peak of the complex peak, and

[71] in array E` is the position of the last peak of the complex peak. The positions of the peaks that meet the peak threshold and time interval restrictions can be determined, and single peaks and complex peaks can be distinguished.

[0101] (9) Create an empty array Min, compare the flow rates corresponding to adjacent positions of arrays B` and E`, take the minimum value and record it in array Min, array Min = [15300, 15300, 13700];

[0102] (10) Create an empty ANDMin array, find the minimum flow value of the flow interval corresponding to arrays B`(s) and E`(s), and save it in array ANDMin. Array ANDMin = [2850, 1660, 3030];

[0103] (11) Create an empty array DULIXING, multiply the Min array obtained in step (9) by the specified coefficient 0.75, compare the sizes of the array ANDMin and 0.75*Min, if ANDMin(i)≥0.75*Min(i), save i to the array DULIXING. Since 0.75*Min=[11475,11475,10275], ANDMin(i)<0.75*Min(i), the array DULIXING is an empty array;

[0104] (12) Create empty arrays oldB and oldE, and record B' and E' at this time in oldB and oldE respectively;

[0105] (13) Delete (DULIXING(i+1)) in array B`, delete (DULIXING(i)) in array E`, and the B` array and E` array will be updated to new arrays. Based on step (11), it is known that the array DULIXING is an empty array, so the B` array and E` array remain unchanged, that is, B` array = B`` array, E` array = E`` array. At this time, the peaks of the time interval limit and the interval minimum flow limit that meet the independence conditions are screened out.

[0106] Step 13, determine the start and end time of the flood: Purpose: Set the start and end flow thresholds of the flood and the time interval limit with the corresponding flood peak, find the start and end point positions forward or backward according to the size and position of the flood peak flow, and determine the start and end time of the flood. Input: arrays B`` and E`` that meet the independence conditions, arrays yuzhi and enyuzhi that meet the time interval limit, and start and end flow thresholds. Output: arrays realqishi and array realjieshu that meet the time interval limit and flow threshold. The specific process is as follows:

[0107] (1) Create an empty array qishi, found_idx = -1, initialized to -1, indicating that the starting point of the flood event is not found;

[0108] (2) Based on the value B`` obtained in step 2, the sequence length is m1=4, let j=1,2,…4, start traversal from B``(j), perform Q(i) traversal within B``(j), i=B``(j-1), search forward, if Q(i)≤0.5*Q(B``(j)), let found_idx=i, add i to the array qishi, if Q(i)>0.5*Q(B``(j)), do not add i to the array qishi, array qishi=[64,83,123,133]; ( 3) Create an empty array yuzhi and an empty array realqishi. Based on the standard time interval Δt specified in step 202, set yuzhi = B``-1.5*Δt, array yuzhi = [59.5, 76.5, 118.5, 126.5], compare qishi(i) and yuzhi(i), take the maximum and save it in array realqishi. At this time, the starting point positions of all floods are saved in array realqishi. Array realqishi = [64, 83, 123, 133];

[0109] (4) Create an empty array jieshu, found_idx = -1, initialized to -1, indicating that the end point of the flood event has not been found;

[0110] (5) Based on the value E`` obtained in step 2, the length of the sequence is m2 = 4, let v = 1, 2, ... 4, start traversing from E``(v), perform Q(i) traversal within E``(v), i = E``(v+1), search forward, if Q(i) ≤ 0.5*Q(E``(v)), let found_idx = i, add i to the array jieshu, if Q(i) > 0.5*Q(E``(v)), do not add i to the array jieshu, array jieshu = [75, 86, 127, 137];

[0111] (6) Create an empty array endyuzhi and an empty array realjieshu, let endyuzhi = E``+1.5*Δt, array endyuzhi = [78.5,91.5,133.5,141.5], compare jieshu(i) and yuzhi(i), take the smallest one and save it in array realjieshu. At this time, the end point positions of all floods are saved in array realjieshu, array realjieshu = [75,86,127,137].

[0112] (7) The array realqishih and array realjieshu respectively record the starting point and ending point of the flood, and the starting and ending flows must be less than or equal to 0.5 times the corresponding peak flow. The interval between the dates corresponding to the starting and ending flows of the flood and the dates corresponding to the peak flow must be less than or equal to 1.5 times the given standard time interval Δt.

[0113] Step 4, split the continuous flood: Purpose: When the start and end time ranges of two independent peak processes partially overlap, the minimum value between the two flood peaks is used as the split point. Input: all starting point arrays realqishi and all ending point arrays realjieshu. Output: the minimum value between Q(realjieshu(i)) and Q(realqishi(i)), including the following steps:

[0114] (1) Compare the size of realqishi(i) and realjieshu(i);

[0115] (2) If realqishi(i)>realjieshu(i), then find the minimum value between Q(realjieshu(i)) and Q(realqishi(i)) in Q, save the minimum value at the position of Q(i) in array H, and replace realqishi(i) and realjieshu(i) with H(i). Since realqishi(i) is less than realjieshu(i), it means that there is no partial overlap of the start and end time ranges of the two independent peak processes. At this time, array H is an empty array. The flood process information table of the flood season in 2012 is shown in Table 2.

[0116] Table 2 Flood process information table of Beibei station in 2012

[0117]

[0118] The flood process in 2012 is shown in Figure 3(b), where the x-axis is the time series (d) and the y-axis is the daily average flow (m 3 / s). The peak threshold k is 10650m 3 / s, as shown by the flow value corresponding to the red dotted line in Figure 3(b); the maximum value in the flow sequence greater than the threshold k is the peak value, and the red and blue points in Figure 3(b) are the peak points. According to the independence judgment condition, there is one single peak and two complex peaks in the flood events identified by Beibei Station during the flood season of 2012. The red points in Figure 3(b) are all single peak peak points and the first peak point of the complex peak, and the blue points are the remaining peak points of the complex peak; according to the start and end point screening conditions, the starting point corresponding to the flood events screened by Beibei Station during the flood season of 2012 is shown as the green point in Figure 3(b), and the end point is shown as the black point in the figure.

[0119] Example 3 (Calculation of peak values ​​and corresponding start and end flow rates of flood events in the array of daily average flow rates measured during the flood season in 2014)

[0120] Step 1, find the peak value: Purpose: Find the peak value in the sequence Q whose value is greater than the threshold, and record the position of the peak value in the time series. Input: measured daily average flow sequence Q, flow threshold k. Output: array RealMAX that records the maximum flow position that meets the threshold k. The specific process is as follows:

[0121] (1) The measured daily average flow data of the flood season in 2014 with stable and fluctuating processes are composed into a sequence Q, with a sequence length n of 184, where i = 1, 2, ..., n. The sequence Q is sorted in ascending order to obtain a new sequence q, and the value corresponding to the 90% sample is found and set as the threshold k = 5442m 3 / s;

[0122] (2) Calculate the first-order backward difference of sequence Q, find the maximum value and save it in the array MAX, MAX = [3,5,9,12,15,18,23,26,31,33,36,39,42,47,57,60,63,67,72,79,82,86,89,94,98,103,105,109,111,113,115,117,120,126,135,138,142,147,153,157,163,166,171,173,177,182];

[0123] (3) Filter out the corresponding flow in the array MAX that satisfies the value greater than the threshold k, and form a new value RealMAX = [72, 126, 135, 138, 142, 153, 182]. The position recorded in RealMAX is the position of the maximum flow that meets the threshold k.

[0124] Step 2: Determine peak independence: Purpose: Determine single peak and complex peak types by limiting the time interval between two adjacent peaks and the minimum value of the two peak intervals. Input: Given standard time interval Δt, actual time interval Δt between two peaks q , the minimum flow limit ANDMin(i) between two peaks, the minimum flow between the two peaks is 0.75*Min(i). Output: Array B that stores the first peak of all single peaks and multiple peaks that meet the independence condition, and array E that stores the last peak of all single peaks and multiple peaks that meet the independence condition. The specific process is as follows:

[0125] (1) Create an empty array B and save the first value 67 in the RealMAX array into B, that is, B =

[72] . At this time, the position corresponding to the first peak is recorded in B;

[0126] (2) Specify the standard time interval Δt=5, set currentValue=RealMAX(1)+Δt, that is, currentValue=77;

[0127] (3) The sequence length of the RealMAX array is n1=7, let s=2, 3, ..., 7. Starting from the second item in the RealMAX array, the RealMAX(s) array is compared with the currentValue. If currentValue≤RealMAX(s), RealMAX(s) is saved in array B and currentValue`=RealMAX(s)+Δt is updated. If currentValue>RealMAX(s), it is not saved in array B. For example, the second item in the RealMAX array, RealMAX(2)=126, is compared with currentValue=77. Since currentValue satisfies≤RealMAX(2), RealMAX(2) is saved in array B. Similarly, currentValue=currentValue` is updated until RealMAX(7) is compared.

[0128] (4) After traversing RealMAX(s), we get the expanded array B`=[72,126,135,153,182], which is the position of the date corresponding to the first peak of all single peaks and complex peaks in the time series;

[0129] (5) Create an empty array E and save the first value 72 in the RealMAX array to E, that is, B =

[72] . At this time, the position corresponding to the first peak is recorded in B. Clear the value of the currentValue` array in step (3) and set currentValue` = RealMAX(1) + Δt, that is, currentValue` = 77;

[0130] (6) Based on step (3), we know that n1=7, i=2, 3, ... 7. We traverse the array from the second item in the RealMAX array and compare RealMAX(s) with currentValue`. If currentValue`≤RealMAX(s), we save RealMAX(s-1) to the array E and update currentValue``=RealMAX(s)+Δt. If currentValue`>RealMAX(i), we do not save it to the array E. For example, we compare the second item in the RealMAX array, RealMAX(2)=126, with currentValue`=77. Since currentValue satisfies≤RealMAX(2), we save RealMAX(1) to the array E (because RealMAX(1) is already in E, we can omit it), and update currentValue``=RealMAX(2)+Δt, that is, currentValue``=131. We repeat this process until RealMAX(7) is compared.

[0131] (7) After traversing RealMAX(s), the expanded array E`=[72,126,142,153,182] is obtained, which is the position of the date corresponding to the last peak of all single peaks and complex peaks in the time series; (8) Arrays B` and E` are obtained. The overlapping values ​​[72,126,153,182] in arrays B` and E` are the positions of single peaks,

[135] in array B` is the position of the first peak of the complex peak, and

[142] in array E` is the position of the last peak of the complex peak. The positions of the peaks that meet the peak threshold and time interval restrictions can be determined, and single peaks and complex peaks can be distinguished.

[0132] (9) Create an empty array Min, compare the flow rates corresponding to adjacent positions of arrays B` and E`, take the minimum value and record it in array Min, array Min = [6840, 8230, 5970, 5970];

[0133] (10) Create an empty ANDMin array, find the minimum flow value of the flow interval corresponding to the arrays B`(s) and E`(s), and save it in the array ANDMin. The array ANDMin = [1070, 1370, 2350, 1230];

[0134] (11) Create an empty array DULIXING, multiply the Min array obtained based on step (9) by the specified coefficient 0.75, compare the sizes of the array ANDMin and 0.75*Min, if ANDMin(i)≥0.75*Min(i), save i to the array DULIXING. Because 0.75*Min=[5130,6172.5,4477.5,4477.5], ANDMin(i)<0.75*Min(i), the array DULIXING is an empty array;

[0135] (12) Create empty arrays oldB and oldE, and record B' and E' at this time in oldB and oldE respectively;

[0136] (13) Delete (DULIXING(i+1)) in array B`, delete (DULIXING(i)) in array E`, and the B` array and E` array will be updated to new arrays. Based on step (11), it is known that the array DULIXING is an empty array, so the B` array and E` array remain unchanged, that is, B` array = B`` array, E` array = E`` array. At this time, the peaks of the time interval limit and the interval minimum flow limit that meet the independence conditions are screened out.

[0137] Step 3, determine the start and end time of the flood: Purpose: Set the start and end flow thresholds of the flood and the time interval limit with the corresponding flood peak, find the start and end points forward or backward according to the size and position of the flood peak flow, and determine the start and end time of the flood. Input: arrays B`` and E`` that meet the independence conditions, arrays yuzhi and enyuzhi that meet the time interval limit, and start and end flow thresholds. Output: arrays realqishi and array realjieshu that meet the time interval limit and flow threshold. The specific process is as follows:

[0138] (1) Create an empty array qishi, found_idx = -1, initialized to -1, indicating that the starting point of the flood event is not found;

[0139] (2) Based on the value B`` obtained in step 2, the length of the sequence is m1=5, let j=1,2,…5, start traversing from B``(j), perform Q(i) traversal within B``(j), i=B``(j-1), search forward, if Q(i)≤0.5*Q(B``(j)), let found_idx=i, add i to the array qishi, if Q(i)>0.5*Q(B``(j)), do not add i to the array qishi, the array qishi=[71,124,133,150,181];

[0140] (3) Create an empty array yuzhi and an empty array realqishi. Based on the standard time interval Δt specified in step 202, set yuzhi = B``-1.5*Δt, array yuzhi = [64.5, 118.5, 127.5, 145.5, 174.5]. Compare qishi(i) and yuzhi(i), take the maximum value and save it in array realqishi. At this time, the starting points of all floods are saved in array realqishi. Array realqishi = [71, 124, 133, 150, 181].

[0141] (4) Create an empty array jieshu, found_idx = -1, initialized to -1, indicating that the end point of the flood event has not been found;

[0142] (5) Based on the value E`` obtained in step 2, the length of the sequence is m2=5, let v=1,2,…5, start traversing from E``(v), perform Q(i) traversal within E``(v), i=E``(v+1), search forward, if Q(i)≤0.5*Q(E``(v)), let found_idx=i, add i to the array jieshu, if Q(i)>0.5*Q(E``(v)), do not add i to the array jieshu, array jieshu=[75,127,144,159,184];

[0143] (6) Create empty arrays endyuzhi and realjieshu, set endyuzhi = E`` + 1.5*Δt, array endyuzhi = [79.5, 133.5, 149.5, 160.5, 189.5], compare jieshu(i) and yuzhi(i), take the smallest one and save it in array realjieshu. At this time, the end point positions of all floods are saved in array realjieshu, array realjieshu = [75, 127, 144, 159, 184].

[0144] (7) The array realqishih and array realjieshu respectively record the starting point and ending point of the flood, and the starting and ending flows must be less than or equal to 0.5 times the corresponding peak flow. The interval between the dates corresponding to the starting and ending flows of the flood and the dates corresponding to the peak flow must be less than or equal to 1.5 times the given standard time interval Δt.

[0145] Step 4, split the continuous flood: Purpose: When the start and end time ranges of two independent peak processes partially overlap, the minimum value between the two flood peaks is used as the split point. Input: all starting point arrays realqishi and all ending point arrays realjieshu. Output: the minimum value between Q(realjieshu(i)) and Q(realqishi(i)). The specific process is as follows:

[0146] (1) Compare the size of realqishi(i) and realjieshu(i);

[0147] (2) If realqishi(i)>realjieshu(i), then find the minimum value between Q(realjieshu(i)) and Q(realqishi(i)) in Q, save the minimum value at the position of Q(i) in array H, and replace realqishi(i) and realjieshu(i) with H(i). Since realqishi(i) is less than realjieshu(i), it means that there is no partial overlap of the start and end time ranges of the two independent peak processes. At this time, array H is an empty array. The flood process information table of the flood season in 2014 is shown in Table 3:

[0148] Table 3 Flood process information table of Beibei station in 2014

[0149]

[0150]

[0151] The flood process in 2014 is shown in Figure 3(c), where the x-axis is the time series (d) and the y-axis is the daily average flow (m 3 / s). The peak threshold k is 5442m 3 / s, as shown by the flow value corresponding to the red dotted line in Figure 3(c); the maximum value in the flow sequence greater than the threshold k is the peak value, and the red and blue points in Figure 3(c) are the peak points. According to the independence judgment condition, there are 3 single-peak floods and 1 complex peak identified by Beibei Station in the flood season of 2014. The red points in Figure 3(c) are all single-peak peak points and the first peak point of the complex peak, and the blue points are the remaining peak points of the complex peak; according to the start and end point screening conditions, the starting point corresponding to the floods screened by Beibei Station in the flood season of 2014 is shown as the green point in Figure 3(c), and the end point is shown as the black point in the figure.

[0152] Example 4 (Calculation of peak values ​​and corresponding start and end flow rates of flood events in the array of daily average flow rates measured during the flood season in 2018)

[0153] Step 1, find the peak value: Purpose: Find the peak value in the sequence Q whose value is greater than the threshold, and record the position of the peak value in the time series. Input: measured daily average flow sequence Q, flow threshold k. Output: array RealMAX that records the maximum flow position that meets the threshold k. The specific process is as follows:

[0154] (1) The measured daily average flow data of the flood season in 2018 with stable and fluctuating processes are composed into a sequence Q, with a sequence length n of 184, where i = 1, 2, ..., n. The sequence Q is sorted in ascending order to obtain a new sequence q, and the value corresponding to the 90% sample is found and set as the threshold k = 6350m 3 / s;

[0155] (2) Calculate the first-order backward difference of sequence Q, find the maximum value and save it in the array MAX, MAX = [5,7,10,14,24,27,30,35,39,43,47,51,58,65,74,78,83,88,90,92,95,97,100,104,107,111,113,115,117,120,124,128,130,133,135,137,140,145,149,152,157,164,168,171,175,177];

[0156] (3) Filter out the corresponding flow in the array MAX that satisfies the value greater than the threshold k, and form a new value RealMAX=[58,65,74,78,95]. The position recorded in RealMAX is the position of the maximum flow that satisfies the threshold k.

[0157] Step 2: Determine peak independence: Purpose: Determine single peak and complex peak types by limiting the time interval between two adjacent peaks and the minimum value of the two peak intervals. Input: Given standard time interval Δt, actual time interval Δt between two peaks q , the minimum flow limit ANDMin(i) between two peaks, the minimum flow between the two peaks is 0.75*Min(i). Output: Array B that stores the first peak of all single peaks and multiple peaks that meet the independence condition, and array E that stores the last peak of all single peaks and multiple peaks that meet the independence condition. The specific process is as follows:

[0158] (1) Create an empty array B and save the first value 58 in the RealMAX array into B, that is, B =

[58] . At this time, the position corresponding to the first peak is recorded in B;

[0159] (2) Specify the standard time interval Δt=5, set currentValue=RealMAX(1)+Δt, that is, currentValue=63;

[0160] (3) The sequence length of the RealMAX array is n1=5, let s=2,3,…,5. Starting from the second item in the RealMAX array, compare the RealMAX(s) array with the currentValue. If currentValue≤RealMAX(s), save RealMAX(s) to array B and update currentValue`=RealMAX(s)+Δt. If currentValue>RealMAX(s), do not save it to array B. For example, compare the second item in the RealMAX array, RealMAX(2)=65, with currentValue=63. Since currentValue satisfies≤RealMAX(2), save RealMAX(2) to array B. Similarly, update currentValue=currentValue` until RealMAX(5) is compared.

[0161] (4) After traversing RealMAX(s), the expanded array B`=[58,65,74,95] is obtained, which is the position of the date corresponding to the first peak of all single peaks and complex peaks in the time series;

[0162] (5) Create an empty array E and save the first value 58 in the RealMAX array to E, that is, B =

[58] . At this time, the position corresponding to the first peak is recorded in B. Clear the value of the currentValue` array in step (3) and set currentValue` = RealMAX(1) + Δt, that is, currentValue` = 63;

[0163] (6) Based on step (3), we know that n1=5, i=2, 3, ... 5. We traverse the array from the second item in the RealMAX array and compare RealMAX(s) with currentValue`. If currentValue`≤RealMAX(s), we save RealMAX(s-1) to array E and update currentValue``=RealMAX(s)+Δt. If currentValue`>RealMAX(i), we do not save it to array E. For example, we compare the second item in the RealMAX array, RealMAX(2)=65, with currentValue`=63. Since currentValue satisfies≤RealMAX(2), we save RealMAX(1) to array E (because RealMAX(1) is already in E, we can omit it), and update currentValue``=RealMAX(2)+Δt, that is, currentValue``=70. We repeat this process until RealMAX(5) is compared.

[0164] (7) After traversing RealMAX(s), the expanded array E`=[58,65,78,95] is obtained, which is the position of the date corresponding to the last peak of all single peaks and complex peaks in the time series;

[0165] (8) Arrays B` and E` are obtained. The overlapping values ​​[58, 65, 95] in arrays B` and E` are the positions of single peaks,

[74] in array B` is the position of the first peak of the complex peak, and

[78] in array E` is the position of the last peak of the complex peak. The positions of the peaks that meet the peak threshold and time interval restrictions can be determined, and single peaks and complex peaks can be distinguished.

[0166] (9) Create an empty array Min, compare the flow rates corresponding to adjacent positions of arrays B` and E`, take the minimum value and record it in array Min, array Min = [8570, 18300, 8710];

[0167] (10) Create an empty ANDMin array, find the minimum flow value of the flow interval corresponding to arrays B`(s) and E`(s), and save it in array ANDMin. Array ANDMin = [3560, 8150, 2180];

[0168] (11) Create an empty array DULIXING, multiply the Min array obtained based on step (9) by the specified coefficient 0.75, compare the sizes of the array ANDMin and 0.75*Min, if ANDMin(i)≥0.75*Min(i), save i to the array DULIXING. Since 0.75*Min=[6427.5,13725,6532.5], ANDMin(i)<0.75*Min(i), the array DULIXING is an empty array;

[0169] (12) Create empty arrays oldB and oldE, and record B` and E` at this time in oldB and oldE respectively.

[0170] (13) Delete (DULIXING(i+1)) in array B`, delete (DULIXING(i)) in array E`, and the B` array and E` array will be updated to new arrays. Based on step (11), it is known that the array DULIXING is an empty array, so the B` array and E` array remain unchanged, that is, B` array = B`` array, E` array = E`` array. At this time, the peaks of the time interval limit and the interval minimum flow limit that meet the independence conditions are screened out.

[0171] Step 3, determine the start and end time of the flood: Purpose: Set the start and end flow thresholds of the flood and the time interval limit with the corresponding flood peak, find the start and end points forward or backward according to the size and position of the flood peak flow, and determine the start and end time of the flood. Input: arrays B`` and E`` that meet the independence conditions, arrays yuzhi and enyuzhi that meet the time interval limit, and start and end flow thresholds. Output: arrays realqishi and array realjieshu that meet the time interval limit and flow threshold. The specific process is as follows:

[0172] (1) Create an empty array qishi, found_idx = -1, initialized to -1, indicating that the starting point of the flood event is not found;

[0173] (2) Based on the value B`` obtained in step 2, the length of the sequence is m1=4, let j=1,2,…4, start traversing from B``(j), perform Q(i) traversal within B``(j), i=B``(j-1), search forward, if Q(i)≤0.5*Q(B``(j)), let found_idx=i, add i to the array qishi, if Q(i)>0.5*Q(B``(j)), do not add i to the array qishi, the array qishi=[56,63,71,93];

[0174] (3) Create an empty array yuzhi and an empty array realqishi. Based on the standard time interval Δt specified in step 202, set yuzhi = B``-1.5*Δt, array yuzhi = [50.5, 57.5, 66.5, 87.5]. Compare qishi(i) and yuzhi(i), take the maximum and save it in array realqishi. At this time, the starting point positions of all floods are saved in array realqishi. Array realqishi = [56, 63, 71, 93].

[0175] (4) Create an empty array jieshu, found_idx = -1, initialized to -1, indicating that the end point of the flood event has not been found;

[0176] (5) Based on the value E`` obtained in step 2, the length of the sequence is m2 = 4, let v = 1, 2, ... 4, start traversing from E``(v), perform Q(i) traversal within E``(v), i = E``(v+1), search forward, if Q(i) ≤ 0.5*Q(E``(v)), let found_idx = i, add i to the array jieshu, if Q(i) > 0.5*Q(E``(v)), do not add i to the array jieshu, array jieshu = [60, 70, 80, 98];

[0177] (6) Create an empty array endyuzhi and an empty array realjieshu, set endyuzhi = E`` + 1.5*Δt, array endyuzhi = [65.5, 72.5, 85.5, 102.5], compare jieshu(i) and yuzhi(i), take the minimum and save it in array realjieshu. At this time, the end point positions of the flood are all saved in array realjieshu, array realjieshu = [60, 70, 80, 98];

[0178] (7) The array realqishih and array realjieshu respectively record the starting point and ending point of the flood, and the starting and ending flows must be less than or equal to 0.5 times the corresponding peak flow. The interval between the dates corresponding to the starting and ending flows of the flood and the dates corresponding to the peak flow must be less than or equal to 1.5 times the given standard time interval Δt.

[0179] Step 4, split the continuous flood: Purpose: When the start and end time ranges of two independent peak processes partially overlap, the minimum value between the two flood peaks is used as the split point. Input: all starting point arrays realqishi and all ending point arrays realjieshu. Output: the minimum value between Q(realjieshu(i)) and Q(realqishi(i)). The specific process is as follows:

[0180] (1) Compare the size of realqishi(i) and realjieshu(i);

[0181] (2) If realqishi(i)>realjieshu(i), then find the minimum value between Q(realjieshu(i)) and Q(realqishi(i)) in Q, save the minimum value at the position of Q(i) in array H, and replace realqishi(i) and realjieshu(i) with H(i). Since realqishi(i) is less than realjieshu(i), it means that there is no partial overlap of the start and end time ranges of the two independent peak processes. At this time, array H is an empty array. The flood process information table of the flood season in 2014 is shown in Table 4:

[0182] Table 4 Flood process information table of Beibei station in 2018

[0183]

[0184] The flood process in 2018 is shown in Figure 3(d), where the x-axis is the time series (d) and the y-axis is the daily average flow (m 3 / s). The peak threshold k is 6350m 3 / s, as shown by the flow value corresponding to the red dotted line in Figure 3(d); the maximum value in the flow sequence greater than the threshold k is the peak value, and the red and blue points in Figure 3(d) are the peak points. According to the independence judgment condition, Beibei Station has one single peak and one complex peak in the flood season of 2018. The red point in Figure 3(d) is the first peak point of all single peak peaks and complex peaks, and the blue point is the remaining peak point of the complex peak; according to the start and end point screening conditions, the starting point corresponding to the flood screened by Beibei Station in the flood season of 2018 is shown as the green point in Figure 3(d), and the end point is shown as the black point in the figure.

[0185] When segmenting consecutive floods, if the end point of one flood coincides with the start point of the next flood, the minimum flow rate between the peaks of the two floods is taken as the segmentation point.

[0186] It is worth noting that the flow sequence position corresponding to the flood peak threshold of different river basins should be judged in combination with the measured average daily flow over many years; similarly, the standard time interval can also be determined based on the measured flood data over many years.

Claims

1. A method for automatically screening flood events based on measured daily average flow, characterized by: The specific steps include: Step 1, setting the peak value threshold and finding the flood maximum value from the measured daily average flow data to determine the flood peak value; Step 2: By setting the time interval limit between two adjacent peaks and the minimum flow limit between the peaks, the independence of the peaks is determined; Step 3, determining the start and end time of the flood by setting the start and end flow thresholds of the flood and the time interval limit with the corresponding flood peak; Step 4: When the start and end time ranges of the flood processes corresponding to two independent peaks partially overlap, split the flood events.

2. The method for automatically screening flood events based on measured daily average flow according to claim 1 is characterized in that: The specific process of step 1 is as follows: Step 1.1, select N consecutive flow rates from the measured daily average flow data to form a sequence Q, the sequence length is n, and i = 1, 2, ..., n; Step 1.2, arrange the sequence Q in step 1.1 in ascending order, record the value corresponding to the 90% sample, set the value as the threshold k, and find the flow in the sequence Q whose value is greater than the threshold k; Step 1.3, create empty arrays MAX and RealMAX, use the first-order posterior difference method to find the location of the maximum value in the sequence Q and record it as array MAX, and select the values ​​in the maximum value that are greater than k as the peak, and save the date of the peak sequence into the array RealMAX, and the length of the peak sequence is recorded as n1.

3. The method for automatically screening flood events based on measured daily average flow according to claim 2 is characterized in that: The specific process of step 2 is as follows: Step 2.1, create an empty array B, and save the first value RealMAX(1) in the RealMAX array obtained based on step 1.3 into B, that is, B=RealMAX(1), and RealMAX(1) is the position of the first peak; Step 2.2, specify the standard time interval Δt, create an empty array currentValue, and set currentValue=RealMAX(1)+Δt; Step 2.3, according to step 1.3, the sequence length of the RealMAX array is n1, let s = 2, 3, ... n1, starting from the second item in the RealMAX array, compare the RealMAX(s) array with the currentValue, if currentValue ≤ RealMAX(s), save RealMAX(s) to array B, update currentValue` = RealMAX(s) + Δt, if currentValue > RealMAX(s), do not save it to array B; Step 2.4, after traversing RealMAX(s), we get the expanded array B', which is the position of the date corresponding to the first peak of all single peaks and complex peaks that meet the time interval restriction in the time series; Step 2.5, create an empty array E, and save the first value RealMAX(1) in the RealMAX array obtained based on step 1.3 into E. RealMAX(1) is the position of the first peak. Step 2.6, clear the value of the currentValue` array in step 2.3, and set currentValue`=RealMAX(1)+Δt based on the standard time interval Δt specified in step 2.2; Step 2.7, based on step 2.3, i = 2, 3, ... n1, traverse the array starting from the second item in the RealMAX array, compare RealMAX(s) with currentValue`, if currentValue`≤RealMAX(s), save RealMAX(s-1) to array E, and update currentValue``=RealMAX(s)+Δt; ​​if currentValue`>RealMAX(i), do not save it to array E; Step 2.7, after traversing RealMAX(s), we get the expanded array E', which is the position of the date corresponding to the last peak of all single-peak and complex-peak cases that meet the time interval restriction in the time series; Step 2.9, based on steps 2.1 to 2.8, the expanded arrays B' and E' are obtained. The overlapping values ​​in arrays B' and E' are the locations of single peaks, and the non-overlapping values ​​in arrays B' and E' are the locations of the first and last peaks corresponding to the complex peak flood, that is, the locations of the peaks that meet the time interval restrictions in the independence condition are determined; Step 2.10, create an empty array Min, compare the flow sizes corresponding to adjacent positions of arrays B` and E`, take the minimum value and record it in array Min; Step 2.11, create an empty ANDMin array, find the minimum flow value of the flow interval corresponding to arrays B`(s) and E`(s), and save it in the ANDMin array; Step 2.12, create an empty array DULIXING, multiply the Min array obtained based on step 2.10 by the specified coefficient 0.75, compare the array ANDMin(s) with 0.75*Min(s), if ANDMin(s)≥0.75*Min(s), save i to the array DULIXING, if ANDMin(s)<0.75*Min(s), do not save i to the array DULIXING, at this time, the position i recorded in the array DULIXING all meets the restriction on the minimum flow value between the two peak intervals in the independence condition; Step 2.13, create empty arrays oldB and oldE, and record B` and E` at this time in oldB and oldE respectively; Step 2.14, delete (DULIXING(i+1)) in array B`, delete (DULIXING(i)) in array E`, array B` and array E` will be updated to new arrays B`` and E``; Step 2.15, repeat steps 2.9-2.14 several times. The condition for jumping out of the loop is that the B`` array is equal to the oldB array, and the E`` array is equal to the oldE array. The loop stops when the array DULIXING is an empty array. At this time, the peaks that meet the independence time interval limit and the interval minimum flow limit are screened out.

4. The method for automatically screening flood events based on measured daily average flow according to claim 3 is characterized in that: The specific process of step 3 is as follows: Step 3.1, create an empty array qishi, found_idx = -1, initialized to -1, indicating that the starting point of the flood event is not found; Step 3.2, based on the value B`` obtained in step 2.14, the sequence length is m1, let j = 1, 2, ... m1, start traversal from B``(j), perform Q(i) traversal within B``(j), i = B``(j-1), search forward, if Q(i) ≤ 0.5*Q(B``(j)), let found_idx = i, add i to the array qishi, if Q(i) > 0.5*Q(B``(j)), do not add i to the array qishi; Step 3.3, create an empty array yuzhi and an empty array realqishi, based on the standard time interval Δt specified in step 2.2, set yuzhi = B``-1.5*Δt, compare qishi(i) and yuzhi(i), take the maximum and save it in the array realqishi, at this time, the starting point positions of the floods are all saved in the array realqishi; Step 3.4, create an empty array jieshu, found_idx = -1, initialized to -1, indicating that the end point of the flood event is not found; Step 3.5, based on the value E`` obtained in step 2.14, the sequence length is m2, let v = 1, 2, ... m2, start traversal from E``(v), perform Q(i) traversal within E``(v), i = E``(v+1), search forward, if Q(i) ≤ 0.5*Q(E``(v)), let found_idx = i, add i to the array jieshu, if Q(i) > 0.5*Q(E``(v)), do not add i to the array jieshu; Step 3.6, create empty array endyuzhi and empty array realjieshu, let endyuzhi = E``+1.5*Δt, compare jieshu(i) and yuzhi(i), take the smallest one and save it in array realjieshu. At this time, the end point positions of all flood sessions are saved in array realjieshu.

5. The method for automatically screening flood events based on measured daily average flow according to claim 4 is characterized in that: The specific process of step 4 is as follows: Step 4.1 Based on step 3.3 and step 3.6, get the array realqishi and the array realjieshu respectively, and compare the sizes of realqishi(i) and realjieshu(i); Step 4.2, if realqishi(i)>realjieshu(i), it indicates that the start and end time ranges of the flood processes corresponding to adjacent independent peaks partially overlap, then find the minimum value of the interval between Q(realjieshu(i)) and Q(realqishi(i)) in Q, and create an empty array H, save the minimum value at the position of Q(i) in array H, and replace realqishi(i) and realjieshu(i) with H(i).

Citation Information

Patent Citations

  • Method and system for automatically identifying session flood

    CN112561214A

Cited By

  • Flood session division method and device, electronic equipment and storage medium

    CN120671021A

  • A method, apparatus, electronic device and storage medium for classifying flood events

    CN120671021B

  • Flood session division method and system based on flood characteristics

    CN120910483A

  • A flood event classification method and system based on flood characteristics

    CN120910483B