pelagos_py.steps.processing.oxygen#

pelagos_py.steps.processing.oxygen.check_config(self, expected_params)[source]#

Runtime checks beyond the parameter schema.

Parameter presence and defaults are handled by parameter_schema; this additionally (a) catches method-dependent parameters left unset (None) and (b) verifies that any *_name parameter points at a variable that actually exists in the dataset.

class pelagos_py.steps.processing.oxygen.DeriveUncalibratedPhase(name, parameters=None, diagnostics=False, context=None)[source]#

Bases: pelagos_py.steps.base_step.BaseStep, pelagos_py.utils.qc_handling.QCHandlingMixin

Base class for pipeline steps with config-mirroring support. Every concrete subclass (registered via @register_step) inherits this.

run()[source]#
- name: "Derive Uncalibrated Phase"
  parameters:
    #  <MANDATORY>
    blue_phase_name: "BPHASE_DOXY"
    # <OPTIONAL>
    red_phase_name: "RPHASE_DOXY"
  diagnostics: false
class pelagos_py.steps.processing.oxygen.DeriveOptodeTemperature(name, parameters=None, diagnostics=False, context=None)[source]#

Bases: pelagos_py.steps.base_step.BaseStep, pelagos_py.utils.qc_handling.QCHandlingMixin

Base class for pipeline steps with config-mirroring support. Every concrete subclass (registered via @register_step) inherits this.

run()[source]#
- name: "Derive Optode Temperature"
  parameters:
    temp_voltage_name: "TEMP_VOLTAGE_DOXY"
    calib_coefficients: [0, 1, 0, 0, 0, 0]
  diagnostics: false
class pelagos_py.steps.processing.oxygen.PhasePressureCorrection(name, parameters=None, diagnostics=False, context=None)[source]#

Bases: pelagos_py.steps.base_step.BaseStep, pelagos_py.utils.qc_handling.QCHandlingMixin

Base class for pipeline steps with config-mirroring support. Every concrete subclass (registered via @register_step) inherits this.

run()[source]#
- name: "Phase Pressure Correction"
  parameters:
    optode_pressure_name: "PRES"
    correction_coefficient: 0.1
  diagnostics: false
class pelagos_py.steps.processing.oxygen.ShiftOxygenToCTD(name, parameters=None, diagnostics=False, context=None)[source]#

Bases: pelagos_py.steps.base_step.BaseStep, pelagos_py.utils.qc_handling.QCHandlingMixin

Base class for pipeline steps with config-mirroring support. Every concrete subclass (registered via @register_step) inherits this.

run()[source]#
- name: "Shift Oxygen To CTD"
  parameters:
    # <MANDATORY>
    shift_vars: ["UNCAL_PHASE_DOXY", "TEMP_DOXY"]
    # <OPTIONAL>
    lag_seconds: null
    pitch_name: "GLIDER_PITCH"
    distance_cm: 90
    cast_id_var: "PROFILE_DIRECTION"
  diagnostics: false

Geometrically time-shifts optode measurements (e.g. phase, optode temperature) onto the CTD’s dense sampling grid, correcting for the water travel time between the two sensors’ positions on the glider (Woo & Gourcuff, 2023). This is the reverse of the more common approach of cloning CTD data onto the sparse optode grid: it produces one shifted oxygen value per N_MEASUREMENTS row, named <variable>_SHIFTED.

If lag_seconds is not set, the lag is instead derived per profile from mean pitch and dive rate. If pitch_name cannot be found (or is empty), a warning is logged and the step fails, since no lag is then available; set lag_seconds for a constant lag instead.

class pelagos_py.steps.processing.oxygen.DeriveCalibratedPhase(name, parameters=None, diagnostics=False, context=None)[source]#

Bases: pelagos_py.steps.base_step.BaseStep, pelagos_py.utils.qc_handling.QCHandlingMixin

Base class for pipeline steps with config-mirroring support. Every concrete subclass (registered via @register_step) inherits this.

run()[source]#
- name: "Derive Calibrated Phase"
  parameters:
    uncalibrated_phase_name: "UNCAL_PHASE_DOXY"
    calib_coefficients: [0, 1, 0, 0]
  diagnostics: false
class pelagos_py.steps.processing.oxygen.DeriveOxygenConcentration(name, parameters=None, diagnostics=False, context=None)[source]#

Bases: pelagos_py.steps.base_step.BaseStep, pelagos_py.utils.qc_handling.QCHandlingMixin

Base class for pipeline steps with config-mirroring support. Every concrete subclass (registered via @register_step) inherits this.

run()[source]#
- name: "Derive Oxygen Concentration"
  parameters:
    # <MANDATORY>
    method: "SVU"
    # <METHOD DEPENDENT>
    # The following params are for "SVU" method
    temperature_name: "TEMP_DOXY"
    svu_coefficients: [c0, c1, c2, c3, c4, c5, c6]  # manufacturer SVUFoilCoef0-6
  diagnostics: false

method: "poly" instead expects calib_coefficient_matrix (shape (5, 4)); method: "SVU" expects svu_coefficients, the 7 manufacturer SVUFoilCoef values (Stern-Volmer-Uchida equation).

class pelagos_py.steps.processing.oxygen.MolarDOXYSalinityCorrection(name, parameters=None, diagnostics=False, context=None)[source]#

Bases: pelagos_py.steps.base_step.BaseStep, pelagos_py.utils.qc_handling.QCHandlingMixin

Base class for pipeline steps with config-mirroring support. Every concrete subclass (registered via @register_step) inherits this.

run()[source]#
- name: "Molar DOXY Salinity Correction"
  parameters:
    # <MANDATORY>
    salinity_name: "PRAC_SALINITY"
    temperature_name: "TEMP"
    # <OPTIONAL>
    reference_salinity: 0
  diagnostics: false
class pelagos_py.steps.processing.oxygen.MolarDOXYPressureCorrection(name, parameters=None, diagnostics=False, context=None)[source]#

Bases: pelagos_py.steps.base_step.BaseStep, pelagos_py.utils.qc_handling.QCHandlingMixin

Base class for pipeline steps with config-mirroring support. Every concrete subclass (registered via @register_step) inherits this.

run()[source]#
- name: "Molar DOXY Pressure Correction"
  parameters:
    # <MANDATORY>
    pressure_name: "PRES"
    temperature_name: "TEMP"
    molar_doxy_name: "MOLAR_DOXY_PSAL"
    uncalibrated_phase_correction_applied: true
  diagnostics: false