Java-AQI计算(所有参数均24小时均值)

/*** @Description AQI计算:6项指标的24小时均值* @Author jinfang* @time 2020/11/13 上午10:56* @Version 1.0*/
public class AQIUtils {/*** PM10 24小时*/public static int PM10(Integer pm_val) {int iaqi1 = 0;//-----------------+100,--AQI指数(结合表),-75区间最小值)--,250区间最大值,--每小时AVG()if (pm_val > 0 && pm_val < 51) {iaqi1 = cal_linear(0, 50, 0, 50, pm_val);}if (pm_val >= 51 && pm_val < 151) {iaqi1 = cal_linear(50, 100, 50, 150, pm_val);}if (pm_val >= 151 && pm_val < 251) {//AQI=50/40*(103-75)+100  : 135//+100,AQI指数(结合表),-75),250,103iaqi1 = cal_linear(100, 150, 150, 250, pm_val);}if (pm_val >= 251 && pm_val < 351) {iaqi1 = cal_linear(150, 200, 250, 350, pm_val);}if (pm_val >= 351 && pm_val < 421) {iaqi1 = cal_linear(200, 300, 350, 420, pm_val);}if (pm_val >= 421 && pm_val < 501) {iaqi1 = cal_linear(300, 400, 420, 500, pm_val);}if (pm_val >= 501 && pm_val < 601) {iaqi1 = cal_linear(400, 500, 500, 600, pm_val);}return iaqi1;}/*** PM25 24小时*/public static int PM25(Integer pm_val) {int iaqi1 = 0;//--------------------------+100,--AQI指数(结合表),-75区间最小值)--,250区间最大值,--每小时AVG()if (pm_val >= 0 && pm_val < 36) {iaqi1 = cal_linear(0, 50, 0, 35, pm_val);}if (pm_val >= 36 && pm_val < 76) {iaqi1 = cal_linear(50, 100, 35, 75, pm_val);}if (pm_val >= 76 && pm_val < 116) {//AQI=50/40*(103-75)+100  : 135//+100,AQI指数(结合表),-75),116,103iaqi1 = cal_linear(100, 150, 75, 115, pm_val);}if (pm_val >= 116 && pm_val < 151) {iaqi1 = cal_linear(150, 200, 115, 150, pm_val);}if (pm_val >= 151 && pm_val < 251) {iaqi1 = cal_linear(200, 300, 150, 250, pm_val);}if (pm_val >= 251 && pm_val < 351) {iaqi1 = cal_linear(300, 400, 250, 350, pm_val);}if (pm_val >= 351 && pm_val < 501) {iaqi1 = cal_linear(400, 500, 350, 500, pm_val);}return iaqi1;}/*** SO2 24小时*/public static int SO2(Integer pm_val) {int iaqi1 = 0;//AQI=50/40*(103-75)+100  : 135//+100,AQI指数(结合表),-75),250,103//--------------------------+100,--AQI指数(结合表),-0区间最小值)--,40区间最大值,--每小时AVG()if (pm_val > 0 && pm_val < 51) {iaqi1 = cal_linear(0, 50, 0, 50, pm_val);}if (pm_val >= 51 && pm_val < 151) {iaqi1 = cal_linear(50, 100, 50, 150, pm_val);}if (pm_val >= 151 && pm_val < 476) {iaqi1 = cal_linear(100, 150, 150, 475, pm_val);}if (pm_val >= 476 && pm_val < 801) {iaqi1 = cal_linear(150, 200, 475, 800, pm_val);}if (pm_val >= 801 && pm_val < 1601) {iaqi1 = cal_linear(200, 300, 800, 1600, pm_val);}if (pm_val >= 1601 && pm_val < 2101) {iaqi1 = cal_linear(300, 400, 1600, 2100, pm_val);}if (pm_val >= 2101 && pm_val < 2621) {iaqi1 = cal_linear(400, 500, 2101, 2620, pm_val);}return iaqi1;}/*** No2 24小时*/public static int No2(Integer pm_val) {int iaqi1 = 0;//AQI=50/40*(103-75)+100  : 135//+100,AQI指数(结合表),-75),250,103//--------------------------+100,--AQI指数(结合表),-0区间最小值)--,40区间最大值,--每小时AVG()if (pm_val > 0 && pm_val < 41) {iaqi1 = cal_linear(0, 50, 0, 40, pm_val);}if (pm_val >= 41 && pm_val < 81) {iaqi1 = cal_linear(50, 100, 40, 80, pm_val);}if (pm_val >= 81 && pm_val < 181) {iaqi1 = cal_linear(100, 150, 80, 180, pm_val);}if (pm_val >= 181 && pm_val < 281) {iaqi1 = cal_linear(150, 200, 180, 280, pm_val);}if (pm_val >= 281 && pm_val < 566) {iaqi1 = cal_linear(200, 300, 280, 565, pm_val);}if (pm_val >= 566 && pm_val < 751) {iaqi1 = cal_linear(300, 400, 565, 750, pm_val);}if (pm_val >= 751 && pm_val < 941) {iaqi1 = cal_linear(400, 500, 750, 940, pm_val);}return iaqi1;}/*** CO 24小时*/public static int CO1(Integer pm_val) {int iaqi1 = 0;//AQI=50/40*(103-75)+100  : 135//+100,AQI指数(结合表),-75),250,103//--------------------------+100,--AQI指数(结合表),-0区间最小值)--,40区间最大值,--每小时AVG()if (pm_val > 0 && pm_val < 3) {iaqi1 = cal_linear(0, 50, 0, 2, pm_val);}if (pm_val >= 3 && pm_val < 5) {iaqi1 = cal_linear(50, 100, 3, 4, pm_val);}if (pm_val >= 5 && pm_val < 15) {iaqi1 = cal_linear(100, 150, 4, 14, pm_val);}if (pm_val >= 15 && pm_val < 25) {iaqi1 = cal_linear(150, 200, 14, 24, pm_val);}if (pm_val >= 25 && pm_val < 37) {iaqi1 = cal_linear(200, 300, 24, 36, pm_val);}if (pm_val >= 37 && pm_val < 49) {iaqi1 = cal_linear(300, 400, 36, 48, pm_val);}if (pm_val >= 49 && pm_val < 61) {iaqi1 = cal_linear(400, 500, 48, 60, pm_val);}return iaqi1;}/*** O3 24小时*/public static int O3(Integer pm_val) {int iaqi1 = 0;//AQI=50/40*(103-75)+100  : 135//+100,AQI指数(结合表),-75),250,103//--------------------------+100,--AQI指数(结合表),-0区间最小值)--,40区间最大值,--每小时AVG()if (pm_val > 0 && pm_val < 161) {iaqi1 = cal_linear(0, 50, 0, 160, pm_val);}if (pm_val >= 161 && pm_val < 201) {iaqi1 = cal_linear(50, 100, 160, 200, pm_val);}if (pm_val >= 201 && pm_val < 301) {iaqi1 = cal_linear(100, 150, 200, 300, pm_val);}if (pm_val >= 301 && pm_val < 401) {iaqi1 = cal_linear(150, 200, 300, 400, pm_val);}if (pm_val >= 401 && pm_val < 801) {iaqi1 = cal_linear(200, 300, 400, 800, pm_val);}if (pm_val >= 801 && pm_val < 1001) {iaqi1 = cal_linear(300, 400, 800, 1000, pm_val);}if (pm_val >= 1001 && pm_val < 1201) {iaqi1 = cal_linear(400, 500, 1000, 1200, pm_val);}return iaqi1;}/*** AQI=50/40*(103-75)+100  : 135** @param iaqi_lo +100* @param iaqi_hi AQI指数* @param bp_lo   -75)* @param bp_hi   区间最高值 115* @param pm_val  (103* @return iaqi1---135*/private static int cal_linear(int iaqi_lo, int iaqi_hi, int bp_lo, int bp_hi, Integer pm_val) {int iaqi1 = 0;iaqi1 = (iaqi_hi - iaqi_lo) * (pm_val - bp_lo) / (bp_hi - bp_lo) + iaqi_lo;return iaqi1;}/*** 获取aqi类型** @param aqiAVg* @return int*/public static int getATypeByInt(final int aqiAVg) {/*** 0-50:优 1* 51-100:良 2* 101-150:轻度污染 3* 151-200:中度污染 4* 201-300:重度污染 5* >300:严重污染 6*/if (aqiAVg >= 0 && aqiAVg < 51) {return 1;} else if (aqiAVg >= 51 && aqiAVg < 101) {return 2;} else if (aqiAVg >= 101 && aqiAVg < 151) {return 3;} else if (aqiAVg >= 151 && aqiAVg < 201) {return 4;} else if (aqiAVg >= 201 && aqiAVg < 301) {return 5;} else {return 6;}}/*** 根据int获取aqiString名称** @param aqiAVg* @return int*/public static String getATypeByStr(final int aqiAVg) {/*** 0-50:优 1* 51-100:良 2* 101-150:轻度污染 3* 151-200:中度污染 4* 201-300:重度污染 5* >300:严重污染 6*/if (aqiAVg == 1) {return "优";} else if (aqiAVg == 2) {return "良";} else if (aqiAVg == 3) {return "轻度污染";} else if (aqiAVg == 4) {return "中度污染";} else if (aqiAVg == 5) {return "重度污染";} else {return "严重污染";}}
}

参考:百度文档

Java-AQI计算相关推荐

