class_docstr: Reduce signal strength at large sun zenith angles.
  
  Within a given sunz interval [correction_limit, max_sza] the strength of the signal is reduced following the
  formula:
  
    res = signal * reduction_factor
  
  where reduction_factor is a pixel-level value ranging from 0 to 1 within the sunz interval.
  
  The `strength` parameter can be used for a non-linear reduction within the sunz interval. A strength larger
  than 1.0 will decelerate the signal reduction towards the sunz interval extremes, whereas a strength
  smaller than 1.0 will accelerate the signal reduction towards the sunz interval extremes.
code: def _apply_correction(self, proj, coszen):
      logger.debug(
          f"Applying sun-zenith signal reduction with correction_limit {self.correction_limit} deg,"
          f" strength {self.strength}, and max_sza {self.max_sza} deg."
      )
      res = proj.copy()
      sunz = np.rad2deg(np.arccos(coszen.data))
      res.data = sunzen_reduction(
          proj.data,
          sunz,
          limit=self.correction_limit,
          max_sza=self.max_sza,
          strength=self.strength,
      )
      return res
  
imports: from __future__ import annotations
  import logging
  import numpy
  from satpy.modifiers import ModifierBase
  from satpy.modifiers.angles import sunzen_corr_cos, sunzen_reduction
  from satpy.utils import atmospheric_path_length_correction
label_desc: Use image node_id 2 for calling the SunZenithReducer obj's underlying member method code with example usage: obj._apply_correction(proj, coszen) and returns: res