eoio.readers.flex.variables module#

eoio.readers.flex.variables#

Catalogue of the variables in a FLEX L2 FLXSYN product, and how each is exposed by the reader.

The product stores variables in four NetCDF groups with product-specific dimension names (number_of_northing_pixels and so on). The reader renames these to y/x plus one named dimension per spectral grid and per other trailing axis, since the OLCI, SLSTR, FLORIS, irradiance, SIF and reflectance spectra are all on different wavelength grids:

eoio.readers.flex.variables.AUX_GROUPS: Dict[str, List[str]] = {'atmosphere': ['columnar_water_vapor', 'aerosol_optical_thickness', 'angstrom_exponent', 'asymmetry_parameter', 'cloud_probability', 'land_surface_temperature', 'integrated_par', 'direct_irradiance', 'diffuse_irradiance'], 'geometry': ['sun_zenith_angle', 'viewing_zenith_angle', 'relative_azimuth_angle'], 'irradiance': ['direct_irradiance', 'diffuse_irradiance']}#

named subsets of aux selectable as vars_sel={"aux": <name>}

eoio.readers.flex.variables.MEAS_GROUPS: Dict[str, List[str]] = {'floris': ['floris_apparent_reflectance', 'floris_real_reflectance'], 'fluorescence': ['sif_emission_spectrum', 'total_integrated_sif', 'sif_peak_values', 'sif_peak_positions', 'sif_O2_bands_value', 'floris_real_reflectance'], 'olci': ['olci_apparent_reflectance'], 'slstr': ['slstr_apparent_reflectance'], 'vegetation': ['leaf_area_index', 'leaf_chlorophyll_content', 'leaf_carotenoid_content', 'fapar_chlorophyll', 'apar_chlorophyll_photons', 'fraction_of_absorbed_photosynthetically_active_radiation', 'electron_transport_rate', 'fluorescence_quantum_efficiency', 'fluorescence_escape_probability', 'reversible_energy_dissipation', 'PSI_PSII_relative_contribution']}#

named subsets of meas selectable as vars_sel={"meas": <name>}

eoio.readers.flex.variables.SPATIAL_DIMS = {'number_of_easting_pixels': 'x', 'number_of_northing_pixels': 'y'}#

product dimension name -> eoio dimension name, for the two spatial dimensions

class eoio.readers.flex.variables.VarSpec(group: str, kind: str, dim: str | None = None, has_uncertainty: bool = False)[source]#

Bases: object

How one product variable is read.

Parameters:
  • group – NetCDF group the variable is stored in.

  • kind – "meas", "aux" or "mask".

  • dim – eoio name of the trailing (non-spatial) dimension, if any.

  • has_uncertainty – whether the product carries an <name>_uncertainty partner.

dim: str | None = None#
group: str#
has_uncertainty: bool = False#
kind: str#
eoio.readers.flex.variables.WAVELENGTH_COORDS: Dict[str, tuple] = {'wavelength_floris': ('L2_Atmosphere', 'floris_spectral_channel_central_wavelengths'), 'wavelength_irradiance': ('L2_Atmosphere', 'irradiance_wavelength_grid'), 'wavelength_olci': ('L2_Atmosphere', 'olci_spectral_channel_central_wavelengths'), 'wavelength_reflectance': ('L2_Fluorescence', 'reflectance_wavelength_grid'), 'wavelength_sif': ('L2_Fluorescence', 'sif_wavelength_grid'), 'wavelength_slstr': ('L2_Atmosphere', 'slstr_vswir_spectral_channel_central_wavelengths')}#

dimension -> (group, product variable holding its wavelengths)

eoio.readers.flex.variables.uncertainty_name(var: str) → str[source]#

Name of the uncertainty partner of var.

eoio.readers.flex.variables.variables_for(kind: str) → List[str][source]#

Names of all variables of the given kind ("meas", "aux" or "mask").