| | |
| | | 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 |
| | | |
| | | /** |
| | | * |
| | |
| | | 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 = 5 |
| | | // 定时分析间隔中,立即进行线索分析的最小线索量(单位:个) |
| | | var analysisCount = 4 |
| | | |
| | | /****数据突变*****************************************************************************/ |
| | | // 0 - 1级风 |
| | | var windLevelCondition1 = WindLevelCondition( |
| | | .0 to 1.5, |
| | |
| | | 1.6 to 7.9, |
| | | 0.2 to Double.MAX_VALUE, |
| | | DistanceType.TYPE3, |
| | | // 3 |
| | | 1 |
| | | 3 |
| | | // 1 |
| | | ) |
| | | |
| | | // 5 - 6级风 |
| | |
| | | 3 |
| | | ) |
| | | |
| | | // 溯源扩散偏移角度(单位:度) |
| | | var sourceTraceDegOffset = 120.0 |
| | | /****数据快速上升*****************************************************************************/ |
| | | // 在风速处于0 - 1.5 m/s 之间时 |
| | | var changeRateUp1 = mutableMapOf( |
| | | // PM2.5在一个监测周期(4秒)上升量级大于等于4μg/m³,连续发生2次 |
| | | FactorType.PM25 to WindLevelCondition( |
| | | .0 to 1.5, |
| | | 4.0 to Double.MAX_VALUE, |
| | | DistanceType.TYPE1, |
| | | // fixme: 2025.7.24 因为低风速下数据变化次数设置过多,导致遗漏识别 |
| | | // 3 |
| | | 2 |
| | | ), |
| | | // PM10在一个监测周期(4秒)上升量级大于等于4μg/m³,连续发生2次 |
| | | FactorType.PM10 to WindLevelCondition( |
| | | .0 to 1.5, |
| | | 4.0 to Double.MAX_VALUE, |
| | | DistanceType.TYPE1, |
| | | 2 |
| | | ), |
| | | // VOC在一个监测周期(4秒)上升量级大于等于6μg/m³,连续发生1次 |
| | | FactorType.VOC to WindLevelCondition( |
| | | .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, |
| | | 3 |
| | | ), |
| | | // PM10在一个监测周期(4秒)上升量级大于等于4μg/m³,连续发生3次 |
| | | FactorType.PM10 to WindLevelCondition( |
| | | 1.6 to 7.9, |
| | | 4.0 to Double.MAX_VALUE, |
| | | DistanceType.TYPE3, |
| | | 3 |
| | | ), |
| | | // 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, |
| | | 3 |
| | | ), |
| | | // PM10在一个监测周期(4秒)上升量级大于等于4μg/m³,连续发生3次 |
| | | FactorType.PM10 to WindLevelCondition( |
| | | 8.0 to 13.8, |
| | | 4.0 to Double.MAX_VALUE, |
| | | DistanceType.TYPE4, |
| | | 3 |
| | | ), |
| | | // 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 analysisPeriod = 15 |
| | | // 定时分析间隔中,立即进行线索分析的最小线索量(单位:个) |
| | | var analysisCount = 2 |
| | | /****数据快速下降提醒*****************************************************************************/ |
| | | 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 |
| | | ), |
| | | ) |
| | | |
| | | |
| | | |
| | | // // 0 - 1级风 |
| | | // var windLevelCondition1 = WindLevelCondition( |
| | | // .0 to 1.5, |
| | | // listOf(0.5 to DistanceType.TYPE1, 0.2 to DistanceType.TYPE2,), |
| | | // listOf(1, 1) |
| | | // ) |
| | | // |
| | | // // 0 - 1级风 |
| | | // var windLevelCondition1_1 = WindLevelCondition( |
| | | // .0 to 1.5, |
| | | // 0.2 to DistanceType.TYPE2, |
| | | // 1 |
| | | // ) |
| | | // |
| | | // // 2 - 4级风 |
| | | // var windLevelCondition2 = WindLevelCondition( |
| | | // 1.6 to 7.9, |
| | | // listOf(0.2 to DistanceType.TYPE3), |
| | | //// listOf(3) |
| | | // listOf(1) |
| | | // ) |
| | | // |
| | | // // 5 - 6级风 |
| | | // var windLevelCondition3 = WindLevelCondition( |
| | | // 8.0 to 13.8, |
| | | // listOf(0.1 to DistanceType.TYPE4), |
| | | // listOf(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, |
| | | 3 |
| | | ), |
| | | // PM10在一个监测周期(4秒)上升量级在2 - 4μg/m³之间,连续发生3次 |
| | | FactorType.PM10 to WindLevelCondition( |
| | | .0 to Double.MAX_VALUE, |
| | | 2.0 to 4.0, |
| | | DistanceType.TYPE1, |
| | | 3 |
| | | ), |
| | | // VOC在一个监测周期(4秒)上升量级在3 - 6μg/m³之间,连续发生2次 |
| | | FactorType.VOC to WindLevelCondition( |
| | | .0 to Double.MAX_VALUE, |
| | | 3.0 to 6.0, |
| | | DistanceType.TYPE1, |
| | | 2 |
| | | ), |
| | | ) |
| | | } |