Opened 3 years ago

Last modified 3 months ago

#153 new enhancement

Requirements related to specific standard names — at Version 2

Reported by: martin.juckes Owned by: cf-conventions@…
Priority: medium Milestone:
Component: cf-conventions Version:
Keywords: Cc:

Description (last modified by martin.juckes)

A significant number of standard names contain, in their definitions, explicit specifications for additional required metadata. For instance, if the standard_name is region then there are constraints on the allowed values of the data variable. The standard name descriptions cannot include examples or markup, and the specification of the rules is not as clear as in the convention text. It also appears that the rules are not checked by the CF checker (at least not the few that I have looked at in detail) and I think the best way to get consistent checking would be to first create a well structured summary of these rules in the conventions document.

The specific proposal is add a new Appendix which lists the rules with examples where appropriate.

It will take some time to complete the list. I propose that we add a provisional list, after agreeing the format and approach, and work towards completion later.

Appendix D: Rules associated with standard names

Some standard names bring additional constraints on the meta-data and/or data values of the variables they are associated with. This appendix list such names, grouped according to the types of constraint, and provides usage examples where needed.

Required Coordinates

A common constraint involves the requirement that a particular coordinate or set of coordinates be present. The following table lists the rules and associated standard names. An explanation of each rule follows below.

Rule Description
Standard Name(s)
Required coordinate(s)
1 Area Fraction The fractional area in a cell covered by a particulate area type.
area_fraction
area_type
2 Lifted from Parameters defined in terms of lifting from a reference level
atmosphere_convective_available_potential_energy, atmosphere_convective_inhibition, atmosphere_level_of_free_convection, atmosphere_lifting_condensation_level
original_air_pressure_of_lifted_parcel
3 Lifting range Parameter defined in terms of lifting through a specified range
temperature_difference_between_ambient_air_and_air_lifted_adiabatically
original_air_pressure_of_lifted_parcel,final_air_pressure_of_lifted_parcel
4 Radiances For radiance variables a direction must be specified
downwelling_photosynthetic_photon_radiance_in_sea_water and others
zenith_angle
5 Reference state Variables which depend on reference air temperature and humidity
mass_concentration_of_pm_*_ambient_aerosol_in_air, mass_fraction_of_pm_*_ambient_aerosol_in_air
air_temperature, relative_humidity
6 Wavelength Functions of wavelength
*_per_unit_wavelength_in_air
radiation_wavelength

In all cases, the structure follows the same pattern, illustrated by the following examples for case 1. Area Fraction:

   float cropcover(lat,lon);
      cropcover:standard_name = 'area_fraction';
      cropcover:coordinates =  'crop';
      cropcover:units = '1';
   character crop(nchar);
      crop:standard_name = 'area_type';
   data:
      crop = 'crop';

Other rules

Regions and Area Types

If the standard name of a variable is region or area_type then the variables must either be of character type or use flag values to associate each element to a character string. The string values must be from the CF standard region and area type lists respectively.

Quantities representing a layer average or sum

Many "layer" quantities require vertical coordinates with bounds.

  • *_atmosphere_layer[_*];
  • *_ocean_layer[_*];
  • *_soil_layer[_*];

Variation of variables in sigma coordinates due to surface pressure change

change_in_energy_content_of_atmosphere_layer_due_to_change_in_sigma_coordinate_wrt_surface_pressure: must have a vertical coordinate variable (axis=Z).

   float deltae(sig);
      deltae:standard_name = 'change_in_energy_content_of_atmosphere_layer_due_to_change_in_sigma_coordinate_wrt_surface_pressure';
      deltae:units = 'J m-2';
   float sig(sig);
      sig:axis = 'Z';
      sig:standard_name = 'atmosphere_sigma_coordinate';
      sig:bounds = 'sig_bnds';
      sig:units = '1';
   float sig_bnds(2,sig);  # required because of _atmosphere_layer

Temporal change

Time rate of change or displacement over time require bounds on time coordinate:

  • change_over_time_*;
  • *_displacement;

Comments for discussion

In some cases the wording of standard_name definitions could be interpreted as a recommendation or suggestion rather than a requirement. If some of these are intended only as suggestions, that should be flagged.

Change History (2)

comment:1 Changed 3 years ago by martin.juckes

  • Description modified (diff)

comment:2 Changed 3 years ago by martin.juckes

  • Description modified (diff)
  • Summary changed from Requires related to specific standard names to Requirements related to specific standard names
Note: See TracTickets for help on using tickets.