Peak finding

The peak finding procedure is adapted to the peako [Kalesse_et_al_2019] parameters in v0.3. Additional averaging in time and height can be set via t_avg and h_avg with the units of [s] and [m], respectively. Smoothing along the velocity dimension can be done by 3 methods:

  1. scipy.signal.savgol_filter by setting smooth_polyorder = 1 (linear) or = 2 (quadratic)
  2. loess.loess_1d by setting smooth_polyorder = 11 (linear) or = 12 (quadratic)
  3. convolution with a gauss function by setting smooth_polyorder = 21

where the smoothing span is given by span in [m s-1]. The actual peak finding parameters are prom_thres in [dB] and width_thres in [m s-1].

Configuration

Below an example for a RPG FMCW with two chrips is shown.

[limrad_peako]
    location = "Leipzig"
    shortname = "Lei"
    loader = 'rpgpy'
[limrad_peako.settings]
    grid_time = false
    max_no_nodes = 15
    polarimetry = 'STSR'
    smooth_cut_sequence = 'sc' # cs cut-smooth | sc smooth-cut
    tot_spec_scaling = 4
    decoupling = -30
    station_altitude = 22
# chirps in zero-based indexing
[limrad_peako.settings.peak_finding_params.chirp0]
    # new: seconds instead of index
    t_avg = 0            # s
    h_avg = 100          # m
    cal_offset = 0        # dB
    span = 0.15          # m s-1
    smooth_polyorder = 2  # 0 deactivate | 2 second order
    prom_thres = 0.5     # dB
    width_thres = 0      # m s-1
[limrad_peako.settings.peak_finding_params.chirp1]
    t_avg = 15           # s
    h_avg = 0            # m
    cal_offset = 0        # dB
    span = 0.2           # m s-1
    smooth_polyorder = 2  # 0 deactivate | 2 second order
    prom_thres = 0.5     # dB
    width_thres = 0      # m s-1


[Lacros_Pun]
    location = "Punta Arenas"
    shortname = "Pun"
    loader = "mira"
[Lacros_Pun.settings]
    decoupling = -30
    grid_time = 6
    max_no_nodes = 15
    polarimetry = 'LDR'
    smooth_cut_sequence = 'sc' # cs cut-smooth | sc smooth-cut
    #roll_velocity = 65 # for 512 bins = 7.92 m/s
    roll_velocity = 98 # = 6.56 m/s
    station_altitude = 9
    #add_to_fname = '_rectwin'
[Lacros_Pun.settings.peak_finding_params]
    thres_factor_co = 4.0 # supress spurious peaks introduced by tails
                          # back to 3 as the other tail filter should work better
    thres_factor_cx = 3.0
    cal_offset = 0        # dB
    tail_filter = true    # true | false | omit; only tested with LACROS-Mira
    # new: seconds instead of index
    t_avg = 0             # s
    h_avg = 0             # m
    span = 0.3            # m s-1
    smooth_polyorder = 2  # 0 deactivate | 2 second order
    prom_thres = 0.5      # dB
    width_thres = 0.05    # m s-1
[Kalesse_et_al_2019]Kalesse, H., Vogl, T., Paduraru, C., Luke, E., 2019. Development and validation of a supervised machine learning radar Doppler spectra peak-finding algorithm. Atmos. Meas. Tech. 12, 4591–4617. https://doi.org/10.5194/amt-12-4591-2019