Thermal Lag problems in Slocum CTDs – a MATLab correction algorithm (OR: why does our salinity data have so many outliers?) Charlie Bishop PhD Candidate Memorial University Upcast vs. Downcast Hypothesis: The profiles (Temp, Salinity) of consecutive downcast and upcast should be the same. Reality: Mismatching of down/upcast profiles. Source: Thermal Lag in conductivity cell. Corrections: Methods by Lueck & Picklo (1990) and Morison et al (1994) to correct for thermal lag. 2 The Problem • During the Slocum's downcast, the probe moves from warm to cold waters through a sharp thermocline. As it is lowered, the heat stored in the sensor body diffuses into the water being sampled in the vicinity of the conductivity sensor, artificially raising conductivity, and consequently salinity. Conversely, when the probe moves upward from cold to warm waters, conductivity and salinity are artificially lowered. • The existence of a systematic offset in salinity between down and upcast is in agreement with the theory of thermal-lag affecting SBE CTDs crossing sharp temperature gradients. Much work has been done to attempt to resolve the thermal-lag problem 3 Salinity spiking in our SBE19+ CTD 4 Correcting for Thermal Lag in Conductivity Cell Using a recursive filter as applied by Morrison et al (1994) to estimate the temperature inside the conductivity cell: T(n) = -bTn-1 + a(Tn – Tn-1) where T is the corrected temperature inside the cell, n is the sample index, and the constants a and b are given by: a = 4fnατ/(1 + 4fnτ) b = 1 – 2a/α where fn is the Nyquist frequency 5 Some Definitions • Alpha = initial magnitude of the thermal fluid anomaly. • Tau = relaxation time constant of the error • Nyquist frequency = half the sampling frequency of a discrete signal processing system. It is sometimes called the folding frequency, or the cut-off frequency of a sampling system. 6 MATlab algorithm • First developed by Morison/Lueck et al (1990s). • Adapted to ARGO profilers by Johnson et al (2006). • Adapted by Bishop et al. (Me!) for Slocum glider CTDS (2007) • Matlab file called: thermallagcorrection.m (will be added to the website) 7 MATlab algorithm function temp_for_salinity_calculation=thermallagcorrection(temp,alpha,tau,nyquist) %%% algorithm to correct for thermal lag in conductivity. based on morison et al (1994) %%% %%% usage: temp_for_salinity_calculation=thermallagcorrection(temp,alpha,tau,nyquist) %%% you must specify alpha, tau and the nyquist. %%% %%% the output "temp_for_salinity_calculation" can then be used with conductivity values %%% for new salinity calculations a=(4*nyquist*alpha*tau)/(1+(4*nyquist*tau)); %a and b are parameters for the correction b=1-(2*a)/alpha; %initialize so that it dosnt grow inside the loop. save a lot of time: temp_correction=zeros(length(temp),1); for i=2:length(temp) %the main loop temp_correction(i)=-b*temp_correction(i-1)+a*(temp(i)-temp(i-1)); end %set the first equal to the second, so our series stays the same length temp_correction(1)=temp_correction(2); %take the correction term from the original series: temp_for_salinity_calculation=temp-temp_correction; 8 How to use it • 1st calculate a new temperature data set, use the function like so: [temp_for_salinity_calculation]=thermallagcorrection(temp,alpha,tau,nyquist) • 2nd the output "temp_for_salinity_calculation" can then be used with original conductivity values for new salinity calculations using the seamat toolbox like us: [Salinity] = sw_salt(cond,T,P) • where T is our new temperature values, P is pressure and cond is conductivity 9 Wait a second…What are our values for Alpha and Tau? You tell me! • We can create an iterative loop in Matlab to vary values of alpha and tau. • For every combination of alpha and tau, we can correct temperature series, calculate salinity, and then compare the downcast temperature to upcast temperature using an RMS calculation. • Or we can use standard literature values, calculated for a SBE25 instrument: Alpha_sbe25 = 0.028 [deg C], Tau_sbe25 = 10 [s] For comparison, glider values were: Alpha_glider = 0.11 [deg C], Tau_glider = 7.12 [s] 10 Another method to calculate Alpha and Tau • Both Lueck and Picklo and Morison et al. state that empirical formulas can be used to calculate values for alpha and tau in cases where it is difficult to determine them directly. These formulas were based on data gathered from a SBE9 CTD and the equations are: If it actually works we get this… 12 References • Gregory C. Johnson, John M. Toole, and Nordeen G. Larson. Sensor Corrections for Sea-Bird SBE-41CP and SBE-41 CTDs. Journal of Atmospheric and Oceanic Technology, 24:1117-1130, June 2007. • E.P. Horne and J.M. Toole. Sensor response mismatches and lag correction techniques for temperature-salinity profilers. Journal of Physical Oceanography, 10:1122-1130, 1980. • J. Morison, R. Andersen, N. Larson, E. D'Asaro, and T. Boyd. The Correction for thermal-lag effects in Sea-Bird CTD data. Journal of Atmospheric and Oceanic Technology, 11:1151-1164, 1994. • Rolf G. Lueck and James J. Picklo. Thermal Inertia of Conductivity Cells: Observations with a Sea-Bird Cell. Journal of Atmospheric and Oceanic Technology, 7:756-768, 1990. 13