Fishery resource environment survey data fusion processing method and display management platform
By using a data fusion processing and display management platform for fishery resource and environmental surveys, the platform analyzes and integrates the temporal dimension changes of fishery resource survey data, solving the problem of isolated data storage in traditional survey methods and improving the efficiency of fishery resource management.
Patent Information
- Application Number
- CN202511697624.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-19
- Publication Date
- 2026-01-20
AI Technical Summary
Traditional methods for surveying fishery resources and the environment rely on a single or limited data source, resulting in isolated data storage and an inability to effectively perform correlation analysis and integration, thus affecting the efficiency of fishery resource management.
This paper provides a data fusion processing and display management platform for fishery resource and environmental surveys. The platform analyzes the time dimension change characteristics of the survey data through fusion computing units, divides fishery resource areas, and performs data fusion processing to generate fused survey data with practical management value.
It improves the efficiency of fishery resource management, and generates more practical survey data through data fusion processing, supporting more accurate fishery management decisions.
Smart Images

Figure CN121365362A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The application belongs to the technical field of fishery management, and particularly relates to a fishery resource and environment investigation data fusion processing method and a display management platform. BACKGROUND
[0002] Fishery resource and environment investigation is the basis for mastering the present situation of fishery resources, evaluating resource potential, monitoring ecological environment changes and scientifically formulating fishery management policies. Traditional investigation methods usually rely on data from a single source or a few sources, and do not perform correlation analysis and fusion processing on the investigation data, resulting in isolated storage of fishery resource data that is correlated in the environment, which is not conducive to the linkage management of fishery resources. SUMMARY
[0003] The purpose of the present application is to provide a fishery resource and environment investigation data fusion processing method and a display management platform, which can manage the correlated fishery resource and environment investigation data by fusion, thereby obtaining more practical fusion investigation data for fishery management and improving the management efficiency of fishery resources.
[0004] To solve the above technical problems, the present application is realized by the following technical scheme: The present application provides a fishery resource and environment investigation data fusion processing display management platform, comprising, an original data storage unit configured to receive and store fishery resource and environment investigation data of each investigation point in a supervision area; a fusion calculation unit configured to respectively count the detection values of the investigation data of each category of each investigation point at multiple investigation time points according to the fishery resource and environment investigation data of each investigation point in the supervision area; to obtain the change characteristics of the investigation data of each category of each investigation point in the time dimension according to the detection values of the investigation data of each category of each investigation point at multiple investigation time points; to classify the investigation points with correlated investigation data into the same fishery resource area according to the change characteristics of the investigation data of each category of each investigation point in the time dimension, and to obtain the data categories with correlated investigation data in each fishery resource area as fusion categories; to perform fusion processing on the investigation data of the fusion categories of the investigation points in each fishery resource area to obtain fusion investigation data of the fusion categories of all investigation points contained in each fishery resource area; a fusion data storage unit configured to receive and store the fusion investigation data of the fusion categories of all investigation points contained in each fishery resource area; a display unit configured to visually display the fusion investigation data of the fusion categories of all investigation points contained in each fishery resource area in response to operation requirements.
[0005] The application further discloses a fishery resource environment investigation data fusion processing method, comprising, The fishery resource environment investigation data of each investigation point in the supervision area is respectively counted according to categories to obtain the detection values of the investigation data of each category of each investigation point at multiple investigation time points; According to the detection values of the investigation data of each category of each investigation point at multiple investigation time points, the change characteristics of the investigation data of each category of each investigation point in the time dimension are obtained; According to the change characteristics of the investigation data of each category of each investigation point in the time dimension, the investigation points with correlation are classified into the same fishery resource area, and the data categories with correlation in each fishery resource area are obtained as fusion categories; In each fishery resource area, the investigation data of the fusion categories of the investigation points are fused to obtain the fused investigation data of the fusion categories of all the investigation points contained in each fishery resource area.
[0006] The application analyzes the detection values of the investigation data of each category of each investigation point at multiple investigation time points through the fusion calculation unit, and then divides the fishery resource area according to the change characteristics of the investigation data in the time dimension, and fuses the fishery data with correlation according to the above, so that the fused investigation data with more practical value for fishery management is obtained.
[0007] Of course, implementing any product of the application does not necessarily need to achieve all the advantages described above at the same time. BRIEF DESCRIPTION OF DRAWINGS
[0008] In order to more clearly illustrate the technical solutions of the embodiments of the application, the following will briefly introduce the drawings needed to be used in the embodiments description. Obviously, the drawings in the following description only some embodiments of the application, and for those skilled in the art, other drawings can also be obtained without creative labor on the basis of these drawings.
[0009] Fig. 1 The functional unit and information interaction schematic diagram of the fishery resource environment investigation data fusion processing display management platform according to an embodiment of the application; Fig. 2 The step flowchart schematic diagram of the fusion calculation unit according to an embodiment of the application; Fig. 3 The step flowchart schematic diagram of the step S2 according to an embodiment of the application; Fig. 4 The step flowchart schematic diagram of the step S3 according to an embodiment of the application; Fig. 5A step flow diagram of step S33 of the present application in an embodiment is shown in the figure. Fig. 6 A step flow diagram of step S4 of the present application in an embodiment is shown in the figure. In the figure, the components represented by the respective reference numerals are listed as follows. 1-raw data storage unit, 2-fusion computing unit, 3-fusion data storage unit, 4-display unit. DETAILED DESCRIPTION
[0010] In order to make the purpose, technical solutions and advantages of the present application clearer, the embodiments of the present application will be described in further detail below with reference to the accompanying drawings.
[0011] It should be noted that the terms "first", "second", and the like in the present application are used to distinguish similar objects, and do not necessarily have to be used to describe a specific order or sequence. It should be understood that the data thus used can be interchanged under appropriate circumstances, so that the embodiments of the present application described herein can be implemented in an order other than those illustrated or described herein. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present application. Rather, they are merely examples of devices and methods consistent with some aspects of the present application as detailed in the appended claims.
[0012] Referring to Figs. 1-2 As shown in the figure, the present application provides a fishery resource environment investigation data fusion processing display management platform, which is divided into a raw data storage unit 1, a fusion computing unit 2, a fusion data storage unit 3, and a display unit 4 in terms of functional units. The raw data storage unit 1 in the present scheme can be a centralized storage database or a virtual unit stored in a dispersed raw storage device. The fusion computing unit 2 is used to perform data mining on the raw data storage unit 1, fuse high-value investigation data with correlations, and store them in the fusion data storage unit 3 for display by the display unit 4.
[0013] The raw data storage unit 1 in the present scheme receives and stores fishery resource environment investigation data of each investigation point in the supervision area during operation. The categories of fishery resource environment investigation data include several types of water quality field sampling record data, phytoplankton data, zooplankton data, benthic organism data, aquatic plant data, physicochemical environment data, marine fishery water area water environment data, marine fishery water area sediment environment data, marine fishery water area ecological index data, marine fishery water area biological residue data, inland fishery water area water environment data, inland fishery water area sediment environment data, inland fishery water area ecological index data, and inland fishery water area biological residue data. In the subsequent scheme, water quality field sampling record data, phytoplankton data, zooplankton data, benthic organism data, aquatic plant data, and physicochemical environment data are selected.
[0014] Next, the fusion computing unit 2 executes step S1 to statistically analyze the fishery resource and environmental survey data of each survey point within the regulatory area according to category, and obtain the detection values of each category of survey data at each survey point at multiple survey times. Then, step S2 can be executed to extract the time-dimensional variation characteristics of each category of survey data at each survey point based on the detection values of each category of survey data at multiple survey times.
[0015] Please see Fig. 3 As shown, to label the variation characteristics of survey data for each survey point in each category, step S21 is first performed to fit the detection values at each survey time within a natural period to obtain the fitted value of the survey data for that category at any time within that natural period. The natural period can be one year, one quarter, or one month; this scheme uses one month. Next, step S22 is performed to uniformly select multiple marked times within that natural period. To achieve uniformity in the time series and facilitate subsequent comparison calculations, step S23 is performed to scale up or down the fitted values of the survey data for that category at each marked time by the same proportion, so that the cumulative value of the scaled fitted values of the survey data for each category at each marked time within that natural period is the same. Finally, step S24 is performed to use the fitted values of the survey data for that category at each marked time as the variation characteristics of the survey data for that category.
[0016] To supplement the explanation of the implementation process of steps S21 to S24 above, source code for some functional modules is provided, with comparative explanations in the comments. To avoid leakage of classified fishery resource data, data that does not affect the implementation of the plan has been anonymized, and the same applies below.
[0017] #include <iostream> #include <vector> #include <string> #include <map> #include <cmath> #include <algorithm> #include <numeric> #include <functional> #include <memory> #include <unordered_map> #include <iomanip> / / Define time constants const int SECONDS_PER_DAY = 86400; const int DAYS_PER_MONTH = 30; / / Simplify by treating each month as 30 days const int DAYS_PER_QUARTER = 90; const int DAYS_PER_YEAR = 365; / ** * @brief Represents a specific survey time and the detected value at that time.
[0018] * / struct Measurement { time_t timestamp; / / Survey timestamp double value; / / Detected value Measurement(time_t t, double v) : timestamp(t), value(v) {} }; / ** * @brief Represents a category's series of detected values at individual survey points.
[0019] * / struct CategoryData { std::string categoryName; / / Category name std::vector <measurement>measurements; / / detection value time series std::vector <double>normalizedFeatures; / / normalized change features CategoryData(const std::string& name) : categoryName(name) {} }; / ** * @brief Represents a natural period type * / enum class NaturalPeriod { MONTHLY, / / monthly period QUARTERLY, / / quarterly period YEARLY / / yearly period }; / ** * @brief Fishery resource and environment survey data change feature extractor * / class TemporalFeatureExtractor { private: std::vector<std::shared_ptr <categorydata>> allCategoryData; public: / ** * @brief Add category data / void addCategoryData(const std::shared_ptr <categorydata>& data) { allCategoryData.push_back(data); } / ** * @brief Main processing function: Extracts variation features from all categories of data. / void extractAllTemporalFeatures(NaturalPeriod periodType) { for (auto& categoryData : allCategoryData) { if (categoryData->measurements.empty()) continue; / / Step 1: Fit the detected values std::vector <double>fittedValues = fitMeasurements(categoryData->measurements, periodType); / / Step 2: Select marker timestamps uniformly within the natural period std::vector<time_t> markerTimestamps = generateMarkerTimestamps(periodType); / / Step 3: Calculate scaling and normalize std::vector <double>normalizedFittedValues = normalizeFittedValues(fittedValues, markerTimestamps); / / Step 4: Store the change features categoryData->normalizedFeatures = normalizedFittedValues; } } / ** * @brief Step 1: Fit the detected values (using cubic spline interpolation) * / std::vector <double>fitMeasurements(const std::vector <measurement>& measurements, NaturalPeriod periodType) { / / Convert timestamp to relative days within a natural cycle std::vector <double>timePoints; std::vector <double>values; time_t startTime = findPeriodStartTime(measurements[0].timestamp, periodType); int periodLength = getPeriodLengthInDays(periodType); for (const auto& m : measurements) { double daysFromStart = static_cast <double>(m.timestamp - startTime) / SECONDS_PER_DAY; timePoints.push_back(daysFromStart); values.push_back(m.value); } / / Fit using cubic spline interpolation return cubicSplineInterpolation(timePoints, values, periodLength); } / ** * @brief Implementation of the cubic spline interpolation algorithm * / std::vector <double>cubicSplineInterpolation(const std::vector <double>& x, const std::vector <double>& y, int outputPoints) { int n = x.size(); if (n < 2) return std::vector <double>(outputPoints, y[0]); std::vector <double>h(n), alpha(n), l(n), mu(n), z(n), c(n),b(n), d(n); / / Compute step size for (int i = 0; i < n - 1; i++) { h[i] = x[i + 1] - x[i]; } / / Compute alpha for (int i = 1; i < n - 1; i++) { alpha[i] = (3.0 / h[i]) * (y[i + 1] - y[i]) - (3.0 / h[i- 1]) * (y[i] - y[i - 1]); } / / Initialize matrices l[0] = 1.0; mu[0] = 0.0; z[0] = 0.0; / / Forward elimination for (int i = 1; i < n - 1; i++) { l[i] = 2.0 * (x[i + 1] - x[i - 1]) - h[i - 1] * mu[i -1]; mu[i] = h[i] / l[i]; z[i] = (alpha[i] - h[i - 1] * z[i - 1]) / l[i]; } / / Set boundary conditions (natural spline) l[n - 1] = 1.0; z[n - 1] = 0.0; c[n - 1] = 0.0; / / Back substitution for (int j = n - 2; j >= 0; j--) { c[j] = z[j] - mu[j] * c[j + 1]; b[j] = (y[j + 1] - y[j]) / h[j] - h[j] * (c[j + 1] + 2.0* c[j]) / 3.0; d[j] = (c[j + 1] - c[j]) / (3.0 * h[j]); } / / Generate points on the fitted curve std::vector <double>fittedValues; double step = static_cast <double>(x.back()) / (outputPoints -1); for (int i = 0; i < outputPoints; i++) { double x_val = i * step; / / Find the interval containing x_val int j = 0; while (j < n - 1 && x_val > x[j + 1]) { j++; } If (j >= n - 1) j = n - 2; double dx = x_val - x[j]; double interpolatedValue = y[j] + b[j] * dx + c[j] * dx *dx + d[j] * dx * dx * dx; fittedValues.push_back(interpolatedValue); } return fittedValues; } / ** * @brief Step 2: Generate marker times uniformly within the natural period / std::vector<time_t> generateMarkerTimestamps(NaturalPeriodperiodType) { std::vector<time_t> markers; time_t currentTime = time(nullptr); time_t periodStart = findPeriodStartTime(currentTime,periodType); int periodDays = getPeriodLengthInDays(periodType); int markerCount = getMarkerCount(periodType); for (int i = 0; i < markerCount; i++) { double fraction = static_cast <double>(i) / (markerCount -1); time_t markerTime = periodStart + static_cast<time_t> (fraction * periodDays * SECONDS_PER_DAY); markers.push_back(markerTime); } return markers; } / ** * @brief Step 3: Scaling and normalizing the fitted values / std::vector <double>normalizeFittedValues(const std::vector <double>&fitValues, const std::vector<time_t> & markerTimestamps) { if (fittedValues.size() != markerTimestamps.size()) { throw std::runtime_error("Fitted values and markertimestamps size mismatch"); } / / Calculate the current cumulative value double currentSum = std::accumulate(fittedValues.begin(),fittedValues.end(), 0.0); / / Target cumulative value (average multiplied by points) double targetSum = fittedValues.size() * (*std::max_element(fittedValues.begin(), fittedValues.end())); / / Calculate scaling ratio double scaleFactor = (currentSum > 0) ? targetSum / currentSum : 1.0; / / Application scaling std::vector <double>normalizedValues; for (double value : fittedValues) { normalizedValues.push_back(value * scaleFactor); } return normalizedValues; } / ** * @brief Get the start time of the natural period * / time_t findPeriodStartTime(time_t timestamp, NaturalPeriod periodType) { std::tm* timeinfo = std::localtime(×tamp); switch (periodType) { case NaturalPeriod::MONTHLY: timeinfo->tm_mday = 1; break; case NaturalPeriod::QUARTERLY: timeinfo->tm_mday = 1; timeinfo->tm_mon = (timeinfo->tm_mon / 3) * 3; / / Start month of quarter break; case NaturalPeriod::YEARLY: timeinfo->tm_mday = 1; timeinfo->tm_mon = 0; break; } timeinfo->tm_hour = 0; timeinfo->tm_min = 0; timeinfo->tm_sec = 0; return std::mktime(timeinfo); } / ** * @brief Get the length of a natural period in days * / int getPeriodLengthInDays(NaturalPeriod periodType) { switch (periodType) { case NaturalPeriod::MONTHLY: return DAYS_PER_MONTH; case NaturalPeriod::QUARTERLY: return DAYS_PER_QUARTER; case NaturalPeriod::YEARLY: return DAYS_PER_YEAR; default: return DAYS_PER_YEAR; } } / ** * @brief Get the number of marker times * / int getMarkerCount(NaturalPeriod periodType) { switch (periodType) { case NaturalPeriod::MONTHLY: return 12; / / 12 markers per month case NaturalPeriod::QUARTERLY: return 8; / / 8 markers per quarter case NaturalPeriod::YEARLY: return 24; / / 24 markers per year default: return 12; } } / ** * @brief Output the change feature result * / void printFeatures() const { for (const auto& categoryData : allCategoryData) { std::cout << "Category: " << categoryData->categoryName << std::endl; std::cout << "Change Characteristics: "; for (size_t i = 0; i < categoryData->normalizedFeatures.size(); i++) { std::cout << std::fixed << std::setprecision(3) << categoryData->normalizedFeatures[i]; if (i < categoryData->normalizedFeatures.size() - 1) { std::cout << ", "; } } std::cout << std::endl << "---" << std::endl; } } }; / / Example usage int main() { TemporalFeatureExtractor extractor; / / Create example data - water quality data (monthly period) auto waterQualityData = std::make_shared <categorydata>("Water quality field sampling record data"); time_t baseTime = time(nullptr); for (int i = 0; i < 6; i++) { / / 6 months of data waterQualityData->measurements.push_back( Measurement(baseTime + i * 30 * SECONDS_PER_DAY, 7.0 +0.2 * i + 0.1 * (i % 3)) ); } / / Creating sample data - phytoplankton data (quarterly cycle) auto phytoplanktonData = std::make_shared <categorydata>("phytoplankton data"); for (int i = 0; i < 4; i++) { / / 4 quarters of data phytoplanktonData->measurements.push_back( Measurement(baseTime + i * 90 * SECONDS_PER_DAY, 1000 +200 * i + 50 * (i % 2)) ); } / / Add data and extract features extractor.addCategoryData(waterQualityData); extractor.addCategoryData(phytoplanktonData); / / Extract monthly variation features std::cout << "=== Monthly variation features ===" << std::endl; extractor.extractAllTemporalFeatures(NaturalPeriod::MONTHLY); extractor.printFeatures(); / / Extract quarterly variation features std::cout << "\n=== Quarterly variation features ===" << std::endl; extractor.extractAllTemporalFeatures(NaturalPeriod::QUARTERLY); extractor.printFeatures(); return 0; } The above code realizes the extraction function of the time dimension change characteristics of the fishery resource environment investigation data. In the running process, firstly, periodic fitting processing is carried out, the original detection value is smoothed and fitted using the cubic spline interpolation algorithm, the continuous fitting curve of any time in the natural period (month, season, year) is generated, and the data sparseness and unevenness problem is effectively solved. Then, the marked time point is generated. According to the selected natural period type, a plurality of marked time points are uniformly generated in the period, and a standardized time reference framework is provided for feature extraction. Then, normalization scaling is carried out. The fitting values of different categories are scaled by the same proportion through mathematical transformation, so that the cumulative values of each category data in the period are standardized, the dimension difference is eliminated, and the subsequent correlation analysis is facilitated. Finally, the feature vector is constructed. The scaled marked time fitting value is used as the final time change characteristic, and the feature vector which can represent the periodic change rule of each category data is formed.
[0020] The scheme converts the original discrete time sequence data into a standardized periodic characteristic representation through mathematical modeling and signal processing technology, and provides a reliable feature basis for subsequent data fusion and region division.
[0021] Referring to FIGS. 1, 2 and 3, Fig. 2 and 4 After the change characteristics of each category of survey data of each survey point are quantified, the survey points with correlated survey data can be classified into the same fishery resource region according to the change characteristics of each category of survey data of each survey point in the time dimension in step S3. In order to reduce the complexity of calculation classification, firstly, the category of survey data with the maximum change value of fitting value of each marked time in the natural period less than the set value can be divided into a non-fluctuation data category according to the change characteristics of each category of survey data of each survey point in the time dimension in step S31, and vice versa. Then, the survey points containing the same fluctuation data category can be classified into the same pre-fishery resource region in step S32. Then, each pre-fishery resource region can be divided into a plurality of interrelated sub-regions in the state of each fluctuation data category in the pre-fishery resource region according to the change characteristics of the survey data of the fluctuation data category in the time dimension in step S33.
[0022] Referring to FIGS. 1, 2 and 3, Fig. 5 As shown, in the process of dividing the interrelated sub-regions, first, a suitable seed survey point needs to be selected as the basis for dividing the interrelated sub-regions. Since the survey points within the interrelated sub-regions are consistent, and the survey points between two interrelated sub-regions are quite different, a suitable seed survey point can be selected by calculating the survey point outlier. Specifically, first, step S331 can be performed to calculate, for each survey point, the cumulative value of the fluctuation separation degree of the survey point from each other survey point as the outlier of the survey point. Next, step S332 can be performed to arrange the survey points in order of the numerical value of the outlier to obtain a survey point sequence. Next, step S333 can be performed to continuously select the survey points with the smallest and largest outliers as seed survey points.
[0023] After selecting the seed survey points, step S334 can be performed to calculate the cumulative value of the difference between the fitting values of the survey data of any two survey points in the natural period at each corresponding marker time as the fluctuation separation degree between the two survey points. Next, step S335 can be performed to divide each survey point in the pre-fishery resource region other than the seed survey point into the same interrelated sub-region as the seed survey point with the smallest fluctuation separation degree. Next, step S336 can be performed to determine whether there is geographical overlap between the survey points included in each interrelated sub-region. If the determination is no, it means that the interrelated sub-region currently classified is appropriate, so next, step S337 can be performed to obtain a plurality of interrelated sub-regions in the pre-fishery resource region under the state of the fluctuation data category; If the determination in step S336 is yes, it means that the interrelated sub-region currently classified is incorrect, so a plurality of survey points need to be selected as seed survey points. Usually, the number of interrelated sub-regions classified is insufficient due to insufficient seed survey points, so next, step S338 can be performed to add one survey point as a seed survey point in the survey point sequence along the order of the numerical value of the outlier from large to small each time a seed survey point is reselected. Then return to perform step S335 and step S336 to reclassify the interrelated sub-regions and determine whether there is overlap, until a plurality of interrelated sub-regions in the pre-fishery resource region under the state of the fluctuation data category are obtained. The present scheme obtains the required interrelated sub-regions through continuous iteration. Of course, in order to shorten the response time, the maximum number of iterations can be set to sacrifice unnecessary accuracy to improve the calculation speed.
[0024] In order to supplement the implementation process of steps S331 to S338, the source code of part of the functional modules is provided, and the annotation part is explained and described.
[0025] #include <iostream> #include <vector> #include <string> #include <map> #include <cmath> #include <algorithm> #include <numeric> #include <unordered_map> #include <set> #include <memory> #include <queue> #include <iomanip> #include <limits> / ** * @brief Represents the geographic coordinates and feature data of a survey point * / struct SurveyPoint { int pointId; double latitude; double longitude; std::vector <double>fluctuationFeatures; / / fluctuation data class feature vector SurveyPoint(int id, double lat, double lon, const std::vector <double>& features) : pointId(id), latitude(lat), longitude(lon),fluctuationFeatures(features) {} }; / ** * @brief indicates interconnected regions / struct CorrelationPartition { int partitionId; std::vector <int>pointIds; / / The survey point IDs contained in this partition std::vector <std::pair<double, double> > geographicBounds; / / Geographic boundaries CorrelationPartition(int id) : partitionId(id) {} }; / ** * @brief Interconnected Region Splitter / class CorrelationPartitioner { private: std::vector <surveypoint>points; std::vector <double>outlierDegrees; std::vector <int>pointSequence; std::vector <correlationpartition>partitions; public: / ** * @brief Set survey point data * / void setPoints(const std::vector <surveypoint>& surveyPoints) { points = surveyPoints; } / ** * @brief Main processing function: Performs inter-correlation partitioning / std::vector <correlationpartition>partitionRegion(int maxPartitions = 5) { if (points.empty()) return {}; / / Step 1: Calculate outlier degrees for each survey point calculateOutlierDegrees(); / / Step 2: Sort the survey points by outlier degree to get a sequence sortPointsByOutlierDegree(); / / Step 3: Initial seed point selection (minimum and maximum outlier degrees) std::vector <int>seedPoints = {pointSequence.front(),pointSequence.back()}; / / Step 4: Iterate partitioning until conditions are met bool hasGeographicOverlap = true; int iterationCount = 0; while (hasGeographicOverlap && seedPoints.size() <points.size() && iterationCount < maxPartitions * 2) { iterationCount++; / / Use current seed points for partitioning partitions = createPartitionsWithSeeds(seedPoints); / / Check for geographic overlap hasGeographicOverlap = checkGeographicOverlap(partitions); if (hasGeographicOverlap) { / / Add next most outlier point as new seed if (seedPoints.size() < pointSequence.size()) { int nextSeedIndex = pointSequence.size() -seedPoints.size() - 1; if (nextSeedIndex >= 0) { seedPoints.push_back(pointSequence[nextSeedIndex]); std::cout << "Adding new seed point: " <<pointSequence[nextSeedIndex] << " (Outlier Degree: " << outlierDegrees[pointSequence[nextSeedIndex]] << ")" << std::endl; } } } } if (!hasGeographicOverlap) { std::cout << "Successfully partitioned " << partitions.size() << " interdependent regions" << std::endl; } else { std::cout << "Reached maximum iteration count, current partition " << partitions.size() << " regions" << std::endl; } return partitions; } private: / ** * @brief Step 1: Calculate outlier degrees for each survey point * / void calculateOutlierDegrees() { int n = points.size(); outlierDegrees.assign(n, 0.0); / / Calculate volatility separation between all pairs of points std::vector<std::vector <double>> separationMatrix(n, std::vector <double>(n, 0.0)); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { double separation = calculateFluctuationSeparation(points[i], points[j]); separationMatrix[i][j] = separation; separationMatrix[j][i] = separation; } } / / Calculate the outlier of each point (the sum of the outliers of all other points). for (int i = 0; i < n; i++) { double totalSeparation = 0.0; for (int j = 0; j < n; j++) { if (i != j) { totalSeparation += separationMatrix[i][j]; } } outlierDegrees[i] = totalSeparation; } / / Output outlier information std::cout << "Outlier calculation completed for each survey point:" << std::endl; for (int i = 0; i < n; i++) { std::cout << "Point" << i << " (ID: " << points[i].pointId << ") OutlierDegrees: " << outlierDegrees[i] << std::endl; } } / ** * @brief Calculate the degree of dispersion of fluctuations between two survey points / double calculateFluctuationSeparation(const SurveyPoint& point1, const SurveyPoint& point2) { if (point1.fluctuationFeatures.empty() || point2.fluctuationFeatures.empty() || point1.fluctuationFeatures.size()!=point2.fluctuationFeatures.size()) { return std::numeric_limits <double>::max(); } double totalDifference = 0.0; for (size_t i = 0; i < point1.fluctuationFeatures.size(); i++) { totalDifference += std::abs(point1.fluctuationFeatures[i]- point2.fluctuationFeatures[i]); } return totalDifference; } / ** * @brief Step 2: Sort by outlier to obtain the survey point sequence / void sortPointsByOutlierDegree() { pointSequence.resize(points.size()); std::iota(pointSequence.begin(), pointSequence.end(), 0); / / Sort by outlier in ascending order std::sort(pointSequence.begin(), pointSequence.end(), [this](int a, int b) { return outlierDegrees[a] <outlierDegrees[b];}); std::cout << "Sequence of survey points (sorted in ascending order of outlier): "; for (int idx : pointSequence) { std::cout << points[idx].pointId << "(" << outlierDegrees[idx] << ") "; } std::cout << std::endl; } / ** * @brief Create partitions using seed points * / std::vector <correlationpartition>createPartitionsWithSeeds(conststd::vector <int>& seedIndices) { std::vector <correlationpartition>newPartitions; / / Create a partition for each seed point for (size_t i = 0; i < seedIndices.size(); i++) { CorrelationPartition partition(i + 1); partition.pointIds.push_back(points[seedIndices[i]].pointId); newPartitions.push_back(partition); } / / Assign non-seed points to the nearest partition for (int i = 0; i < points.size(); i++) { / / Skip seed points if (std::find(seedIndices.begin(), seedIndices.end(), i)!= seedIndices.end()) { continue; } / / Find the seed point with the smallest separation int nearestSeedIndex = -1; double minSeparation = std::numeric_limits <double>::max(); for (size_t j = 0; j < seedIndices.size(); j++) { double separation = calculateFluctuationSeparation(points[i], points[seedIndices[j]]); if (separation < minSeparation) { minSeparation = separation; nearestSeedIndex = j; } } if (nearestSeedIndex >= 0) { newPartitions[nearestSeedIndex].pointIds.push_back(points[i].pointId); } } / / Calculate the geographic boundaries of each partition for (auto& partition : newPartitions) { calculateGeographicBounds(partition); } return newPartitions; } / ** * @brief Calculate the geographic boundaries of the partition / void calculateGeographicBounds(CorrelationPartition& partition) { if (partition.pointIds.empty()) return; std::vector <double>lats, lons; for (int pointId : partition.pointIds) { auto it = std::find_if(points.begin(), points.end(), [pointId](const SurveyPoint& p) { return p.pointId == pointId;}); if (it != points.end()) { lats.push_back(it->latitude); lons.push_back(it->longitude); } } if (!lats.empty() &&!lons.empty()) { double minLat = *std::min_element(lats.begin(), lats.end()); double maxLat = *std::max_element(lats.begin(), lats.end()); [[ID=‘23]] double minLon = *std::min_element(lons.begin(), lons.end()); double maxLon = *std::max_element(lons.begin(), lons.end()); partition.geographicBounds = { {minLat, maxLat}, {minLon, maxLon} }; } } / ** * @brief Check whether there is cross - mixing in the geographical distribution * / bool checkGeographicOverlap(const std::vector <correlationpartition>& partitions) { if (partitions.size() < 2) return false; for (size_t i = 0; i < partitions.size(); i++) { for (size_t j = i + 1; j < partitions.size(); j++) { if (partitions[i].geographicBounds.empty() ||partitions[j].geographicBounds.empty()) { continue; } / / Check latitude range overlap bool latOverlap = (partitions[i].geographicBounds[0].first <= partitions[j].geographicBounds[0].second && partitions[i].geographicBounds[0].second >= partitions[j].geographicBounds[0].first); / / Check longitude range overlap bool lonOverlap = (partitions[i].geographicBounds[1].first <= partitions[j].geographicBounds[1].second && partitions[i].geographicBounds[1].second >= partitions[j].geographicBounds[1].first); if (latOverlap && lonOverlap) { std::cout << "Partitions " << partitions[i].partitionId<< " and " << partitions[j].partitionId << " are geographically cross-contaminated" << std::endl; return true; } } } return false; } public: / ** * @brief Output partition results / void printPartitionResults() const { std::cout << "\n=== Interrelated region partitioning result===" << std::endl; for (const auto& partition : partitions) { std::cout << "partition" << partition.partitionId << ":" << ... <std::endl; std::cout << " Contains survey points: "; for (int pointId : partition.pointIds) { std::cout << pointId << " "; } std::cout << std::endl; if (!partition.geographicBounds.empty()) { std::cout << "Geographic range: latitude[" < <partition.geographicBounds[0].first << ", " << partition.geographicBounds[0].second << "], Longitude [" << partition.geographicBounds[1].first << ", " << partition.geographicBounds[1].second << "]" << std::endl; } std::cout << "---" << std::endl; } } }; / / Example usage int main() { CorrelationPartitioner partitioner; / / Create sample survey point data (contains geographic coordinates and wave characteristics) std::vector <surveypoint>points = { / / First group: close geographical location, similar fluctuation characteristics SurveyPoint(1, 39.90, 116.40, {1.0, 1.2, 1.1, 1.3}), SurveyPoint(2, 39.91, 116.41, {1.1, 1.3, 1.2, 1.4}), SurveyPoint(3, 39.89, 116.39, {0.9, 1.1, 1.0, 1.2}), / / Second group: close geographical location, similar but different fluctuation characteristics from the first group SurveyPoint(4, 39.80, 116.30, {2.0, 2.2, 2.1, 2.3}), SurveyPoint(5, 39.81, 116.31, {2.1, 2.3, 2.2, 2.4}), / / Third group: far geographical location, large difference in fluctuation characteristics SurveyPoint(6, 39.70, 116.50, {3.0, 3.5, 3.2, 3.8}), SurveyPoint(7, 39.71, 116.51, {3.2, 3.7, 3.4, 4.0}) }; partitioner.setPoints(points); / / Execute partitioning auto partitions = partitioner.partitionRegion(); / / Output results partitioner.printPartitionResults(); return 0; } The above code implements an automatic division algorithm of inter-correlation sub-regions based on fluctuation separation degree and geographical distribution characteristics. In the running process, firstly, the outlier degree calculation is performed, the fluctuation separation degree cumulative value of each survey point with all other points is calculated, and the abnormality degree of each point is quantified to provide a basis for seed point selection. Then, intelligent seed selection is performed, the points with the minimum and maximum outlier degrees are selected as the initial seeds, and the number of seed points is gradually increased through iteration to realize an adaptive partitioning process. Then, the fluctuation separation degree measurement is performed, the feature similarity between point pairs is accurately calculated based on the difference accumulation of the fitting values at the marked time in the natural period to ensure the content relevance of the partitioning. Geographical distribution verification is also performed by checking the geographical boundary overlap of the partitioning to ensure that the division result not only has feature similarity, but also has reasonable distribution in geographical space, avoiding cross confusion. Finally, through the iterative optimization mechanism: when geographical intersection is found, the seed points are automatically increased for re-division until the partitioning result that meets the geographical distribution requirements is obtained.
[0026] The algorithm realizes scientific and reasonable automatic division of regions by combining time dimension feature similarity and geographical spatial distribution constraints, and provides reliable technical support for fishery resource management.
[0027] Please continue to refer to Fig. 2 and 4 After dividing the pre-fishery resource region into several inter-correlation sub-regions in the fluctuation data category state, step S34 can be performed to calculate the overlap value of each inter-correlation sub-region of each fluctuation data category with the inter-correlation sub-regions of other fluctuation data categories in each pre-fishery resource region as the selected degree of the fluctuation data category. Step S35 can be performed to select the inter-correlation sub-region of the fluctuation data category with the maximum selected degree as the fishery resource region in the pre-fishery resource region. Finally, step S36 can be performed to obtain all the fishery resource regions in each pre-fishery resource region.
[0028] In each pre-fishery resource region, the fluctuation data category with the maximum selected degree is selected as the fusion category of the fishery resource region contained in the pre-fishery resource region. Of course, the fluctuation data category with the second largest selected degree or within a certain range can also be selected as the fusion category according to customer needs.
[0029] Please refer to Fig. 2 and 5 After the fishery resource region and the corresponding fusion category are divided, a fusion operation can also be performed on the data to avoid the influence of redundant data on subsequent fishery resource management. That is, step S4 is performed to fuse the survey data of the survey points in each fishery resource region to obtain the fusion survey data of all the survey points in each fishery resource region.
[0030] In the process of data fusion, first, the data set of the fusion category of the survey data of the survey point can be formed into one data set in step S41. When the data structure is consistent, the data set B can be spliced after the data set A; when the data structure is inconsistent, new fields in the data set B can be added to the data set A, and the values are all set to null, and new fields in the data set A are added to the data set B, and the values are all set to null, and then the data set B is spliced after the data set A. In the process of data record redundancy processing, after the data set is spliced, there can be problems such as record duplication and data conflict, which need to be excluded through data inspection.
[0031] Then, multiple data sets with the same key field can be aggregated into one data set with an increased attribute field in step S42. If the main data set is set, the other data sets are aggregated based on the main data set, and the number of records of the final aggregation corresponds to the number of records of the main data set; if the main data set is not set, the main keys of multiple data sets are spliced and de-duplicated, and the number of records of the final aggregation is the union of multiple data sets. In the process of field redundancy processing, after the fields are aggregated, there can be problems such as field duplication and data conflict, which need to be excluded through data inspection.
[0032] Next, the numerical value data in the data set can be smoothed in step S43. In addition to being used to eliminate detected noise data, it can also be used to analyze noise in data values that meet detection requirements. Through the data binning method, the numerical value is divided into several bins, and the data in each bin can be uniformly averaged or boundary valued, thereby realizing data smoothing. Abnormal data is found through data clustering, similar or adjacent data is aggregated together to form various cluster sets, and data outside the cluster set can be considered as abnormal data, which can be deleted or modified. Data is smoothed through data regression fitting function. Linear regression needs at least two variable fields to fit a straight line, so that one field can predict another field. Multilinear regression involves more than two fields, and the data is smoothed and abnormal data is removed through the fitting function.
[0033] Finally, the step S44 can be performed to split and combine the set fields to convert into new fields. For the data with obvious rules, direct splitting can be performed to directly produce new data fields from the parts of the fields, and the direct splitting includes splitting X bits from left to right, splitting X bits from right to left, and splitting X bits from the Mth bit. The parts of the fields need to be converted. After the data splitting, specific characters need to be added in the fields, including adding characters at the beginning, adding characters at the end, adding characters at the Xth bit, and adding characters before (or after) a certain fixed character. The data merging process needs to directly merge multiple fields into one field, or convert and then merge into one field.
[0034] Please continue to refer to Fig. 1 and 2 As shown in the figure, in order to facilitate centralized management, the fusion data storage unit 3 in the platform can receive and store the fusion survey data of the fusion categories of all the survey points in each fishery resource area, thereby realizing centralized storage management. The display unit 4 in the scheme is used to respond to the operation demand and visually display the fusion survey data of the fusion categories of all the survey points in each fishery resource area. Of course, the display unit of the scheme can be a virtual functional unit, such as a software display window of a user's mobile device.
[0035] The flowcharts and block diagrams in the drawings show the possible implementation architecture, functions and operations of the apparatuses, systems, methods and computer program products according to the embodiments of the present application. In this regard, each block in the flowcharts or block diagrams can represent a module, a program segment or a part of instructions, which contains one or more executable instructions for implementing the specified logical functions. In some alternative implementations, the functions annotated in the blocks can also occur in different orders from those annotated in the drawings. For example, two consecutive blocks can actually be executed substantially in parallel, and they can also be executed in reverse order, depending on the functions involved.
[0036] It should also be noted that each block in the block diagrams and / or flowcharts, and the combination of the blocks in the block diagrams and / or flowcharts, can be implemented by hardware, such as a circuit or an ASIC (Application Specific Integrated Circuit), which performs the corresponding functions or actions, or can be implemented by a combination of hardware and software, such as firmware, etc.
[0037] Although the application has been described in connection with various embodiments, it will be understood that the application is capable of further modifications. These and other changes, along with the apparent alternatives and equivalents, fall within the scope of the claimed application. The following claims define the scope of the application. Any provisions expressed in language to the effect that a certain feature, structure, or characteristic "is" or "contains" something should be understood as not excluding the presence of additional features, structures, or characteristics. For a definition of "comprising" and "including" and the like, see the appended claims.
[0038] Various embodiments of the application have been described in connection with the embodiments described above. The descriptions are intended to be illustrative of the application and not to limit the scope of the application. Numerous modifications and adaptations thereof will be apparent to those skilled in the art without departing from the scope of the described embodiments. The scope of the application includes all of the novel, useful, and novel- useful combinations and subcombinations of the various elements, features, and functions disclosed herein. This summary is intended to be exemplary, rather than exhaustive, and does not limit the scope of the embodiments described herein. The above description is intended to be illustrative, and not restrictive. Many modifications and changes can occur to those skilled in the art without departing from the scope of the described embodiments. The scope of the embodiments described herein is not to be limited by the specific illustrative embodiments presented herein.< / surveypoint> < / correlationpartition> It should be noted that there is a possible error in the original text where an extra single quote is added in line 23 during the translation process. It should be removed to ensure the accuracy of the translation. The corrected translation is as follows: lats, lons; for (int pointId : partition.pointIds) { <00,00547> auto it = std::find_if(points.begin(), points.end(), [pointId](const SurveyPoint& p) { return p.pointId == pointId;}); if (it != points.end()) { lats.push_back(it->latitude); lons.push_back(it->longitude); } } if (!lats.empty() &&!lons.empty()) { double minLat = *std::min_element(lats.begin(), lats.end()); double maxLat = *std::max_element(lats.begin(), lats.end()); double minLon = *std::min_element(lons.begin(), lons.end()); double maxLon = *std::max_element(lons.begin(), lons.end()); partition.geographicBounds = { {minLat, maxLat}, {minLon, maxLon} }; } } / ** * @brief Check whether there is cross - mixing in the geographical distribution * / bool checkGeographicOverlap(const std::vector <correlationpartition>& partitions) { if (partitions.size() < 2) return false; for (size_t i = 0; i < partitions.size(); i++) { for (size_t j = i + 1; j < partitions.size(); j++) { if (partitions[i].geographicBounds.empty() ||partitions[j].geographicBounds.empty()) { continue; } / / Check latitude range overlap bool latOverlap = (partitions[i].geographicBounds[0].first <= partitions[j].geographicBounds[0].second && partitions[i].geographicBounds[0].second >= partitions[j].geographicBounds[0].first); / / Check longitude range overlap bool lonOverlap = (partitions[i].geographicBounds[1].first <= partitions[j].geographicBounds[1].second && partitions[i].geographicBounds[1].second >= partitions[j].geographicBounds[1].first); if (latOverlap && lonOverlap) { std::cout << "Partitions " << partitions[i].partitionId<< " and " << partitions[j].partitionId << " are geographically cross-contaminated" << std::endl; return true; } } } return false; } public: / ** * @brief Output partition results / void printPartitionResults() const { std::cout << "\n=== Interrelated region partitioning result===" << std::endl; for (const auto& partition : partitions) { std::cout << "partition" << partition.partitionId << ":" << ... <std::endl; std::cout << " Contains survey points: "; for (int pointId : partition.pointIds) { std::cout << pointId << " "; } std::cout << std::endl; if (!partition.geographicBounds.empty()) { std::cout << "Geographic range: latitude[" < <partition.geographicBounds[0].first << ", " << partition.geographicBounds[0].second << "], Longitude [" << partition.geographicBounds[1].first << ", " << partition.geographicBounds[1].second << "]" << std::endl; } std::cout << "---" << std::endl; } } }; / / Example usage int main() { CorrelationPartitioner partitioner; / / Create sample survey point data (contains geographic coordinates and wave characteristics) std::vector <surveypoint>points = { / / First group: close geographical location, similar fluctuation characteristics SurveyPoint(1, 39.90, 116.40, {1.0, 1.2, 1.1, 1.3}), SurveyPoint(2, 39.91, 116.41, {1.1, 1.3, 1.2, 1.4}), SurveyPoint(3, 39.89, 116.39, {0.9, 1.1, 1.0, 1.2}), / / Second group: close geographical location, similar but different fluctuation characteristics from the first group SurveyPoint(4, 39.80, 116.30, {2.0, 2.2, 2.1, 2.3}), SurveyPoint(5, 39.81, 116.31, {2.1, 2.3, 2.2, 2.4}), / / Third group: far geographical location, large difference in fluctuation characteristics SurveyPoint(6, 39.70, 116.50, {3.0, 3.5, 3.2, 3.8}), SurveyPoint(7, 39.71, 116.51, {3.2, 3.7, 3.4, 4.0}) }; partitioner.setPoints(points); / / Execute partitioning auto partitions = partitioner.partitionRegion(); / / Output results partitioner.printPartitionResults(); return 0; } The above code implements an automatic division algorithm of inter-correlation sub-regions based on fluctuation separation degree and geographical distribution characteristics. In the running process, firstly, the outlier degree calculation is performed, the fluctuation separation degree cumulative value of each survey point with all other points is calculated, and the abnormality degree of each point is quantified to provide a basis for seed point selection. Then, intelligent seed selection is performed, the points with the minimum and maximum outlier degrees are selected as the initial seeds, and the number of seed points is gradually increased through iteration to realize an adaptive partitioning process. Then, the fluctuation separation degree measurement is performed, the feature similarity between point pairs is accurately calculated based on the difference accumulation of the fitting values at the marked time in the natural period to ensure the content relevance of the partitioning. Geographical distribution verification is also performed by checking the geographical boundary overlap of the partitioning to ensure that the division result not only has feature similarity, but also has reasonable distribution in geographical space, avoiding cross confusion. Finally, through the iterative optimization mechanism: when geographical intersection is found, the seed points are automatically increased for re-division until the partitioning result that meets the geographical distribution requirements is obtained.
[0026] The algorithm realizes scientific and reasonable automatic division of regions by combining time dimension feature similarity and geographical spatial distribution constraints, and provides reliable technical support for fishery resource management.
[0027] Please continue to refer to Fig. 2 and 4 After dividing the pre-fishery resource region into several inter-correlation sub-regions in the fluctuation data category state, step S34 can be performed to calculate the overlap value of each inter-correlation sub-region of each fluctuation data category with the inter-correlation sub-regions of other fluctuation data categories in each pre-fishery resource region as the selected degree of the fluctuation data category. Step S35 can be performed to select the inter-correlation sub-region of the fluctuation data category with the maximum selected degree as the fishery resource region in the pre-fishery resource region. Finally, step S36 can be performed to obtain all the fishery resource regions in each pre-fishery resource region.
[0028] In each pre-fishery resource region, the fluctuation data category with the maximum selected degree is selected as the fusion category of the fishery resource region contained in the pre-fishery resource region. Of course, the fluctuation data category with the second largest selected degree or within a certain range can also be selected as the fusion category according to customer needs.
[0029] Please refer to Fig. 2 and 5 After the fishery resource region and the corresponding fusion category are divided, a fusion operation can also be performed on the data to avoid the influence of redundant data on subsequent fishery resource management. That is, step S4 is performed to fuse the survey data of the survey points in each fishery resource region to obtain the fusion survey data of all the survey points in each fishery resource region.
[0030] In the process of data fusion, first, the data set of the fusion category of the survey data of the survey point can be formed into one data set in step S41. When the data structure is consistent, the data set B can be spliced after the data set A; when the data structure is inconsistent, new fields in the data set B can be added to the data set A, and the values are all set to null, and new fields in the data set A are added to the data set B, and the values are all set to null, and then the data set B is spliced after the data set A. In the process of data record redundancy processing, after the data set is spliced, there can be problems such as record duplication and data conflict, which need to be excluded through data inspection.
[0031] Then, multiple data sets with the same key field can be aggregated into one data set with an increased attribute field in step S42. If the main data set is set, the other data sets are aggregated based on the main data set, and the number of records of the final aggregation corresponds to the number of records of the main data set; if the main data set is not set, the main keys of multiple data sets are spliced and de-duplicated, and the number of records of the final aggregation is the union of multiple data sets. In the process of field redundancy processing, after the fields are aggregated, there can be problems such as field duplication and data conflict, which need to be excluded through data inspection.
[0032] Next, the numerical value data in the data set can be smoothed in step S43. In addition to being used to eliminate detected noise data, it can also be used to analyze noise in data values that meet detection requirements. Through the data binning method, the numerical value is divided into several bins, and the data in each bin can be uniformly averaged or boundary valued, thereby realizing data smoothing. Abnormal data is found through data clustering, similar or adjacent data is aggregated together to form various cluster sets, and data outside the cluster set can be considered as abnormal data, which can be deleted or modified. Data is smoothed through data regression fitting function. Linear regression needs at least two variable fields to fit a straight line, so that one field can predict another field. Multilinear regression involves more than two fields, and the data is smoothed and abnormal data is removed through the fitting function.
[0033] Finally, the step S44 can be performed to split and combine the set fields to convert into new fields. For the data with obvious rules, direct splitting can be performed to directly produce new data fields from the parts of the fields, and the direct splitting includes splitting X bits from left to right, splitting X bits from right to left, and splitting X bits from the Mth bit. The parts of the fields need to be converted. After the data splitting, specific characters need to be added in the fields, including adding characters at the beginning, adding characters at the end, adding characters at the Xth bit, and adding characters before (or after) a certain fixed character. The data merging process needs to directly merge multiple fields into one field, or convert and then merge into one field.
[0034] Please continue to refer to Fig. 1 and 2 As shown in the figure, in order to facilitate centralized management, the fusion data storage unit 3 in the platform can receive and store the fusion survey data of the fusion categories of all the survey points in each fishery resource area, thereby realizing centralized storage management. The display unit 4 in the scheme is used to respond to the operation demand and visually display the fusion survey data of the fusion categories of all the survey points in each fishery resource area. Of course, the display unit of the scheme can be a virtual functional unit, such as a software display window of a user's mobile device.
[0035] The flowcharts and block diagrams in the drawings show the possible implementation architecture, functions and operations of the apparatuses, systems, methods and computer program products according to the embodiments of the present application. In this regard, each block in the flowcharts or block diagrams can represent a module, a program segment or a part of instructions, which contains one or more executable instructions for implementing the specified logical functions. In some alternative implementations, the functions annotated in the blocks can also occur in different orders from those annotated in the drawings. For example, two consecutive blocks can actually be executed substantially in parallel, and they can also be executed in reverse order, depending on the functions involved.
[0036] It should also be noted that each block in the block diagrams and / or flowcharts, and the combination of the blocks in the block diagrams and / or flowcharts, can be implemented by hardware, such as a circuit or an ASIC (Application Specific Integrated Circuit), which performs the corresponding functions or actions, or can be implemented by a combination of hardware and software, such as firmware, etc.
[0037] Although the application has been described in connection with various embodiments, it will be understood that the application is capable of further modifications. These and other changes, along with the apparent alternatives and equivalents, fall within the scope of the claimed application. The following claims define the scope of the application. Any provisions expressed in language to the effect that a certain feature, structure, or characteristic "is" or "contains" something should be understood as not excluding the presence of additional features, structures, or characteristics. For a definition of "comprising" and "including" and the like, see the appended claims.
[0038] Various embodiments of the application have been described in connection with the embodiments described above. The descriptions are intended to be illustrative of the application and not to limit the scope of the application. Numerous modifications and adaptations thereof will be apparent to those skilled in the art without departing from the scope of the described embodiments. The scope of the application includes all of the novel, useful, and novel- useful combinations and subcombinations of the various elements, features, and functions disclosed herein. This summary is intended to be exemplary, rather than exhaustive, and does not limit the scope of the embodiments described herein. The above description is intended to be illustrative, and not restrictive. Many modifications and changes can occur to those skilled in the art without departing from the scope of the described embodiments. The scope of the embodiments described herein is not to be limited by the specific illustrative embodiments presented herein.< / surveypoint> < / correlationpartition> < / double> < / double> < / correlationpartition> < / int> < / correlationpartition> < / double> < / double> < / double> < / int> < / correlationpartition> < / surveypoint> < / correlationpartition> < / int> < / double> < / surveypoint> < / int> < / double> < / double> < / limits> < / iomanip> < / queue> < / memory> < / set> < / numeric> < / algorithm> < / cmath> < / map> < / string> < / vector> < / iostream> < / categorydata> < / categorydata> < / double> < / double> < / double> < / double> < / double> < / double> < / double> < / double> < / double> < / double> < / double> < / double> < / double> < / double> < / measurement> < / double> < / double> < / double> < / categorydata> < / categorydata> < / double> < / measurement> < / iomanip> < / memory> < / functional> < / numeric> < / algorithm> < / cmath> < / map> < / string> < / vector> < / iostream>
Claims
1. A method for data fusion of fishery resource and environment investigation, comprising, statistically obtaining, for each investigation point, detection values of investigation data of each category at multiple investigation time points according to investigation data of each category of each investigation point in a regulatory area; characterized in that obtaining variation characteristics of investigation data of each category of each investigation point in a time dimension according to the detection values of investigation data of each category of each investigation point at the multiple investigation time points; classifying investigation points with correlated investigation data into the same fishery resource area according to the variation characteristics of investigation data of each category of each investigation point in the time dimension, and obtaining data categories of investigation data with correlation in each fishery resource area as fusion categories; performing fusion processing on investigation data of the fusion categories of the investigation points in each fishery resource area to obtain fusion investigation data of the fusion categories of all investigation points included in each fishery resource area.
2. The method of claim 1, wherein, categories of fishery resource and environment investigation data include, water quality field sampling record data; phytoplankton data; zooplankton data; benthic organism data; aquatic plant data; physical and chemical environment data; marine fishery water area water environment data; marine fishery water area sediment environment data; marine fishery water area ecological index data; marine fishery water area biological residue data; inland fishery water area water environment data; inland fishery water area sediment environment data; inland fishery water area ecological index data; and / or inland fishery water area biological residue data.
3. The method of claim 1, wherein, The step of obtaining variation characteristics of investigation data of each category of each investigation point in a time dimension according to detection values of investigation data of each category of each investigation point at multiple investigation time points comprises, for investigation data of each category of each investigation point, the following operations are performed respectively, fitting detection values at each investigation time point to obtain a fitting value of the category investigation data at any time point in a natural cycle, wherein the natural cycle includes one year, one quarter or one month, uniformly selecting multiple marker time points in the natural cycle, taking the fitting value of the category investigation data at each marker time point as the variation characteristic of the category investigation data.
4. The method of claim 3, wherein, The step of obtaining variation characteristics of investigation data of each category of each investigation point in a time dimension according to detection values of investigation data of each category of each investigation point at multiple investigation time points further comprises, scaling the fitting value of the category investigation data at each marker time point by the same proportion to make the cumulative value of the scaled fitting value of each category investigation data at each marker time point in the natural cycle the same.
5. The method of claim 1, wherein, The step of classifying investigation points with correlated investigation data into the same fishery resource area according to variation characteristics of investigation data of each category of each investigation point in a time dimension comprises, dividing, according to variation characteristics of investigation data of each category of each investigation point in a time dimension, the category of investigation data with a maximum variation value of the fitting value at each marker time point in a natural cycle less than a set value into a non-fluctuation data category, and otherwise into a fluctuation data category. Classifying the survey points of the same fluctuation data category into the same pre-fishery resource area; Dividing the pre-fishery resource area into a plurality of interrelated sub-areas in the state of the fluctuation data category according to the variation characteristics of the survey data of the fluctuation data category in the time dimension; In each pre-fishery resource area, calculating the accumulated value of the overlap degree of the interrelated sub-area of each fluctuation data category with the interrelated sub-areas of other fluctuation data categories as the selected degree of the fluctuation data category; Taking the interrelated sub-area of the fluctuation data category corresponding to the maximum selected degree as the fishery resource area in the pre-fishery resource area; Summarizing all the fishery resource areas in each pre-fishery resource area.
6. The method of claim 5, wherein, The step of dividing the pre-fishery resource area into a plurality of interrelated sub-areas in the state of the fluctuation data category according to the variation characteristics of the survey data of the fluctuation data category in the time dimension comprises, Selecting a plurality of survey points as seed survey points in the pre-fishery resource area; Calculating the accumulated value of the difference of the fitting values of the survey data of any two survey points of the fluctuation data category at each corresponding mark time in a natural period as the fluctuation separation degree between the two survey points; Dividing each survey point in the pre-fishery resource area except the seed survey points into the same interrelated sub-area with the seed survey point with the minimum fluctuation separation degree; Judging whether there is cross contamination in the geographical distribution between the survey points contained in each interrelated sub-area; If not, a plurality of interrelated sub-areas in the state of the fluctuation data category in the pre-fishery resource area are obtained; If yes, a plurality of survey points are reselected as seed survey points, and the interrelated sub-areas are divided to judge whether there is cross contamination, until a plurality of interrelated sub-areas in the state of the fluctuation data category in the pre-fishery resource area are obtained.
7. The method of claim 6, wherein, The step of selecting a plurality of survey points as seed survey points comprises, For each survey point, calculating the accumulated value of the fluctuation separation degree between the survey point and each other survey point as the outlying degree of the survey point; Arranging the survey points in sequence according to the numerical size of the outlying degree to obtain a survey point sequence; Continuously taking the survey points with the minimum and maximum outlying degree as seed survey points; Each time the seed survey points are reselected, one survey point is added as a seed survey point in the survey point sequence along the order from large to small in numerical value of the outlying degree.
8. The method according to any one of claims 5 to 7, characterized in that, The step of obtaining the data category of the survey data in each fishery resource area as the fusion category comprises, In each pre-fishery resource area, taking the fluctuation data category corresponding to the maximum selected degree as the fusion category of the fishery resource area contained in the pre-fishery resource area.
9. The method of claim 1, wherein, The step of performing fusion processing on the survey data of the fusion category of the survey point to obtain the fusion survey data of the fusion category of all the survey points contained in each fishery resource area comprises, Collecting the data with consistent or similar data structure in the survey data of the fusion category of the survey point into a data set; Multiple data sets with the same key field are aggregated into one data set with an increased attribute field, taking the unique key field as the primary key; Data smoothing is performed on the numerical data in the data set; Splitting and merging operations are performed on the set fields.
10. A fishery resource environment investigation data fusion processing display management platform, comprising, an original data storage unit configured to receive and store fishery resource environment investigation data of each investigation point in a monitored area; a fusion calculation unit configured to respectively count fishery resource environment investigation data of each investigation point in the monitored area according to categories to obtain detection values of investigation data of each category of each investigation point at multiple investigation time points; characterized in that, according to the detection values of the investigation data of each category of each investigation point at the multiple investigation time points, variation characteristics of the investigation data of each category of each investigation point in a time dimension are obtained; according to the variation characteristics of the investigation data of each category of each investigation point in the time dimension, investigation points with correlated investigation data are classified into the same fishery resource area, and data categories with correlation in the investigation data of each fishery resource area are obtained as fusion categories; in each fishery resource area, the investigation data of the fusion categories of the investigation points are subjected to fusion processing to obtain fusion after investigation data of the fusion categories of all investigation points contained in each fishery resource area; a fusion data storage unit configured to receive and store the fusion after investigation data of the fusion categories of all investigation points contained in each fishery resource area; a display unit configured to respond to operation requirements and visually display the fusion after investigation data of the fusion categories of all investigation points contained in each fishery resource area.