ppcpy.retrievals.klettfernald#

Functions

fernald

Retrieve aerosol backscatter coefficient using the Fernald method.

run_cldFreeGrps

Run klett retrieval for each cloud free region.

ppcpy.retrievals.klettfernald.run_cldFreeGrps(data_cube, signal: str = 'TCor', nr: bool = False, collect_debug: bool = True) dict[source]#

Run klett retrieval for each cloud free region.

Parameters:
  • data_cube (object) – Main PicassoProc object.

  • signal (str, optional) – Name of the signal to be used for the Klett retrievals. Default is ‘TCor’.

  • nr (bool, optional) – If true, preform Klett retrieval for FR and NR channels. Otherwise only FR channels. Default is False.

  • collect_debug (bool, optional) – If true, collect debug information. Default is True.

Returns:

  • aerExt (ndarray) – Aerosol extinction coefficient [m^{-1}].

  • aerExtStd (ndarray) – Uncertainty of aerosol extinction coefficient [m^{-1}].

  • aerBsc (ndarray) – Aerosol backscatter coefficient [m^{-1}Sr^{-1}].

  • aerBscStd (ndarray) – Uncertainty of aerosol backscatter coefficient [m^{-1}Sr^{-1}].

  • aerBR (ndarray) – Aerosol backscatter ratio.

  • aerBRStd (ndarray) – Statistical uncertainty of aerosol backscatter ratio.

  • retrieval (str) – Name of retrieval type, eg. ‘klett’.

  • signal (str) – Name of the signal used for the retrievals, eg. ‘TCor’.

  • History

  • ——-

  • - xxxx-xx-xx (TODO: First edition by …)

  • - 2026-02-09 (Modified and cleaned by Buholdt)

  • TODO’s

  • ——

  • - Should sigBGCor, sigTCor or RCS be used for the Klett retrievals?

ppcpy.retrievals.klettfernald.fernald(height: ndarray, signal: ndarray, bg: ndarray, LR_aer: float | ndarray, refH: float | ndarray, refBeta: float, molBsc: ndarray, window_size: int = 40, collect_debug: bool = False) dict[str, ndarray][source]#

Retrieve aerosol backscatter coefficient using the Fernald method.

Parameters:
  • height (array_like) – Height in meters.

  • signal (array_like) – Elastic signal without background (Photon Count).

  • bg (array_like) – Background signal (Photon Count).

  • LR_aer (float or array_like) – Aerosol lidar ratio [sr].

  • refH (float or array_like) – Reference altitude or region [m].

  • refBeta (float) – Aerosol backscatter coefficient at the reference region [m^-1 sr^-1].

  • molBsc (array_like) – Molecular backscatter coefficient [m^-1 sr^-1].

  • window_size (int, optional) – Bins of the smoothing window for the signal. Default is 40 bins.

Returns:

  • aerBsc (ndarray) – Aerosol backscatter coefficient [m^-1 sr^-1].

  • aerBscStd (ndarray) – Statistical uncertainty of aerosol backscatter [m^-1 sr^-1].

  • aerBR (ndarray) – Aerosol backscatter ratio.

  • aerBRStd (ndarray) – Statistical uncertainty of aerosol backscatter ratio.

References

Fernald, F. G.: Analysis of atmospheric lidar observations: some comments, Appl. Opt., 23, 652-653, 10.1364/AO.23.000652, 1984.

History#

  • 2021-05-30: First edition by Zhenping.

  • 2025-01-03: AI Translation

  • 2026-02-04: Changed from scipy.ndimage.uniform_filter1d to ppcpy.misc.helper.uniform_filter

  • 2026-02-10: Reverted to using scipy.ndimage.uniform_filter1d due to occational issue with

    propagating NaN-values in the backward and farward retrievals.

Notes

  • Temporarily using scipy.ndimage.uniform_filter1d for the smoothing of the RCS instead of ppcpy.misc.helper.uniform_filter due to some rear but strange issue with propagating NaN-values in the backwards and forwards retrieval methods. This issue has so far only been observed at the 355 total NR channel at certain cloud free periods. ppcpy.misc.helper.uniform_filter is generally preferred over scipy.ndimage.uniform_filter1d when some few NaN-values at the edges do not cause issues, as should be the case here. Further investigation into this issue is needed to understand what is causing the NaN-values.

  • TODO: Define m (Unsure if this m addition is needed).