Data Filtering Policy
OceanGraph publishes a quality-controlled subset of Argo GDAC profiles. A profile can be absent because of its file type, quality flags, required variables, pressure coverage, or a conversion failure. Missing data in a published profile are represented as missing values, not as zero.
Profile and File Selection
- Core real-time (
R) and delayed-mode (D) files enumerate profile cycles;Dis preferred when both exist. - A synthetic profile is preferred when available (
SDbeforeSR) so core and BGC measurements share one pressure axis. If it fails a known data or quality check, the corresponding core profile may still be published without BGC data. - B-files (
BR/BD) and drift profiles whose cycle suffix ends inDare not used. - If a core or synthetic file contains several profiles, OceanGraph selects the unique profile whose
VERTICAL_SAMPLING_SCHEMEstarts withPrimary sampling:. If the variable is absent or every value is empty, index 0 is used in Argo profile order. A file with non-empty sampling-scheme values but no unique Primary profile is rejected; a rejected synthetic file can still fall back to its independently checked core file. Quality, direction, data mode, resolution, observation count, and pressure span are not used to compare sampling schemes. If the selected Primary fails a later check, OceanGraph does not switch to Secondary or Near-surface sampling.
Profiles require identifiers, date, position, pressure, temperature, salinity, and the corresponding core QC fields. Synthetic profiles also require the fields that identify each parameter’s processing mode. BGC parameters are optional; a profile can therefore appear in search results while some BGC charts are unavailable.
Supported BGC parameters are dissolved oxygen, chlorophyll-a, nitrate, particulate backscattering at 700 nm, pH, downwelling irradiance at 490 nm, and photosynthetically available radiation (PAR). Irradiance at 490 nm is searchable and downloadable but does not currently have an in-app chart.
Source Data and Quality Control
For pressure, temperature, and salinity, OceanGraph uses the ADJUSTED set only when all three adjusted variables and their QC arrays contain finite data. Otherwise it uses the raw set. Each BGC parameter makes the adjusted-or-raw choice independently; masking after that choice does not trigger another fallback.
- Date and position QC must be 1, 2, or 8.
- At least 80% of pressure, temperature, and salinity QC values must be 1, 2, or 8.
- Retained pressure rows must be finite, between 0 and 2000 dbar inclusive, and have pressure QC 1, 2, or 8.
- Temperature or salinity can be missing on an otherwise retained pressure row. At least three rows must contain finite pressure, temperature, and salinity with all three QC values in 1, 2, or 8, and the shallowest such row must be at or above 50 dbar (a pressure value no greater than 50 dbar).
- For BGC parameters, selected-source QC 4 and 9 are masked. Other retained QC codes have different meanings and should still be checked in the source data before scientific use.
Longitude is normalized to [-180°, 180°] before rounding. Passing position QC does not guarantee that every reported
position is suitable for a particular analysis.

Missing Cells and Numeric Limits
All parameter arrays align with the finite pressure array. A missing cell becomes JSON null; a parameter with no finite
values becomes an empty array. Pressure-only profiles are not published, but a profile can remain available when only a BGC
parameter survives alongside pressure.
After source and QC selection, finite values outside these inclusive ranges become null. They are not clamped, filled, or
retried from another source.
| Parameter | Raw range | ADJUSTED range |
|---|---|---|
| Pressure | 0–2000 dbar | 0–2000 dbar |
| Temperature | -2.5–40.0 °C | -2.5–40.0 °C |
| Practical salinity | 2–41.0 | 2–41.0 |
| Dissolved oxygen | 0–600 µmol/kg | 0–600 µmol/kg |
| Chlorophyll-a | -0.2–100 mg/m³ | -0.1–50 mg/m³ |
| Nitrate | -15–65 µmol/kg | -2–50 µmol/kg |
| BBP700 | -0.000025–0.1 m⁻¹ | -0.000025–0.1 m⁻¹ |
| pH | 7.0–8.8 | 7.3–8.5 |
| Irradiance at 490 nm | -1–3.4 W/m²/nm | -1–3.4 W/m²/nm |
| PAR | -1–4672 µmol quanta/m²/s | -1–4672 µmol quanta/m²/s |
At duplicate pressures, OceanGraph keeps one row deterministically, preferring joint temperature-salinity support and then salinity support. Values from discarded duplicate rows are not merged into the retained row.
Pressure Coverage and Conversion
After the minimum joint-observation count and shallow-coverage checks, profiles with excessive gaps between adjacent joint, acceptable-QC temperature-salinity observations are excluded. The allowed gap increases with pressure because deep observations are typically spaced farther apart. No minimum pressure span or required maximum pressure is imposed.
In-situ temperature is converted to potential temperature, and practical salinity to absolute salinity, with the TEOS-10
Gibbs SeaWater toolbox. A cell-level conversion failure remains null; a failure that removes required joint support can
exclude the profile.
Profile JSON does not interpolate missing cells. Section generation, Akima output, and server-side analyses may interpolate finite values inside a parameter’s observed pressure range, but do not extrapolate beyond it or fill missing profile cycles.
Published values are rounded to the following precision:
| Values | Precision |
|---|---|
| Pressure | 0.01 dbar |
| Temperature, salinity, oxygen, chlorophyll, pH, irradiance | 0.001 |
| Nitrate | 0.01 |
| BBP700 | 0.000001 |
| PAR | 0.1 |