gedih3.doctor.diagnoses.superseded_granules#

superseded_granules diagnosis — indexed granules whose source was re-released.

Detects (read-only, no fix):
  • newer_release: the SOC tree holds a later release of a granule product (PPDS, PGE, generation or suffix, gedi_release_rank) than the one its rows were read from. NASA re-releases granules within one GEDI version to fix faulty data; gh3_build --replace-granules re-indexes them (#47).

  • older_release: only an older release than the one read is listed. It is never applied, but variables added and products filled later read the listed file.

  • mixed_releases: a granule’s rows name more than one release of a product (a replacement left half done), as read from its rows and kept in the build log (mixed_releases) until it is re-indexed.

Compares the build log’s recorded releases (gh3_build >= 0.20.10) with the file a listing picks now, by granule key (orbit, granule, track) within the database’s GEDI version, leaving out the files the build excludes (the log’s exclude, gh3_build –exclude). For granules indexed before releases were recorded, the releases are read from the rows’ root_file_<prod> columns first (releases_from_rows, #67), in memory only: gh3_build records them on its next run. A granule with neither is counted, not reported.

Performance: one parallel SOC walk (soc_file_tree) and a log-only comparison; on a database built before 0.20.10, also one worker task per (cell, year) file reading only its source columns. No HDF5 is opened.

Functions#

superseded_granules_check(→ gedih3.doctor.report.Report)

Module Contents#

gedih3.doctor.diagnoses.superseded_granules.superseded_granules_check(ctx: gedih3.doctor.report.DoctorContext) → gedih3.doctor.report.Report[source]#