libera_utils.footprint_matching.readers.flashflux#

CERES FLASHFlux footprint reader plugin.

Data source: CERES Fast Longwave And SHortwave Radiative Fluxes (FLASHFlux), the rapid-release TOA/surface fluxes and clouds that RBSP produces for NOAA-20, in the CERES Single Scanner Footprint (SSF) file layout (FLASH_SSF).

  • Format: NetCDF4, organized by CERES footprint (a 1-D Footprints dimension), grouped into thematic groups (Time_and_Position, Scene_Type, Auxillary_Properties, …). The groups, variables and dimensions this reader checks were taken from CER_SSF_NOAA20-FM6-VIIRS alpha4 granules, whose layout FLASHFlux shares.

  • Geolocation: per-footprint, in Time_and_Position/instrument_fov_latitude and instrument_fov_longitude (longitude stored 0..360 — normalized here).

  • Native footprint scale: ~20 km at nadir.

This reader feeds the products its fields name in modes: FMATCH-IMAGER and FMATCH-IMAGER-CAMTIME (see Variable set).

Native footprints, matched by time#

FLASHFlux is footprint (point) data, not a regular grid. Each CERES footprint is served at its own position and observation time as a PointSamples point, so the Libera PSF weigher is the first place a value is weighted. A day of FLASHFlux sees a ground location on more than one pass, so the reader serves the pass nearest the Libera footprint time (TIME_MATCH = NEAREST_PASS): every footprint within PASS_WINDOW of the observation time of the footprint nearest in time, and none beyond MAX_TIME_OFFSET. Granules are hourly; only those whose time_coverage_start/time_coverage_end lie within MAX_TIME_OFFSET of the current footprint time are held in memory.

Variable set#

Two sets, read in this order:

  • The base FLASHFlux fields (_FLASHFLUX_BASE_FIELDS): aerosol optical depth, clear coverage, the lower-layer cloud optical depth and water / ice particle radii, and the scene and ADM type codes. Carried by every product FLASHFlux feeds: FMATCH-IMAGER and FMATCH-IMAGER-CAMTIME.

  • The FMATCH-IMAGER-only FLASHFlux fields (_FLASHFLUX_IMAGER_ONLY_FIELDS): the extended cloud-layer, aerosol, surface-albedo and TOA-insolation fields, carried by FMATCH-IMAGER alone.

Surface-type variables in the Surface_Map group (surface_igbp_type, surface_igbp_type_coverage, snow_ice_coverage) are intentionally NOT extracted. The pipeline uses the dedicated IGBPReader and NISEReader as authoritative sources for land-cover and ice/snow classification. FLASHFlux surface type values are derived from IGBP and NISE anyway; extracting them here would duplicate data that the dedicated readers already supply at higher resolution.

Note on encoded scene/ADM codes#

cloud_classification, shortwave_adm_type and longwave_adm_type are encoded CERES identifiers spanning hundreds of values (not a small category set). Each footprint’s raw code is served as read, and the codes are declared weighted_mode, the PSF aggregation that keeps the most common code over a Libera footprint. Downstream consumers will likely need to decode them; an exact decode is deferred (TODO[LIBSDC-785]).

References

FLASHFlux: https://ceres.larc.nasa.gov/data/#fast-longwave-and-shortwave-flux-flashflux CERES SSF file layout: https://ceres.larc.nasa.gov/data/#ssf-level-2

Classes

FLASHFluxReader(file_paths)

Read CERES FLASHFlux footprints as time-stamped native points.