0

How do I convert SO2 mol/m2 to µg/m3 ?

var collection = ee.ImageCollection('COPERNICUS/S5P/NRTI/L3_SO2')
.select('SO2_column_number_density')
.filterBounds(geometry)
.filterDate('2021-10-01', '2021-10-31')
// .filterMetadata("SO2_column_number_density", 'less_than', 0);
.map(function(image){return image.updateMask(image.gte(0))})
// print(collection)
// var col=collection.values.filter(ee.Filter.notNull(['SO2_column_number_density']))
print(collection)
var no2Image = collection.mean().clip(geometry); // mean across each period
print('NO2 image', no2Image); // debug info in console
var band_viz = {
min: 0,
max: 0.004,
opacity: 1,
palette: ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red']
};
// The region of interest - a planar rectangle around London/S.England.
var rect = geometry
Map.setOptions('hybrid'); // set map to hybrid backdrop
Map.centerObject(rect, 6); // zoom in to the defined area
Map.addLayer(no2Image, band_viz, 'Sentinel 5P NRT N02 - Nov 2019');
// Create a task that you can launch from the Tasks tab.
// commented out here - but saves off geoTIFF files
Export.image.toDrive({
image: no2Image.clip(rect),
description: 'SO2_red_sea_december',
folder: 'GEE',
fileNamePrefix: 'SO2_change',
region: rect,
fileFormat: 'GEOTIFF',
scale: 1000
});

Code source: Filter negative SO2 image collection in GEE

1 Answer 1

1

Molecular weight of SO2 is 64.066 µg/µmol so, for converting mol/m2 to µg/m2 the factor is 64.106 because there are 1,000,000 µmol in a mol. The third dimension is the column height for converting m2 to m3 (it looks like a prism with square base). If you want to consider the height, you should to multiply each value for this parameter (if not, obtained values will be expressed in µg/m3 until 1 m height; as in following code).

In your code, you should modify as follows for obtaining values expressed in µg/m3 (change the height value for different altitude of column density).

// define a 'collection' of images

var height = 1;

var collection = ee.ImageCollection('COPERNICUS/S5P/NRTI/L3_SO2')
  .filter(ee.Filter.calendarRange(12,12,'month'))

  .select('SO2_column_number_density')
  .filterBounds(table)
  .filterDate('2018-05-01', '2021-05-31')
  // .filterMetadata("SO2_column_number_density", 'less_than', 0);
  .map(function(image){
    return image
      .multiply(64.066E6)
      .multiply(height)
      .updateMask(image.gte(0))});

After running the code in above link, I got following result for an arbitrary point in your roi.

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.