enzh-CNfrdeeliwitjakorues

SIO-CalCOFI Developmental Blog

Notes on software, hardware, methods, and technical metadata.

  • Home
    Home This is where you can find all the blog posts throughout the site.
  • Categories
    Categories Displays a list of categories from this blog.
  • Tags
    Tags Displays a list of tags that have been used in the blog.
  • Bloggers
    Bloggers Search for your favorite blogger from this site.
  • Team Blogs
    Team Blogs Find your favorite team blogs here.
  • Login
    Login Login form
20
Sep

RINKO O2 Integration into CTD.csvs

Posted by on in DECODR
  • Font size: Larger Smaller
  • Hits: 4935
  • Print

DECODR - new O2 Module - Data Processing & Integration of RINKO O2 Data with CalCOFI CTD Data

Seasave & SBE Data Processing suite which we use to process our Seabird 911+ CTD data does not include RINKO data processing capabilities (as of Sept 2017). At-sea, the RINKO III deployed on CalCOFIs 1210NH & 1611SR were attached to two channels. Removing the secondary SBE43 oxygen sensor and altimeter were necessary to free up two channels (since CTD temperature is used for RINKO oxygen calculations, it's possible that only the RINKO current - single channel - may need to be interfaced).
Using a Matlab script from the Australian Ocean Data Network (AODN) and Integrated Marine Observing System (IMOS) & white paper ("Update of CTD oxygen data for the cruises MR07-04 and MR07-06" September 24, 2009 by Hiroshi Uchida (JAMSTEC)). I adapted the formula for calculating RINKO O2 saturation, mg/l, & umol into the units we typically report - ml/l, %sat, umol/Kg:

'depthR! is actually pressure, A!-F! are coefficients from RINKO manufacturer calibration
DissO2! = DissO2! * (1 + E! * depthR! / 100)
DissO2! = A! / (1 + D! * (T! - 25)) + B! / ((RINKOV! - F!) * (1 + D! * (T! - 25)) + C! + F!)

'aging foil correction - G & H are 0% & 100% coefficients derived by SIO-CalCOFI at-sea using saturated seawater & sodium sulfite solutions
DissO2! = G! + H! * DissO2!

'pressure correction
DissO2! = DissO2! * (1 + E! * depthR! / 100)
HoldCTDCSV$(rowcnt%, CalcCol%(5)) = Format(DissO2!, "0.000")  '%Sat

T1! = T! + 273.15
logO2star! = -173.4292 + (249.6339 * 100) / T1! + 143.3483 * log(T1! / 100) - 21.8492 * (T1! / 100) + S! * (-0.033096 + 0.014259 * (T1! / 100) - 0.0017 * (T1! / 100) ^ 2)
O2star! = Exp(logO2star!)

'ml/L
O2uM! = (O2star! * (DissO2! * 1.42857) / 100) * 0.7  '/ 1.33  '10ml/l = 13.3mg/l  1 mg/l = 22.391 ml/31.998 = 0.700 ml/l
HoldCTDCSV$(rowcnt%, CalcCol%(4)) = Format(O2uM!, "0.000")  'ml/L

'uMol/Kg
oxyum! = (O2uM! * 44660) / (HoldCTDCSV$(rowcnt%, CalcCol%(7)) + 1000)
HoldCTDCSV$(rowcnt%, CalcCol%(6)) = Format(oxyum!, "0.000")  'uMol/Kg

Note: DECODR replaces the 3 columns of secondary O2 data (actually duplicate primary since there isn't a secondary sensor) with RINKO calculated data in CTD.asc files which are then merged with bottle data. Duplicate primary oxygen columns are generated in the Derive step of SBE Data Processing. These duplicate columns are then relabeled from "Sbeox0" to "RINox1" using BtlVsCTD's new module - simple module, that's all it does is relabel the header. Then the new DECODR RINKO calculation module is run on the .asc files, replacing the duplicate primary oxygen values with RINKO oxygen values. Going back to BtlVsCTD, the merging of CTD.ascs with sta.csvs

Sbeox0ML/L   Sbeox0PSSbeox0Mm/Kg Sbeox0ML/L   Sbeox0PSSbeox0Mm/Kg
is relabeled in BtlVsCTD to
Sbeox0ML/L   Sbeox0PSSbeox0Mm/Kg RINox1ML/L   RINox1PSRINox1Mm/Kg

SIO-CalCOFI webmasters - presenting contributions from CalCOFI partners and affiliates.

Go to top
Our website is protected by DMC Firewall!