Question: How do we get relevant PM data to residents in under 10 minutes?

eustatic is asking a question about purpleair
Follow this topic

by eustatic | January 20, 2021 03:24 | #25501

Purple Air has great data that makes a big mess. Healthy Gulf is spending all of our time maintaining units and working with legal professionals, and doesn't have the labor power to constantly watch, interpret, prompt residents, and attend to units. We are seeking to recruit volunteers to watch a sensor on the purple air map every four days. This is kind of silly, to be honest, but that is what has been effective so far.

We know PM changes behavior and makes people sick. We would like to prompt residents with data over SMS, and have a text response forwarded to Healthy Gulf community scientists for summary examination, escalation of communications, and perhaps reportage to agencies.

For every public Purple Air sensor [ABCDE], there's a simple website[ABCDE]

See this for sensor 97223

That displays data for the last six minutes, I think.


--> What do these fields display? I've read the Purple Air API page a few times, but it doesn't sink in. I post this question for more programming-savvy people.

We have alerts for flooding rains in New Orleans. There's a service that can text you within 5 minutes based on

--thresholds of increase

--or a high amount over time (like an hour).

I encourage the reader to make an account here and try these alerts out. I like the Ambient Weather alert system. Their PM sensor is pretty off, though. But this works for flooding rain / climate deluges.

I'm thinking of something similar for Particulate Matter.

Imagine this::

If you sign up to a (public) Purple Air sensor, you can get a text prompt SMS everytime

--duration of readings above US EPA 35 ug/m3 exceeds one hour
--rate of increase of US EPA ug/m3 in the last 5-10 minutes exceeds X

[We need to analyze some historical data to determine what X will be]

At some duration less than an hour, the rate is fast enough that we can project that after an hour, the reading of US EPA ug/m3 will exceed 35 during the entire hour. We have to assume that air pollution phenomena "spikes" have some coherent qualities, but I have no problem making these assumptions.

Actually, at some point, the rate can be too fast, at some point, the rate is so fast, it only tells you that the sensor is broken.


--sensor has stopped transmitting for the last 20 minutes

--sensor has flatlined to zero for more than a day**


--this alert language will include wind direction from a local weather station


Airwyn is great. download it now. Email them, they are responsive, I find.

But right now, Airwyn only has the option for
--Air Quality decreasing for public units

Ideally, I would like to have the local units prompt residents with SMS messages, and have them

1) Text back

if they smell anything or change what they are doing due to the prompt

Like "I'm coughing and can't go to work"

"It stinks and I don't want to take my grandchild outside"

"This is terrible, and I feel like I can't go outside at all anymore"

2) Post a photo or odor report to the ISeeChange "Skies and Air" Investigation

But this is something to consider another day.


I'm definitely not programming-savvy but found this blog post about setting up notifications using PurpleAir data. It uses a third-party platform, but maybe the concepts are relevant?

@wu_ming2, I saw here that you set up push notifications from your PurpleAir. Any ideas here? Thanks!

Is this a question? Click here to post it to the Questions page.

Reply to this comment...

A five minute epa threshold is 35 * 12 = 420 ug/m3. If a measurement hits this high, we know within 5 minutes that it has exceeded an hourly threshold 8:33 A ten minute epa threshold is 35 * 6 = 210 ug/ m3 8:34 The purple air / woodsmoke basically takes a reading every two minutes. That threshold is 950, which is crazy. All of these are pretty high

but we have seen readings over 400

Reply to this comment...

@lesbreathe Mary Jo asked a similar question today!

Reply to this comment...

@seankmcginnis also shared these helpful links today - how to get the data for Purple Air.

API for PurpleAir

Looks like the API is calling a REST end point - not collecting it from the sensor itself

This API documentation could be difficult in some geographic circumstances. He's going to look at other sensors that can connect to get the fields of information that communities would need to make it [the data] useful!

@eustatic & @amocorro - I was able to create a scheduled Python script that calls the API and returns the data on 10 minute intervals (PurpleAir asks that we not make requests more frequent than that). I am taking the response data and:

  • parsing it into a three-dimensional hosted feature layer
  • storing the response data in a table to use for historic or computational analysis

As the script iterates through the response values, there are ways we could extend it to push an alert/notification.

Reply to this comment...

@bhamster I just became aware of this thread. My profile has notifications settings on but received none. Who knows why.

For the record my solution currently relies on Heroku Scheduler with a minimum period of 10 minutes. For myself I set to receive once every 30 minutes since don’t like being flooded with notifications. My reaction to particulate pollution became progressively more relaxed after setting up a good purifier and notifications for when to use it.

If I understand the original post correctly, sensor checking occurred once every few days so my solution may work to improve response time.

Reply to this comment...

Log in to comment