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.
docstr: Collect custom configuration values.
  
  Args:
      correction_limit (float): Solar zenith angle in degrees where to start the signal reduction.
      max_sza (float): Maximum solar zenith angle in degrees where to apply the signal reduction. Beyond
                       this solar zenith angle the signal will become zero.
      strength (float): The strength of the non-linear signal reduction.
docstr_tok: ["Collect","custom","configuration","values",".","Args",":","correction_limit","(","float",")",":","Solar","zenith","angle","in","degrees","where","to","start","the","signal","reduction",".","max_sza","(","float",")",":","Maximum","solar","zenith","angle","in","degrees","where","to","apply","the","signal","reduction",".","Beyond","this","solar","zenith","angle","the","signal","will","become","zero",".","strength","(","float",")",":","The","strength","of","the","non-linear","signal","reduction","."]
code: def __init__(
      self, correction_limit=80.0, max_sza=90, strength=1.3, **kwargs
  ):  # noqa: D417
      """Collect custom configuration values.
  
      Args:
          correction_limit (float): Solar zenith angle in degrees where to start the signal reduction.
          max_sza (float): Maximum solar zenith angle in degrees where to apply the signal reduction. Beyond
                           this solar zenith angle the signal will become zero.
          strength (float): The strength of the non-linear signal reduction.
  
      """
      self.correction_limit = correction_limit
      self.strength = strength
      super(SunZenithReducer, self).__init__(max_sza=max_sza, **kwargs)
      if self.max_sza is None:
          raise ValueError(
              "`max_sza` must be defined when using the SunZenithReducer."
          )
  
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 1 to create a new SunZenithReducer object from inherited base classes: SunZenithCorrectorBase with example: obj = SunZenithReducer(correction_limit, max_sza, strength)