Discussion:
[CF-metadata] annotating vector quantities (e.g., (u,v) winds)
Clune, Thomas L. (GSFC-6101)
2016-10-27 19:23:43 UTC
Permalink
I could not find any discussion in the specs about how to indicate that two variables are part of a vector pair such as (u,v). In theory one can infer the relationship from the long-name, but it would seem to be useful to have a more direct means to indicate this relationship.

I see at least 4 different approaches to this:


1. Each variable that is part of a vector has an attribute that names the partner component. u:vector_partner = “v" There is also an attribute that specifies the component index: u:vector_index=1 Others may want vectors with more components, in which case naming the partners becomes more problematic. And then one would also want an attribute that specifies the total number of components u:vector_length=2
2. Each vector component has an attribute that names the entire vector rather than the partner. u:vector_name=“u-v”. There would also be an attribute for specifying the vector component index as in (1) above. This approach is more scalable for longer vectors, but tools would need to search through all variables to find the partner components.
3. Have a separate variable which is a vector of strings. Each string names the list of component variables with some standard separator. E.g., “u,v”, “mx, my”, 

4. Combine components into one variable with an extra vector index dimension. But this seems to be contrary to CF conventions for naming variables. It is also not very friendly to the tools that we are currently using.

Thanks in advance,

- Tom
Thomas Lavergne
2016-10-27 19:51:41 UTC
Permalink
Dear Thomas, and colleagues,

Thank you for bringing this topic back in the spot lights. I made an
attempt to define vectors in CF about 4 years ago. There was a lot of good
discussion in here (http://cf-trac.llnl.gov/trac/ticket/79) but we
unfortunately never reached a conclusion (although there was some level of
consensus at the start). I will gladely participate to this discussion.

T.

2016-10-27 21:23 GMT+02:00 Clune, Thomas L. (GSFC-6101) <
Post by Clune, Thomas L. (GSFC-6101)
I could not find any discussion in the specs about how to indicate that
two variables are part of a vector pair such as (u,v). In theory one can
infer the relationship from the long-name, but it would seem to be useful
to have a more direct means to indicate this relationship.
1. Each variable that is part of a vector has an attribute that names
the partner component. u:vector_partner = “v" There is also an attribute
that specifies the component index: u:vector_index=1 Others may want
vectors with more components, in which case naming the partners becomes
more problematic. And then one would also want an attribute that
specifies the total number of components u:vector_length=2
2. Each vector component has an attribute that names the entire vector
rather than the partner. u:vector_name=“u-v”. There would also be an
attribute for specifying the vector component index as in (1) above. This
approach is more scalable for longer vectors, but tools would need to
search through all variables to find the partner components.
3. Have a separate variable which is a vector of strings. Each string
names the list of component variables with some standard separator. E.g.,
“u,v”, “mx, my”, 

4. Combine components into one variable with an extra vector index
dimension. But this seems to be contrary to CF conventions for naming
variables. It is also not very friendly to the tools that we are
currently using.
Thanks in advance,
- Tom
_______________________________________________
CF-metadata mailing list
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
--
==========================================
Thomas Lavergne
Norwegian Meteorological Institute
P.O.BOX 43, Blindern, NO-0313 OSLO, Norway
Phone: (+47) 22963364 <callto:+47%29%2022963364> Skype: thomas.lavergne
<callto:+47%29%2022963380>
Email: ***@met.no
OSISAF HL Portal: http://osisaf.met.no
==========================================
Clune, Thomas L. (GSFC-6101)
2016-10-27 20:19:30 UTC
Permalink
Hello Thomas,

Thank you very much for pointing me at the previous discussion. (And apologies for not having done the search for myself.)

I’m not sure I understand one sentence in the proposal:

"To be valid, a vector variable shall have at least as many components as the dimensionality of the vector.”

I do not see where the proposal defines the “dimensionality” of the vector, aside from the number of components. Hopefully this is not the number of coordinate dimensions, as it does not suit our current needs.

Consider (u,v) in a climate model using a lat lon grid. Here u and v are both 3 dimensional (level, lat, lon). Yes, in theory there is a “w” component out there somewhere, but in practice it is treated quite differently. And, even in the document, the variables do have a time dimension that would seem to run afoul of this constraint. And finally, consider our new situation where the data is to be exported on cubed-sphere grid. In this case, our variables have dims: (time, level, nf, ny, nx), where “nf” is 6 corresponding to the 6 faces of the cube. But our wind is still 2D - there is no “face” component of the wind.

Aside from that concern, I think the proposal meets our needs.

Cheers,

- Tom



On Oct 27, 2016, at 3:51 PM, Thomas Lavergne <***@met.no<mailto:***@met.no>> wrote:

Dear Thomas, and colleagues,

Thank you for bringing this topic back in the spot lights. I made an attempt to define vectors in CF about 4 years ago. There was a lot of good discussion in here (http://cf-trac.llnl.gov/trac/ticket/79) but we unfortunately never reached a conclusion (although there was some level of consensus at the start). I will gladely participate to this discussion.

T.

2016-10-27 21:23 GMT+02:00 Clune, Thomas L. (GSFC-6101) <***@nasa.gov<mailto:***@nasa.gov>>:
I could not find any discussion in the specs about how to indicate that two variables are part of a vector pair such as (u,v). In theory one can infer the relationship from the long-name, but it would seem to be useful to have a more direct means to indicate this relationship.

I see at least 4 different approaches to this:


1. Each variable that is part of a vector has an attribute that names the partner component. u:vector_partner = “v" There is also an attribute that specifies the component index: u:vector_index=1 Others may want vectors with more components, in which case naming the partners becomes more problematic. And then one would also want an attribute that specifies the total number of components u:vector_length=2
2. Each vector component has an attribute that names the entire vector rather than the partner. u:vector_name=“u-v”. There would also be an attribute for specifying the vector component index as in (1) above. This approach is more scalable for longer vectors, but tools would need to search through all variables to find the partner components.
3. Have a separate variable which is a vector of strings. Each string names the list of component variables with some standard separator. E.g., “u,v”, “mx, my”, 

4. Combine components into one variable with an extra vector index dimension. But this seems to be contrary to CF conventions for naming variables. It is also not very friendly to the tools that we are currently using.

Thanks in advance,

- Tom


_______________________________________________
CF-metadata mailing list
CF-***@cgd.ucar.edu<mailto:CF-***@cgd.ucar.edu>
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
--
==========================================
Thomas Lavergne
Norwegian Meteorological Institute
P.O.BOX 43, Blindern, NO-0313 OSLO, Norway
Phone: (+47) 22963364<callto:+47%29%2022963364> Skype: thomas.lavergne<callto:+47%29%2022963380>
Email: ***@met.no<mailto:***@met.no>
OSISAF HL Portal: http://osisaf.met.no<http://osisaf.met.no/>
==========================================
Loading...