Opened 12 years ago

Closed 11 years ago

#8 closed enhancement (fixed)

Identifying horizontal coordinate variables using the axis attribute

Reported by: jonathan Owned by: cf-conventions@…
Priority: medium Milestone:
Component: cf-conventions Version:
Keywords: coordinate-variables, axis, horizontal Cc:


1. Title

Identifying horizontal coordinate variables using the axis attribute

2. Moderator

Russ Rew

3. Requirement

A method is needed to identify which are the horizontal coordinate axes of a data variable

4. Initial Statement of Technical Proposal

The axis attribute of coordinate variables (1D, in the Unidata sense) is optional. The value axis="X" can be used on a longitude coordinate variable (CF 4.2), and axis="Y" on a latitude coordinate variable (CF 4.1) (case-insensitive). CF is ambiguous about its use on other coordinate variables. The introduction of CF 4 states that the axis attribute is recommended for other kinds of spatial coordinate, but without giving an interpretation to its values. However in CF 4.1 and 4.2 it is prohibited for coordinate variables of rotated latitude and longitude. This proposal aims to clarify the use of the axis attribute for horizontal coordinate variables.

The proposal is

  • to modify the sentence "We attach no specific meaning ..." in the introduction to CF 4 with: "The values X and Y for the axis attribute should be used to identify horizontal coordinate variables. If both X- and Y-axis are identified, X-Y-up should define a right-handed coordinate system i.e. rotation from the positive X direction to the positive Y direction is anticlockwise if viewed from above."
  • to delete the prohibition on the axis attribute for rotated latitude in CF 4.1, and rotated longitude in CF 4.2.
  • to append the following to the paragraph beginning "The use of coordinate variables" in the introduction to CF 5: "The axis attribute is not allowed for auxiliary coordinate variables. Auxiliary coordinate variables which lie on the horizontal surface can be identified as such by their dimensions being horizontal, which can in turn be inferred from their having an axis attribute of X or Y, or from their units in the case of latitude and longitude (see section 4)."
  • to append the following to the paragraph beginning "If the coordinate variables" in the introduction to CF 5: "The use of the axis attribute with values X and Y is recommended for the coordinate variables (see section 4)."

5. Benefits

The axis attribute, thus redefined, provides a clear way to identify horizontal coordinate variables and horizontal auxiliary coordinate variables.

As an example, we can modify the one in CF 5.2:

  xc = 128 ;
  yc = 64 ;
  lev = 18 ;
  float T(lev,yc,xc) ;
    T:long_name = "temperature" ;
    T:units = "K" ;
    T:coordinates = "lon lat" ;
  float xc(xc) ;
    xc:long_name = "x-coordinate in Cartesian system" ;
    xc:units = "m" ;
  float yc(yc) ;
    yc:long_name = "y-coordinate in Cartesian system" ;
    yc:units = "m" ;
  float lev(lev) ;
    lev:long_name = "pressure level" ;
    lev:units = "hPa" ;
  float lon(yc,xc) ;
    lon:long_name = "longitude" ;
    lon:units = "degrees_east" ;
  float lat(yc,xc) ;
    lat:long_name = "latitude" ;
    lat:units = "degrees_north" ;

The axis attributes identify xc and yc as horizontal dimensions, and indicate that xc-yc-up is right-handed. Because xc and yc are the dimensions of lon and lat, these auxiliary coordinate variables are also implied to be horizontal. In this case, we can also deduce that from the fact that they are identifiable as longitude and latitude, but for a general 2D coordinate variable it might not be obvious.

There is no backward incompatibility because the redefinition permits the axis attribute in cases where it was formerly not allowed, but does not change its meaning in existing cases.

6. Status Quo

With the CF standard as it is, latitude and longitude coordinate variables can be identified by their units or standard_name, and they are well known to be horizontal. Other horizontal coordinate variables can be identified only by recognising specific standard_names e.g. those in Appendix F on map projections. The axis attribute is a more general solution that works without any knowledge of the possible choices of horizontal grid.

Change History (5)

comment:1 Changed 12 years ago by russ

  • Keywords coordinate-variables axis horizontal added

comment:2 Changed 12 years ago by russ

It's been over three weeks since this proposal was opened. As moderator, I recommend leaving discussion open for another week or so and then declaring a consensus in favor of the proposal, unless there are new suggestions for changes or significant discussion arguing against the proposal.

Summary of discussion

Between November 2006 and January 2007 there was extensive discussion on the cf-metadata mailing list of the issues leading up to the proposal, involving 35 postings from 9 participants: Jonathan Gregory, Brian Eaton, John Caron, Simon Wood, Karl Taylor, Bob Drach, Richard Gorman, Bert Jagers, and Russ Rew. The individual postings have the phrase "axis attribute" in their subject and are available from the CF-metadata mailing list archives.

In summary, the discussion sought to

  • clarify when it is appropriate to use the "axis" attribute
  • resolve an associated inconsistency in the current CF conventions
  • explain how the inconsistency came about
  • determine whether and how data providers and applications are currently interpreting this attribute
  • point out remaining problems with recommendations to clarify the meaning of the "axis" attribute

Initially, there was confusion on whether the axis attribute should be specified for auxiliary coordinate variables, for projection coordinates, for rotated coordinate systems, and for non-latitude/longitude coordinates. Subsequent discussion eliminated this confusion and also determined that the axis attribute is useful in identifying horizontal coordinates when that information is not otherwise available and in specifying orientation for right-handed coordinate systems.

Notes on the process

This proposal was a test case for using the TRAC system to reach consensus for evolving the CF Conventions. Perhaps because most of the discussion and resolution of issues on a mailing list preceded use of the TRAC system, there has been little use of TRAC features. However, it seems clear that the TRAC system is more useful for formalizing a proposal and keeping a record of issues considered than using only a mailing list.

comment:3 Changed 12 years ago by russ

  • Resolution set to fixed
  • Status changed from new to closed

This recommendation is accepted as proposed by consensus.

comment:4 Changed 11 years ago by jonathan

  • Resolution fixed deleted
  • Status changed from closed to reopened

This proposal was agreed before we had decided the present rules for making changes, which require that necessary changes to the conformance document should also have been included as part of the proposal. Therefore I am reopening the ticket now in order to add this information. There is no change to the proposal itself. I propose that, if no-one objects, in three weeks' time the ticket should be closed again and the proposed changes made to the CF standard and conformance document. This will be the first substantive change to the documents under the new governance system.

In the CF conformance document:

  • Add to 4 "Coordinate Types". Requirement. The axis attribute is not allowed for auxiliary coordinate variables.
  • Add to 5 "Coordinate Systems". Recommendation. All horizontal coordinate variables (in the Unidata sense) should have an axis attribute.


comment:5 Changed 11 years ago by jonathan

  • Resolution set to fixed
  • Status changed from reopened to closed

Three weeks have passed with no comment so I am closing the ticket again. (The proposal was already agreed; the reason for reopening the ticket temporarily was to propose the corresponding required changes to the CF conformance document.) According to the rules, the change will now be made in the documents, but marked as provisional, and the standard version will be incremented to CF-1.1.

Provisional status lasts until two applications have successfully interpreted the metadata following this convention. In this case, the proposal was for a clarification. Many files already exist that have the axis attributes.

Note: See TracTickets for help on using tickets.