Convert mass mixing ratio (MMR) to mass concentration or to volume mixing ratio (VMR)

How do I convert MMR to VMR?

1 Like

Most of the chemical species in CAMS Global data are archived as mass mixing ratios (MMR, kg of gas / kg of air).

Convert MMR to mass concentration (e.g. in kg/m3)

To compute mass concentration (mass per volume unit) apply this formula:
\rho_x = \alpha_x \frac{p}{RT}

or

\rho_x = \alpha_x \rho

Where \rho_x (kg/m^3) is concentration of a chemical species, \alpha_x(kg/m^3) is mass mixing ratio, p(Pa, 1 Pa = 0.01 hPa) , T(K) and \rho(kg/m^3) are ambient pressure, temperature and density and R is the specific gas constant (for dry air 287.058 \frac{J}{kgK} ).

Convert MMR to Volume Mixing Ratio (VMR, units ppmv or ppbv)

To convert data from MMR to VMR you only need molar masses of dry air and molar mass of the atmospheric species. See here for more information (page 9). For example:
  • For O3, the formula is: VMR = 28.9644 / 47.9982 * 1e9 * MMR
  • For CO the formula is: VMR = 28.9644 / 28.0101 * 1e9 * MMR
  • For NO2 the formula is: VMR = 28.9644 / 46.0055 * 1e9 * MMR
  • For SO2 the formula is: VMR = 28.9644 / 64.0638 * 1e9 * MMR
  • For CO2 the formula is: VMR = 28.9644 / 44.0095 * 1e9 * MMR
  • For CH4 the formula is: VMR = 28.9644 / 16.0425 * 1e9 * MMR

The 1e9 in the formulae gives parts per billion (ppbv), use 1e6 to get parts per million (ppmv).

Dobson Unit (DU)

DU is a vertically integrated quantity and can only be used for total or partial column parameters. To convert total column Ozone data from kg/m2 into DU, multiply the values by 46698. See also What is the Dobson Unit (DU)? and How to convert Ozone units from µg/m3 to Dobson Unit?
1 Like

sudurbhai kela..sutmarani kobo nuwaro kiba hudhile

Thank you so much for this, really helped!

And to convert particulate matter?

1 Like

Hi,

Have you found a solution for that? I am having a hard time to covert the PM 2.5 total kg to μg/m³. Any idea how to do it?

Thanks,

Hello,

I can propose you this function used to convert data from the CAMS global atmospheric composition forecasts:

import xarray as xr

def convert_kgByKg_to_microgramByCubicMeter(ds: xr.Dataset) -> xr.Dataset:
    import numpy as np

    specificHumidity = ds.q
    airPressure_Pa = ds.sp
    temp_C = ds.t - 273.15
    # https://en.wikipedia.org/wiki/Tetens_equation
    saturation_vapor_pressure_Pa = (
        0.61078 * np.exp(17.27 * temp_C / (temp_C + 237.3)) * 1000
    )
    # https://fr.wikipedia.org/wiki/Humidit%C3%A9_sp%C3%A9cifique section Approximation de l'humidité spécifique
    water_vapor_partial_pressure_Pa = ( specificHumidity * airPressure_Pa / (0.622 + 0.378 * specificHumidity))
    relHumidity_0_1 = water_vapor_partial_pressure_Pa / saturation_vapor_pressure_Pa
    # https://fr.wikipedia.org/wiki/Masse_volumique_de_l%27air
    numerator = airPressure_Pa - 230.617 * relHumidity_0_1 * np.exp(17.5043 * temp_C / (241.2 + temp_C) )
    denom = 287.06 * (temp_C + 273.15)
    airVolumicMass_kgByM3 = numerator / denom

    for var in ds:
        if var in ["no2", "so2", "co", "o3"]:  # kg/kg
            attributes = ds[var].attrs
            ds[var] = ds[var] * 1e9 * airVolumicMass_kgByM3
            ds[var].attrs = attributes
            ds[var].attrs["units"] = "µg/m³"
            ds[var].attrs["long_name"] = f"{var.upper()} volumic mass at surface"
            ds[var].attrs["standard_name"] = f"volumic_mass_of_{var.upper()}_at_surface"

        elif var in ["pm10", "pm2p5"]:  # kg/m³
            attributes = ds[var].attrs
            ds[var] = ds[var] * 1e9  # kg/m³ to µg/m³
            ds[var].attrs = attributes
            ds[var].attrs["units"] = "µg/m³"
            ds[var].attrs["long_name"] = f"{var} volumic mass at surface"
            ds[var].attrs["standard_name"] = f"volumic_mass_of_{var}_at_surface"

    ds = ds.drop_vars(["q", "sp", "t"])  # don't need them anymore
    return ds

Just raise the variable to 9, in R it would be pm2p5 * 1e9

Thanks for the suggestion but I am not sure this is correct. To be more precise, I am trying to convert Wildfire flux of particulate matter d < 2.5 µm (PM2.5) which are kg m-2 s-1 in the CAMS/GFA dataset to PM2.5 concentration in μg/m³. I appreciate any suggestion.