Variables
Variables describe the individual measurements, calculations, or contextual data columns within a dataset. The OAE Data Protocol uses a class hierarchy to capture the different levels of metadata required for different kinds of variables — a directly measured pH value needs calibration and instrument details, while a calculated CO₂ variable needs the calculation method, and a contextual column like a station ID needs minimal metadata.
Variable Hierarchy
graph LR
V("`*Variable*
(abstract)`")
FV("`*FieldVariable*
(abstract)`")
ISV("`*InSituVariable*
(abstract)`")
MV("`*MeasuredVariable*
(abstract)`")
NMV["NonMeasuredVariable"]
MOV["ModelOutputVariable"]
SEV["SocioeconomicVariable"]
CV["CalculatedVariable"]
DM["DiscreteMeasuredVariable"]
CM["ContinuousMeasuredVariable"]
DPH["`DiscretePHVariable
DiscreteTAVariable
DiscreteDICVariable
DiscretePhysiologicalVariable
*…and others*`"]
CPH["`ContinuousPHVariable
ContinuousTAVariable
ContinuousDICVariable
ContinuousPhysiologicalVariable
*…and others*`"]
V --> FV
V --> MOV
FV --> NMV
FV --> ISV
ISV --> SEV
ISV --> CV
ISV --> MV
MV --> DM
MV --> CM
DM --> DPH
CM --> CPH
classDef abstract fill:#f5f5f5,stroke:#999,stroke-dasharray: 4 3,color:#555
classDef concrete fill:#e0e8f0,stroke:#4F656A
classDef leaf fill:#d0e8d0,stroke:#4F656A
class V,FV,ISV,MV abstract
class DM,CM concrete
class NMV,MOV,SEV,CV,DPH,CPH leaf
This hierarchy aims to align with NOAA-PMEL's OAPMetadata XSD schema to make interoperability easier between NOAA's OCADS system, and other repositories where OAE researchers may choose to host their data, whether they be other ocean data repositories, and generalist repositories such as Zenodo.
Choosing a Variable Type
In a field dataset, three fields decide each variable's class. Variables in a model output dataset use the ModelOutputVariable class and are classified with the separate ModelVariableType enum. See Model Output Variables below.
variable_type: what kind of measurement it is. See VariableType for the values.genesis: whether it wasmeasuredby an instrument orcalculatedfrom other variables. Not used fornon_measuredvariables.sampling: for measured variables,discrete(bottle or grab samples) orcontinuous(sensors, underway systems).
Selection → Schema Class Mapping
| variable_type | genesis | sampling | Schema Class |
|---|---|---|---|
pH |
measured |
discrete |
DiscretePHVariable |
pH |
measured |
continuous |
ContinuousPHVariable |
ta |
measured |
discrete |
DiscreteTAVariable |
ta |
measured |
continuous |
ContinuousTAVariable |
dic |
measured |
discrete |
DiscreteDICVariable |
dic |
measured |
continuous |
ContinuousDICVariable |
co2 |
measured |
discrete |
DiscreteCO2Variable |
co2 |
measured |
continuous |
ContinuousCO2Variable |
sediment |
measured |
discrete |
DiscreteSedimentVariable |
sediment |
measured |
continuous |
ContinuousSedimentVariable |
hplc |
measured |
discrete |
HPLCVariable |
physiological |
measured |
discrete |
DiscretePhysiologicalVariable |
physiological |
measured |
continuous |
ContinuousPhysiologicalVariable |
socioeconomic |
measured |
— | SocioeconomicVariable |
other |
measured |
discrete |
DiscreteMeasuredVariable |
other |
measured |
continuous |
ContinuousMeasuredVariable |
Any except non_measured |
calculated |
— | CalculatedVariable |
non_measured |
— | — | NonMeasuredVariable |
What Each Level Adds
Each class adds fields to the one above it. The class pages list them in full.
- Variable: what every variable has, such as its column name in the data file, a descriptive name and an optional reference to a community vocabulary.
- InSituVariable: data the project collected or derived: units, how it was produced and who produced it.
- MeasuredVariable: how samples were taken and analyzed, the analyzing instrument with its calibration, and quality control.
- CalculatedVariable: how the value was calculated, including software, inputs and constants.
Model Output Variables
Variables in a ModelOutputDataset are described by a single class,
ModelOutputVariable, which sits directly under Variable as a sibling of
FieldVariable. ModelOutputVariables carry none of the
sampling, instrument, calibration or in-situ QC metadata that field-collected variables do. How the
output was produced is described by the simulation configuration on the parent dataset.
Type-Specific Fields (Mixins)
Many measured variables (either discrete or continuous) inherit additional fields based on their variable_type that are
always present whether the specific variable is discrete or continuous. In these instances, we use LinkML's mixin
feature to allow for trait-like composability of these fields into both the corresponding DiscreteVariable and
ContinuousVariable classes for that variable_type.
| Variable Type | Mixin |
|---|---|
pH |
MeasuredPHFields |
ta |
MeasuredTAFields |
dic |
MeasuredDICFields |
co2 |
MeasuredCO2Fields |
sediment |
MeasuredSedimentFields |
physiological |
MeasuredPhysiologicalFields |
other |
— |
Leaf classes (e.g., DiscretePHVariable, DiscreteTAVariable) may add further type-specific fields as well. For a comprehensive list of all required and optional fields please refer to the individual class pages linked in the mapping table above.