optode-response-time

Suite of matlab code for determining the response time of an oxygen optode
14 téléchargements
Mise à jour 12 jan. 2022

optode-response-time
---
The MATLAB code included in this repository is designed to determine the response time of oxygen optodes deployed on autonomous floats in-situ. The process requires timestamps for each measurement and a sequence of both up- and downcast profiles. For more information on the method see Gordon et al. (2020).

There are two versions of the software, the default and the temperature-dependent version. In the default, temperature is not taken into consideration. In the T-dependent folder, the optimization is for boundary layer thickness, and a temperature profile must be provided along with the oxygen profile. The temperature dependent version uses the lookup table found in the supplement for Bittig & Kortzinger (2017).

User Guide
---
The function calculate_tau.m is the main driver here, and calls on correct_oxygen_profile.m to correct single oxygen profiles. Of course, the user may choose to use this sub-function for their own purposes.

calculate_tau.m takes in matrices of depth, time, and oxygen data (see below) and computes the optimal response time for each pair of profiles. In the T-dependent version, the use must also supply a matrix of temperature values. The derived time constants (or boundary layer thicknesses in T-dependent) can then be used to correct the oxygen measurements for sensor hysteresis. Following Gordon et al. (2020), this would be done using the median time constant, but we leave this decision to the user.

Input Data
---
Input data for calculate_tau.m should be in 2D matrix form, where each row is an individual profile, and rows alternate direction of observation (for example, all even rows could be upcasts and all odd rows downcasts or vice-versa). Time should be in MATLAB datenum format. Profiles should be organized such that time is monotonically increasing (i.e. pressure will be monotonically decreasing for an upcast). Below is some made-up data to demonstrate the proper data format:

% depth matrix
P = [
[200, 195, 190, .., 10, 5]; % profile 1, upcast
[5, 10, 15, .., 195, 200 ]; % profile 2, downcast
[200, 195, 190, .., 10, 5]; % profile 3, upcast
...
[200, 195, 190, .., 10, 5]; % profile N, upcast *or* downcast
];

% time matrix, matlab datenum, monotonically increasing row to row
T = [
[7.36451000e+05, 7.36451005e+05, 7.36451010e+05, .., 7.36451195e+05]
[7.36451200e+05, 7.36451205e+05, 7.36451210e+05, .., 7.36451395e+05]
...
[7.36454804e+05, 7.36454809e+05, 7.36454814e+05, .., 7.36455000e+05]
];

% oxygen data
DO = [
% corresponding oxygen values for each time/depth
];
Parameters
---
The following parameters are optional arguments for calculate_tau.m:

zlim: lower and upper depth bounds to perform optimization over, default is [25,175], dimensions (1, 2)
zres: resolution for profiles to be interpolated to, default is 1, dimensions (scalar)
tlim: lower and upper time constant bounds to perform optimization over, default is [0,100], dimensions (1, 2), OR, in T-dependent mode, the lower and upper bounds of boundary layer thickness
tres: resolution to linearly step through tlim, default is 1 dimensions (scalar)
Tref: only in T-dependent mode, reference temperature at which to report the derived time constant (scalar)

Test
---
In the test directory, the script test.m and data example_data.mat should run with no changes required. This gives a very base level example of how the functions work and the output.

Licensing
---
Please note that this code is provided as-is under the MIT license and is subject to periodic updates and improvements. If you are interested in contributing to this repository, please contact Christopher Gordon at Chris.Gordon@dfo-mpo.gc.ca.

Citation pour cette source

Gordon, C., Fennel, K., Richards, C., Shay, L. K., and Brewster, J. K.: Can ocean community production and respiration be determined by measuring high-frequency oxygen profiles from autonomous floats?, Biogeosciences Discuss., https://doi.org/10.5194/bg-2020-119, in review, 2020.

Compatibilité avec les versions de MATLAB
Créé avec R2018a
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Les versions qui utilisent la branche GitHub par défaut ne peuvent pas être téléchargées

Version Publié le Notes de version
1.1.5

See release notes for this release on GitHub: https://github.com/MEMG/optode-response-time/releases/tag/1.1.5

1.1.4

See release notes for this release on GitHub: https://github.com/MEMG/optode-response-time/releases/tag/1.1.4

1.1.3

See release notes for this release on GitHub: https://github.com/MEMG/optode-response-time/releases/tag/1.1.3

1.1.2

See release notes for this release on GitHub: https://github.com/MEMG/optode-response-time/releases/tag/1.1.2

1.1.1

See release notes for this release on GitHub: https://github.com/MEMG/optode-response-time/releases/tag/1.1.1

1.1

Temperature-dependent updates

1.0.3

Updated citation

1.0.2

Added citation, updated description

1.0.1

Updated description

1.0.0

Pour consulter ou signaler des problèmes liés à ce module complémentaire GitHub, accédez au dépôt GitHub.
Pour consulter ou signaler des problèmes liés à ce module complémentaire GitHub, accédez au dépôt GitHub.