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
| package com.moral.util;
|
| /**
| * @program: screen
| * @description: 污染物相关工具类
| * @author: lizijie
| * @create: 2021-12-07 17:34
| **/
| public class PollutantUtils {
|
| /*1小时浓度限值*/
| private static Double[] SO2_Hourly_Limit_Data = new Double[]{0d, 150d, 500d, 650d, 800d};
| private static Double[] NO2_Hourly_Limit_Data = new Double[]{0d, 100d, 200d, 700d, 1200d, 2340d, 3090d, 3840d};
| private static Double[] PM10_Hourly_Limit_Data = new Double[]{0d, 50d, 150d, 250d, 350d, 420d, 500d, 600d};
| private static Double[] CO_Hourly_Limit_Data = new Double[]{0d, 5d, 10d, 35d, 60d, 90d, 120d, 150d};
| private static Double[] PM2_5_Hourly_Limit_Data = new Double[]{0d, 35d, 75d, 115d, 150d, 250d, 350d, 500d};
| private static Double[] O3_Hourly_Limit_Data = new Double[]{0d, 160d, 200d, 300d, 400d, 800d, 1000d, 1200d};
|
| /**
| * 计算污染物污染等级
| */
| public static int pollutantLevel(Double num,String sensorCode){
| Double[] pollutantArray = null;
| switch (sensorCode){
| case "a34004" : pollutantArray = PM2_5_Hourly_Limit_Data;
| break;
| case "a34002" : pollutantArray = PM10_Hourly_Limit_Data;
| break;
| case "a21026" : pollutantArray = SO2_Hourly_Limit_Data;
| break;
| case "a21004" : pollutantArray = NO2_Hourly_Limit_Data;
| break;
| case "a21005" : pollutantArray = CO_Hourly_Limit_Data;
| break;
| case "a05024" : pollutantArray = O3_Hourly_Limit_Data;
| break;
| default:
| break;
| }
| return getStartIndexFromArray(num,pollutantArray);
| }
|
| /**
| * 获取数值对应数组中的索引范围的开始值
| */
| public static int getStartIndexFromArray(Double num,Double[] array){
| for (int i=0; i<array.length-1; i++){
| if (num >= array[i] && num<array[i+1]){
| return i;
| }
| if (i == array.length-2){
| return i+1;
| }
| }
| return 0;
| }
| }
|
|