I found all the existing sites for looking up air quality to be slow, so I made a faster alternative. I just finished the MVP and I'm interested to hear if people find it useful: https://aqi.today
Thanks, I missed that they have an API available. Their data is nice, but I'm not sure the API and their TOS work for what I'm doing. I will look into it.
My number seems wrong too. I'm in Edinburgh, and it says 86. PurpleAir shows my closest sensor as about 30 miles away, with a value of 10, and the next closest one 130 miles away with a value of 2.
This is really nice. Without changing the default look/behavior, I'd be really interested also in a chart of say, top 50 metro areas for the day/month/year avg.
A problem with simplifying/reducing context around a number like this is that air quality can vary dramatically within relatively short radii and timespan.
It currently shows 16 for my address, but that's the realtime value: the average for today on PurpleAir is 53.
Also, the measurement point is on the opposite side of the city I live in, in which the AQI varies street-to-street by ~70+ at any given time.
It's true that local air quality can vary a lot, but there aren't enough sensors in the world to give everyone street-by-street data. I think it's still useful to have a fast source for real time "best available" data. I am thinking about ways to add context and allow people to judge the data quality without adding features like maps that would make the site much slower.
I agree, but I was just pointing out that I think PurpleAir is a better source for this because aqi.today is (unintentionally) misleading without the context offered by PurpleAir.
I know that the air pollution is very bad around my area as there was a comprehensive one-off detailed study done of every area of the city in 2017 which showed it to be, and the causes of it have not since changed. The lack of realtime sensors in my area though would mislead aqi.today users to think that everything's rosy here. At least with PurpleAir one get an immediate idea of a lack of data in one's area.
This isn't intended as an outright criticism: I guess aqi.today could be made more informative by adding either some quick context, or a disclaimer, into the UI.
I use airnow.com. The site's usability is fine, and more importantly, their AQI numbers look much more realistic than the data you're getting from PurpleAir. You might consider another data source.
Can you share the rough location where you see a discrepancy? There are various data quality issues with PurpleAir that I attempt to clean up, but after cleanup the data seems to agree pretty well. They seem to have a lot more sensors than AirNow uses so in some cases they can see more localized pollution issues.
How about a list of famous/well known cities, for comparison purposes? Also, how about a quick stat telling me number and average distance of the sensors used to make the determination?
IP geolocation is imprecise. You can grant permission to use more accurate HTML5 geolocation, which will even use GPS if available, or you can manually specify an address.
Most people have a better experience. You were unlucky, but it's easy to fix if you care to specify a location. I doubt that those apps are as fast as my site for the specific purpose of looking up current air quality at your location, but if you are happy with them then by all means continue to use them.
I'd say they probably take a couple of seconds max to load the info (from the time I click on the app icon), while your site is instantaneous. But that's acceptable to me, considering they also show other info, like weather forecast.
The complete site including HTML, CSS, JS, and most importantly the actual data are all bundled together and served directly in response to a single HTTP request. Your browser doesn't need to make a bunch of extra requests requiring round trips and load a bunch of JS libraries before displaying the data.
I'm using IP geolocation to make this possible, which is imperfect (though surprisingly good), and I allow you to override it with optional geocoding or the HTML5 geolocation API.