From 43af10747b269282525d3806881b25b76048f352 Mon Sep 17 00:00:00 2001 From: Eleanor Frajka-Williams Date: Sun, 11 Oct 2026 21:42:28 +0200 Subject: [PATCH 1/3] refactor: report inventory tables, canonical-unit dune2 fixture, demo notebook cleanup --- .../demo/dune2/dune2_1_2026_grid_report.html | 493 +- .../demo/dune2/dune2_1_2026_report.html | 8749 ++++++++++++++++- .../demo/dune2/dune2_1_2026_stack_report.html | 1094 ++- .../instrument/dune2_1_2026_2941_report.html | 637 +- .../instrument/dune2_1_2026_9920_report.html | 1319 ++- docs/source/clock_offset.rst | 4 +- notebooks/demo_mooring.ipynb | 600 +- notebooks/demo_step1.ipynb | 696 -- notebooks/legacy/README.md | 31 +- notebooks/{ => legacy}/demo_check_clock.ipynb | 0 .../{ => legacy}/demo_clock_offset.ipynb | 0 notebooks/{ => legacy}/demo_instrument.ipynb | 0 notebooks/{ => legacy}/demo_stage1.ipynb | 0 notebooks/{ => legacy}/demo_stage2.ipynb | 0 oceanarray/reports/_env.py | 35 +- oceanarray/reports/_grid.py | 9 +- oceanarray/reports/_html_helpers.py | 122 +- oceanarray/reports/_instrument.py | 31 +- oceanarray/reports/_nc_tables.py | 176 + oceanarray/reports/_stack.py | 11 +- .../reports/templates/_grid_nc_globals.html | 14 - .../reports/templates/_grid_nc_scalars.html | 18 - .../reports/templates/_grid_nc_variables.html | 30 - .../templates/_instrument_nc_globals.html | 14 - .../templates/_instrument_nc_scalars.html | 19 - .../templates/_instrument_nc_variables.html | 30 - oceanarray/reports/templates/_nc_coords.html | 15 + oceanarray/reports/templates/_nc_globals.html | 21 + oceanarray/reports/templates/_nc_scalars.html | 24 + .../reports/templates/_nc_var_macros.html | 32 + .../reports/templates/_nc_variables.html | 20 + .../reports/templates/_stack_nc_dims.html | 11 - oceanarray/reports/templates/base.html | 7 + .../dune2/dune2_1_2026_grid_report.html | 314 +- .../golden/dune2/dune2_1_2026_report.html | 7 + .../dune2/dune2_1_2026_stack_report.html | 876 +- .../instrument/dune2_1_2026_2941_report.html | 465 +- .../instrument/dune2_1_2026_9920_report.html | 1127 ++- .../aquadopp/dune2_1_2026_9920_stage1.nc | Bin 1331408 -> 1331482 bytes .../aquadopp/dune2_1_2026_9920_stage2.nc | Bin 1330097 -> 1330171 bytes .../aquadopp/dune2_1_2026_9920_stage3.nc | Bin 1625154 -> 1625228 bytes .../proc/dune2_1_2026/dune2_1_2026_grid.nc | Bin 171346 -> 171393 bytes .../proc/dune2_1_2026/dune2_1_2026_stack.nc | Bin 351772 -> 351819 bytes .../microcat/dune2_1_2026_2941_stage1.nc | Bin 351921 -> 351958 bytes .../microcat/dune2_1_2026_2941_stage2.nc | Bin 348737 -> 348774 bytes .../microcat/dune2_1_2026_2941_stage3.nc | Bin 603183 -> 603257 bytes tests/unit/test_report.py | 7 +- 47 files changed, 13111 insertions(+), 3947 deletions(-) delete mode 100644 notebooks/demo_step1.ipynb rename notebooks/{ => legacy}/demo_check_clock.ipynb (100%) rename notebooks/{ => legacy}/demo_clock_offset.ipynb (100%) rename notebooks/{ => legacy}/demo_instrument.ipynb (100%) rename notebooks/{ => legacy}/demo_stage1.ipynb (100%) rename notebooks/{ => legacy}/demo_stage2.ipynb (100%) create mode 100644 oceanarray/reports/_nc_tables.py delete mode 100644 oceanarray/reports/templates/_grid_nc_globals.html delete mode 100644 oceanarray/reports/templates/_grid_nc_scalars.html delete mode 100644 oceanarray/reports/templates/_grid_nc_variables.html delete mode 100644 oceanarray/reports/templates/_instrument_nc_globals.html delete mode 100644 oceanarray/reports/templates/_instrument_nc_scalars.html delete mode 100644 oceanarray/reports/templates/_instrument_nc_variables.html create mode 100644 oceanarray/reports/templates/_nc_coords.html create mode 100644 oceanarray/reports/templates/_nc_globals.html create mode 100644 oceanarray/reports/templates/_nc_scalars.html create mode 100644 oceanarray/reports/templates/_nc_var_macros.html create mode 100644 oceanarray/reports/templates/_nc_variables.html delete mode 100644 oceanarray/reports/templates/_stack_nc_dims.html diff --git a/docs/source/_static/demo/dune2/dune2_1_2026_grid_report.html b/docs/source/_static/demo/dune2/dune2_1_2026_grid_report.html index e9bdd542..1009e636 100644 --- a/docs/source/_static/demo/dune2/dune2_1_2026_grid_report.html +++ b/docs/source/_static/demo/dune2/dune2_1_2026_grid_report.html @@ -31,6 +31,7 @@ --role-aggregate-a: #8e44ad; --role-aggregate-b: #27ae60; --role-map: #ee3377; + --role-up: #5d6d7e; --package-accent: var(--ocean); --font-sans: system-ui, -apple-system, "Segoe UI", sans-serif; --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace; @@ -39,9 +40,9 @@ --fs-type: 1.35rem; --fs-h2: 1rem; --fs-meta: 0.84rem; - --fs-note: 0.82rem; + --fs-note: 0.92rem; --fs-nav: 0.8rem; - --fs-cap: 0.76rem; + --fs-cap: 0.92rem; --fs-xs: 0.75rem; --fs-top: 0.72rem; --fs-dt: 0.7rem; @@ -67,7 +68,7 @@ p, li { max-width: 78ch; } .masthead { background: var(--ocean); color: #fff; position: relative; - padding: 1.6rem 2rem; border-radius: var(--radius-card); margin-bottom: 2rem; + padding: 1.6rem 2rem; border-radius: var(--radius-card); margin-bottom: 0.9rem; } .masthead h1 { margin: 0 0 0.3rem; font-size: var(--fs-h1); font-weight: 700; } .masthead .sub { font-size: var(--fs-meta); opacity: 0.85; margin: 0 0 0.15rem; max-width: none; } @@ -136,6 +137,19 @@ } .fig-col { display: flex; flex-direction: column; gap: 0.75rem; } .fig-row.center { justify-content: center; } +/* A multi-table panel (processing provenance) is one full-width flex item so its + headings and tables stack instead of tiling across the row. */ +.prov-panel { flex: 1 1 100%; } +/* Conformance status pips — a green ✓ (matches), a red ✗ (differs) and a neutral + ringed dash (no reference), matching the LADCP-present/absent badges. */ +.conf { + display: inline-flex; align-items: center; justify-content: center; + width: 1.4em; height: 1.4em; border-radius: 50%; + font-size: var(--fs-xs); font-weight: 700; line-height: 1; +} +.conf-match { background: var(--ok); color: #fff; } +.conf-differ { background: var(--error); color: #fff; } +.conf-none { background: #fff; color: #000; border: 1px solid #000; } figure { margin: 0; } figure img { border: 1px solid var(--rule); border-radius: var(--radius-btn); @@ -183,6 +197,40 @@ border-radius: var(--radius-pill); text-decoration: none; font-size: var(--fs-nav); } .btn-nav:hover { opacity: 0.85; } +/* Masthead page-nav (vendored): the row of role pills under the masthead, and the + "Data inventory:" file strip. A pill's colour is its role, never its page; the + current page's pill and an already-viewed file pill are muted the same way. */ +.page-nav { margin: 0.65rem 0 0.5rem; } +.page-nav-label { font-size: var(--fs-top); opacity: 0.75; margin-right: 0.3rem; } +.nav-pill { + display: inline-block; padding: 0.2em 0.65em; border-radius: var(--radius-btn); + font-size: var(--fs-nav); font-weight: 700; text-decoration: none; color: #fff; + margin: 0 0.2rem 0.25rem 0; +} +.nav-landing { background: var(--role-landing); } +.nav-entity { background: var(--role-entity); } +.nav-collection { background: var(--role-collection); } +.nav-component { background: var(--role-component); } +.nav-aggregate-a { background: var(--role-aggregate-a); } +.nav-aggregate-b { background: var(--role-aggregate-b); } +.nav-map { background: var(--role-map); } +.nav-up { background: var(--role-up); } +.nav-current { opacity: 0.5; pointer-events: none; } +.nav-missing { background: var(--gray-3); opacity: 0.5; pointer-events: none; } +.inventory-strip { margin: 0 0 1rem; } +.inventory-strip .label { font-size: var(--fs-top); opacity: 0.75; margin-right: 0.3rem; } +.file-pill { + display: inline-block; background: var(--role-component); color: #fff; + padding: 0.2rem 0.7rem; border-radius: var(--radius-pill); + font-family: var(--font-mono); font-size: 0.78rem; + text-decoration: none; margin: 0.1rem 0.05rem; +} +.file-pill:hover { opacity: 0.85; } +.file-pill-active { opacity: 0.5; pointer-events: none; } +/* Opt-in plain masthead (vendored) for landing / navigator pages: white panel, + ink text, rule border, wordmark hidden. No ctdcast page uses it yet. */ +.masthead-plain { background: #fff; color: var(--text); border: 1px solid var(--rule); } +.masthead-plain .wordmark { display: none; } footer { text-align: center; padding: 1rem; border-top: 1px solid var(--package-accent); @@ -215,6 +263,11 @@ explainer paragraphs sit above full-width tables, where that narrow measure reads as broken. Restore full content-width — the pre-U0.1 oceanarray behaviour. */ p, li { max-width: none; } +/* oceanarray's masthead nav has multiple rows (Reports + one per instrument type); the + vendored single-row `.page-nav` margin stacks into too much vertical space, so tighten the + inter-row gap. (ctdcast/glidertest have a single row and do not need this.) */ +.masthead .page-nav { margin:0.12rem 0 0; } +.masthead .page-nav:first-of-type { margin-top:0.5rem; } .masthead-plain { background:#fff; color:var(--text); border:1px solid var(--rule); } .masthead-plain .wordmark { display:none; } /* Wordmark is now an to the repo; keep the pill look (no link underline). */ @@ -232,7 +285,8 @@ text-decoration:none; margin-left:auto; white-space:nowrap; } .top-link:hover { color:var(--ocean); text-decoration:underline; } .report-footer { margin-top:3rem; font-size:var(--fs-cap); color:var(--muted); - border-top:1px solid var(--rule); padding-top:0.8rem; } + border-top:1px solid var(--rule); padding-top:0.8rem; + text-align:center; } .jump-nav { background:var(--seafoam); padding:0.55rem 1rem; border-radius:6px; margin-bottom:1.5rem; font-size:var(--fs-nav); line-height:2.2; } .jump-nav a { color:var(--ocean); text-decoration:none; font-weight:600; @@ -257,8 +311,19 @@ slot-* figure gets its width from the .slot-* rule instead — so this must NOT apply to slotted figures (that was the width:100%-overrides-slot bug). */ .fig:not([class*="slot-"]) { width:100%; } +/* A cell in a Section.layout="row" flex row: its width comes from the slot-* + class the panel_row macro puts on the cell, and the bare .fig inside fills it. */ +.fig-cell { min-width:0; } +.fig-cell > .fig { width:100%; } .none-note { color:var(--muted); font-style:italic; } .var-qc { color:var(--good); font-size:var(--fs-xs); } +/* Per-row NetCDF attribute disclosure in the inventory tables (the N attrs + expander). */ +.attr-disclosure summary { cursor:pointer; color:var(--muted); font-size:var(--fs-xs); white-space:nowrap; } +.attr-disclosure table { margin:0.3rem 0 0.2rem; border:none; } +.attr-disclosure td { border:none; padding:0.05rem 0.6rem 0.05rem 0; vertical-align:top; + font-size:var(--fs-xs); } +.attr-disclosure td.mono { color:var(--muted); } /* Figure-debug line under a plot (OCEANARRAY_REPORT_DEBUG=1): slot the template chose vs the render-side figsize/png, for eyeballing mismatches. */ .debug { font-family:var(--font-mono); font-size:var(--fs-top); color:var(--muted); @@ -296,8 +361,36 @@

