空气质量计算公式(4) 当日累计情况

当日达标情况统计

 

 

计算方法:
当前累计AQI:计算从当天1点至截止时间的除O3以外的各个污染物指标的均值,在计算每个小时的臭氧滑动8小时
理论上臭氧滑动8小时从当日8点开始计算,以8点为例,8点的臭氧滑动8小时为1点至8点的均值作为8点的臭氧滑动8小时。这样可以计算从8点到当前小时的臭氧滑动8小时。在从截止时间所有的滑动8小时的最大值作为当前小时的O3-8h作为计算累计AQI的臭氧,最后利用计算日AQI的计算方式计算出截止时间的AQI。

剩余浓度均值:通过下标标准及截止到当前时间AQI的各个污染浓度倒推出各个浓度剩余值(一级为优、二级为良)。参考下表

注意:所有浓度除CO,计算均用四舍六入五成双取整。CO保留一位小数。

 

 附录:开始时间、结束时间的判断

/**
     * 当日累计浓度计算开始时间
     *
     * @return
     * @throws ParseException
     */
    String beginHour() {
        String hour = " 01";
        Calendar cal = Calendar.getInstance();
        // 如果是凌晨,取昨天的日期
        if (isZeroHour()) {
            cal.add(Calendar.DATE, -1);
        } else {
            cal.add(Calendar.DATE, 0);
        }
        String date = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + hour;
        return date;
    }

    /**
     * 当日累计浓度计算结束时间
     *
     * @return
     */
    String endHour() {
        String hour = " 00";
        Calendar cal = Calendar.getInstance();
        if (isZeroHour()) {
            cal.add(Calendar.DATE, 0);// 如果是凌晨,取当天日期
        } else {
            cal.add(Calendar.DATE, 1);// 如果不是凌晨,取次日日期
        }
        String date = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + hour;
        return date;
    }

    /**
     * 判断是否是凌晨00点
     *
     * @return
     */
    private static boolean isZeroHour() {
        boolean flag = false;
        SimpleDateFormat sdf = new SimpleDateFormat("HH");
        String currentHour = sdf.format(new Date());
        if ("00".equals(currentHour)) {
            flag = true;
        }
        return flag;
    }

 

posted @ 2022-05-31 10:12  @手黑黑@  阅读(2040)  评论(0编辑  收藏  举报