rss_ringoccs.calibration.calc_tau_thresh module

Purpose:

Compute \tau_{thresh} for use as a proxy for maximum reliable value of optical depth within the diffraction-limited or diffraction-reconstructed profile. This follows [MTR1986] Equations 24 and 26, which define, respectively, the power of the thermal noise

\hat{P}_N = \frac{\dot{\rho}_0}
{\mathrm{SNR}_0 \Delta\rho_0}

and the threshold optical depth

\tau_{thresh} = -\sin(B)
\ln\left(\frac{1}{2}C_{\alpha}\hat{P}_N\right)

Dependencies:
  1. numpy
  2. matplotlib
  3. scipy
class rss_ringoccs.calibration.calc_tau_thresh.calc_tau_thresh(rsr_inst, geo_inst, cal_inst, res_km=1.0, Calpha=2.41)

Bases: object

Purpose:Compute threshold optical depth following
Arguments
rsr_inst (object):
 object instance of the RSRReader class
geo_inst (object):
 object instance of the Geometry class
cal_inst (object):
 object instance of the Calibration class
Keyword Arguments
res_km (float):Reconstruction resolution in km
Calpha (float):Constant for scaling Bandwidth/SNR ratio. Default is 2.41 for 70% confidence (see [MTR1986])
Attributes
snr (np.ndarray):
 Signal-to-noise ratio SNR0 over the entire occultation. This changes over the occultation because the signal power fluctuates.
tau_thresh (np.ndarray):
 threshold optical depth computed using [MTR1986]
spm_vals (np.ndarray):
 Observed event time array from cal_inst
rho_vals (np.ndarray):
 Ring intercept point array interpolated to spm_vals
find_noise(spm, IQ, df)

Locate the additive receiver noise within the data set. This is done by computing a spectrogram of the raw complex signal, filtering out the spacecraft signal, and averaging over the frequency and time domains.

Arguments
spm (np.ndarray):
 raw SPM in seconds
IQ (np.ndarray):
 measured complex signal
df (float):sampling frequency in Hz of the IQ
Returns
p_noise (np.ndarray):
 noise power