Validation

Validating metadata is performed using either the command-line utility or using the Axiom Python library as part of your own Python code.

Using the Command Line

See Command Line Usage

Using Python

import axiom.validate as av
import axiom.utilities as au
import xarray as xr

# Load the schema
schema = au.load_schema_json('schema.json')

# Create a validator
v = av.Validator(schema=schema)
# Note, you can also use av.Validator('schema.json') and save the above step.

# Load metadata, multiple options...

# Option 1 - metadata.json file
metadata = au.load_metadata_json('metadata.json')

# Option 2 - Extract from xarray.Dataset
ds = xr.open_dataset('data.nc')
metadata = au.extract_metadata(ds)

# Validate the metadata against the schema (returns True/False)
v.validate(metadata)

# Or do something with the pass/failure
if v.is_valid:
    print('Data meets specification.')
else:

    # Errors are stored as an attribute
    for e in v.errors:
        # Do something with the error.
        pass

A report can also be generated for the validation instance, see Reporting