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[i] && num