gedih3.doctor.diagnoses.superseded_granules =========================================== .. py:module:: gedih3.doctor.diagnoses.superseded_granules .. autoapi-nested-parse:: 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_`` 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. .. !! processed by numpydoc !! Functions --------- .. autoapisummary:: gedih3.doctor.diagnoses.superseded_granules.superseded_granules_check Module Contents --------------- .. py:function:: superseded_granules_check(ctx: gedih3.doctor.report.DoctorContext) -> gedih3.doctor.report.Report