Hello CF

We have identified a perceived uncertainty in the CF conventions document which 
we strongly feel needs clarification.  I would like to update the conventions 
document to remove this ambiguity.  In order to update the text we have to 
agree on the objective.
(a statement of A or B is helpful; context on why will aid the decision making 
process)

The question is this: "Does a Scalar Coordinate Variable....":

Option A: Represent either a Coordinate Variable or an Auxiliary Coordinate? 
The presence of a scalar does not mandate the existence of a new dimension;  it 
can imply an undeclared dimension of size one that is not explicitly defined in 
the file but it does not have to.

Or

Option B: Always represent a Coordinate variable which explicitly declares a 
dimension of size one, where this dimension is not stated in the file?  An 
exception is provided for string scalar coordinate variables only, which are 
defined as Auxiliary Coordinates but also mandate a new dimension of size one.


Relevant Extracts from the CF Conventions

1.2 Terminology
http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.6/ch01s02.html

scalar coordinate variable

A scalar variable that contains coordinate data. Functionally equivalent to 
either a size one coordinate variable or a size one auxiliary coordinate 
variable.

5.7 Scalar Coordinate Variable

http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.6/ch05s07.html

When a variable has an associated coordinate which is single-valued, that 
coordinate may be represented as a scalar variable. Since there is no 
associated dimension these scalar coordinate variables should be attached to a 
data variable via the coordinates attribute.
...
The new scalar coordinate variable is a convenience feature which avoids adding 
size one dimensions to variables. Scalar coordinate variables have the same 
information content and can be used in the same contexts as a size one 
coordinate variable.

6 Labels and Alternative Coordinates
http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.6/ch06.html#labels

If a character variable has only one dimension (the maximum length of the 
string), it is regarded as a string-valued scalar coordinate variable, 
analogous to a numeric scalar coordinate variable (see Section 5.7, “Scalar 
Coordinate 
Variables”<http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.6/ch05s07.html>)


Example (CDL)

{{{
Dimensions:
d1
d2
s1
s2

Variables

float data(d1,d2) ;
  data:coordinates = "alpha, beta,gamma,delta,epsilon" ;

float d1(d1) ;

float d2(d2) ;

float alpha ;

float beta ;

int gamma ;

char delta(s1) ;

char epsilon(s2) ;
}}}

The file is CF compliant, my question is how to interpret the intent from the 
encoding?

Option A

 - The data variable has at least 2 dimensions, defined by the coordinate 
variables d1 and d2.
 - There are 5 variables which may be coordinate variables or auxiliary 
coordinate variables, the file does not define their type.
   - alpha, beta and gamma may each be:
     - a coordinate variable defining a new undeclared dimension
     - an auxiliary coordinate describing a new undeclared dimension
     - an auxiliary coordinate describing an undeclared dimension which is not 
new (has already been described by another coordinate)
   - gamma and epsilon are auxiliary coordinates which may describe:
     - a new undeclared dimension
     - an undeclared dimension which is not new (has already been described by 
another coordinate)


Option B

 - The data variable has 7 dimensions
   - 2 are explicit in the file and defined by the coordinate variables d1 and 
d2.
   - 5 are implicit, due to the presence of the variables alpha - epsilon
     - each of these is treated as a coordinate variable defining an explicit 
dimension of the data
     - gamma and epsilon are treated as special cases of string variables which 
are being used as coordinate variables but are typed as auxiliary coordinates

_______________________________________________
CF-metadata mailing list
[email protected]
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata

Reply via email to