Uncertainty in Sentinel-5p CO column volume mixing ratio

Hi, I have a question about deriving the column volume mixing ratio uncertainty.

I have derived the column volume mixing ratio using “derive(CO_column_volume_mixing_ratio {time} [ppbv])” and tried “derive(CO_column_volume_mixing_ratio_uncertainty {time} [ppbv])” to get the uncertainty. I get the error “could not derive variable ‘CO_column_volume_mixing_ratio_uncertainty {time}’”.

Is there a way to derive the uncertainty in CO_column_volume_mixing_ratio?

I am using the harp package version 1.23 in Python 3.12.

Thanks for helping!

HARP does not perform uncertainty propagation except for the binning operations and some very specific cases. So, it won’t be able to derive CO_column_volume_mixing_ratio_uncertainty.

Note that HARP needs to perform multiple steps under the hood to calculate the vmr. You can check these steps with the harpdump command line tool:

% harpdump --list-derivations -t CO_column_volume_mixing_ratio S5P_OFFL_L2__CO_____20241126T130221_20241126T144351_36904_03_020800_20241128T025036.nc
CO_column_volume_mixing_ratio {time} [ppv] (double) from
  CO_column_number_density {time} [molec/m2] (double)
  column_number_density {time} [molec/m2] (double) from
    dry_air_column_number_density {time} [molec/m2] (double) from
      dry_air_column_density {time} [kg/m2] (double) from
        column_density {time} [kg/m2] (double) from
          surface_pressure {time} [Pa] (double)
          pressure_bounds {time,vertical,independent(2)} [Pa] (double)
          altitude {time,vertical} [m] (double)
          latitude {time} [degree_north] (double)
        H2O_column_density {time} [kg/m2] (double) from
          H2O_column_number_density {time} [molec/m2] (double)
    H2O_column_number_density {time} [molec/m2] (double)

You can combine this with the formula in the documentation, such as the one for column volume mixing ratio or the one for dry air column density to understand how HARP has actually performed the calculations.

To derive column vmr uncertainty you would actually need uncertainties on all these input variables in order to do the propagation. And these uncertainties are not available in the product. There might be some approximate way to derive the uncertainty, but that is not something that HARP can facilitate.

Hi Sander,

Thanks for the response! Your explanation of what’s happening under the hood is really helpful.
I’ll have a think about ways to approximate the uncertainty.