臭氧8小时滑动值算法,分钟,小时数据时间变更为开始时间
| | |
| | | } |
| | | |
| | | /** |
| | | * @param data 数据 time:Date类型 |
| | | * @return 功能:臭氧8小时滑动值计算 |
| | | */ |
| | | public static List<Map<String, Object>> getO3_8H(List<Map<String, Object>> data) { |
| | | Date time1 = null; |
| | | Date time2 = null; |
| | | for (Map<String, Object> datum : data) { |
| | | Date time = (Date) datum.get("time"); |
| | | if (DateUtils.getHour(time) == 0) { |
| | | time2 = DateUtils.getDate(DateUtils.dateToDateString(time, DateUtils.yyyy_MM_dd_EN)); |
| | | } else { |
| | | time1 = DateUtils.getDate(DateUtils.dateToDateString(time, DateUtils.yyyy_MM_dd_EN)); |
| | | } |
| | | } |
| | | |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (int i = 8; i <= 24; i++) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | if (i < 24) { |
| | | map.put("time", ObjectUtils.isEmpty(time1) ? null : DateUtils.addHours(time1, i)); |
| | | } else { |
| | | map.put("time", ObjectUtils.isEmpty(time2) ? null : time2); |
| | | } |
| | | List<Double> value = new ArrayList<>(); |
| | | for (Map<String, Object> dataMap : data) { |
| | | Double o3 = Double.parseDouble(dataMap.get(Constants.SENSOR_CODE_O3).toString()); |
| | | Date time = (Date) dataMap.get("time"); |
| | | int hour = DateUtils.getHour(time); |
| | | if (hour == 0) { |
| | | hour = 24; |
| | | } |
| | | if (hour <= i && hour >= i - 7) { |
| | | value.add(o3); |
| | | } |
| | | } |
| | | if (value.size() < 6) { |
| | | continue; |
| | | } |
| | | double average = value.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage(); |
| | | map.put(Constants.SENSOR_CODE_O3, average); |
| | | result.add(map); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * @param params 参数 |
| | | * @return 功能:风向均值计算 |
| | | */ |
| | |
| | | stringBuffer.replace(15, 16, String.valueOf(i)); |
| | | return getDate(stringBuffer.toString(), yyyy_MM_dd_HH_mm_EN); |
| | | } |
| | | |
| | | //获取指定日期hours小时后日期 |
| | | public static Date addHours(Date date, int hours) { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | calendar.add(Calendar.HOUR_OF_DAY, hours); |
| | | return calendar.getTime(); |
| | | } |
| | | } |
| | |
| | | String yearAndMonth = DateUtils.dateToDateString(time, DateUtils.yyyyMM_EN); |
| | | |
| | | result.put("mac", mac); |
| | | result.put("time", time); |
| | | result.put("time", DateUtils.addHours(time, -1)); |
| | | result.put("version", version); |
| | | result.put("timeUnits", yearAndMonth + "_" + Constants.UN_ADJUST); |
| | | result.put("value", JSONObject.toJSONString(data)); |
| | |
| | | result.put("version", version); |
| | | |
| | | Date time = DateUtils.getDate((String) data.remove("DataTime"), DateUtils.yyyyMMddHHmmss_EN); |
| | | result.put("time", time); |
| | | result.put("time", DateUtils.getDateOfMin(time, -1)); |
| | | result.put("value", JSONObject.toJSONString(data)); |
| | | String timeUnits = DateUtils.dateToDateString(time, DateUtils.yyyyMM_EN); |
| | | result.put("timeUnits", timeUnits + "_" + Constants.UN_ADJUST); |