Inspiration

Air pollution affects people’s health and daily decisions, but air-quality information is often presented as disconnected numbers. We wanted to create a simple, interactive tool that helps users understand those measurements in a more approachable way.

This inspired us to build AirScope, an environmental AI prototype that combines air-quality measurements with geographic context and an uploaded environmental image. The goal is not to replace official AQI services, but to demonstrate how machine learning can make environmental data easier to explore.

What it does

AirScope estimates pollution risk as Low, Moderate, or High based on environmental measurements such as:

  • PM2.5
  • PM10
  • NO2
  • SO2
  • CO
  • O3
  • Temperature
  • Humidity
  • Wind speed

Users can also enter latitude and longitude to view the selected location on an interactive map. An environmental image can be uploaded as visual context. In the current prototype, the image is displayed for context and does not directly affect the numerical prediction.

The app also displays the model’s confidence score so users can see how strongly the model supports its prediction.

How we built it

We built the application in Python using Streamlit. A trained Random Forest classification model is stored in a Joblib file and loaded by the app.

The main workflow is:

  1. Collect environmental measurements from the sidebar.
  2. Arrange the inputs using the same feature names used during model training.
  3. Pass the values to the trained machine-learning model.
  4. Calculate the predicted pollution-risk class and confidence score.
  5. Display the result using Low, Moderate, or High visual indicators.
  6. Show the selected coordinates with a Folium map.
  7. Allow users to upload an environmental image using Streamlit’s file uploader.

We used pandas to prepare the model input, scikit-learn for prediction, Joblib

Built With

  • artificial
  • community
  • data
  • environmental
  • folium
  • forest
  • github
  • intelligence
  • joblib
  • learning
  • machine
  • monitoring
  • pandas
  • pillow
  • python
  • random
  • scikit-learn
  • streamlit
  • streamlit-folium
  • visualization
Share this project:

Updates

Submission history