Skip to content

Storing ADCP data as CF 1.6 timeSeriesProfile

Ellyn Montgomery edited this page Apr 15, 2015 · 2 revisions

This is a summary of many of the important details in how our CF-1.6 data generated by collect.py meets the convention

Global attributes added:

  • Conventions: CF-1.6
  • standard_name_vocabulary: CF-1.6
  • FeatureType:timeSeriesProfile
  • geospatial bounds
  • Time coverage
  • Title
  • Project summary
  • Keywords
  • Keywords_vocabulary:

other components

  • Variables with CF-names have a ‘standard_name’ attribute containing the cf name- example: u_1205 gets ‘sea_water_eastward_velocity’
  • A ‘z’ coordinate replaces our old ‘depth’ coordinate variable
  • The dimensions of the variables need to be (time, z) or (time)
  • Both types may be in a timeSeriesProfile file
  • To map the ‘height’ variable to the ‘z’, coordinate, variables need to have the attribute:
  • coordinates = time height latitude longitude
  • If present, each variable’s valid_range attribute must fit the data. If the range is too restrictive the all the data will be set to NaN. The valid_range attribute will be removed, and the minimum and maximum attributes will be renamed to ‘actual_min’ and ‘actual_max’, enabling the same functionality less restrictively.

More details: The EPIC depth coordinate is replaced by z, and a height variable In the CF-1.6 compliant files, there's a "z" coordinate (no z variable) and a height variable dimensioned just by "z". The secret to getting the CF client to map height into 'z' is the attribute 'coordinates = time height lat lon'.

The number of coordinates do not have to match the number of dimensions in HURRIRENE_BB/9141wh-a.nc, u_1205 has dimensions (time, z), and these (and more) attributes:

coordinates: time height latitude longitude
standard_name: eastward_sea_water_velocity

In theory a client that can plot CF will map ‘height’ into Z before plotting. ncBrowse doesn’t know how to use the coordinates attribute so the y axis is 0-n, not the actual depth values.

Single depth variables (like P_1294), are presumed to be at the elevation of the variable with the attribute ‘standard_name’: 'surface_altitude' In our data, sensor_depth has standard_name = "surface_altitude" ;, so CF assigns the elevation in sensor_depth to P_1294. NcBrowse displays the single depth variables correctly.