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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
| 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 = 4
|
| /****数据突变*****************************************************************************/
| // 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
| )
|
| /****数据快速上升*****************************************************************************/
| // 监测因子在一个监测周期(4秒)内正常变化的量级范围
| var changeRateUp1 = mutableMapOf(
| FactorType.PM25 to WindLevelCondition(
| .0 to 1.5,
| 4.0 to Double.MAX_VALUE,
| DistanceType.TYPE1,
| 3
| ),
| FactorType.PM10 to WindLevelCondition(
| .0 to 1.5,
| 4.0 to Double.MAX_VALUE,
| DistanceType.TYPE1,
| 3
| ),
| FactorType.VOC to WindLevelCondition(
| .0 to 1.5,
| 6.0 to Double.MAX_VALUE,
| DistanceType.TYPE1,
| 1
| ),
| )
| var changeRateUp2 = mutableMapOf(
| FactorType.PM25 to WindLevelCondition(
| 1.6 to 7.9,
| 4.0 to Double.MAX_VALUE,
| DistanceType.TYPE3,
| 3
| ),
| FactorType.PM10 to WindLevelCondition(
| 1.6 to 7.9,
| 4.0 to Double.MAX_VALUE,
| DistanceType.TYPE3,
| 3
| ),
| FactorType.VOC to WindLevelCondition(
| 1.6 to 7.9,
| 6.0 to Double.MAX_VALUE,
| DistanceType.TYPE3,
| 1
| ),
| )
| var changeRateUp3 = mutableMapOf(
| FactorType.PM25 to WindLevelCondition(
| 8.0 to 13.8,
| 4.0 to Double.MAX_VALUE,
| DistanceType.TYPE4,
| 3
| ),
| FactorType.PM10 to WindLevelCondition(
| 8.0 to 13.8,
| 4.0 to Double.MAX_VALUE,
| DistanceType.TYPE4,
| 3
| ),
| FactorType.VOC to WindLevelCondition(
| 8.0 to 13.8,
| 6.0 to Double.MAX_VALUE,
| DistanceType.TYPE4,
| 1
| ),
| )
|
| /****数据快速下降提醒*****************************************************************************/
| // 监测因子在一个监测周期(4秒)内正常变化的量级范围
| var changeRateWarnDown = mutableMapOf(
| FactorType.PM25 to WindLevelCondition(
| .0 to Double.MAX_VALUE,
| -Double.MAX_VALUE to -2.0,
| DistanceType.TYPE1,
| 3
| ),
| FactorType.PM10 to WindLevelCondition(
| .0 to Double.MAX_VALUE,
| -Double.MAX_VALUE to -2.0,
| DistanceType.TYPE1,
| 3
| ),
| FactorType.VOC to WindLevelCondition(
| .0 to Double.MAX_VALUE,
| -Double.MAX_VALUE to -3.0,
| DistanceType.TYPE1,
| 3
| ),
| )
|
| /****数据有上升趋势提醒*****************************************************************************/
| var changeRateWarnUp = mutableMapOf(
| FactorType.PM25 to WindLevelCondition(
| .0 to Double.MAX_VALUE,
| 2.0 to 4.0,
| DistanceType.TYPE1,
| 3
| ),
| FactorType.PM10 to WindLevelCondition(
| .0 to Double.MAX_VALUE,
| 2.0 to 4.0,
| DistanceType.TYPE1,
| 3
| ),
| FactorType.VOC to WindLevelCondition(
| .0 to Double.MAX_VALUE,
| 3.0 to 6.0,
| DistanceType.TYPE1,
| 1
| ),
| )
| }
|
|