ppcpy.calibration.polarization#

Functions

analyze_segments

calibrateGHK

Returns: pol_cali dict polarization factors from delta 90 for each wavelength containing sub-dicts with 'eta', 'eta_std', 'time_start', 'time_end', 'status'

calibrateMol

calibrate the polarization with the molecular signal

default_to_regular

depol_cali_ghk

Polarization calibration for PollyXT lidar system.

depol_cali_mol

Molecular polarization calibration.

loadGHK

onemx_onepx

calculate the fraction of (1-x)/(1+x)

smooth_signal

ppcpy.calibration.polarization.onemx_onepx(x)[source]#

calculate the fraction of (1-x)/(1+x)

ppcpy.calibration.polarization.smooth_signal(signal, window_len)[source]#
ppcpy.calibration.polarization.loadGHK(data_cube)[source]#
ppcpy.calibration.polarization.calibrateGHK(data_cube)[source]#

Returns:#

pol_calidict

polarization factors from delta 90 for each wavelength containing sub-dicts with ‘eta’, ‘eta_std’, ‘time_start’, ‘time_end’, ‘status’

History:#

Function is called here PollyNET/Pollynet_Processing_Chain The two most relevant functions here are PollyNET/Pollynet_Processing_Chain which also calls PollyNET/Pollynet_Processing_Chain

ppcpy.calibration.polarization.depol_cali_ghk(signal_t, bg_t, signal_x, bg_x, time, pol_cali_pang_start_time, pol_cali_pang_stop_time, pol_cali_nang_start_time, pol_cali_nang_stop_time, K, cali_h_indx_range, SNRmin, sig_max, rel_std_dplus, rel_std_dminus, segment_len, smooth_win, collect_debug=False)[source]#

Polarization calibration for PollyXT lidar system.

Parameters:#

signal_tndarray

Background-removed photon count signal at the total channel. Shape: (n_bins, n_profiles)

bg_tndarray

Background at the total channel. Shape: (n_bins, n_profiles)

signal_xndarray

Background-removed photon count signal at the cross channel. Shape: (n_bins, n_profiles)

bg_xndarray

Background at the cross channel. Shape: (n_bins, n_profiles)

timendarray

Datetime array representing the measurement time of each profile.

pol_cali_pang_start_time, pol_cali_pang_stop_timendarray

Start and stop times when the polarizer rotates to the positive angle.

pol_cali_nang_start_time, pol_cali_nang_stop_timendarray

Start and stop times when the polarizer rotates to the negative angle.

Kfloat

Parameter from GHK to correct the calibration.

cali_h_indx_rangelist or tuple

Range of height indexes to use for polarization calibration.

SNRminlist

Minimum SNR for calibration. Length: 4

sig_maxlist

Maximum signal allowed for calibration to prevent pulse pileup.

rel_std_dplus, rel_std_dminusfloat

Maximum relative uncertainty of dplus and dminus allowed.

segment_lenint

Segment length for testing the variability of calibration results.

smooth_winint

Width of the sliding window for smoothing the signal.

collect_debugbool, default=False

store and return the intermediate results

Returns:#

pol_cali_etalist

Eta values from polarization calibration.

pol_cali_eta_stdlist

Uncertainty of eta values from calibration.

pol_cali_start_time, pol_cali_stop_timelist

Start and stop times for successful calibration.

cali_statusint

1 if calibration is successful, 0 otherwise.

global_attridict, optional

Information about the depolarization calibration.

ppcpy.calibration.polarization.analyze_segments(dplus, dminus, segment_len, rel_std_dplus, rel_std_dminus)[source]#
ppcpy.calibration.polarization.default_to_regular(d)[source]#
ppcpy.calibration.polarization.calibrateMol(data_cube)[source]#

calibrate the polarization with the molecular signal

Converted from the matlab code to the best knowledge, but not cross-validated yet

ppcpy.calibration.polarization.depol_cali_mol(signal_t, background_t, signal_c, background_c, TR_t, TR_t_std, TR_c, TR_c_std, minSNR, mdr, mdrStd)[source]#

Molecular polarization calibration.

INPUTS:
signal_t: numeric

Total signal (photon count).

background_t: numeric

Background at total channel (photon count).

signal_c: numeric

Cross signal (photon count).

background_c: numeric

Background at cross channel (photon count).

TR_t: scalar

Transmission ratio at total channel.

TR_t_std: scalar

Uncertainty of the transmission ratio at total channel.

TR_c: scalar

Transmission ratio at cross channel.

TR_c_std: scalar

Uncertainty of the transmission ratio at cross channel.

minSNR: float

The SNR constraint for the signal strength at reference height.

mdr: float

Default molecular depolarization ratio.

mdrStd: float

Default standard deviation of molecular depolarization ratio.

OUTPUTS:
polCaliEta: array

Polarization calibration eta.

polCaliEtaStd: array

Uncertainty of polarization calibration eta.

polCaliFac: array

Polarization calibration factor.

polCaliFacStd: array

Uncertainty of polarization calibration factor.

References

Baars, H., et al., Aerosol profiling with lidar in the Amazon Basin during the wet and dry season, J Geophys Res-Atmos, 117, 10.1029/2012jd018338, 2012.

HISTORY:
  • 2021-07-06: First edition by Zhenping

  • 2024-12-23:

Authors: - zhenping@tropos.de