John, Jonathan,
One detail I would differ on: In practice I do not think that
standard_name=depth and positive=up are necessarily in conflict (see
bold text below). We fairly commonly encounter ocean model outputs in
which the depths are encoded as negatives:
0
-10
-20
...
There are merits to this encoding -- especially apparent in coupled
ocean/atmosphere situations. (Also it preserves the right-handed
coordinate system.) It would be quite peculiar (and a frequent source
of error) to insist that an ocean model output file name its Z axis as
"altitude", simply because it has encoded the depth values as
negatives. The purpose of the 'positive' attribute is to inform the
application when the encoding of values and the physical interpretation
of the Z axis are reversed from one another.
- Steve
===================================
On 1/29/2014 4:26 AM, Jonathan Gregory wrote:
> Dear John
>
> I think your interpretation of the standard is correct. It would be useful to
> record this is a FAQ - what do you think? Maybe it isn't frequently asked,
> but it could be asked again. I am sure there are plenty of other questions
> which have come up and been answered on this email list that would likewise
> be worth recording for reference. I add some comments below.
>
> The positive attribute was inherited from COARDS, which depended on it and
> units to identify the vertical coordinate variable. COARDS did not have aux
> coord vars, standard names or the axis attribute.
>
>> 1) What are the exact conditions that _require_ the positive attribute?
>> I believe they are: a) variable is a coordinate variable => '1-dimensional netCDF variables whose dimension names are identical to their variable names', OR is an auxiliary coordinate variable; b) the variable represents a vertical axis in the real world; c) units are not pressure.
>>
>> 2) What is appropriate application behavior if standard_name conflicts with the positive attribute? For example,*standard_name=depth, but positive=up -- this is a conflict, since depth for example is defined as "Depth is the vertical distance below the surface."*
>> I think this situation is undefined, but given the ambiguity of the definition with respect to sign, perhaps the positive attribute should be treated as definitive.
> I would favour the standard name if there is one, because standard names are
> always defined to include a sign convention if relevant. In this case, depth
> and height are distinct standard names, and the only difference between their
> definitions is the sign. The positive attribute would be wrong in this example,
> I think.
>
>> 3) Can positive attribute be applied to a variable that is not a (auxiliary) coordinate variable? The existing language says "This attribute may be applied to either coordinate variables or auxillary coordinate variables that contain vertical coordinate data.", which is silent about just regular data, and the attributes list says it only applies to Coordinate variables.
>> It should be OK; I see nothing expressly prohibiting this, either in the spec or in undesirable side effects. Often depth (for example) is just a measured value, and is not used in the file as a coordinate axis. And I think it is common to use positive for any vertically-oriented variable; as long as that variable is not a coordinate variable already (1D name(name)), the system will not promote it to one just based on the positive attribute. And, everyone does it.
> It is allowed because CF in general allows any attributes that it does not
> standardise to be used in any way the user likes. The use of this attribute
> on data variable is not standardised so CF does not say what it would mean.
> If there is a standard name, the positive attribute isn't necessary, because
> the standard name itself implies the sign convention (as above).
>
>> 4) Can an application infer a vertical axis entirely from the existence of axis=Z or standard_name=depth or altitude? Or does it have to check the units/positive to confirm?
>> If I understand correctly, while conformance with CF requires the units/positive attributes as described above, the intent of the axis and standard_name options is to make it possible for an application to confirm a vertical coordinate as soon as it finds either of those indications.
> That's right, but the units and positive attribute are mandatory, for backward
> conformance with COARDS, whereas the standard_name and axis are optional. So it
> is more reliable to use the units and positive attribute to identify the
> vertical axis, although less convenient than axis='Z'.
>
> Best wishes
>
> Jonathan
> _______________________________________________
> CF-metadata mailing list
> CF-metadata at cgd.ucar.edu
> http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <
http://mailman.cgd.ucar.edu/pipermail/cf-metadata/attachments/20140129/deb20974/attachment.html>
Received on Wed Jan 29 2014 - 09:41:03 GMT