Submit data as NetCDF/CF

This page is under development, more information will be added.

Some data centres only accept data submitted in NetCDF following the Climate and Forecast convention (CF). The main reason for this is to standardise the use metadata, enabling users to understand the content of a data file by the data file only as data are self described and enabling users to use standardised applications for analysis as Input/Output from applications are supported by the self described formats. Furthermore, data centres supporting this format often support data through the OPeNDAP protocol which enables users to stream data. When encoding data as netCDF/CF is good practise to include discovery metadata in the file using the Attribute Convention for dataset Discovery (ACDD). Discovery metadata will then be directly connected to the data themselves and can be extracted for ingestion in the searchable catalogue.

The short story on ACDD and CF is:

  • ACDD is discovery metadata, used to search for useful datasets.
  • CF is use metadata, used to understand datasets found.

It is recommended to use ACDD in version 1.3 or higher and CF in version 1.6 or higher. The ACDD elements that are recommended to fully support discovery in catalogues are listed below.

ACDD global attributes required (extract from ACDD documentation).
Attribute Description
id An identifier for the data set, provided by and unique within its naming authority. The combination of the "naming authority" and the "id" should be globally unique, but the id can be globally unique by itself also. IDs can be URLs, URNs, DOIs, meaningful text strings, a local key, or any other unique string of characters. The id should not include white space characters.
naming_authority The organization that provides the initial id (see above) for the dataset. The naming authority should be uniquely specified by this attribute. We recommend using reverse-DNS naming for the naming authority; URIs are also acceptable. Example: 'edu.ucar.unidata'.
title A short phrase or sentence describing the dataset. In many discovery systems, the title will be displayed in the results list from a search, and therefore should be human readable and reasonable to display in a list of such names. This attribute is also recommended by the NetCDF Users Guide and the CF conventions.
summary A paragraph describing the dataset, analogous to an abstract for a paper.
keywords A comma-separated list of key words and/or phrases. Keywords may be common words or phrases, terms from a controlled vocabulary (GCMD is required), or URIs for terms from a controlled vocabulary (see also "keywords_vocabulary" attribute).
geospatial_lat_min Describes a simple lower latitude limit; may be part of a 2- or 3-dimensional bounding region. Geospatial_lat_min specifies the southernmost latitude covered by the dataset. Must be decimal degrees north.
geospatial_lat_max Describes a simple upper latitude limit; may be part of a 2- or 3-dimensional bounding region. Geospatial_lat_max specifies the northernmost latitude covered by the dataset. Must be decimal degrees north.
geospatial_lon_min Describes a simple longitude limit; may be part of a 2- or 3-dimensional bounding region. geospatial_lon_min specifies the westernmost longitude covered by the dataset. See also geospatial_lon_max. Must be decimal degrees east.
geospatial_lon_max Describes a simple longitude limit; may be part of a 2- or 3-dimensional bounding region. geospatial_lon_max specifies the easternmost longitude covered by the dataset. Cases where geospatial_lon_min is greater than geospatial_lon_max indicate the bounding box extends from geospatial_lon_max, through the longitude range discontinuity meridian (either the antimeridian for -180:180 values, or Prime Meridian for 0:360 values), to geospatial_lon_min; for example, geospatial_lon_min=170 and geospatial_lon_max=-175 incorporates 15 degrees of longitude (ranges 170 to 180 and -180 to -175). Must be decimal degrees east.
time_coverage_start Describes the time of the first data point in the data set. Use the ISO 8601:2004 date format, preferably the extended format as recommended in the Attribute Content Guidance section. I.e. YYYY-MM-DDTHH:MM:SSZ (always use UTC).
time_coverage_end Describes the time of the last data point in the data set. Use ISO 8601:2004 date format, preferably the extended format as recommended in the Attribute Content Guidance section. I.e. YYYY-MM-DDTHH:MM:SSZ (always use UTC).
Conventions A comma-separated list of the conventions that are followed by the dataset. For files that follow this version of ACDD, include the string 'ACDD-1.3'. (This attribute is described in the NetCDF Users Guide.)
history Provides an audit trail for modifications to the original data. This attribute is also in the NetCDF Users Guide: 'This is a character array with a line for each invocation of a program that has modified the dataset. Well-behaved generic netCDF applications should append a line containing: date, time of day, user name, program name and command arguments.' To include a more complete description you can append a reference to an ISO Lineage entity; see NOAA EDM ISO Lineage guidance.
source The method of production of the original data. If it was model-generated, source should name the model and its version. If it is observational, source should characterize it. This attribute is defined in the CF Conventions. Examples: 'temperature from CTD #1234'; 'world model v.0.1'.
processing_level A textual description of the processing (or quality control) level of the data.
date_created The date on which this version of the data was created. (Modification of values implies a new version, hence this would be assigned the date of the most recent values modification.) Metadata changes are not considered when assigning the date_created. The ISO 8601:2004 extended date format is recommended, as described in the Attribute Content Guidance section.
creator_type Specifies type of creator with one of the following: 'person', 'group', 'institution', or 'position'. If this attribute is not specified, the creator is assumed to be a person.
creator_institution The institution of the creator; should uniquely identify the creator's institution. This attribute's value should be specified even if it matches the value of publisher_institution, or if creator_type is institution.
creator_name The name of the person (or other creator type specified by the creator_type attribute) principally responsible for creating this data.
creator_email The email address of the person (or other creator type specified by the creator_type attribute) principally responsible for creating this data.
creator_url The URL of the person (or other creator type specified by the creator_type attribute) principally responsible for creating this data.
institution The name of the institution principally responsible for originating this data. This attribute is recommended by the CF convention.
publisher_name The name of the person (or other entity specified by the publisher_type attribute) responsible for publishing the data file or product to users, with its current metadata and format.
publisher_email The email address of the person (or other entity specified by the publisher_type attribute) responsible for publishing the data file or product to users, with its current metadata and format.
publisher_url The URL of the person (or other entity specified by the publisher_type attribute) responsible for publishing the data file or product to users, with its current metadata and format.
project The name of the project(s) principally responsible for originating this data. Multiple projects can be separated by commas, as described under Attribute Content Guidelines. Examples: 'PATMOS-X', 'Extended Continental Shelf Project'.

For further information on types of metadata see here.

Concerning CF elements, it referred to the CF guidance document and the CF-validator available in this site. Some import "rules" to remember is that:

  1. Choose structure for the CF-compliant file that is described in the CF-conventions. There are specific examples various types model output, in situ observations being time series, profiles or trajectories.
  2. Always use CF standard names if available. CF standard names are searchable through http://cfconventions.org/Data/cf-standard-names/66/build/cf-standard-nam....
  3. Never use theĀ  standard_name attribute for variables if no suitable standard name has been found. Instead, use a descriptive long_name and either contact CF-conventions or NorDataNet for support on how to amend the CF standard names.
  4. Always use the units attribute on variables.
  5. Always use the _FillValue to identify missing value encoding.

NorDataNet has together with NMDC supported the development of a web service enabling users to transform data from ASCII to NetCDF/CF. This is available at NERSC.

Convert ASCII files to NetCDF/CF

Some resources for further reading (while internal material is prepared):