Add meta data to netCDF files.
The metadata is stored in attribute files in YAML format.
The metadata is in key-value pairs and is a global attribute if defined in a
global section, or applied to a specific named variable in the
If an attribute is listed with a missing value that attribute is deleted from the file.
For example the following is an example of an attribute file:
global: # Mandatory since it gives a key to all the other attributes Conventions: "CF-1.7, ACDD-1.3" # The url of the license applied to the data license: "http://creativecommons.org/licenses/by-nc-sa/4.0/" variables: yt_ocean: _FillValue: long_name: "latitude in rotated pole grid" units: "degrees" geolat_t: long_name: "latitude coordinate" units: "degrees_north" standard_name: "latitude"
It will create (or replace) two global attributes:
It will also create (or replace) attributes for two variables,
geolat_t, and delete the
_FillValue attribute of
The information is read into a
python dict. Multiple attribute files can be
specified. If the same attribute is defined more than once, the last attribute
file specified takes precedence. Like cascading style sheets this means default
values can be given and overridden when necessary.
addmeta is a command line program. Invoking with the
-h flag prints
a summay of how to invoke the program correctly.
$ addmeta -h usage: addmeta [-h] [-m METAFILES] [-l METALIST] [-v] files [files ...] Add meta data to one or more netCDF files positional arguments: files netCDF files optional arguments: -h, --help show this help message and exit -m METAFILES, --metafiles METAFILES One or more meta-data files in YAML format -l METALIST, --metalist METALIST File containing a list of meta-data files -v, --verbose Verbose output
Multiple attribute files can be specified by passing more than one file with
-m option. For a large number of files this can be tedious. In that case
-l option and pass it a text file with the names of attribute files,
one per line.
Multiple meta list files and meta files can be specified on one command line.