Since 2020, South Portland-area residents have collected over 7,000 reports of unpleasant odors through the SmellMyCity app. Explore the results using the map and charts below.
The histogram chart above shows how the number of reports changes over time. Drag the gray box to highlight a specific time period.
The compass in the bottom right corner allows you to show only reports that were submitted when wind was coming from a given direction.
When users report a smell, they are given the option of providing a description for what the smell they are reporting. In order to get a better idea of what kinds of stinks are plaguing the residents of Portland, we counted the number of times people used specific words in their descriptions, and then categorized them into six groups.
The cart above shows a clear trend regarding smell reports: the vast majority of smells that motivate people to file a report originate from the petrochemical industry.
To categorize what types of smells people reported, we counted the words used in each smell report description. First, each description was split into the descriptions component words. Then, words unrelated to smell descriptions, such as "always", "very", and "ruining", were removed. Next, a list of synonyms were used to remove spelling errors, differences in tense and plurality, and regional and cultural differences. For example: "sewer" was replaced with "sewage", "gassy" was replaced with "gas", "pavement" with "asphalt", and "eggs" with "sulfur".
At this point, we have the un-grouped terms used in each description. When we count these terms, we can create the chart below, which shows terms used in descriptions which were counted at least fifty times. Several descriptions of the local smells are repeated often: "petroleum", "tar", "oil", "asphalt", "sulfur", "gasoline". Complaints also mention feeling nausea, throat irritation, and headaches.
These terms were categorized by where they most likely originated, except for terms that only related to safety ("carcinogen", "nausea", etc.). For example: "oil", "gas", and "propage" were all categorized as "petrochemical"; "rubber", "asphalt", and "tires" were mapped to "transportation"; and "carcinogen", "electrical", and "bitter" were mapped to "unknown, dangerous".
To see exactly how these charts were created see this observable notebook.
The data used in this visualization is obtained through an API call. Since this is a public API, SmellMyCity has taken certain precautions to protect personal information which could impact the reliability of the data. In particular:
Prevailing wind direction is obtained separately from a NOAA database. The direction associated with each data point is the prevailing direction on the day of the report, but may not represent wind conditions at the particular moment the report was submitted.
Finally, the text analysis presented above required many design choices from the researchers, including determining the categories in which to group comments and developing a list of synonyms.
Smell reports are not made consistently throughout the day. If you're trying to avoid smells when doing certain activities it would make sense to consult the following chart to determine when you'll be the least likely to encounter smelly portland air.
This project was initiated by the Greater Portland Council of Governments (GPCOG) in collaboration with Prof. Philip Bogden at The Roux Institute at Northeastern University.
This website was developed by Philip Mathieu, Alexander Berger, Nathaniel Webb, and Lukas Hernandez during the Fall 2022 section of CS7290. It builds on work from the Fall 2021 and Spring 2022 sections of DS5110.
Contribute your own smell reports to the map using the SmellMyCity app. Go to SmellMyCity on your computer, or if you're on your phone, click the link below to download the app on iOS or Android now!