Commit c25ff0f3 by Demid Merzlyakov

Correct AQI scales.

parent 6957e2c8
......@@ -230,73 +230,55 @@ public struct Pollutant: Equatable, Hashable {
public private (set) var status: HealthStatus
private let hazardousLevelStart: Double?
/// Preferably these should be configurable from the server.
/// See https://en.wikipedia.org/wiki/Air_quality_index
/// The "AQI Category, Pollutants and Health Breakpoints" table.
/// Climacell API reference: https://docs.tomorrow.io/reference/data-layers-air
private static let upperLimits: [String: [HealthStatus: Double]] = [
"pm10": [
.good: 50.0,
.moderate: 100.0,
.unhealthyForSensitiveGroups: 250.0,
.unhealthy: 350.0,
.veryUnhealthy: 430.0,
.hazardous: Double.infinity
.good: 27.0,
.moderate: 104.0,
.unhealthyForSensitiveGroups: 204.0,
.unhealthy: 304.0,
.veryUnhealthy: 390.0,
.hazardous: Double.infinity // 515.0
],
"pm2.5": [
.good: 30.0,
.moderate: 60.0,
.unhealthyForSensitiveGroups: 90.0,
.unhealthy: 120.0,
.veryUnhealthy: 250.0,
.hazardous: Double.infinity
.good: 6.0,
.moderate: 24.0,
.unhealthyForSensitiveGroups: 45.0,
.unhealthy: 103.0,
.veryUnhealthy: 200.0,
.hazardous: Double.infinity // 375.0
],
"no2": [
.good: 40.0,
.moderate: 80.0,
.unhealthyForSensitiveGroups: 180.0,
.unhealthy: 280.0,
.veryUnhealthy: 400.0,
.hazardous: Double.infinity
.good: 22.0,
.moderate: 77.0,
.unhealthyForSensitiveGroups: 230.0,
.unhealthy: 505.0,
.veryUnhealthy: 950.0,
.hazardous: Double.infinity // 1650.0
],
"o3": [
.good: 50.0,
.moderate: 100.0,
.unhealthyForSensitiveGroups: 168.0,
.unhealthy: 208.0,
.veryUnhealthy: 748.0,
.hazardous: Double.infinity
.good: 27.0,
.moderate: 62.0,
.unhealthyForSensitiveGroups: 145.0,
.unhealthy: 185.0,
.veryUnhealthy: 305.0,
.hazardous: Double.infinity // 505.0
],
"co": [
.good: 1.0,
.moderate: 2.0,
.unhealthyForSensitiveGroups: 10.0,
.unhealthy: 17.0,
.veryUnhealthy: 34.0,
.hazardous: Double.infinity
.good: 2.2,
.moderate: 7.0,
.unhealthyForSensitiveGroups: 11.0,
.unhealthy: 14.0,
.veryUnhealthy: 23.0,
.hazardous: Double.infinity // 41.0
],
"so2": [
.good: 40.0,
.moderate: 80.0,
.unhealthyForSensitiveGroups: 380.0,
.unhealthy: 800.0,
.veryUnhealthy: 1600.0,
.hazardous: Double.infinity
],
"nh3": [
.good: 200.0,
.moderate: 400.0,
.unhealthyForSensitiveGroups: 800.0,
.unhealthy: 1200.0,
.veryUnhealthy: 1800.0,
.hazardous: Double.infinity
],
"pb": [
.good: 0.5,
.moderate: 1.0,
.unhealthyForSensitiveGroups: 2.0,
.unhealthy: 3.0,
.veryUnhealthy: 3.5,
.hazardous: Double.infinity
.good: 18.0,
.moderate: 56.0,
.unhealthyForSensitiveGroups: 131.0,
.unhealthy: 245.0,
.veryUnhealthy: 455.0,
.hazardous: Double.infinity // 805.0
]
]
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment