# S5_L2_SO2

## Variables

The table below lists the variables that are present in the HARP product that results from an ingestion of `S5_L2_SO2` data.

field name | type | dimensions | unit | description
--- | --- | --- | --- | ---
datetime_start | double | {time} | [seconds since 2010-01-01] | start time of the measurement
orbit_index | int32 |  |  | absolute orbit number
validity | int32 | {time} |  | processing quality flag
latitude | float | {time} | [degree_north] | latitude of the ground pixel center (WGS84)
longitude | float | {time} | [degree_east] | longitude of the ground pixel center (WGS84)
latitude_bounds | float | {time, 4} | [degree_north] | the four latitude boundaries of each ground pixel
longitude_bounds | float | {time, 4} | [degree_east] | the four longitude boundaries of each ground pixel
sensor_latitude | float | {time} | [degree_north] | latitude of the spacecraft sub-satellite point on the WGS84 reference ellipsoid
sensor_longitude | float | {time} | [degree_east] | longitude of the spacecraft sub-satellite point on the WGS84 reference ellipsoid
sensor_altitude | float | {time} | [m] | altitude of the spacecraft relative to the WGS84 reference ellipsoid.
sensor_orbit_phase | double | {time} | [] | relative offset (0.0 … 1.0) of the measurement in the orbit.
solar_zenith_angle | float | {time} | [degree] | zenith angle of the sun measured from the ground pixel location on the WGS84 reference ellipsoid
solar_azimuth_angle | float | {time} | [degree] | azimuth angle of the sun measured from the ground pixel location on the WGS84 ellipsoid
sensor_zenith_angle | float | {time} | [degree] | zenith angle of the spacecraft measured from the ground pixel location on the WGS84 reference ellipsoid
sensor_azimuth_angle | float | {time} | [degree] | azimuth angle of the spacecraft measured from the ground pixel WGS84 reference ellipsoid
surface_altitude | float | {time} | [m] | height of the surface above WGS84 ellipsoid averaged over the S5 pixel
surface_altitude_uncertainty | float | {time} | [m] | standard deviation of the height of the surface above WGS84 ellipsoid averaged over the S5 pixel
surface_pressure | float | {time} | [Pa] | surface pressure; from ECMWF and adjusted for surface elevation
surface_type | int32 | {time} |  | surface classification
snow_ice_type | int32 | {time} |  | surface condition (snow/ice); enumeration values: snow_free_land (0), sea_ice (1), permanent_ice (2), snow (3), ocean (4)
sea_ice_fraction | float | {time} | [] | sea-ice concentration (as a fraction)
SO2_column_number_density | float | {time} | [mol/m^2] | SO2 vertical column density
SO2_column_number_density_uncertainty_random | float | {time} | [mol/m^2] | random uncertainty of SO2 column density
SO2_column_number_density_uncertainty_systematic | float | {time} | [mol/m^2] | systematic uncertainty of SO2 column density
SO2_layer_height | float | {time} | [m] | retrieved layer height of SO2 above sea level
SO2_layer_height_uncertainty | float | {time} | [m] | uncertainty of the retrieved SO2 layer height
SO2_layer_height_validity | int8 | {time} |  | flag associated with SO2 layer-height retrieval quality
SO2_column_number_density_validity | int8 | {time} |  | quality-assurance value describing the quality of the product
SO2_column_number_density_amf | float | {time} | [] | total air-mass factor of the SO2 column
SO2_column_number_density_amf_uncertainty_random | float | {time} | [] | random uncertainty of SO2 air-mass factor
SO2_column_number_density_amf_uncertainty_systematic | float | {time} | [] | systematic uncertainty of SO2 air-mass factor
SO2_slant_column_number_density | float | {time} | [mol/m^2] | SO2 slant column density
SO2_slant_column_number_density_uncertainty_random | float | {time} | [mol/m^2] | random component of the uncertainty of the SO2 slant column density
SO2_slant_column_number_density_uncertainty_systematic | float | {time} | [mol/m^2] | systematic component of the uncertainty of the SO2 slant column density
cloud_fraction | float | {time} | [] | cloud radiance fraction
SO2_column_number_density_avk | float | {time, vertical} | [] | averaging kernel for the SO2 total column
SO2_layer_pressure | float | {time} | [Pa] | retrieved layer pressure of SO2
SO2_layer_pressure_uncertainty | float | {time} | [Pa] | total error on retrieved layer pressure of SO2
surface_albedo | float | {time} | [] | surface albedo at 340 nm
SO2_column_number_density_apriori | float | {time, vertical} | [mol/m^2] | a priori SO2 profile (CAMS)
pressure_bounds | double | {time, vertical, 2} | [Pa] | pressure boundaries
cloud_pressure | float | {time} | [Pa] | Cloud top pressure
cloud_height | float | {time} | [m] | cloud centre height above the surface
cloud_albedo | float | {time} | [] | cloud albedo
absorbing_aerosol_index | float | {time} | [] | aerosol absorbing index 340/380 pair
O3_column_number_density | float | {time} | [mol/m^2] | O3 total column
scene_albedo | float | {time} | [] | effective scene albedo at 340 nm
scene_pressure | float | {time} | [Pa] | effective scene pressure at 340 nm
index | int32 | {time} |  | zero-based index of the sample within the source product

