satpy.modifiers.geometry module

Modifier classes for corrections based on sun and other angles.

class satpy.modifiers.geometry.EffectiveSolarPathLengthCorrector(correction_limit=88.0, **kwargs)[source]

Bases: SunZenithCorrectorBase

Special sun zenith correction with the method proposed by Li and Shibata.

(2006): https://doi.org/10.1175/JAS3682.1

In addition to adjusting the provided reflectances by the cosine of the solar zenith angle, this modifier forces all reflectances beyond a solar zenith angle of max_sza to 0 to reduce noise in the final data. It also gradually reduces the amount of correction done between correction_limit and max_sza. If max_sza is None then a constant correction is applied to zenith angles beyond correction_limit.

To set max_sza to None in a YAML configuration file use:

effective_solar_pathlength_corrected:
  modifier: !!python/name:satpy.modifiers.EffectiveSolarPathLengthCorrector
  max_sza: !!null
  optional_prerequisites:
  - solar_zenith_angle

Collect custom configuration values.

Parameters:
  • correction_limit (float) – Maximum solar zenith angle to apply the correction in degrees. Pixels beyond this limit have a constant correction applied. Default 88.

  • max_sza (float) – Maximum solar zenith angle in degrees that is considered valid and correctable. Default 95.0.

_apply_correction(proj, coszen)[source]
class satpy.modifiers.geometry.SunZenithCorrector(correction_limit=88.0, **kwargs)[source]

Bases: SunZenithCorrectorBase

Standard sun zenith correction using 1 / cos(sunz).

In addition to adjusting the provided reflectances by the cosine of the solar zenith angle, this modifier forces all reflectances beyond a solar zenith angle of max_sza to 0. It also gradually reduces the amount of correction done between correction_limit and max_sza. If max_sza is None then a constant correction is applied to zenith angles beyond correction_limit.

To set max_sza to None in a YAML configuration file use:

sunz_corrected:
  modifier: !!python/name:satpy.modifiers.SunZenithCorrector
  max_sza: !!null
  optional_prerequisites:
  - solar_zenith_angle

Collect custom configuration values.

Parameters:
  • correction_limit (float) – Maximum solar zenith angle to apply the correction in degrees. Pixels beyond this limit have a constant correction applied. Default 88.

  • max_sza (float) – Maximum solar zenith angle in degrees that is considered valid and correctable. Default 95.0.

_apply_correction(proj, coszen)[source]
class satpy.modifiers.geometry.SunZenithCorrectorBase(max_sza=95.0, **kwargs)[source]

Bases: ModifierBase

Base class for sun zenith correction modifiers.

Collect custom configuration values.

Parameters:

max_sza (float) – Maximum solar zenith angle in degrees that is considered valid and correctable. Default 95.0.

_apply_correction(proj, coszen)[source]
class satpy.modifiers.geometry.SunZenithReducer(correction_limit=80.0, max_sza=90, strength=1.3, **kwargs)[source]

Bases: SunZenithCorrectorBase

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.

Collect custom configuration values.

Parameters:
  • 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.

_apply_correction(proj, coszen)[source]