| | |
| | | package com.moral.util; |
| | | |
| | | import org.springframework.util.ObjectUtils; |
| | | |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | Double ICO = CCO / SCO; |
| | | Double IO3 = CO3 / SO3; |
| | | //计算综合指数 |
| | | Double ComprehensiveIndex = MathUtils.add(ISO2,INO2); |
| | | ComprehensiveIndex = MathUtils.add(ComprehensiveIndex,IPM25); |
| | | ComprehensiveIndex = MathUtils.add(ComprehensiveIndex,IPM10); |
| | | ComprehensiveIndex = MathUtils.add(ComprehensiveIndex,ICO); |
| | | ComprehensiveIndex = MathUtils.add(ComprehensiveIndex,IO3); |
| | | return ComprehensiveIndex; |
| | | Double comprehensiveIndex = MathUtils.add(ISO2, INO2); |
| | | comprehensiveIndex = MathUtils.add(comprehensiveIndex, IPM25); |
| | | comprehensiveIndex = MathUtils.add(comprehensiveIndex, IPM10); |
| | | comprehensiveIndex = MathUtils.add(comprehensiveIndex, ICO); |
| | | comprehensiveIndex = MathUtils.add(comprehensiveIndex, IO3); |
| | | comprehensiveIndex = AmendUtils.sciCal(comprehensiveIndex, 2); |
| | | return comprehensiveIndex; |
| | | } |
| | | |
| | | /** |
| | | * @Description: 计算各因子浓度值 |
| | | * SO2 NO2 PM10 PM2.5为月均浓度,CO取日均值的第九十五百分位,O3取日最大八小时值的第九十百分位 |
| | | * @Param: [datas] |
| | | * @return: java.util.Map<java.lang.String , java.lang.Object> |
| | | * @return: java.util.Map<java.lang.String, java.lang.Object> |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/9/27 |
| | | */ |
| | |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * @Description: 获取日综合指数,参数为日六参数据 |
| | | * @Param: [data] |
| | | * @return: Double |
| | | */ |
| | | public static Double dailyData(Map<String, Object> data) { |
| | | if (data == null) |
| | | return null; |
| | | Double CPM25 = Double.parseDouble(data.get("PM2_5").toString()); |
| | | Double CPM10 = Double.parseDouble(data.get("PM10").toString()); |
| | | Double CSO2 = Double.parseDouble(data.get("SO2").toString()); |
| | | Double CNO2 = Double.parseDouble(data.get("NO2").toString()); |
| | | Double CCO = Double.parseDouble(data.get("CO").toString()); |
| | | Object o3 = data.get("O3"); |
| | | Double CO3 = null; |
| | | if (!ObjectUtils.isEmpty(o3)) { |
| | | CO3 = Double.parseDouble(o3.toString()); |
| | | } |
| | | |
| | | //S开头为污染物年均值二级标准(当污染物是CO时,采用日均值二级标准。当污染是O3时,采用八小时均值二级标准) |
| | | //数据来源GB 3095-2012 |
| | | Double SSO2 = 60d; |
| | | Double SNO2 = 40d; |
| | | Double SPM25 = 35d; |
| | | Double SPM10 = 70d; |
| | | Double SCO = 4d; |
| | | Double SO3 = 160d; |
| | | //计算污染物单项指数 |
| | | Double ISO2 = CSO2 / SSO2; |
| | | Double INO2 = CNO2 / SNO2; |
| | | Double IPM25 = CPM25 / SPM25; |
| | | Double IPM10 = CPM10 / SPM10; |
| | | Double ICO = CCO / SCO; |
| | | Double IO3 = null; |
| | | if (!ObjectUtils.isEmpty(CO3)) { |
| | | IO3 = CO3 / SO3; |
| | | } |
| | | |
| | | //计算综合指数 |
| | | Double comprehensiveIndex = MathUtils.add(ISO2, INO2); |
| | | comprehensiveIndex = MathUtils.add(comprehensiveIndex, IPM25); |
| | | comprehensiveIndex = MathUtils.add(comprehensiveIndex, IPM10); |
| | | comprehensiveIndex = MathUtils.add(comprehensiveIndex, ICO); |
| | | if (!ObjectUtils.isEmpty(IO3)) { |
| | | comprehensiveIndex = MathUtils.add(comprehensiveIndex, IO3); |
| | | } |
| | | comprehensiveIndex = AmendUtils.sciCal(comprehensiveIndex, 2); |
| | | return comprehensiveIndex; |
| | | } |
| | | |
| | | |
| | | } |