Directory Structure and File Layout
Overview
Oceanarray organises files in a mooring-first layout: the top-level
directory for each data type (raw or processed) contains one subdirectory
per mooring, and instrument-type subdirectories appear beneath that. This
contrasts with an older instrument-first layout (used with the legacy
--basedir flag) where the raw directory grouped files by instrument type
across all moorings.
The mooring-first layout makes it easier to work on a single mooring at a time: all raw files, processed files, YAML configuration, and reports for one mooring live under a common directory that can be copied, backed up, or inspected without touching other moorings.
Note
If you are coming from the --basedir layout, see Migrating from the --basedir Layout.
Raw directory layout
The raw directory (supplied with --raw-dir) holds the instrument data
files downloaded from the instruments at sea. No processing is done in this
directory; it is treated as read-only by oceanarray.
{raw_dir}/ ← supplied with --raw-dir (cruise level)
└── {mooring_name}/ ← one directory per mooring
├── microcat/ ← instrument: value from the YAML clamp entry
│ ├── 5367_recovery.asc
│ └── 26261_recovery.asc
├── aquadopp/
│ ├── A400115_dsG3.aqd
│ └── A400115_dsG3.hdr ← header file for Nortek instruments
└── ADCP/
└── 12345_raw.000
The subdirectory name under the mooring directory must exactly match the
instrument field in the YAML configuration (e.g. microcat,
aquadopp, ADCP). The filename field in each YAML instrument
entry is relative to that instrument subdirectory.
Note
You may also store instrument setup and capture files alongside the data
files in the instrument subdirectory. These are not read by
oceanarray but are useful for provenance:
SeaBird instruments: the
.capcapture file and.xmlconconfiguration file downloaded with the data.RBR instruments: the
.logfile generated by Ruskin at download.Nortek Aquadopps: the deployment configuration output (e.g.
A400115_dsG3.prfor the Deployment Details summary).RDI ADCPs: the command-log text file recording the instrument settings used during the deployment.
Processed directory layout
The processed directory (--proc-dir) receives all outputs from
oceanarray process (including its stack and grid stages) and
oceanarray report.
{proc_dir}/ ← supplied with --proc-dir
└── {mooring_name}/
├── {mooring_name}.mooring.yaml ← YAML configuration lives here
├── microcat/
│ ├── {mooring}_{serial}_stage1.nc
│ ├── {mooring}_{serial}_stage2.nc
│ └── {mooring}_{serial}_stage3.nc
├── aquadopp/
│ ├── {mooring}_{serial}_stage1.nc
│ ├── {mooring}_{serial}_stage2.nc
│ └── {mooring}_{serial}_stage3.nc
├── ADCP/
│ └── ...
├── {mooring}_stack.nc ← all instruments on a common time grid
├── {mooring}_grid.nc ← vertically interpolated onto a pressure grid
├── processing_logs/
│ └── {mooring}_{timestamp}_{stage}.mooring.log
└── report/
├── {mooring}_report.html ← mooring summary report
├── {mooring}_stack_report.html
├── {mooring}_grid_report.html
└── instrument/
└── {mooring}_{serial}_report.html
The YAML configuration file
The mooring YAML file must be placed inside the processed directory for that mooring:
{proc_dir}/{mooring_name}/{mooring_name}.mooring.yaml
The {mooring_name} component is the value of the name field at the
top of the YAML file (e.g. name: dsG3_1_2026). The directory name,
the YAML filename, and the name field must all match exactly.
Oceanarray looks for the YAML in this location when you supply
--proc-dir. You do not need to place a copy in the raw directory.
If you do not yet have a processed directory for a mooring, create one
manually before running any oceanarray command:
mkdir -p /path/to/proc/dsG3_1_2026
Then copy or write the YAML into that directory. See YAML Configuration Reference for a full description of the YAML fields and a minimal working example.
File naming conventions
See File Naming Conventions for the full reference, including both raw instrument file names (mooring recovery vs calibration-dip conventions) and processed output file names (stage NC files, stack, grid, reports, logs).