Autonomous Underwater Gliders:
Download
Report
Transcript Autonomous Underwater Gliders:
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