Dear John Caron and John Maurer I agree with John C that the problem arises when the coordinate variables are not size one. John M's example
> > float lon(lon) ; > > float lat(lat) ; > > float alt(alt) ; > > float temp(time, alt, lat, lon) ; > > temp:standard_name = ?air_temperature? ; > > temp:units = "Celsius" ; > > temp:coordinates = "time lat lon alt" ; > > temp:_FillValue = -999.9; with alt=lat=lon=1 is legal in CF. In fact the coordinates attribute is not needed, because these are all (Unidata) coordinate variables (1D, with name of the variable equal to the name of the dimension). Ignoring the coordinates attribute, this example is fine in COARDS as well. In the data model, lon lat alt time are all dimension coordinate constructs with separate domain axes. But when there are *two* timeseries, you would not have alt=lat=lon=2. That would mean three independent size-2 dimensions. This would also be legal in CF and COARDS, but it means timeseries at a grid of 8 points, not two points. To deal with this situation, we introduce an index dimension of size 2, and make alt lat lon auxiliary coordinate variables of this single dimension. In the data model, there is then only one domain axis for alt lat lon. Back to the case of one timeseries: Example H4 shows scalar coordinate variables for alt lat lon. That is, these size-1 dimensions have been omitted. In this case, the coordinates attribute is needed; that's how scalar coordinate variables are attached to the data variable. In the data model (in my opinion) this is logically equivalent including the size-1 dimensions. Maybe this question raises an issue for chapter 9 and Example H4. The example is following Section 9.2: "If there is only a single feature to be stored in a data variable, there is no need for an instance dimension and it is permitted to omit it. The data will then be one-dimensional, which is a special (degenerate) case of the multidimensional array representation. The instance variables will be scalar coordinate variables; the data variable and other auxiliary coordinate variables will have only an element dimension and not have an instance dimension, e.g. data(o) and t(o) for a single timeSeries." In the multidimensional array representation, featureType doesn't have to be coded, because this representation has always existed in CF. We could say that *if* you encode featureType, there *must* be an instance dimension (of size 1 if appropriate) and that alt lat lon must be auxiliary coordinate variables with this dimension. That would be a restriction we don't have in CF 1.6, so it would be a change to CF. What do you think, John C? Best wishes Jonathan _______________________________________________ CF-metadata mailing list [email protected] http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
