Metadata#

Metadata can be provided to Axiom in three different ways:

  1. Loading a metadata JSON format.

  2. Extracting metadata from a NetCDF file.

  3. Programmatically at runtime.

Loading a metadata JSON#

{
    "_global": {
        "author": "John Smith",
        "description": "Scientific outputs."
    },
    "variables":{
        "t2": {"units": "K"},
        "u10": {"units": "m/s"}
    }
}

Then:

import axiom.utilities as au
metadata = au.load_metadata_json('metadata.json')

Extracted from an Xarray dataset#

import xarray as xr
import axiom.utilities as au

ds = xr.open_dataset('data.nc')
metadata = au.extract_metadata(ds)

Defined programmatically at runtime#

metadata = dict(
    _global=dict(
        author='John Smith',
        description='Scientific outputs.'
    ),
    variables=dict(
        t2=dict(units='K'),
        u10=dict(units='m/s')
    )
)

The three examples above are equivalent.

For metadata to be useful, it needs to be validated against a Schema.