Riku
2025-06-11 d3b43d50df28c4fe27c104dcd146d35b2bad4d20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package com.flightfeather.uav.biz.sourcetrace.config
 
import com.flightfeather.uav.biz.FactorFilter
import com.flightfeather.uav.biz.dataanalysis.BaseAnalysisConfig
import com.flightfeather.uav.biz.sourcetrace.model.DistanceType
import com.flightfeather.uav.socket.eunm.FactorType
 
/**
 *
 * @date 2025/5/29
 * @author feiyu02
 */
class RTExcWindLevelConfig(factorFilter: FactorFilter): BaseAnalysisConfig(factorFilter) {
 
    inner class WindLevelCondition(
        val windSpeed: Pair<Double, Double>,
        val mutationRate: Pair<Double, Double>,
        val distanceType: DistanceType,
        val countLimit: Int,
    )
 
    // 限定距离内(单位:米)
    var distanceLimit = 3000
    // 限定时间内(单位:分钟)
    var timeLimit = 3
    // 溯源扩散偏移角度(单位:度)
    var sourceTraceDegOffset = 120.0
    // 定时线索分析时间间隔(单位:分钟)
    var analysisPeriod = 15
    // 定时分析间隔中,立即进行线索分析的最小线索量(单位:个)
    var analysisCount = 2
 
    /****数据突变*****************************************************************************/
    // 0 - 1级风
    var windLevelCondition1 = WindLevelCondition(
        .0 to 1.5,
        0.5 to Double.MAX_VALUE,
        DistanceType.TYPE1,
        1
    )
 
    // 0 - 1级风
    var windLevelCondition1_1 = WindLevelCondition(
        .0 to 1.5,
        0.2 to 0.5,
        DistanceType.TYPE2,
        1
    )
 
    // 2 - 4级风
    var windLevelCondition2 = WindLevelCondition(
        1.6 to 7.9,
        0.2 to Double.MAX_VALUE,
        DistanceType.TYPE3,
//        3
        1
    )
 
    // 5 - 6级风
    var windLevelCondition3 = WindLevelCondition(
        8.0 to 13.8,
        0.1 to Double.MAX_VALUE,
        DistanceType.TYPE4,
        3
    )
 
    /****数据变化速率*****************************************************************************/
    var changeRateCondition = WindLevelCondition(
        .0 to Double.MAX_VALUE,
        0.1 to Double.MAX_VALUE,
        DistanceType.TYPE1,
        3
    )
    // 监测因子在一个监测周期(4秒)内正常变化的量级范围
    var changeRate = mutableMapOf(
        FactorType.PM25 to WindLevelCondition(
            .0 to Double.MAX_VALUE,
            4.0 to Double.MAX_VALUE,
            DistanceType.TYPE1,
            3
        ),
        FactorType.PM10 to WindLevelCondition(
            .0 to Double.MAX_VALUE,
            4.0 to Double.MAX_VALUE,
            DistanceType.TYPE1,
            3
        ),
        FactorType.VOC to WindLevelCondition(
            .0 to Double.MAX_VALUE,
            6.0 to Double.MAX_VALUE,
            DistanceType.TYPE1,
            1
        ),
    )
}