USGS - science for a changing world

USGS Coastal and Marine Geology Program

Documentation of the U.S. Geological Survey Oceanographic Time-Series Measurement Database

image of next button.Go to online Time-Series Database

Conversion to Climate-Forecast (CF) Convention Compliance

Since we have developed a substantial collection of software that produces EPIC-compliant files, developing code to convert those files to CF was a more efficient option than rewriting it all to output CF directly. The generation of a CF version operates on EPIC-compliant data files that have passed the BBV review, and occurs as part of or subsequent to data release. Table 9 reviews the key characteristics for determining if a file follows EPIC or CF-1.6 conventions.

Table 9. Key differences between Equatorial Pacific Information Collection (EPIC) and Climate and Forecast version 1.6 (CF-1.6) files.

Characteristic EPIC CF-1.6
Has global attribute “featureType” No Yes
Has only time or time, z dimensions No Yes
Has variable attribute “coordinates” No Yes
Has “time2” dimension and variable Yes No
“time” variable is integer Yes No
Z convention is positive up No Yes

To convert to CF, a suite of Python programs (https://github.com/USGS-CMG/usgs-cmg-portal/tree/master/woods_hole_obs_data) are run on all the files from an experiment, in one directory; the output files have the same names but are in a different directory.

The Python programs do the following manipulations during execution:

  • read fields from a text file to supply experiment-level metadata to the attributes of each file
  • read each file in the experiment directory and do the following:
    • add other global attributes needed for CF compliance (FeatureType must be TimeSeries or TimeSeriesProfile, conventions must be CF-1.6, and standard_name_vocabulary must be CF-1.6)
    • add global attributes to enhance discovery using ESIP Attribute Conventions for Dataset Discovery (geospatial and temporal bounds and keywords)
    • convert 2-part EPIC time to a single CF-1.6-compliant time variable
    • replace EPIC depth coordinate with “z”
    • add a sensor_depth variable to timeSeriesProfile files containing the elevation of the sensor (it must have the attribute surface_altitude to ensure proper spatial placement)
    • add the coordinates attribute to each variable; timeSeries will be time, latitude, longitude; timeSeriesProfile will be time, height, latitude, longitude
    • add the appropriate CF-1.6 standard_name attribute to variables where available
    • leave unchanged almost everything else so that the CF files will look like the EPIC files, except with some slightly different dimensions and attributes
  • write the new CF version file to a new experiment directory under the CF-1.6 root

image of next button.Return to Top   image of next button.Go to Next Topic
Skip Navigation

Accessibility FOIA Privacy Policies and Notices

U.S. Department of the Interior | U.S. Geological Survey | Coastal and Marine Geology

URL: cmgds.marine.usgs.gov/publications/of2007-1194/html/netcdf_cfconv.html
Page Contact Information: CMGDS Team
Page Last Modified: Wednesday, 06-Dec-2017 13:17:00 EST