HTML Reports ============ ``oceanarray`` generates self-contained HTML reports at the end of processing. Reports require no web server — open them directly in a browser. Each report page is colour-coded by its scope: **navy** for the mooring Summary, **blue** for the Stack, **purple** for the Grid, and **green** for per-instrument pages. Generate reports with:: # Summary page only (fast) oceanarray report MOORING --raw-dir $RAW --proc-dir $PROC # Summary + per-instrument pages + stack + grid oceanarray report MOORING --raw-dir $RAW --proc-dir $PROC \ --instruments --stack --grid # Regenerate one instrument without touching others oceanarray report MOORING --raw-dir $RAW --proc-dir $PROC \ --instruments --serial 16648 Or generate all reports in one go with ``oceanarray run`` (see :doc:`cli_reference`). ---- Live example ------------ The report suite below was generated from the ``dune2_1_2026`` test mooring and is hosted alongside these docs so you can explore the real output interactively. .. figure:: /_static/oceanarray_report_header.png :target: _static/demo/dune2/dune2_1_2026_report.html :align: center :alt: Live dune2_1_2026 Summary report — click to open **Click to open the live** ``dune2_1_2026`` **example report.** It opens the Summary page; the header pills link through to the Stack, Grid, and per-instrument pages. Every figure is embedded in the page — no web server, downloads, or extra assets needed. Direct links to each page: - `Summary <_static/demo/dune2/dune2_1_2026_report.html>`__ - `Stack <_static/demo/dune2/dune2_1_2026_stack_report.html>`__ - `Grid <_static/demo/dune2/dune2_1_2026_grid_report.html>`__ - `Instrument — microcat 2941 <_static/demo/dune2/instrument/dune2_1_2026_2941_report.html>`__ - `Instrument — aquadopp 9920 <_static/demo/dune2/instrument/dune2_1_2026_9920_report.html>`__ ---- Report pages ------------ Summary report ~~~~~~~~~~~~~~ .. figure:: /_static/oceanarray_report_header.png :alt: Mooring summary report header showing serial number pills and metadata cards :align: center The Summary report header for mooring *dsG2_1_2026*. Each instrument type appears on its own row; green pills are instruments that reached Stage 3, grey pills are pending or skipped. **File**: ``{proc_dir}/{mooring}/report/{mooring}_report.html`` The Summary report is the first thing to open after processing. It shows: - **Instrument inventory** — all instruments in the YAML grouped by type (Microcat, Aquadopp, RBR Solo, ADCP, …). Each serial number is a pill button that links to the per-instrument page. Colour indicates processing status: green = reached Stage 3, grey = not yet processed or skipped. - **Navigation pills** — links to the Stack and Grid reports in the header. - **Metadata cards** — cruise, ship, latitude, longitude, water depth, deployment and recovery times, duration, instrument count. - **Processing pipeline table** — one row per instrument with Raw / Stage 1 / Stage 2 / Stage 3 / Stack / Grid status pills. - **Clock corrections table** — applied offset and drift for every instrument. - **QC summary** — flag counts per variable across all instruments. Per-instrument report ~~~~~~~~~~~~~~~~~~~~~ .. figure:: /_static/oceanarray_instrument_report.png :alt: Per-instrument report header for an Aquadopp current meter :align: center The per-instrument header for Aquadopp s/n 16648, showing HAB, depth, record length, sampling interval, and the source NetCDF filename. **File**: ``{proc_dir}/{mooring}/report/instrument/{mooring}_{serial}_report.html`` Generated when ``--instruments`` is passed (or ``--serial SN``). One page per instrument. Sections vary by instrument type: - **Files** — Raw, Stage 1, Stage 2, Stage 3 filenames with sizes and modification times. A red "not found" entry flags a missing raw file. - **Processing history** — clock correction applied, QC thresholds used. - **Time series** — stacked panels for each variable (temperature, salinity, pressure, velocities, …) colour-coded by QARTOD flag. - **Start/end windows** — zoomed-in view of the first and last days of the record to help verify deployment/recovery trimming. - **Current roses** *(Aquadopp/ADCP only)* — direction–speed roses split by QARTOD flag (good / suspect / fail). - **Trajectory** *(Aquadopp/ADCP only)* — cumulative displacement (progressive vector diagram). - **Hodograph** *(Aquadopp/ADCP only)* — tip of the velocity vector over time. - **Speed distribution** *(Aquadopp/ADCP only)* — speed histogram. - **Distributions** — histogram of each scalar variable. - **QC thresholds & flags** — the exact gross-range thresholds applied and the resulting flag-count breakdown. - **Dimensions / Variables** — a summary of the NetCDF structure. Stack report ~~~~~~~~~~~~ .. figure:: /_static/oceanarray_stack_report.png :alt: Stack report header showing all instruments on a common time grid :align: center The Stack report header. The metadata row shows the time-grid interval (Samp. ΔT), total record count, and source filename. **File**: ``{proc_dir}/{mooring}/report/{mooring}_stack_report.html`` Generated when ``--stack`` is passed. Requires ``{mooring}_stack.nc`` (run ``oceanarray process MOORING --stage stack`` first). Sections include: - **Processing history** — how many instruments were stacked and the resampling method used (nearest-neighbour for fast instruments, linear interpolation for slow). - **Instruments (deep-first)** — metadata for each level in the stack: serial, HAB, depth, sampling interval, record count. - **Pressure / Temperature / Salinity / Velocity / Tilt time series** — colour-contoured time-depth sections for each variable. - **Trajectories, T-S diagram, Current roses** — diagnostics across all levels. - **Spacing** — depth spacing between instrument levels over time. - **Dimensions / Variables** — NetCDF structure summary. Grid report ~~~~~~~~~~~ .. figure:: /_static/oceanarray_grid_report.png :alt: Grid report header showing pressure grid parameters and instrument count :align: center The Grid report header. The extra metadata cards show Grid ΔP, number of pressure levels, and pressure range. **File**: ``{proc_dir}/{mooring}/report/{mooring}_grid_report.html`` Generated when ``--grid`` is passed. Requires ``{mooring}_grid.nc`` (run ``oceanarray process MOORING --stage grid`` first). Sections include: - **Processing history** — stack parameters then grid interpolation method and pressure range. - **Hydrography, Velocity** — time-depth sections on the regular pressure grid. - **T-S diagram, Velocity profiles** — profile-based diagnostics. - **Current roses, Particle trajectory, Velocity time series** — current diagnostics. - **Stratification, Power spectrum** — derived diagnostics. - **Dimensions / Variables** — NetCDF structure. ---- PDF output ---------- The HTML reports can be combined into a single A4 PDF for printing or archiving. The HTML pages remain the single source of truth — the PDF is a post-processing step (via `WeasyPrint `_) that applies a print stylesheet (A4 page size, page numbers, page-break avoidance, hidden navigation buttons) without altering report generation. PDF output requires the optional ``pdf`` extra:: pip install oceanarray[pdf] Build the PDF alongside the HTML pages with ``--pdf`` (or ``--all``, which implies it):: # Combine whatever HTML pages exist into MOORING_report.pdf oceanarray report MOORING --raw-dir $RAW --proc-dir $PROC --pdf # Generate every page and the combined PDF in one go oceanarray report MOORING --raw-dir $RAW --proc-dir $PROC --all Pages are concatenated in reading order — summary → per-instrument → stack → grid — and only pages that exist on disk are included. The result is written to ``{mooring}_report.pdf`` in the same directory as the HTML pages. ---- Report colour conventions -------------------------- Each report page uses a distinct header colour so you can immediately tell which report you are reading: +-------------------+--------------------+ | Report | Header colour | +===================+====================+ | Summary | Navy (#1a2a4a) | +-------------------+--------------------+ | Stack | Blue (#2980b9) | +-------------------+--------------------+ | Grid | Purple (#8e44ad) | +-------------------+--------------------+ | Per-instrument | Instrument-specific| | | (green for current | | | meters, teal for | | | CTDs) | +-------------------+--------------------+ The header on every page includes pill buttons linking to the Summary, Stack, and Grid sibling reports, plus a row of per-instrument serial-number links grouped by instrument type. ---- Interpreting processing status pills ------------------------------------- In the Summary and per-instrument reports, each processing stage is represented by a colour-coded pill: - **Green pill** — output file exists and was found. - **Grey pill** — stage not yet run, or file not found. - **"skipped" note** — instrument has ``skip: true`` in the YAML. Stack and Grid pills are grey for any instrument that did not reach Stage 3 (only Stage 3 output is included in the stack).