
com.thanglequoc.aqicalculator.PollutantConcentrationTruncator Maven / Gradle / Ivy
Show all versions of aqi-calculator Show documentation
package com.thanglequoc.aqicalculator;
/**
* PollutantConcentrationTruncator which will support the truncation for
* pollutant based on US EPA rule
*
*
* @author ThangLeQuoc
* @see AQI Calculator
* Guide , section AQI Calculation Turtorial
*/
class PollutantConcentrationTruncator {
/**
* Gets the truncated pollutant concentration on pollutant code.
*
* For PM10, SO2, NO2, truncate to integer
* For PM2.5, CO, truncate to 1 decimal place
* For Ozone, truncate to 3 decimal place
*
* @param pollutant the pollutant (PM10, PM2.5, O3, CO, NO2, SO2)
* @param concentration the concentration
* @return the truncated concentration base on pollutant
*/
double getTruncatedPollutantConcentrationBaseOnPollutant(Pollutant pollutant, double concentration) {
if (Pollutant.PM10.equals(pollutant) || Pollutant.SO2.equals(pollutant) || Pollutant.NO2.equals(pollutant)) {
return Math.round(concentration);
}
if (Pollutant.CO.equals(pollutant) || Pollutant.PM25.equals(pollutant)) {
return Math.round(concentration * 10d) / 10d;
}
return Math.round(concentration * 1000d) / 1000d;
}
}