hypergas.ime_csf module

IME/CSF method of calculating gas emission rates

class hypergas.ime_csf.IME_CSF(sensor, longitude_source, latitude_source, plume_nc_filename, plume_name, ipcc_sector, gas='ch4', wind_source='ERA5', wspd_manual=None, sp_manual=None, land_only=True, land_mask_source='OSM')[source]

Bases: object

Initialize IME_CSF.

Parameters:
  • sensor (str) – satellite sensor name.

  • longitude_source (float) – longitude of plume source.

  • latitude_source (float) – latitude of plume source.

  • plume_nc_filename (str) – plume NetCDF file generated by hypergas.emiss.Emiss.export_plume_nc().

  • plume_name (str) – the plume name (e.g., “plume0”).

  • ipcc_sector (str) – The IPCC sector name: “Electricity Generation (1A1)”, “Coal Mining (1B1a)”, “Oil & Gas (1B2)”, “Livestock (4B)”, “Solid Waste (6A)”, “Other”.

  • gas (str) – the trace gas name.

  • wind_source (str) – wind source name (“ERA5” or “GEOS-FP”).

  • wspd_manual (float) – Default: None (using the wspd from wind_source data), units: m/s.

  • sp_manual (float) – Default: None (using the surface pressure from wind_source data), units: Pa.

  • land_only (bool) – whether only considering land pixels.

  • land_mask_source (str) – the data source of land mask (“OSM”, “GSHHS” or “Natural Earth”), Default: “OSM”.

calc_emiss()[source]

Calculate emission rate (kg/h) using all available methods:

ime(), ime_fetch(), ime_cm(), and csf(),

csf(npixel_interval=2.5)[source]

Calculate the emission rate (kg/h) using the Cross-Sectional Flux (CSF) method.

Parameters:

npixel_interval (float) – interval of CSF lines (unit: n*pixel_res).

Returns:

  • ds_csf (Dataset) – The xarray dataset saves the CSF line coords and emission rates for each line.

  • n_csf (int) – The number of CSF lines.

  • l_csf (float) – The length (unit: meter) of the curved CSF line.

  • u_eff (float) – The effective wind speed (m/s).

  • Q (float) – The emission rate (kg/h).

  • Q_err (float) – The total estimate error (kg/h).

  • err_random (float) – The uncertainty (kg/h) caused by the retrieval random error.

  • err_wind (float) – The uncertainty (kg/h) caused by the wind speed error.

  • err_calib (float) – The uncertainty (kg/h) caused by the wind calibration error.

ime()[source]

Calculate the emission rate (kg/h) using the integrated mass enhancement (IME) method.

Returns:

  • sp (float) – The mean surface pressure (Pa) in the plume mask.

  • wspd (float) – The mean wind speed (m/s) in the plume mask.

  • wdir (float) – The mean wind direction (deg) in the plume mask.

  • wspd_all (list) – The list of available wind speed (m/s) data.

  • wdir_all (list) – The list of available wind direction (deg) data.

  • l_ime (float) – The geometric plume length (m).

  • l_eff (float) – The effctive plume length (m).

  • u_eff (float) – The effective wind speed (m/s).

  • IME (float) – The total gas mass enhancement (kg).

  • Q (float) – The emission rate (kg/h).

  • Q_err (float) – The total estimate error (kg/h).

  • err_random (float) – The uncertainty (kg/h) caused by the retrieval random error.

  • err_wind (float) – The uncertainty (kg/h) caused by the wind speed error.

  • err_calib (float) – The uncertainty (kg/h) caused by the wind calibration error.

ime_cm()[source]

Calculate the emission rate (kg/h) using Carbon Mapper’s method.

Returns:

  • IME (float) – The total gas mass enhancement (kg).

  • L (float) – The length (m) of plume hull.

  • Q (float) – The emission rate (kg/h).

ime_fetch()[source]

Calculate the emission rate (kg/h) using the IME-fetch method.

Returns:

  • Q (float) – The emission rate (kg/h).

  • Q_err (float) – The total estimate error (kg/h).

  • err_ime (float) – The uncertainty (kg/h) caused by the IME error.

  • err_wind (float) – The uncertainty (kg/h) caused by the wind speed error.