  1. Aqi计算首要污染物工具类

    package com.cc.common.utils.aqiutil;import java.util.ArrayList; import java.util.Arrays; import java ...

  2. Java架构师成长之道之Java数据计算

    Java架构师成长之道之Java数据计算 Java架构师成长之道 3.1 Java数据计算概述 计算机最主要的任务就是完成生产生活中的各种数据的运算,在Java中提供了诸多的运算符来完成相关数据的运算 ...

  3. java作业 计算平均分和总成绩

    java作业 计算平均分和总成绩 小数保留两位 计算器类 import java.util.Scanner;public class Computer {int score_java;int scor ...

  4. python空气质量指数计算_Python入门案例(八):空气质量指数(AQI)计算

    一.空气质量指数计算V1.0 主要知识点:分支结构.函数.异常处理# -*- coding:utf-8 -*- """ @author:Angel @file:AQI_V ...

  5. 在Java中计算一元线性回归

    文章目录 1.前言 2.内容 2.1 定义实体类 2.2 回归线实现类 2.3 线性回归测试类 3. 总结 1.前言 最近公司项目有需要用到在Java中计算一元线性回归的功能,网上找了很久,发现一篇不 ...

  6. Java 时间间隔计算工具类

    Java 时间间隔计算工具类 一.工具类-DateIntervalUtil package com.example.demotest.util;import java.text.DecimalForm ...

  7. 用Java代码计算磁盘里的文件大小

    用Java代码计算磁盘里的文件大小 原理 代码展示 总结 原理 拿到一个文件后我们需要先判断文件是不是标准文件调用isFile()方法,如果是标准文件直接调用length()方法求文件大小,不是标准文 ...

  8. Java多线程——计算1-20阶乘和

    Java多线程--计算1-20的阶乘和 一.总体思路 效果预览 线程分工 二.设计线程类 GUI Thread Runnable 三.总结 一.总体思路 初次学习Java的时候,学习了多线程的理论知识 ...

  9. java 文件大小计算

    java 文件大小计算: public static String formatFileSize(long size) {DecimalFormat df = new DecimalFormat(&q ...

  10. 学习在java中计算基本的时间段 转载

    概述 如果你知道怎样在java中使用日期,那么使用时间和它才不多一样简单.这篇文章告诉你怎样把他们的差别联系起来.Robert Nielsen还告诉你怎样使用java来计算抵达航班和制造过程的时间. ...

最新文章

  1. 在PHP中实现StringBuilder类
  2. virtual方法(虚方法)与abstract(抽象方法)的区别
  3. 用函数实现simulink_VCU/BMS基于模型的开发---Simulink 代码集成
  4. c# rar解压大小_C#利用WinRAR实现压缩和解压缩
  5. 配置zabbix及安装agent
  6. 判断zk是否挂掉_Zookeeper入门学习第一天,zk集群简单介绍
  7. ESFramework介绍之(34)―― ITcpServerAgent和IUdpServerAgent组件关系图
  8. 大数据应用现状:从发现价值到创造价值
  9. PDPS教程之工艺仿真必备软件
  10. Python入门:数据结构之字典(dict)(1)
  11. html语言间距怎么设置,HTML文字的间距怎么设置
  12. PASCAL VOC 数据集详解与MS COCO组合方式
  13. 车间调度建模系列7|扩展析取图之基于设备偏好的三维析取图模型
  14. 【问题解决】This scheduler instance is still active but was recovered by another instance in the cluster.
  15. 本地计算机无法启动dhcp服务,Windows10无法启用dhcp服务怎么办?
  16. 高德地图嵌入到threejs全景中的踩坑指南
  17. AES128位数据加密算法【直接拷贝可用】
  18. 华山全敏还是全劲_一梦江湖华山加点_一梦江湖华山加点推荐2020_攻略
  19. iphone4安装使用微信
  20. 自考工作分析之工作分析的基础方法

热门文章

  1. 深入理解 Linux 内存子系统
  2. 1,515美元的价格可让您驾驭野兽式机械套装
  3. 网络资产中主机发现方案分析
  4. 2022年电工(初级)考试报名及电工(初级)试题及解析
  5. 计算机管理员和用户名区别,Administrator记不住?教你自定义管理员账户名称
  6. Java调用有道翻译API包括APPID/密钥地址注册
  7. MATLAB图形的实验原理,信息隐藏实验1
  8. iOS系列开发-版本控制工具Git的使用
  9. 【复杂网络系列】模块度(Modularity )的计算方法
  10. CE-植物大战僵尸-子弹速度-豌豆射手