| | |
| | | } |
| | | |
| | | /** |
| | | * @Description: 小时AQI首要污染物,map的key为sensorCode,value为数值 |
| | | * @Param: [map] |
| | | * @return: java.util.Map<java.lang.String,java.lang.Object> |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/10/29 |
| | | */ |
| | | public static Map<String,Object> hourlyAqi_pollutant(Map<String, Object> map) { |
| | | * @Description: 小时AQI首要污染物,map的key为sensorCode,value为数值 |
| | | * @Param: [map] |
| | | * @return: java.util.Map<java.lang.String, java.lang.Object> |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/10/29 |
| | | */ |
| | | public static Map<String, Object> hourlyAqi_pollutant(Map<String, Object> map) { |
| | | List<Integer> AQIList = new ArrayList<>(); |
| | | Map<String,Integer> AQIMap = new HashMap<>(); |
| | | Map<String, Integer> AQIMap = new HashMap<>(); |
| | | for (Map.Entry<String, Object> entry : map.entrySet()) { |
| | | String key = entry.getKey(); |
| | | if (entry.getValue().toString().equals("")) { |
| | |
| | | case Constants.SENSOR_CODE_PM25: |
| | | PM2_5AQI = PM2_5AQI(Double.valueOf(entry.getValue().toString())); |
| | | AQIList.add(PM2_5AQI); |
| | | AQIMap.put("PM2.5",PM2_5AQI); |
| | | AQIMap.put("PM2.5", PM2_5AQI); |
| | | break; |
| | | case Constants.SENSOR_CODE_PM10: |
| | | PM10AQI = PM10AQI(Double.valueOf(entry.getValue().toString())); |
| | | AQIList.add(PM10AQI); |
| | | AQIMap.put("PM10",PM10AQI); |
| | | AQIMap.put("PM10", PM10AQI); |
| | | break; |
| | | case Constants.SENSOR_CODE_SO2: |
| | | SO2AQI = SO2AQI(Double.valueOf(entry.getValue().toString())); |
| | | AQIList.add(SO2AQI); |
| | | AQIMap.put("SO2",SO2AQI); |
| | | AQIMap.put("SO2", SO2AQI); |
| | | break; |
| | | case Constants.SENSOR_CODE_NO2: |
| | | NO2AQI = NO2AQI(Double.valueOf(entry.getValue().toString())); |
| | | AQIList.add(NO2AQI); |
| | | AQIMap.put("NO2",NO2AQI); |
| | | AQIMap.put("NO2", NO2AQI); |
| | | break; |
| | | case Constants.SENSOR_CODE_CO: |
| | | COAQI = COAQI(Double.valueOf(entry.getValue().toString())); |
| | | AQIList.add(COAQI); |
| | | AQIMap.put("CO",COAQI); |
| | | AQIMap.put("CO", COAQI); |
| | | break; |
| | | case Constants.SENSOR_CODE_O3: |
| | | O3AQI = O3AQI(Double.valueOf(entry.getValue().toString())); |
| | | AQIList.add(O3AQI); |
| | | AQIMap.put("O3",O3AQI); |
| | | AQIMap.put("O3", O3AQI); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | AQIMAX = Collections.max(AQIList); |
| | | } |
| | | List<String> nameList = new ArrayList<>(); |
| | | for (String key:AQIMap.keySet()){ |
| | | if (AQIMap.get(key).equals(AQIMAX)){ |
| | | for (String key : AQIMap.keySet()) { |
| | | if (AQIMap.get(key).equals(AQIMAX)) { |
| | | nameList.add(key); |
| | | } |
| | | } |
| | | Map<String,Object> resultMap = new HashMap<>(); |
| | | resultMap.put("aqi",AQIMAX); |
| | | if(AQIMAX>50) |
| | | resultMap.put("pollutant",nameList); |
| | | Map<String, Object> resultMap = new HashMap<>(); |
| | | resultMap.put("aqi", AQIMAX); |
| | | if (AQIMAX > 50) |
| | | resultMap.put("pollutant", nameList); |
| | | return resultMap; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | Map<String,Object> map = new HashMap<>(); |
| | | map.put("a34004",11.25); |
| | | map.put("a34002",18.25); |
| | | map.put("a21026",55); |
| | | map.put("a21004",200.01); |
| | | map.put("a21005",18.94); |
| | | map.put("a05024",55); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("a34004", 11.25); |
| | | map.put("a34002", 18.25); |
| | | map.put("a21026", 55); |
| | | map.put("a21004", 200.01); |
| | | map.put("a21005", 18.94); |
| | | map.put("a05024", 55); |
| | | System.out.println(hourlyAqi_pollutant(map)); |
| | | } |
| | | |
| | | /** |
| | | * @Description: 计算AQI污染等级 |
| | | * @Param: |
| | | * @return: |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/10/29 |
| | | */ |
| | | public static String classOfPollutionByAqi(Integer aqi){ |
| | | if(aqi>300) |
| | | * @Description: 计算AQI污染等级 |
| | | * @Param: |
| | | * @return: |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/10/29 |
| | | */ |
| | | public static String classOfPollutionByAqi(Integer aqi) { |
| | | if (aqi > 300) |
| | | return Constants.SERVER; |
| | | if(aqi>200) |
| | | if (aqi > 200) |
| | | return Constants.SERIOUS; |
| | | if(aqi>150) |
| | | if (aqi > 150) |
| | | return Constants.MIDDLE; |
| | | if(aqi>100) |
| | | if (aqi > 100) |
| | | return Constants.MILD; |
| | | if(aqi>50) |
| | | if (aqi > 50) |
| | | return Constants.GOOD; |
| | | return Constants.EXCELLENT; |
| | | } |
| | | |
| | | //PM2.5 IAQI |
| | | private static int PM2_5AQI(Double value) { |
| | | double result; |
| | |
| | | } |
| | | return (int) Math.ceil(result); |
| | | } |
| | | |
| | | /** |
| | | * @Description: 小时AQI首要污染物,map的key为sensorCode,value为数值 |
| | | * @Param: [map] |
| | | * @return: java.util.Map<java.lang.String, java.lang.Object> |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/10/29 |
| | | */ |
| | | public static Map<String, Object> cityAqiPollutant(Map<String, Object> map) { |
| | | List<Integer> AQIList = new ArrayList<>(); |
| | | Map<String, Integer> AQIMap = new HashMap<>(); |
| | | for (Map.Entry<String, Object> entry : map.entrySet()) { |
| | | String key = entry.getKey(); |
| | | if (entry.getValue().toString().equals("")) { |
| | | continue; |
| | | } |
| | | int PM2_5AQI; |
| | | int PM10AQI; |
| | | int SO2AQI; |
| | | int NO2AQI; |
| | | int COAQI; |
| | | int O3AQI; |
| | | switch (key) { |
| | | case "pm2_5": |
| | | PM2_5AQI = PM2_5AQI(Double.valueOf(entry.getValue().toString())); |
| | | AQIList.add(PM2_5AQI); |
| | | AQIMap.put("pm2_5", PM2_5AQI); |
| | | break; |
| | | case "pm10": |
| | | PM10AQI = PM10AQI(Double.valueOf(entry.getValue().toString())); |
| | | AQIList.add(PM10AQI); |
| | | AQIMap.put("pm10", PM10AQI); |
| | | break; |
| | | case Constants.SENSOR_CODE_SO2: |
| | | SO2AQI = SO2AQI(Double.valueOf(entry.getValue().toString())); |
| | | AQIList.add(SO2AQI); |
| | | AQIMap.put("so2", SO2AQI); |
| | | break; |
| | | case Constants.SENSOR_CODE_NO2: |
| | | NO2AQI = NO2AQI(Double.valueOf(entry.getValue().toString())); |
| | | AQIList.add(NO2AQI); |
| | | AQIMap.put("no2", NO2AQI); |
| | | break; |
| | | case Constants.SENSOR_CODE_CO: |
| | | COAQI = COAQI(Double.valueOf(entry.getValue().toString())); |
| | | AQIList.add(COAQI); |
| | | AQIMap.put("co", COAQI); |
| | | break; |
| | | case Constants.SENSOR_CODE_O3: |
| | | O3AQI = O3AQI(Double.valueOf(entry.getValue().toString())); |
| | | AQIList.add(O3AQI); |
| | | AQIMap.put("o3", O3AQI); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | int AQIMAX = 0; |
| | | if (!ObjectUtils.isEmpty(AQIList)) { |
| | | AQIMAX = Collections.max(AQIList); |
| | | } |
| | | List<String> nameList = new ArrayList<>(); |
| | | for (String key : AQIMap.keySet()) { |
| | | if (AQIMap.get(key).equals(AQIMAX)) { |
| | | nameList.add(key); |
| | | } |
| | | } |
| | | Map<String, Object> resultMap = new HashMap<>(); |
| | | resultMap.put("aqi", AQIMAX); |
| | | if (AQIMAX > 50) |
| | | resultMap.put("pollutant", nameList); |
| | | return resultMap; |
| | | } |
| | | } |