AMOCarray Format AC1
This document defines the AC1 standard data format produced by the amocarray.convert.to_AC1()
function. This format is designed to provide consistency between moored estimates of overturning transport, as from the RAPID, OSNAP, MOVE and SAMBA arrays.
1. Overview
The AC1 format improves the interoperability for Atlantic Meridional Overturning Circulation (AMOC) mooring array datasets. It uses NetCDF (Network Common Data Format) where the software is based on xarray.Dataset
objects. It is derived from the OceanSITES data format [see here](https://www.ocean-ops.org/oceansites/data/index.html) or [https://www.ocean-ops.org/oceansites/docs/oceansites_data_format_reference_manual.pdf](oceansites_data_format_reference_manual.pdf), but additionally attempts to specify vocabularies.
Note, if the link to the pdf is broken, here is a version downloaded in 2025 [oceansites_data_format_reference_manual.pdf](oceansites_data_format_reference_manual.pdf) which describes OceanSITES version 1.4.
See [oceanSITES format](format_oceanSITES.rst) for some information about how oceanSITES format applies to the datasets collated with amocarray.
2. File Format
File type: NetCDF4
Data structure:
xarray.Dataset
Dimensions: -
N_COMPONENT
(optional) -TIME
-N_LEVELS
(for vertical) -N_PROF
(for a location)Coordinates: -
TIME
(required) -DEPTH
orPRESSURE
(optional) -LATITUDE
,LONGITUDE
(optional, where applicable)Encoding: - Default:
float32
for data variables - Compression: Enabled if saved to NetCDF - Chunking: Optional, recommended for large datasets
Note that CF-conventions (https://cfconventions.org/cf-conventions/cf-conventions.html#dimensions) recommends that data with the “interpretions of date or time T, height or depth Z, latitude Y, and longitude X be used in the relative order T, then Z, then Y, then X. All other dimensions should, whenever possible, be placed to the left of the spatiotemporal dimensions.
3. Variables
Name |
Dimensions |
Units |
Description |
RS |
---|---|---|---|---|
TIME |
(TIME,) |
seconds since 1970-01-01 |
Timestamps in UTC |
M |
LONGITUDE |
scalar or (N_PROF,) |
degrees_east |
Mooring or array longitude |
S |
LATITUDE |
scalar or (N_PROF,) |
degrees_north |
Mooring or array latitude |
S |
DEPTH or PRESSURE |
(N_LEVELS,) |
m |
Depth levels if applicable |
S |
TEMPERATURE |
(TIME, …) |
degree_Celsius |
In situ or potential temperature |
S |
SALINITY |
(TIME, …) |
psu |
Practical or absolute salinity |
S |
TRANSPORT |
(TIME,) |
Sv |
Overturning transport estimate |
S |
4. Global Attributes
Attribute |
Example |
Description |
RS |
---|---|---|---|
title |
“RAPID-MOCHA Transport Time Series” |
Descriptive dataset title |
M |
platform |
“moorings” |
Type of platform |
M |
platform_vocabulary |
Controlled vocab for platform types |
M |
|
featureType |
“timeSeries” |
NetCDF featureType |
M |
id |
“RAPID_20231231_<orig>.nc” |
Unique file identifier |
M |
contributor_name |
“Dr. Jane Doe” |
Name of dataset PI |
M |
contributor_email |
Email of dataset PI |
M |
|
contributor_id |
“ORCID:0000-0002-1825-0097” |
Identifier (e.g., ORCID) |
HD |
contributor_role |
“principalInvestigator” |
Role using controlled vocab |
M |
contributor_role_vocabulary |
Role vocab reference |
M |
|
contributing_institutions |
“University of Hamburg” |
Responsible org(s) |
M |
contributing_institutions_vocabulary |
Institutional ID vocab (e.g. ROR, EDMO) |
HD |
|
contributing_institutions_role |
“operator” |
Role of institution |
M |
contributing_institutions_role_vocabulary |
Vocabulary for institution roles |
M |
|
source_acknowledgement |
“…text…” |
Attribution to original dataset providers |
M |
source_doi |
Semicolon-separated DOIs of original datasets |
M |
|
amocarray_version |
“0.2.1” |
Version of amocarray used |
M |
web_link |
Semicolon-separated URLs for more information |
S |
|
start_date |
“20230301T000000” |
Overall dataset start time (UTC) |
M |
date_created |
“20240419T130000” |
File creation time (UTC, zero-filled as needed) |
M |
5. Variable Attributes
Attribute |
Description |
RS |
---|---|---|
long_name |
Descriptive name of the variable |
M |
standard_name |
CF-compliant standard name (if available) |
M |
vocabulary |
Controlled vocabulary identifier |
HD |
_FillValue |
Fill value, same dtype as variable |
M |
units |
Physical units (e.g., m/s, degree_Celsius) |
M |
coordinates |
Comma-separated coordinate list (e.g., “TIME, DEPTH”) |
M |
6. Metadata Requirements
Metadata are provided as YAML files for each array. These define variable mappings, unit conversions, and attributes to attach during standardisation.
Example YAML (osnap_array.yml):
variables:
temp:
name: TEMPERATURE
units: degree_Celsius
long_name: In situ temperature
standard_name: sea_water_temperature
sal:
name: SALINITY
units: g/kg
long_name: Practical salinity
standard_name: sea_water_practical_salinity
uvel:
name: U
units: m/s
long_name: Zonal velocity
standard_name: eastward_sea_water_velocity
7. Validation Rules
All datasets must include the TIME coordinate.
At least one of: TEMPERATURE, SALINITY, TRANSPORT, U, V must be present.
Global attribute array_name must match one of: [“move”, “rapid”, “osnap”, “samba”].
File must pass CF-check where possible.
8. Examples
YAML input: see metadata/osnap_array.yml
Resulting NetCDF Header (excerpt):
dimensions:
TIME = 384
DEPTH = 4
variables:
float32 TEMPERATURE(TIME, DEPTH)
long_name = "In situ temperature"
standard_name = "sea_water_temperature"
units = "degree_Celsius"
...
global attributes:
:title = "OSNAP Array Transport Data"
:institution = "AWI / University of Hamburg"
:array_name = "osnap"
:Conventions = "CF-1.8"
9. Conversion Tool
To produce AC1-compliant datasets from raw standardised inputs, use:
from amocarray.convert import to_AC1
ds_ac1 = to_AC1(ds_std)
This function:
Validates standardised input
Adds metadata from YAML
Ensures output complies with AC1 format
10. Notes
Format is extensible for future variables or conventions
Please cite amocarray and relevant data providers when using AC1-formatted datasets
11. Provenance and Attribution
To ensure transparency and appropriate credit to original data providers, the AC1 format includes structured global attributes for data provenance.
Required Provenance Fields:
Attribute |
Purpose |
---|---|
source |
Semicolon-separated list of original dataset short names |
source_doi |
Semicolon-separated list of DOIs for original data |
source_acknowledgement |
Semicolon-separated list of attribution statements |
history |
Auto-generated history log with timestamp and tool version |
amocarray_version |
Version of amocarray used for conversion |
generated_doi |
DOI assigned to the converted AC1 dataset (optional) |
Example:
:source = "OSNAP; SAMBA"
:source_doi = "https://doi.org/10.35090/gatech/70342; https://doi.org/10.1029/2018GL077408"
:source_acknowledgement = "OSNAP data were collected and made freely available by the OSNAP project and all the national programs that contribute to it (www.o-snap.org); M. Kersalé et al., Highly variable upper and abyssal overturning cells in the South Atlantic. Sci. Adv. 6, eaba7573 (2020). DOI: 10.1126/sciadv.aba7573"
:history = "2025-04-19T13:42Z: Converted to AC1 using amocarray v0.2.1"
:amocarray_version = "0.2.1"
:generated_doi = "https://doi.org/10.xxxx/amocarray-ac1-2025"
YAML Integration (optional):
metadata:
citation:
doi: "https://doi.org/10.1029/2018GL077408"
acknowledgement: >
M. Kersalé et al., Highly variable upper and abyssal overturning cells in the South Atlantic.
Sci. Adv. 6, eaba7573 (2020). DOI: 10.1126/sciadv.aba7573