glidertools.processing.calc_fluorescence

glidertools.processing.calc_fluorescence(flr_raw, bbp, dives, depth, time, lat, lon, dark_count, scale_factor, spike_window=7, spike_method='median', night_day_group=True, sunrise_sunset_offset=1, profiles_ref_depth=300, deep_multiplier=1, deep_method='median', return_figure=False, verbose=True)

This function processes raw fluorescence and corrects for quenching using the Thomalla et al. (2018) approach [1].

The following standard sequence is applied:

  1. find_bad_profiles (e.g. high Fluorescence in > 300 m water signals bad profile)
  2. fluorescence_dark_count & scale factor (i.e. factory correction)
  3. despike (using Briggs et al. 2011 - rolling min–max)
  4. quenching_correction (corrects for quenching with Thomalla et al. 2017)
Parameters:
  • flr_raw (np.array / pd.Series, dtype=float, shape=[n, ]) – The raw output of fluorescence data in instrument counts.
  • bbp (np.array / pd.Series, dtype=float, shape=[n, ]) – The processed backscatter data from the less noisy channel, i.e. the one dataset with less spikes or bad profiles.
  • dives (np.array / pd.Series, dtype=float, shape=[n, ]) – The dive count (round is down dives, 0.5 is up dives).
  • depth (np.array / pd.Series, dtype=float, shape=[n, ]) – The depth array in metres.
  • time (np.array / pd.Series, dtype=float, shape=[n, ]) – The date & time array in a numpy.datetime64 format.
  • lat (np.array / pd.Series, dtype=float, shape=[n, ]) – The latitude of the glider position.
  • lon (np.array / pd.Series, dtype=float, shape=[n, ]) – The longitude of the glider position.
  • dark_count (float) – The dark count factory values from the calibration sheet.
  • scale_factor (float) – The scale factor factory values from the calibration sheet.
  • spike_window (int=7) – The window size over which to run the despiking method.
  • spike_method (str=median) – Whether to use a rolling median or combination of min+max filter as the despiking method.
  • night_day_group (bool=True) – If True, use preceding night otherwise use following night for calculating the flr:bbp ratio.
  • sunrise_sunset_offset (int=1) – The delayed onset and recovery of quenching in hours [1] (assumes symmetrical).
  • profiles_ref_depth (int=300) – The depth threshold for optics.find_bad_profiles below which the median or mean is calculated for identifying outliers.
  • deep_multiplier (int=1) – The standard deviation multiplier for calculating outliers, i.e. mean ± std x [1].
  • deep_method (str='median') – Whether to use the deep median or deep mean to determine bad profiles for optics.find_bad_profiles.
  • return_figure (bool=False) – If True, will return a figure object that shows before and after the quenching correction was applied.
  • verbose (bool=True) – If True, will print the progress of the processing function.
Returns:

  • baseline (array, dtype=float, shape=[n, ]) – The despiked + bad profile identified fluorescence that has not had the quenching correction applied.
  • quench_corrected (array, dtype=float, shape=[n, ]) – The fluorescence data corrected for quenching.
  • quench_layer (array, dtype=bool, shape=[n, ]) – The quenching layer as a mask.
  • figs (object) – The figures reporting the despiking, bad profiles and quenching correction.

References

[1]Thomalla, S. J., Moutier, W., Ryan-Keogh, T. J., Gregor, L., & Schutt, J. (2018). An optimized method for correcting fluorescence quenching using optical backscattering on autonomous platforms. Limnology and Oceanography: Methods, 16(2), 132–144. https://doi.org/10.1002/lom3.10234