class_docstr: L15 Data Header handler.
  
  Reference Document (EUM/MSG/ICD/105):
  MSG Level 1.5 Image Data Format Description
docstr: Get satellite status data.
code: def satellite_status(self):
      """Get satellite status data."""
      # 7 bytes
      satellite_definition = [
          ("SatelliteId", np.uint16),
          ("NominalLongitude", np.float32),
          ("SatelliteStatus", np.uint8),
      ]
  
      # 28 bytes
      satellite_operations = [
          ("LastManoeuvreFlag", bool),
          ("LastManoeuvreStartTime", time_cds_short),
          ("LastManoeuvreEndTime", time_cds_short),
          ("LastManoeuvreType", np.uint8),
          ("NextManoeuvreFlag", bool),
          ("NextManoeuvreStartTime", time_cds_short),
          ("NextManoeuvreEndTime", time_cds_short),
          ("NextManoeuvreType", np.uint8),
      ]
  
      # 396 bytes
      orbit_coeff = [
          ("StartTime", time_cds_short),
          ("EndTime", time_cds_short),
          ("X", (np.float64, 8)),
          ("Y", (np.float64, 8)),
          ("Z", (np.float64, 8)),
          ("VX", (np.float64, 8)),
          ("VY", (np.float64, 8)),
          ("VZ", (np.float64, 8)),
      ]
  
      # 39612 bytes
      orbit = [
          ("PeriodStartTime", time_cds_short),
          ("PeriodEndTime", time_cds_short),
          ("OrbitPolynomial", (orbit_coeff, 100)),
      ]
  
      # 204 bytes
      attitude_coeff = [
          ("StartTime", time_cds_short),
          ("EndTime", time_cds_short),
          ("XofSpinAxis", (np.float64, 8)),
          ("YofSpinAxis", (np.float64, 8)),
          ("ZofSpinAxis", (np.float64, 8)),
      ]
  
      # 20420 bytes
      attitude = [
          ("PeriodStartTime", time_cds_short),
          ("PeriodEndTime", time_cds_short),
          ("PrincipleAxisOffsetAngle", np.float64),
          ("AttitudePolynomial", (attitude_coeff, 100)),
      ]
  
      # 59 bytes
      utc_correlation = [
          ("PeriodStartTime", time_cds_short),
          ("PeriodEndTime", time_cds_short),
          ("OnBoardTimeStart", (np.uint8, 7)),
          ("VarOnBoardTimeStart", np.float64),
          ("A1", np.float64),
          ("VarA1", np.float64),
          ("A2", np.float64),
          ("VarA2", np.float64),
      ]
  
      # 60134 bytes
      record = [
          ("SatelliteDefinition", satellite_definition),
          ("SatelliteOperations", satellite_operations),
          ("Orbit", orbit),
          ("Attitude", attitude),
          ("SpinRetreatRCStart", np.float64),
          ("UTCCorrelation", utc_correlation),
      ]
  
      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 2 for calling the L15DataHeaderRecord obj's underlying member method code with example usage: obj.satellite_status() and returns: record