dune2_1_2026Gridded

-

generated 2026-08-17 17:18 UTC

-
Reports:SummaryStackGrid
Aquadopp:9920
Microcat:2941
+

generated 2026-10-11 19:24 UTC

+ + + + + + + + + + + + +
Cruise
OdB
@@ -308,12 +401,12 @@

dune2_1_2026
Deployment
2026-07-11 20:30 UTC
Recovery
2026-07-25 11:44 UTC
Duration
13d 15h
-
Samp. Δt
3600 s
-
Records
328
-
Grid ΔP
50 dbar
-
Pressure levels
15
-
Pressure range
100–800 dbar
-
Instruments
2
+
Samp. Δt
60 s
+
Records
19635
+
Grid ΔP
20 dbar
+
Pressure levels
38
+
Pressure range
80–820 dbar
+
Instruments
22
Source file
dune2_1_2026_grid.nc

@@ -332,6 +425,7 @@

dune2_1_2026 (7) Overflow (8) Frequency analysis (A) NetCDF variables +(B) NetCDF attributes

(1) Processing history

@@ -341,17 +435,17 @@

(1) Processing history

  • Step 1 stack - 22 instruments onto 3600s grid + 22 instruments onto 60s grid
  • - fast instruments (dt<=3600s) subsampled (nearest-neighbour in time), slow instruments interpolated (linear in time) + fast instruments (dt<=60s) subsampled (nearest-neighbour in time), slow instruments interpolated (linear in time)
  • Step 2 grid - linear interpolation in pressure onto 50 dbar pressure grid (100–800 dbar) + linear interpolation in pressure onto 20 dbar pressure grid (80–820 dbar)
  • @@ -365,313 +459,474 @@

    (2) Hydrography

    Temperature, salinity, dissolved oxygen, and O₂ saturation (when present). Vertically interpolated to regular pressure grid • 20 discrete colour levels.

    show / hide -hydro +hydro

    (3) T-S diagram

    Left: log₁₀(count+1) per T-S bin. Right (when O₂ present): median O₂ saturation per T-S bin — bins with <5 samples masked. Colour scale: BrBG (brown=low, teal=high).

    show / hide -ts_diagram +ts_diagram

    (4) Velocity

    East, north, and up velocity. QC-flagged samples excluded before interpolation. Shared symmetric Spectral_r colormap for east/north; separate bounds for up. No temporal gap fill — NaN where no data.

    show / hide -vel_stacked +vel_stacked

    Velocity IQR profiles. Median (solid line) and interquartile range (shaded, 25–75 %) across the full deployment at each pressure level. 2.5–97.5 % outer envelope for speed. Right panel: count of non-NaN values per depth.

    show / hide -vel_iqr +vel_iqr

    Velocity time series at depth of maximum mean speed. Depth chosen as the pressure level with the highest time-mean current speed. Speed, east, and north velocity at that level.

    show / hide -vel_timeseries +vel_timeseries

    (5) Velocity structure

    -

    Current roses. One rose per pressure level (up to 12, evenly subsampled). Suspect/bad QC excluded. Each petal shows the fraction of time current flowed in that direction; petal length encodes speed (m s⁻¹).

    +

    Current roses. One rose per pressure level (up to 12, evenly subsampled). Suspect/bad QC excluded. Each petal shows the fraction of time current flowed in that direction; petal length encodes speed (m/s).

    show / hide -roses +roses

    Hodograph. Current hodographs at two pressure levels (25th and 75th percentile of the valid range). Top row = shallower level; bottom row = deeper level. Left = Tukey-smoothed raw; right = eddy component (LP mean removed). Colour indicates fractional time through the deployment (lime circle = start, red square = end). QC-bad data excluded.

    show / hide -hodograph +hodograph

    Particle trajectory. Pseudo-Lagrangian trajectories at each gridded pressure level, integrated from east and north velocity (Euler forward). All start at the origin. Coloured by pressure (dbar).

    show / hide -trajectory +trajectory

    (6) Stratification

    Potential density. 20 discrete colour levels.

    show / hide -sigma0 +sigma0

    Buoyancy frequency squared (N²). log₁₀(N²) in s⁻². Purple = strongly stratified; yellow = weakly stratified. Computed from T and S via GSW.

    show / hide -n2 +n2

    (7) Overflow

    -

    Isopycnal coverage diagnostic. Percentage of time steps during which each σ₀ surface (0.1 kg m⁻³ spacing) lies within the measured column range. Green ≥ 80 %; amber 50–80 %; red < 50 %. Orange diamond = current --sig-level target. Dashed line = 80 % threshold. NaN gaps in the tracking figure above correspond to times when the isopycnal is outside the measured range (pycnocline above the shallowest grid level, or below the deepest).

    +

    Isopycnal coverage diagnostic. Percentage of time steps during which each σ₀ surface (0.1 kg/m³ spacing) lies within the measured column range. Green ≥ 80 %; amber 50–80 %; red < 50 %. Orange diamond = current --sig-level target. Dashed line = 80 % threshold. NaN gaps in the tracking figure above correspond to times when the isopycnal is outside the measured range (pycnocline above the shallowest grid level, or below the deepest).

    show / hide -isopycnal_coverage +isopycnal_coverage

    Isopycnal height above seabed — sigma0. Height above seabed (m) of each target σ₀ surface through time. Tracked by linear interpolation in density space from the gridded sigma0 field; 1-hour running median applied. NaN where the surface outcrops or is outside the observed range. Light blue = lighter water (shallower); dark blue = denser water (deeper). Targets set by --sig-level (default σ₀ = 27.70).

    show / hide -isopycnal_ts_sigma0 +isopycnal_ts_sigma0

    Temperature ~100 m above seabed. 1-hour running median temperature at the grid pressure level nearest to 100 m above the seabed. Level and height-above-seabed shown in figure title.

    show / hide -overflow_temp +overflow_temp

    (8) Frequency analysis

    Temperature power spectrum. Left: low-frequency overview — 14-day Hann windows, 50 % overlap. Right: high-frequency zoom — 1-day windows (~14× more windows, smoother tidal/inertial estimate); x-axis in hours. LF markers: M2, 1.8 d, 4 d, f. HF markers: M2 (12.4 h), f (inertial). Dashed black line: −2 spectral slope. Colour encodes pressure (light blue = shallow, dark blue = deep). Window length controllable via hf_segment_days in _make_spectrum_fig_b64.

    show / hide -temp_spectrum +temp_spectrum

    Temperature wavelet scalogram. Continuous wavelet transform (Morlet, ω₀ = 6; Torrence & Compo 1998). Three depth levels: 2nd from top, middle, 2nd from bottom of the 100-dbar-multiple valid levels. Colour shows log₁₀(power) (°C² d); hatched grey region = cone of influence (edge-affected); hatched cross region = gap-filled data; black contour = 95 % significance against red noise.

    show / hide -wavelet +wavelet

    Rotary velocity spectrum. CW (clockwise, anticyclonic, solid red lines) and CCW (counter-clockwise, cyclonic, dashed blue lines) power spectra and rotary coefficient r = (CCW−CW)/(CCW+CW). Welch PSD, Hann window, 14-day segments, 50 % overlap. Up to 4 pressure levels (at most 1/5th of valid levels); colour encodes pressure depth. Vertical lines: M2, K1, 1.8 d, 4 d, and inertial period (f). r > 0 = CCW dominant; r < 0 = CW dominant. Physical interpretation (NH): inertial oscillations are inherently CW; for internal waves (f < ω), CW dominance indicates upward energy propagation / downward phase propagation (Leaman & Sanford 1975).

    show / hide -rotary_spectrum +rotary_spectrum

    (A) NetCDF variables

    -

    Variables — dune2_1_2026_grid.nc

    + +

    Coordinates

    + - + + + + + + + + + + + + + + + + + + + + + + + +
    VariableTypeDimsNValidMin / MaxUnitsLong nameStandard nameQC flag
    VariableTypeUnitsStandard / long nameMin / MaxN (valid)Attributes
    pressurefloat64dbarsea_water_pressure
    sea water pressure
    80 / 82038
    2 attrs + + + + + + + + +
    axisZ
    positivedown
    timedatetime64[ns]time
    time
    2026-07-11 20:30 / 2026-07-25 11:4419,635
    1 attr + + + + + + +
    axisT
    + + + + + + +

    Variables on time × pressure — dune2_1_2026_grid.nc

    + + + + + + + - - - - - - - - - + + + + + + + - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - - - - - + + + + + + - - - - - - - - + + + + + + - - - - - - - - - + + + + + + + - - - - - - - - + + + + + +
    VariableTypeUnitsStandard / long nameMin / MaxN (valid)Attributes
    conductivity float32time, pressure4,9203,87929.22 / 36.3mS/cmConductivitysea_water_electrical_conductivity–
    mS cm-1sea_water_electrical_conductivity
    Conductivity
    29.21 / 36.34746,130 (564,149)
    9 attrs + + + + + + + + + + + + + + + + + + + +
    cnv_original_namecond0mS/cm
    cnv_original_labelConductivity [mS/cm]
    cnv_original_unitmS/cm
    original_namecond0mS/cm
    coverage_content_typephysicalMeasurement
    measurement_typeMeasured
    valid_min0.0
    valid_max80.0
    vertical_interpolationlinear in pressure; no extrapolation outside 80–820 dbar
    current_direction float32time, pressure4,9203,5111.051 / 359.3 degreesCurrent direction (0=N, clockwise)direction_of_sea_water_velocity–
    direction_of_sea_water_velocity
    Current direction (0=N, clockwise)
    0.6297 / 359.3746,130 (520,672)
    1 attr + + + + +
    vertical_interpolationlinear in pressure; no extrapolation outside 80–820 dbar
    current_speed float32time, pressure4,9203,5110.0162 / 0.9045 m s-1Horizontal current speedsea_water_speed–
    sea_water_speed
    Horizontal current speed
    0.006549 / 1.076746,130 (520,672)
    1 attr + + + + +
    vertical_interpolationlinear in pressure; no extrapolation outside 80–820 dbar
    east_velocity float32time, pressure4,9203,511-0.8029 / 0.7687 m s-1Eastward sea water velocityeastward_sea_water_velocity–
    eastward_sea_water_velocity
    Eastward sea water velocity
    -0.9994 / 0.9647746,130 (520,672)
    1 attr + + + + +
    vertical_interpolationlinear in pressure; no extrapolation outside 80–820 dbar
    north_velocity float32time, pressure4,9203,511-0.7064 / 0.7343 m s-1Northward sea water velocitynorthward_sea_water_velocity–
    northward_sea_water_velocity
    Northward sea water velocity
    -0.9928 / 0.9071746,130 (520,672)
    1 attr + + + + +
    vertical_interpolationlinear in pressure; no extrapolation outside 80–820 dbar
    salinity float32time, pressure4,9203,87934.57 / 35.54 1Practical Salinitysea_water_practical_salinity–
    sea_water_practical_salinity
    Practical Salinity
    34.04 / 35.68746,130 (564,144)
    3 attrs + + + + + + + +
    coverage_content_typephysicalMeasurement
    commentDerived from conductivity, temperature, pressure via gsw.SP_from_C
    vertical_interpolationlinear in pressure; no extrapolation outside 80–820 dbar
    sigma0 float32time, pressure4,9203,87927.43 / 28.05 kg m-3Potential density anomaly referenced to surface (sigma-0)sea_water_sigma_t–
    sea_water_sigma_t
    Potential density anomaly referenced to surface (sigma-0)
    27.14 / 28.31746,130 (564,144)
    2 attrs + + + + + +
    reference_pressure_dbar0
    vertical_interpolationlinear in pressure; no extrapolation outside 80–820 dbar
    temperature float32time, pressure4,9204,201-0.06961 / 8.025degCTemperaturesea_water_temperature–
    degree_Celsiussea_water_temperature
    Temperature
    -0.07097 / 8.238746,130 (634,274)
    17 attrs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    rsk_channel_id1
    rsk_long_nametemperature
    rsk_short_nametemp18
    rsk_labeltemperature_00
    rsk_dbNameTemperature
    rsk_units°C
    rsk_units_plain_textDegrees_C
    rsk_fe_module_typeSOLO-tmpB
    rsk_fe_module_version1.065
    rsk_is_measured1
    rsk_is_derived0
    coverage_content_typephysicalMeasurement
    measurement_typeMeasured
    units_metadatatemperature: on_scale
    valid_min-5.0
    valid_max42.0
    vertical_interpolationlinear in pressure; no extrapolation outside 80–820 dbar
    up_velocity float32time, pressure4,9203,511-0.2906 / 0.4569 m s-1Upward sea water velocityupward_sea_water_velocity–
    upward_sea_water_velocity
    Upward sea water velocity
    -0.4491 / 0.4729746,130 (520,672)
    1 attr + + + + +
    vertical_interpolationlinear in pressure; no extrapolation outside 80–820 dbar
    +

    (B) NetCDF attributes

    + +

    Global attributes

    + +

    Identity & discovery

    - + + + +
    AttributeValue
    AttributeTypeValue
    mooring_namestr dune2_1_2026
    + +

    Spatiotemporal coverage

    + + + + + + + + + + +
    AttributeTypeValue
    waterdepthstr 745
    latitudestr 65 43.913
    longitudestr -27 48.000
    deployment_timestr 2026-07-11T20:30:00
    recovery_timestr 2026-07-25T11:44:00
    + +

    Provenance & processing

    + + + + - + + + - + + - + + - + +
    AttributeTypeValue
    dt_seconds3600int6460
    Conventionsstr CF-1.13
    p_start_dbar100.0float6480.0
    p_end_dbar800.0float64820.0
    dp_dbar50.0float6420.0
    +