feiyu02
2025-09-04 707b00a0ca6604c249a110b376ac1e44e408e624
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
package com.flightfeather.uav.lightshare.eunm
 
import com.flightfeather.uav.socket.eunm.FactorType
 
/**
 * 场景类型
 * @date 2025/6/2
 * @author feiyu02
 */
enum class SceneType(val value: Int, val des: String) {
    TYPE1(1, "工地"),
    TYPE2(2, "码头"),
    TYPE3(3, "水泥搅拌站"),
    TYPE4(4, "工业企业"),
    TYPE5(5, "餐饮"),
    TYPE6(6, "汽修"),
    TYPE7(7, "降尘点"),
    TYPE8(8, "空气质量监测点"),
    TYPE9(9, "道路扬尘监测点"),
    TYPE10(10, "道路"),
    TYPE11(11, "河流断面"),
    TYPE12(12, "工业园区"),
    TYPE13(13, "无固定场景"),
    TYPE14(14, "堆场"),
    TYPE15(15, "实验室"),
    TYPE16(16, "精品小区"),
    TYPE17(17, "加油站"),
    TYPE18(18, "商业体"),
    TYPE19(19, "国控点"),
    TYPE20(20, "市控点"),
    TYPE21(21, "小微站");
 
    companion object {
        fun getByFactorType(factorType: FactorType): List<SceneType> {
            return when (factorType) {
                // 氮氧化合物,一般由于机动车尾气,同步计算CO
                FactorType.NO,
                FactorType.NO2 -> {
                    listOf(TYPE6, TYPE10, TYPE17)
                }
 
                FactorType.CO -> listOf(TYPE6, TYPE10, TYPE17)
 
                FactorType.H2S -> emptyList()
 
                FactorType.SO2 -> emptyList()
 
                FactorType.O3 -> emptyList()
                // a) pm2.5、pm10特别高,两者在各情况下同步展示,pm2.5占pm10的比重变化,比重越高,越有可能是餐饮
                // b) pm10特别高、pm2.5较高,大颗粒扬尘污染,只展示pm10,pm2.5占pm10的比重变化,工地为主
                FactorType.PM25,
                FactorType.PM10,
                    -> {
                    listOf(
                        TYPE1,
                        TYPE2,
                        TYPE3,
                        TYPE14,
                        TYPE5
                    )
                }
                // c) VOC较高,同比计算pm2.5的量级,可能存在同步偏高(汽修、加油站), 同步计算O3是否有高值
                // d) VOC较高,处于加油站(车辆拥堵情况),CO一般较高, 同步计算O3是否有高值
                FactorType.VOC -> {
                    listOf(TYPE6, TYPE17, TYPE12)
                }
 
                else -> emptyList()
            }
        }
    }
}