From b10c22af595bd995e56946bff63b8f2f984b13e8 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 14 八月 2025 17:25:05 +0800
Subject: [PATCH] 2025.8.14 1. 动态溯源模块添加滑动平均异常计算(调试中)

---
 src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/config/RTExcWindLevelConfig.kt |  151 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 131 insertions(+), 20 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/config/RTExcWindLevelConfig.kt b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/config/RTExcWindLevelConfig.kt
index 1bbd6b4..9d69ca6 100644
--- a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/config/RTExcWindLevelConfig.kt
+++ b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/config/RTExcWindLevelConfig.kt
@@ -17,18 +17,23 @@
         val mutationRate: Pair<Double, Double>,
         val distanceType: DistanceType,
         val countLimit: Int,
-    )
+    ){
+}
+    // 鏄惁鑱旂綉鏌ユ壘瀵瑰簲璺鍦板潃淇℃伅
+    var isSearchAddress = true
 
     // 闄愬畾璺濈鍐咃紙鍗曚綅锛氱背锛�
     var distanceLimit = 3000
     // 闄愬畾鏃堕棿鍐咃紙鍗曚綅锛氬垎閽燂級
     var timeLimit = 3
+
     // 婧簮鎵╂暎鍋忕Щ瑙掑害锛堝崟浣嶏細搴︼級
     var sourceTraceDegOffset = 120.0
+
     // 瀹氭椂绾跨储鍒嗘瀽鏃堕棿闂撮殧(鍗曚綅锛氬垎閽�)
-    var analysisPeriod = 15
+    var analysisPeriod = 5
     // 瀹氭椂鍒嗘瀽闂撮殧涓紝绔嬪嵆杩涜绾跨储鍒嗘瀽鐨勬渶灏忕嚎绱㈤噺(鍗曚綅锛氫釜)
-    var analysisCount = 2
+    var analysisCount = 4
 
     /****鏁版嵁绐佸彉*****************************************************************************/
     // 0 - 1绾ч
@@ -52,8 +57,8 @@
         1.6 to 7.9,
         0.2 to Double.MAX_VALUE,
         DistanceType.TYPE3,
-//        3
-        1
+        2
+//        1
     )
 
     // 5 - 6绾ч
@@ -61,35 +66,141 @@
         8.0 to 13.8,
         0.1 to Double.MAX_VALUE,
         DistanceType.TYPE4,
-        3
+        2
     )
 
