There are thousands of sensors around the city. You can get a sense of shade-vs-sun temperatures by the spread of numbers you see (on cloudy days, the reported temperatures will be much closer together, while on sunny days, sensors in the sun will report elevated temperatures.)
You do need to make sure to disable indoor sensors, and keep in mind that some sensors are faulty. (I've seen some that have been reporting a constant temperature for years.)
or just click the buttons that accomplish the same thing. The point is someone at PurpleAir is asleep at the wheel if such an obvious default configuration isn't being set. If they can't get such a basic thing right, why do we trust anything else from them? "Anything else" specifically including "running their software on a raspberry pi inside my home network".
I use Mr Chilly to demonstrate to non-SF folks how many microclimates SF (and the Bay Area has).
Only suggestion: separate Inner and Outer Sunset since there can be a massive difference between near Ocean Beach and near Irving/9th Ave in autumn (ie. SF's hottest season).
Edit: nevermind, just saw both inner_sunset and outer_sunset in /neighborhoods. I'd assumed it was merged based on the human readable list on the landing page. Thanks for the fun API!
As a Meteorologist, I love this! There is one little thing to be aware of with using Purple Air for temperatures, though, as their primary purpose is AQI not temp, all temp data comes with this disclaimer. That said, everything is still at lease directionally accurate.
"Temperature, estimated using a formula temp = 1.0227 * raw_temp_f - 9.3755 developed by Lance Wallace to account for heat generated by the WiFi module and other electronics in a PurpleAir sensor. This will not be accurate for all situations. More information can be found in Lance Wallace's notes."
An interesting problem with self-reported temperature is that people just put their outdoor sensors inside for some reason or near an ambient heat source; also in neighborhoods with tall buildings, it's a bit colder higher up, so the balcony readers are a bit off from sidewalk temperature, it is interesting to see though that one block from another is super different in temp, is it because it's actually different or is there something heating/cooling the sensor off randomly
Yeah it’s not accurate at all. Not the OPs fault but the purpleair sensors are placed by users. Right now it says fidi is 9° warmer than haight. Plausible, but it could also be the only 1 sensor reporting from fidi is on a balcony near a drier vent.
I use PurpleAir data for a lot of my home automations— I have a smart window vent and configure it to blow in/out depending on which side has the worse air.
(Thank you to those who maintain public sensors!)
I do notice that in my neighborhood (Noe Valley) a lot of the sensors are very incorrect or often offline. I've resorted to taking the median and throwing outliers away, but even this often doesn't work. This is the challenge of relying on crowdsourced data I suppose...
note that I also have a system where if the temperature seems outlier compared to direct neighbors it averages the 3 nearest neighbors. this usually occurs in neighborhoods with a single sensor that can skew the results heavily at certain times of the day, etc.
There are thousands of sensors around the city. You can get a sense of shade-vs-sun temperatures by the spread of numbers you see (on cloudy days, the reported temperatures will be much closer together, while on sunny days, sensors in the sun will report elevated temperatures.)
You do need to make sure to disable indoor sensors, and keep in mind that some sensors are faulty. (I've seen some that have been reporting a constant temperature for years.)
I don't understand why it includes indoor sensors at all let alone by default. Why would I want to know the temperature inside some random building?
Add location_type=0 to only get outdoor sensors
Footer should say "Data from PurpleAir API" instead of "Data from SF Microclimates API"...
Mr. Chilly is one of those niche apps that sparks joy and reminds me of the early app days.
It's an excellent iOS app: https://mr-chilly.com/
My goal was to do something similar as a Claude Code skill
Only suggestion: separate Inner and Outer Sunset since there can be a massive difference between near Ocean Beach and near Irving/9th Ave in autumn (ie. SF's hottest season).
Edit: nevermind, just saw both inner_sunset and outer_sunset in /neighborhoods. I'd assumed it was merged based on the human readable list on the landing page. Thanks for the fun API!
"Temperature, estimated using a formula temp = 1.0227 * raw_temp_f - 9.3755 developed by Lance Wallace to account for heat generated by the WiFi module and other electronics in a PurpleAir sensor. This will not be accurate for all situations. More information can be found in Lance Wallace's notes."
Usually what I want the weather for is to choose what to wear, not to put in a bash script or an LLM or something.
Made it in about 5 minutes with v0.
https://v0-weather-app-one-coral.vercel.app/
Surprisingly, Lands End is the highest temp right now.
Kinda neat!
(Thank you to those who maintain public sensors!)
I do notice that in my neighborhood (Noe Valley) a lot of the sensors are very incorrect or often offline. I've resorted to taking the median and throwing outliers away, but even this often doesn't work. This is the challenge of relying on crowdsourced data I suppose...
note that I also have a system where if the temperature seems outlier compared to direct neighbors it averages the 3 nearest neighbors. this usually occurs in neighborhoods with a single sensor that can skew the results heavily at certain times of the day, etc.
Hacked together an SF parks ranking system based on current weather
https://sfparks.nathanflurry.com/
Is that the source of the data?
You should use Purple Air if you want to make it more focused https://www2.purpleair.com/