## Ingestion options

The table below lists the available ingestion options for `S5_L2_SO2` products.

option name | legal values | description
--- | --- | ---
so2_column | 1km, 7km, 15km | select the SO2 column from the 1 km, 7 km, or 15 km box profile; if the option is omitted the polluted-boundary-layer column (PBL) is ingested

## Mapping description

The table below details where and how each variable was retrieved from the input product.

field name | mapping description
--- | ---
datetime_start | path | /data/PRODUCT/time, /data/PRODUCT/delta_time[]
description | time converted from milliseconds since a reference time (given as seconds since 2010-01-01) to seconds since 2010-01-01 (using 86400 seconds per day)
orbit_index | path | /@orbit_start
validity | path | /data/PRODUCT/processing_quality_flags[]
description | the uint64 data is cast to int32
latitude | path | /data/PRODUCT/SUPPORT_DATA/GEOLOCATIONS/latitude[]
longitude | path | /data/PRODUCT/SUPPORT_DATA/GEOLOCATIONS/longitude[]
latitude_bounds | path | /data/PRODUCT/SUPPORT_DATA/GEOLOCATIONS/latitude_bounds[]
longitude_bounds | path | /data/PRODUCT/SUPPORT_DATA/GEOLOCATIONS/longitude_bounds[]
sensor_latitude | path | /data/PRODUCT/SUPPORT_DATA/GEOLOCATIONS/satellite_latitude[]
description | the satellite latitude associated with a scanline is repeated for each pixel in the scanline
sensor_longitude | path | /data/PRODUCT/SUPPORT_DATA/GEOLOCATIONS/satellite_longitude[]
description | the satellite longitude associated with a scanline is repeated for each pixel in the scanline
sensor_altitude | path | /data/PRODUCT/SUPPORT_DATA/GEOLOCATIONS/satellite_altitude[]
description | the satellite altitude associated with a scanline is repeated for each pixel in the scanline
sensor_orbit_phase | path | /data/PRODUCT/SUPPORT_DATA/GEOLOCATIONS/satellite_orbit_phase[]
solar_zenith_angle | path | /data/PRODUCT/SUPPORT_DATA/GEOLOCATIONS/solar_zenith_angle[]
solar_azimuth_angle | path | /data/PRODUCT/SUPPORT_DATA/GEOLOCATIONS/solar_azimuth_angle[]
sensor_zenith_angle | path | /data/PRODUCT/SUPPORT_DATA/GEOLOCATIONS/viewing_zenith_angle[]
sensor_azimuth_angle | path | /data/PRODUCT/SUPPORT_DATA/GEOLOCATIONS/viewing_azimuth_angle[]
surface_altitude | path | /data/PRODUCT/SUPPORT_DATA/INPUT_DATA/surface_altitude[]
surface_altitude_uncertainty | path | data/PRODUCT/SUPPORT_DATA/INPUT_DATA/surface_altitude_precision[]
surface_pressure | path | data/PRODUCT/SUPPORT_DATA/INPUT_DATA/surface_pressure[]
surface_type | path | /data/PRODUCT/SUPPORT_DATA/INPUT_DATA/surface_classification[]
snow_ice_type | condition | band=band3a or band unset
path | /data/PRODUCT_BAND3A/SUPPORT_DATA/INPUT_DATA/snow_ice_flag[]
description | 0: snow_free_land (0), 1-100: sea_ice (1), 101: permanent_ice (2), 103: snow (3), 255: ocean (4), other values map to -1
condition | band=band3c
path | /data/PRODUCT_BAND3C/SUPPORT_DATA/INPUT_DATA/snow_ice_flag[]
description | 0: snow_free_land (0), 1-100: sea_ice (1), 101: permanent_ice (2), 103: snow (3), 255: ocean (4), other values map to -1
sea_ice_fraction | condition | band=band3a or band unset
path | /data/PRODUCT_BAND3A/SUPPORT_DATA/INPUT_DATA/snow_ice_flag[]
description | if 1 <= snow_ice_flag <= 100 then snow_ice_flag/100.0 else 0.0
condition | band=band3c
path | /data/PRODUCT_BAND3C/SUPPORT_DATA/INPUT_DATA/snow_ice_flag[]
description | if 1 <= snow_ice_flag <= 100 then snow_ice_flag/100.0 else 0.0
SO2_column_number_density | path | /data/PRODUCT/sulfur_dioxide_total_column[]
description | profile dimension sliced according to so2_column option
SO2_column_number_density_uncertainty_random | path | /data/PRODUCT/sulfur_dioxide_total_column_precision[]
description | profile dimension sliced according to so2_column option
SO2_column_number_density_uncertainty_systematic | path | /data/PRODUCT/sulfur_dioxide_total_column_trueness[]
description | profile dimension sliced according to so2_column option
SO2_layer_height | path | data/PRODUCT/sulfur_dioxide_layer_height[]
SO2_layer_height_uncertainty | path | data/PRODUCT/sulfur_dioxide_layer_height_uncertainty[]
SO2_layer_height_validity | path | data/PRODUCT/sulfur_dioxide_layer_height_flag[]
SO2_column_number_density_validity | path | data/PRODUCT/qa_value[]
SO2_column_number_density_amf | path | /data/PRODUCT/SUPPORT_DATA/DETAILED_RESULTS/sulfur_dioxide_total_column_air_mass_factor[]
description | profile dimension sliced according to so2_column option
SO2_column_number_density_amf_uncertainty_random | path | /data/PRODUCT/SUPPORT_DATA/DETAILED_RESULTS/sulfur_dioxide_total_column_air_mass_factor_precision[]
description | profile dimension sliced according to so2_column option
SO2_column_number_density_amf_uncertainty_systematic | path | /data/PRODUCT/SUPPORT_DATA/DETAILED_RESULTS/sulfur_dioxide_total_column_air_mass_factor_trueness[]
description | profile dimension sliced according to so2_column option
SO2_slant_column_number_density | path | data/PRODUCT/SUPPORT_DATA/DETAILED_RESULTS/sulfur_dioxide_slant_column_corrected[]
SO2_slant_column_number_density_uncertainty_random | path | data/PRODUCT/SUPPORT_DATA/DETAILED_RESULTS/sulfur_dioxide_slant_column_precision[]
SO2_slant_column_number_density_uncertainty_systematic | path | data/PRODUCT/SUPPORT_DATA/DETAILED_RESULTS/sulfur_dioxide_slant_column_trueness[]
cloud_fraction | path | data/PRODUCT/SUPPORT_DATA/DETAILED_RESULTS/cloud_radiance_fraction[]
SO2_column_number_density_avk | path | data/PRODUCT/SUPPORT_DATA/DETAILED_RESULTS/sulfur_dioxide_total_column_averaging_kernel[]
description | the vertical grid is inverted to make it ascending
SO2_layer_pressure | path | data/PRODUCT/SUPPORT_DATA/DETAILED_RESULTS/sulfur_dioxide_layer_pressure[]
SO2_layer_pressure_uncertainty | path | data/PRODUCT/SUPPORT_DATA/DETAILED_RESULTS/sulfur_dioxide_layer_pressure_uncertainty[]
surface_albedo | path | data/PRODUCT/SUPPORT_DATA/INPUT_DATA/surface_albedo[]
SO2_column_number_density_apriori | path | data/PRODUCT/SUPPORT_DATA/INPUT_DATA/sulfur_dioxide_profile_apriori[]
description | the vertical grid is inverted to make it ascending
pressure_bounds | path | data/PRODUCT/SUPPORT_DATA/INPUT_DATA/pressure_coefficient_a[], data/PRODUCT/SUPPORT_DATA/INPUT_DATA/pressure_coefficient_b[], data/PRODUCT/SUPPORT_DATA/INPUT_DATA/surface_pressure[]
description | pressure in Pa at level k is derived from surface pressure in Pa as: pressure_coefficient_a[k] + pressure_coefficient_b[k] * surface_pressure[]; the top of atmosphere pressure is clamped to 1e-3 Pa
cloud_pressure | path | data/PRODUCT/SUPPORT_DATA/INPUT_DATA/cloud_pressure[]
cloud_height | path | data/PRODUCT/SUPPORT_DATA/INPUT_DATA/cloud_height[]
cloud_albedo | path | data/PRODUCT/SUPPORT_DATA/INPUT_DATA/cloud_albedo[]
absorbing_aerosol_index | path | data/PRODUCT/SUPPORT_DATA/INPUT_DATA/aerosol_index_340_380[]
O3_column_number_density | path | data/PRODUCT/SUPPORT_DATA/INPUT_DATA/ozone_total_column
scene_albedo | path | data/PRODUCT/SUPPORT_DATA/INPUT_DATA/scene_albedo[]
scene_pressure | path | data/PRODUCT/SUPPORT_DATA/INPUT_DATA/scene_pressure[]