Keck-DataReductionPipelines / KPF-Pipeline

KPF-Pipeline
https://kpf-pipeline.readthedocs.io/en/latest/
Other
11 stars 2 forks source link

Method to print QC tests #879

Closed awhoward closed 5 months ago

awhoward commented 5 months ago

This PR updates the list_qc_metrics() method in the QCDefinitions class so that the output is a nicely formatted printed statement like the example below.

This branch can be deleted after merging.

Quality Control tests for L0:
   QC Name: not_junk_check
      Description: Check if file is not in list of junk files.
      Data levels: ['L0', '2D', 'L1', 'L2']
      Data type: int
      Spectrum type: ['all']
      Keyword: NOTJUNK
      Comment: QC: Not in list of junk files
      Database column: None

   QC Name: L0_data_products_check
      Description: Check if expected L0 data products are present with non-zero array sizes.
      Data levels: ['L0']
      Data type: int
      Spectrum type: ['all']
      Keyword: DATAPRL0
      Comment: QC: L0 data present
      Database column: None

   QC Name: L0_header_keywords_present_check
      Description: Check if expected L0 header keywords are present.
      Data levels: ['L0']
      Data type: int
      Spectrum type: ['all']
      Keyword: KWRDPRL0
      Comment: QC: L0 keywords present
      Database column: None

   QC Name: L0_datetime_checks
      Description: Check for timing consistency in L0 header keywords and Exp Meter table.
      Data levels: ['L0']
      Data type: int
      Spectrum type: ['all']
      Keyword: TIMCHKL0
      Comment: QC: L0 times consistent
      Database column: None

   QC Name: exposure_meter_not_saturated_check
      Description: Check if 2+ reduced EM pixels are within 90% of saturation in EM-SCI or EM-SKY.
      Data levels: ['L0']
      Data type: int
      Spectrum type: ['all']
      Keyword: EMSAT
      Comment: QC: EM not saturated
      Database column: None

   QC Name: exposure_meter_flux_not_negative_check
      Description: Check for negative flux in the EM-SCI and EM-SKY by looking for 20 consecuitive pixels in the summed spectra with negative flux.
      Data levels: ['L0']
      Data type: int
      Spectrum type: ['all']
      Keyword: EMNEG
      Comment: QC: EM not negative flux
      Database column: None

Quality Control tests for 2D:
   QC Name: not_junk_check
      Description: Check if file is not in list of junk files.
      Data levels: ['L0', '2D', 'L1', 'L2']
      Data type: int
      Spectrum type: ['all']
      Keyword: NOTJUNK
      Comment: QC: Not in list of junk files
      Database column: None

Quality Control tests for L1:
   QC Name: not_junk_check
      Description: Check if file is not in list of junk files.
      Data levels: ['L0', '2D', 'L1', 'L2']
      Data type: int
      Spectrum type: ['all']
      Keyword: NOTJUNK
      Comment: QC: Not in list of junk files
      Database column: None

   QC Name: monotonic_wavelength_solution_check
      Description: Check if wavelength solution is monotonic.
      Data levels: ['L1']
      Data type: int
      Spectrum type: ['all']
      Keyword: MONOTWLS
      Comment: QC: Monotonic wavelength-solution
      Database column: None

Quality Control tests for L2:
   QC Name: not_junk_check
      Description: Check if file is not in list of junk files.
      Data levels: ['L0', '2D', 'L1', 'L2']
      Data type: int
      Spectrum type: ['all']
      Keyword: NOTJUNK
      Comment: QC: Not in list of junk files
      Database column: None

   QC Name: L2_datetime_checks
      Description: Check for timing consistency in L2 files.
      Data levels: ['L2']
      Data type: int
      Spectrum type: ['all']
      Keyword: TIMCHKL2
      Comment: QC: L2 times consistent
      Database column: None
awhoward commented 5 months ago

I accidentally tried to merge into master and not develop. "Rebase" appears not be an option. I'm going to try another PR.