class_docstr: Calibration handler for SEVIRI HRIT-, native- and netCDF-formats.
  
  Handles selection of calibration coefficients and calls the appropriate
  calibration algorithm.
class_docstr_tok: ["Calibration","handler","for","SEVIRI","HRIT-",",","native-","and","netCDF-formats",".","Handles","selection","of","calibration","coefficients","and","calls","the","appropriate","calibration","algorithm","."]
docstr: Initialize the calibration handler.
docstr_tok: ["Initialize","the","calibration","handler","."]
code: def __init__(
      self, platform_id, channel_name, coefs, calib_mode, scan_time
  ):
      """Initialize the calibration handler."""
      self._platform_id = platform_id
      self._channel_name = channel_name
      self._coefs = coefs
      self._calib_mode = calib_mode.upper()
      self._scan_time = scan_time
      self._algo = SEVIRICalibrationAlgorithm(
          platform_id=self._platform_id, scan_time=self._scan_time
      )
  
      valid_modes = ("NOMINAL", "GSICS", "MEIRINK-2023")
      if self._calib_mode not in valid_modes:
          raise ValueError(
              "Invalid calibration mode: {}. Choose one of {}".format(
                  self._calib_mode, valid_modes
              )
          )
  
imports: from __future__ import annotations
  import warnings
  from datetime import datetime, timedelta
  import dask.array
  import numpy
  import pyproj
  from numpy.polynomial.chebyshev import Chebyshev
  from satpy.readers.eum_base import issue_revision, time_cds_short
  from satpy.readers.utils import apply_earthsun_distance_correction
  from satpy.utils import get_legacy_chunk_size
label_desc: Use image node_id 1 to create a new SEVIRICalibrationHandler object  with example: obj = SEVIRICalibrationHandler(platform_id, channel_name, coefs, calib_mode, scan_time)