Collection of CF enhancements for interoperable applications
|Reported by:||mgschultz||Owned by:||cf-conventions@…|
in an offline discussion with Jonathan and a few others, it became apparent that there may be a few limitations in the current CF convention which make life difficult for building true interoperable services. One of the major obstacles at present is the optional character of attributes, in particular for coordinate axes. If an application cannot rely on finding some specific information about a coordinate, it becomes virtualyl impossible to interpret this information correctly without human intervention (or one has to start guessing which will almost certainly fail at some point). According to my understanding, making attributes mandatory could break the backward compatibility principle that CF has hitherto held very high. Therefore, it appears appropriate to begin a collection of issues about the current CF convention which impediment the implementation of interoperability, and which would not be backward-compatible. Depending on the outcome of this discussion (for which we should allow some time), one could decide to either start a new CF major version number, or adopt all incompatible changes in one new step release version. It should be avoided to introduce incompatible changes in several individual releases.
Here I begin with three items. Responses should indicate whether they agree that these changes cause incompatibilities. If you want to add other issues, please prepend an item number. If discussions on individual issues get lengthy, we should open separate track tickets for them and feed the conclusion back into this ticket.
1) make axis attribute and standard_name attribute mandatory for coordinate variables
2) introduce a "group" level in order to be compatbile with the netcdf4 and hdf data model: each group can have its own coordinate system, but all variables within a group must share the same coordinates
3) standardize use of comments where these are necessary to uniquely identify what a standard_name means or what a variable contains. Examples are the lumping of NMVOC compounds, where the definition of the lumped group should be provided, or the newly proposed emission sectors