Metadata Conversion — Axiom 0.0.1 documentation

# 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.