San Antonio and Sulfur Dioxide

Jack T.
4 min readAug 23, 2021

After taking a look at ozone levels in San Antonio, it’s time to look at the other nasty pollutant that lives in our air — Sulfur Dioxide (SO2).

I’m sure this will surprise nobody, but the largest source of SO2 in our atmosphere comes from…burning fossil fuels! Smaller vehicles like your typical passenger car or van aren’t huge emitters of SO2. Power plants, industrial processes and heavy machinery are the key emitters of SO2 because the types of fuel they use have high sulfur content. And when you burn fuel with a high sulfur content, you also emit high levels of SO2.

There’s a lot of nasty issues with SO2 in the atmosphere. It’s harmful to people, plants and animals. Children with asthma are particularly sensitive to SO2, and so are people with other respiratory illnesses. SO2 in the atmosphere can react with other agents to form more sulfur oxides, none of which are good for human health or the environment. Further, these oxides can contribute to the development of particulate matter (PM) in the air, which can penetrate deeply into lungs and cause respiratory and health issues.

The EPA’s standards for amount of acceptable level of SO2 in the atmosphere are 75 parts-per-billion (ppb) over 1 hour or, on the secondary level of standards, 0.5 parts-per-million (ppm) over 3 hours.

I’m still using the SmartCity sensor data for this analysis and the date ranges and amount of observations in the three datasets are still the same. Instead of the line plots I used for ozone, I’m going to use scatterplots and only plot readings that have an SO2 reading greater than 0. Oh, I also found a way to use the BBC’s style for visualizations, so I’m going to use that. Hopefully they don’t mind!

I noticed something funny about the SO2 data, as well. There’s 5,760 readings where the SO2 levels are less than 0. I’m going to ignore readings less than 0 and only focus on those that are greater than 0. Unless these sensors can suck SO2 out of the atmosphere, there must be something wrong with these sensors…

Interestingly, the sensors never measured any SO2 levels above the EPA maximum. In fact, none of these readings are that high at all, which I find surprising. The Brooks City Base Sensor had 448 measurements of SO2 above 0 but the highest amount of SO2 measured was 13ppb. The Downtown Sensor only had 1(!) SO2 measurement above 0 and the Medical Center Sensor had 11.

These low measurements could be because there’s not a ton of heavy industrial businesses or processes taking place within the city, or at least near these sensors. The Calaveras Power Plant, where San Antonio draws most of its energy, is only 10 miles away from the Brooks Sensor, however, and that sensor had by far the most readings of SO2 higher than 0. But none of these sensors measured anything higher than 25ppb for SO2. That, coupled with the thousands of “negative” readings from all the sensors related to SO2, leads me to think that there might be issues with their measurement of this harmful pollutant.

cosa_brooks_SO2 %>%
count(SO2 > 0)
# A tibble: 2 x 2
`SO2 > 0` n
<lgl> <int>
1 FALSE 22627
2 TRUE 448
cosa_downtown_SO2 %>%
count(SO2 > 0)
# A tibble: 2 x 2
`SO2 > 0` n
<lgl> <int>
1 FALSE 23378
2 TRUE 1
cosa_med_center_SO2 %>%
count(SO2 > 0)
# A tibble: 2 x 2
`SO2 > 0` n
<lgl> <int>
1 FALSE 23368
2 TRUE 11

Looking at whether SO2 triggered alerts is another head-scratcher for me.

cosa_brooks_SO2 %>%
count(AlertTriggered == "so2")
# A tibble: 3 x 2
`AlertTriggered == "so2"` n
<lgl> <int>
1 FALSE 14045
2 TRUE 3270
3 NA 5760
cosa_downtown_SO2 %>%
count(AlertTriggered == "so2")
# A tibble: 3 x 2
`AlertTriggered == "so2"` n
<lgl> <int>
1 FALSE 17604
2 TRUE 15
3 NA 5760
cosa_med_center_SO2 %>%
count(AlertTriggered == "so2")
# A tibble: 3 x 2
`AlertTriggered == "so2"` n
<lgl> <int>
1 FALSE 17606
2 TRUE 13
3 NA 5760

According to the data, alerts were triggered for SO2 3, 270 times even though levels above 0 were only measured 448 times at the Brooks Sensor. Every single sensor had more SO2 alerts triggered than the amount of times SO2 was measured above 0. This leads me to believe that something might be wrong with the sensor. It’s either not measuring SO2 accurately, or all measurements of pollutants are askew.

Although SO2 is a harmful pollutant, it does not seem to have a heavy presence in San Antonio. However, the data raises questions about the accuracy of the sensors, in general. The discrepancies between alerts triggered and the amount of times SO2 was measured above 0 give me pause and causes me to question the accuracy of the sensors, which of course throws into question the accuracy of the other pollutants’ measurements. I’ll see how the rest of the measurements stack up in the next couple of weeks.

--

--

Jack T.

Data enthusiast. Topics of interest are sports (all of them!), environment, and public policy.