Air pollution is the presence of substances suspended in the atmosphere that are considered harmful to the health of human beings and other living things. Some of the pollutants include harmful gases such as nitrogen dioxide, Sulphur dioxide and carbon monoxide. These gases may be released into the atmosphere through either natural sources or anthropogenic sources. Natural sources include volcanic eruptions, forest fires and lighting. Anthropogenic sources include the burning of fossil fuels by locomotives, local industries and power plants. This article focuses on air quality monitoring in the atmosphere using Sentinel 5P TROPOMI in Google Earth Engine.
Select an Area of Interest
You can choose an area of interest by importing a shapefile of the region you are interested in. To achieve this, proceed as follows:
- On the left side panel, click on Assets. A list of your previously ingested tables (shapefiles) will appear.
- Navigate to your shapefile of interest and click on the arrow to import the shapefile into the script.
Select an image collection.
- Select an image collection from Sentinel 5P image collections by Copernicus for each gas.
- Proceed to perform a filter for the dates, to obtain the date the image was acquired.
var col1 = ee.ImageCollection('COPERNICUS/S5P/NRTI/L3_NO2')
.select('NO2_column_number_density')
.filterDate('2021-01-01', '2021-05-31');
var col2 = ee.ImageCollection('COPERNICUS/S5P/NRTI/L3_SO2')
.select('SO2_column_number_density')
.filterDate('2021-01-01', '2021-05-31');
var col3 = ee.ImageCollection('COPERNICUS/S5P/NRTI/L3_CO')
.select('CO_column_number_density')
.filterDate('2021-01-01', '2021-05-31');
Visualization
Apply visualization parameters to the image bands.
var band_viz = {
min: 0,
max: 0.0005,
palette: ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red']
};
Display the Final Result
Map.addLayer(col1.mean().clip(table), band_viz, 'S5P N02');
Map.addLayer(col2.mean().clip(table), band_viz, 'S5P S02');
Map.addLayer(col3.mean().clip(table), band_viz, 'S5P CO');
Map.centerObject(table, 11);
Nitrogen dioxide
Sulphur dioxide
Carbon Monoxide
Add a Legend
Add a legend to the map to help interpret the results i.e. to identify the levels of pollution from high to low.
var legend = ui.Panel({
style: {
position: 'bottom-left',
padding: '8px 15px',
margin: '10px'
}});
// Create legend title
var legendTitle = ui.Label({
value: 'Concentration Levels',
style: {fontWeight: 'bold',
fontSize: '18px',
margin: '0 0 4px 0',
padding: '0'
}});
// Add the title to the panel
legend.add(legendTitle);
// Creates and styles 1 row of the legend.
var makeRow = function(color, name) {
// Create the label that is actually the colored box.
var colorBox = ui.Label({
style: {
backgroundColor: color,
// Use padding to give the box height and width.
padding: '8px',
margin: '0 0 4px 0'
}});
// Create the label filled with the description text.
var description = ui.Label({
value: name,
style: {margin: '0 0 4px 6px'}
});
// return the panel
return ui.Panel({
widgets: [colorBox, description],
layout: ui.Panel.Layout.Flow('horizontal')
})};
// Palette with the colors
var palette = ['red', 'yellow', 'green', 'cyan', 'purple', 'blue', 'black'];
// name of the legend
var names = ['Very High', 'High', 'Moderately High', 'Moderate', 'Moderately Low', 'Low', 'Very Low'];
// Add color and names
for (var i = 0; i < 7; i++) {
legend.add(makeRow(palette[i], names[i]));
}
// add legend to map (alternatively you can also print the legend to the console)
Map.add(legend);
Analysis
High levels of nitrogen dioxide around the Central Business District area due to the burning of fossil fuels by vehicles due to many transportation activities. Air quality monitoring is an important measure to ensure lives within these areas are safeguarded from pollution by using measures that are stringent on such emissions.
Be sure to check out the article on Burn severity mapping
Air quality monitoring using Sentinel