-    /****鏁版嵁鍙樺寲閫熺巼*****************************************************************************/
-    var changeRateCondition = WindLevelCondition(
-        .0 to Double.MAX_VALUE,
-        0.1 to Double.MAX_VALUE,
-        DistanceType.TYPE1,
-        3
-    )
-    // 鐩戞祴鍥犲瓙鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級鍐呮甯稿彉鍖栫殑閲忕骇鑼冨洿
-    var changeRate = mutableMapOf(
+    /****鏁版嵁蹇�熶笂鍗�*****************************************************************************/
+    // 鍦ㄩ閫熷浜�0 - 1.5 m/s 涔嬮棿鏃�
+    var changeRateUp1 = mutableMapOf(
+        // PM2.5鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬4渭g/m鲁锛岃繛缁彂鐢�2娆�
         FactorType.PM25 to WindLevelCondition(
-            .0 to Double.MAX_VALUE,
+            .0 to 1.5,
             4.0 to Double.MAX_VALUE,
             DistanceType.TYPE1,
-            3
+//            fixme: 2025.7.24 鍥犱负浣庨閫熶笅鏁版嵁鍙樺寲娆℃暟璁剧疆杩囧锛屽鑷撮仐婕忚瘑鍒�
+//            3
+            2
         ),
+        // PM10鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬4渭g/m鲁锛岃繛缁彂鐢�2娆�
         FactorType.PM10 to WindLevelCondition(
-            .0 to Double.MAX_VALUE,
+            .0 to 1.5,
             4.0 to Double.MAX_VALUE,
             DistanceType.TYPE1,
-            3
+            2
         ),
+        // VOC鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬6渭g/m鲁锛岃繛缁彂鐢�1娆�
         FactorType.VOC to WindLevelCondition(
-            .0 to Double.MAX_VALUE,
+            .0 to 1.5,
             6.0 to Double.MAX_VALUE,
             DistanceType.TYPE1,
             1
         ),
     )
+    // 鍦ㄩ閫熷浜�1.6 - 7.9 m/s 涔嬮棿鏃�
+    var changeRateUp2 = mutableMapOf(
+        // PM2.5鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬4渭g/m鲁锛岃繛缁彂鐢�3娆�
+        FactorType.PM25 to WindLevelCondition(
+            1.6 to 7.9,
+            4.0 to Double.MAX_VALUE,
+            DistanceType.TYPE3,
+            2
+        ),
+        // PM10鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬4渭g/m鲁锛岃繛缁彂鐢�3娆�
+        FactorType.PM10 to WindLevelCondition(
+            1.6 to 7.9,
+            4.0 to Double.MAX_VALUE,
+            DistanceType.TYPE3,
+            2
+        ),
+        // VOC鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬6渭g/m鲁锛岃繛缁彂鐢�1娆�
+        FactorType.VOC to WindLevelCondition(
+            1.6 to 7.9,
+            6.0 to Double.MAX_VALUE,
+            DistanceType.TYPE3,
+            1
+        ),
+    )
+    // 鍦ㄩ閫熷浜�8.0 - 13.8 m/s 涔嬮棿鏃�
+    var changeRateUp3 = mutableMapOf(
+        // PM2.5鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬4渭g/m鲁锛岃繛缁彂鐢�3娆�
+        FactorType.PM25 to WindLevelCondition(
+            8.0 to 13.8,
+            4.0 to Double.MAX_VALUE,
+            DistanceType.TYPE4,
+            2
+        ),
+        // PM10鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬4渭g/m鲁锛岃繛缁彂鐢�3娆�
+        FactorType.PM10 to WindLevelCondition(
+            8.0 to 13.8,
+            4.0 to Double.MAX_VALUE,
+            DistanceType.TYPE4,
+            2
+        ),
+        // VOC鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬6渭g/m鲁锛岃繛缁彂鐢�1娆�
+        FactorType.VOC to WindLevelCondition(
+            8.0 to 13.8,
+            6.0 to Double.MAX_VALUE,
+            DistanceType.TYPE4,
+            1
+        ),
+    )
+
+    /****鏁版嵁蹇�熶笅闄嶆彁閱�*****************************************************************************/
+    var changeRateWarnDown = mutableMapOf(
+        // PM2.5鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級鍐呬笅闄嶉噺绾уぇ浜庣瓑浜�2渭g/m鲁锛岃繛缁彂鐢�3娆�
+        FactorType.PM25 to WindLevelCondition(
+            .0 to Double.MAX_VALUE,
+            -Double.MAX_VALUE to -2.0,
+            DistanceType.TYPE1,
+            3
+        ),
+        // PM10鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級鍐呬笅闄嶉噺绾уぇ浜庣瓑浜�2渭g/m鲁锛岃繛缁彂鐢�3娆�
+        FactorType.PM10 to WindLevelCondition(
+            .0 to Double.MAX_VALUE,
+            -Double.MAX_VALUE to -2.0,
+            DistanceType.TYPE1,
+            3
+        ),
+        // VOC鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級鍐呬笅闄嶉噺绾уぇ浜庣瓑浜�3渭g/m鲁锛岃繛缁彂鐢�3娆�
+        FactorType.VOC to WindLevelCondition(
+            .0 to Double.MAX_VALUE,
+            -Double.MAX_VALUE to -3.0,
+            DistanceType.TYPE1,
+            3
+        ),
+    )
+
+    /****鏁版嵁鏈変笂鍗囪秼鍔挎彁閱�*****************************************************************************/
+    var changeRateWarnUp = mutableMapOf(
+        // PM2.5鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇鍦�2 - 4渭g/m鲁涔嬮棿锛岃繛缁彂鐢�3娆�
+        FactorType.PM25 to WindLevelCondition(
+            .0 to Double.MAX_VALUE,
+            2.0 to 4.0,
+            DistanceType.TYPE1,
+            2
+        ),
+        // PM10鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇鍦�2 - 4渭g/m鲁涔嬮棿锛岃繛缁彂鐢�3娆�
+        FactorType.PM10 to WindLevelCondition(
+            .0 to Double.MAX_VALUE,
+            2.0 to 4.0,
+            DistanceType.TYPE1,
+            2
+        ),
+        // VOC鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇鍦�3 - 6渭g/m鲁涔嬮棿锛岃繛缁彂鐢�2娆�
+        FactorType.VOC to WindLevelCondition(
+            .0 to Double.MAX_VALUE,
+            3.0 to 6.0,
+            DistanceType.TYPE1,
+            2
+        ),
+    )
+
+    /****婊戝姩骞冲潎鍊煎紓甯�*****************************************************************************/
+    // 姹傛粦鍔ㄥ钩鍧囧�肩殑鏁版嵁缁勪釜鏁�
+    var changeTrendGroup = 12
+    // 婊戝姩骞冲潎鍊艰繛缁�
+    var changeTrendInterval = 12
+    var changeTrendRate = .2
+    // 婊戝姩骞冲潎鍊煎彉鍖栫巼寮傚父杩炵画娆℃暟
+    var changeTrendTimes = 3
 }
\ No newline at end of file

--
Gitblit v1.9.3