Metadata Conversion

To compensate for the variety of metadata specification formats available, Axiom provides a number of conversion utilities to convert these formats into something it can use.

CF Conventions

The CF Conventions standard name table is available as an XML download from the following URL:

https://cfconventions.org/standard-names.html

Axiom does not use this file directly, rather it converts the file into a metadata schema for use in data validation.

import axiom.utilities as au
schema = au.load_cf_standard_name_table('/path/to/file.xml')

Note: this schema will be very big (~130K lines formatted) but remains human/machine readable.

CORDEX CSV

Development efforts for CCAM have extracted metadata requirements manually from specification PDF files into a CSV format. Axiom provides a utility to convert this format into a schema for interoperability:

import axiom.utilities as au
schema = au.load_cordex_csv(
    '/path/to/file.csv',
    contact='John Smith',
    contact_email='john.smith@example.com',
    version='0.1.0'
)

Notes:

  • Additional keyword arguments provided to the function are added to the schema header.

  • No global metadata is applied during this function (as there is none to infer); hence, the user is encouraged to add these manually.

schema['_global'] = dict(
    author='John Smith',
    description='Scientific outputs.'
    # etc.
)

Saving Converted Schemas

All schemas, converted or otherwise can be saved using the save_schema method.

au.save_schema(schema, 'my-schema-0.1.0.json')

It is good practice to add version information into the filepath.