class_docstr: SEVIRI Level 1.5 trailer for native-format.
  
  Reference Document (EUM/MSG/ICD/105):
  MSG Level 1.5 Image Data Format Description
docstr: Get image production statistics.
code: def image_production_stats(self):
      """Get image production statistics."""
      gp_sc_id = GSDTRecords.gp_sc_id
  
      actual_scanning_summary = [
          ("NominalImageScanning", np.uint8),
          ("ReducedScan", np.uint8),
          ("ForwardScanStart", time_cds_short),
          ("ForwardScanEnd", time_cds_short),
      ]
  
      radiometric_behaviour = [
          ("NominalBehaviour", np.uint8),
          ("RadScanIrregularity", np.uint8),
          ("RadStoppage", np.uint8),
          ("RepeatCycleNotCompleted", np.uint8),
          ("GainChangeTookPlace", np.uint8),
          ("DecontaminationTookPlace", np.uint8),
          ("NoBBCalibrationAchieved", np.uint8),
          ("IncorrectTemperature", np.uint8),
          ("InvalidBBData", np.uint8),
          ("InvalidAuxOrHKTMData", np.uint8),
          ("RefocusingMechanismActuated", np.uint8),
          ("MirrorBackToReferencePos", np.uint8),
      ]
  
      reception_summary_stats = [
          ("PlannedNumberOfL10Lines", (np.uint32, 12)),
          ("NumberOfMissingL10Lines", (np.uint32, 12)),
          ("NumberOfCorruptedL10Lines", (np.uint32, 12)),
          ("NumberOfReplacedL10Lines", (np.uint32, 12)),
      ]
  
      l15_image_validity = [
          ("NominalImage", np.uint8),
          ("NonNominalBecauseIncomplete", np.uint8),
          ("NonNominalRadiometricQuality", np.uint8),
          ("NonNominalGeometricQuality", np.uint8),
          ("NonNominalTimeliness", np.uint8),
          ("IncompleteL15", np.uint8),
      ]
  
      actual_l15_coverage_vis_ir = [
          ("SouthernLineActual", np.int32),
          ("NorthernLineActual", np.int32),
          ("EasternColumnActual", np.int32),
          ("WesternColumnActual", np.int32),
      ]
  
      actual_l15_coverage_hrv = [
          ("LowerSouthLineActual", np.int32),
          ("LowerNorthLineActual", np.int32),
          ("LowerEastColumnActual", np.int32),
          ("LowerWestColumnActual", np.int32),
          ("UpperSouthLineActual", np.int32),
          ("UpperNorthLineActual", np.int32),
          ("UpperEastColumnActual", np.int32),
          ("UpperWestColumnActual", np.int32),
      ]
  
      record = [
          ("SatelliteId", gp_sc_id),
          ("ActualScanningSummary", actual_scanning_summary),
          ("RadiometricBehaviour", radiometric_behaviour),
          ("ReceptionSummaryStats", reception_summary_stats),
          ("L15ImageValidity", (l15_image_validity, 12)),
          ("ActualL15CoverageVIS_IR", actual_l15_coverage_vis_ir),
          ("ActualL15CoverageHRV", actual_l15_coverage_hrv),
      ]
  
      return record
  
imports: import numpy
  from satpy.readers.eum_base import time_cds, time_cds_expanded, time_cds_short
  from satpy.readers.seviri_base import HRV_NUM_COLUMNS, HRV_NUM_LINES, VISIR_NUM_COLUMNS, VISIR_NUM_LINES
label_desc: Use image node_id 3 for calling the Msg15NativeTrailerRecord obj's underlying member method code with example usage: obj.image_production_stats() and returns: record