//Calculate what breakpoint index to use public static int BreakpointIndexCalculation(double Pollutant, BreakPointTable B) { int breakPointIndex = 0; if (Pollutant != 0) { for (int i = 0; i < 6; i++) { double low = B.Low[i]; double high = B.High[i]; if (Pollutant >= low && Pollutant <= high) { breakPointIndex = i; break; } } } else { breakPointIndex = int.MaxValue; } return(breakPointIndex); }
public static double AQIEquation(double pollutantReading, int breakpointIndex, BreakPointTable breakPoint) { //index 7 in breakpoint table is the AQI double Ihi = breakPointTable[7].High[breakpointIndex]; double Ilo = breakPointTable[7].Low[breakpointIndex]; double BPhi = breakPoint.High[breakpointIndex]; double BPlow = breakPoint.Low[breakpointIndex]; double Cp = pollutantReading; double AQIForPollutant = ((Ihi - Ilo) / (BPhi - BPlow)) * (Cp - BPlow) + Ilo; return(AQIForPollutant); }