⇐ ⇒

[CF-metadata] identification of vector components

From: Nan Galbraith <ngalbraith>
Date: Tue, 24 Apr 2012 08:53:37 -0400

Hi Mark and all -

I think this is a perfectly reasonable proposal.

Actually, I think the current wording,
> "x" indicates a vector component along the grid x-axis, when this is
> not true longitude'
is not intended to prohibit the use of x/y terms in cases when x & y are
lon & lat, it's there as a rationale for the x/y terms to be in the
standard
name table - just a hunch, of course.

In most cases, data providers will still use the east/north terms, because
that eliminates the need to describe the coordinate system, but it
should certainly be up to the author to decide where this trade-off
is worthwhile. And, as a data user, I'd be inclined to ignore x/y-based
vector data, and that might be another factor for providers to weigh
when they decide how to label their wind or current data - but it should
still be a choice.

Since this doesn't impact existing data sets in any way, and makes
the CF standard work better for some users, I don't see why we would
object to it.

Nan


On 4/24/12 6:16 AM, Hedley, Mark wrote:
> I have been considering Bryan's point some more:
>
>> The only reason I can see here, and it seems to be the one you are espousing, is that it's a convenience for someone importing their data - they want the standard name to be the name they used to use - but why? It's rarely the case, so why does it have to happen here?
> I don't think this is the reason I am bringing this issue up, it is not a matter of convenience. To me the matter is of what the standard name is there to do: in my view to explicitly identify the phenomenon described by the variable.
>
> A vector component of a phenomenon is what has to be defined. In my mind there are two cases:
> 1. where the vector component is aligned to the data grid
> 2. where the vector component is not aligned to the data grid
>
> These are importantly different to me as a data consumer. For example, with numerical model output: 1. is very likely to be solved directly by the model, 2. is very likely to e derived during post processing from other output.
>
> Currently I can encode 1. in all cases, but I have to use different standard names dependent on the definitions of my coordinate variables; 2. can only be encoded if my component direction is east/north and my data grid does not include east or north as coordinate direction.
>
> I am content that I cannot encode 2. in all cases, as to encode a vector component in an arbitrary direction is a non trivial matter. My desire is to explicitly code case 1 as a particular standard name. I think this is the phenomenon I want to identify, all other required information is able to be extracted from the data variable and its associate variables as required.
>
> There are particular issue here with format interoperability and conversion with respect to phenomenon. In GRIB2, for example, there are codes which identify vector components:
> Wind direction (from which blowing) degree true
> Wind speed ms
> u-component of wind ms
> v-component of wind
> but no code for eastward_...
>
> The current situation poses significant challenges for GRIB - CF interoperability.
>
>> As a data consumer, and software writer, I want to be able to use the convenience of not inspecting the coordinate variable when I find eastward_wind as a standard name!
> My perspective as a data consumer is that I want to know when my data is a vector component using the same grid definition as my data. If that turns out to be east, that's a useful piece of downstream information, not a core part of the phenomenon definition.
>
> mark
>
> -----Original Message-----
> From: Jon Blower [mailto:j.d.blower at reading.ac.uk]
> Sent: Fri 20/04/2012 18:46
> To: Hedley, Mark; cf-metadata at cgd.ucar.edu
> Subject: RE: [CF-metadata] identification of vector components
>
> Hi Mark, all,
>
> I've just re-read the wording of the "_x_" standard names. The wording used is "along the grid x-axis, when this is not true longitude". I have to say I don't like this form of words at all. What is meant by "true longitude"? I'd probably need to understand this meaning before figuring out what changes may be useful. Can anyone help?
>
> Irrespective of the distinction between "_eastward_" and "_x_" it might be worth discussing whether this form of words needs to change. It doesn't seem to sit very well with the introduction of "proper GIS" concepts into CF, and I guess it's a consequence of the GCM-centric history of CF.
>
> Cheers, Jon
>
>
> -----Original Message-----
> From: Hedley, Mark [mailto:mark.hedley at metoffice.gov.uk]
> Sent: 20 April 2012 17:43
> To: Jon Blower; cf-metadata at cgd.ucar.edu
> Subject: RE: [CF-metadata] identification of vector components
>
>
> Hello Jon
>
>> I.e. I think Bryan has a point when he says (or as I interpret): "if I see x_wind I expect to inspect the coordinate variable, if I see eastward_wind I don't". I think this is a useful distinction.
> I think this distinction is maintained, eastward is a term always meaning east with respect to geographic longitude. The capability I would like is to be allowed to use x-wind, even if x may mean east in some way. As such, any time 'x' is seen, then the coordinate variable must be inspected. When eastward is seen I it is clear that the coordinates do not need to be inspected.
>
> The key aspect about x-wind is that it is defined with respect to the coordinate variables, it is a coordinate variable direction. Eastward is the ambiguous term, as it may or may not be in a coordinate variable direction, depending on the definition of the coordinates.
>
> The coordinates are crucial to defining the degrees of freedom of the data, part of its characteristic. I believe the definition of vector components should recognise this.
>
>> What would one do in the case of a precisely-specified lat-lon system, e.g. a WGS84 system? Would this be encoded as a projection, and would we use x_wind in this case?
> I don't think WGS84 is a projection, I would call it a geographic coordinate system. I would like to encode data using WGS84 as a coordinate reference system and define my vectors as x and y
>
>> What about, say, British National Grid, where the eastings and northings are oriented (roughly) east and north? Would eastward_wind be allowable?
> This is a good example of an ambiguity: data modelled on a British National Grid lattice has x_wind and y_wind. The x and y are nearly but not quite eastward. I think the standard_name table would mandate x and y for such variables, but the vector directions are pretty close to east and north.
>
>> (I guess I'm driving toward the suggestion that eastward_wind only be allowed for the implicit lat-lon grid that CF allows and tends to be the default in the GCM community.)
> In this case I would like to use x_wind. The x direction is what characterises my data, the fact that that direction is eastward is secondary information which is encoded in the data, as in this case x is eastward everywhere.
>
> The standard name table description (http://cf-pcmdi.llnl.gov/documents/cf-standard-names/about) includes the statement:
> 'It is expected that the table will expand by the addition of new entries, but existing entries will always continue to be valid. If it becomes desirable to introduce a new name for a quantity which has already been named, the old name will be defined as an alias of the new name'
>
> I think what I am proposing is that eastward_* entries are kept as standard names. In cases where eastward==x then this name is treated as an alias to x_*
>
> I believe alias are still valid to use, and certainly maintain backwards compatibility. This enables data producers to produce datasets with x_* vector components without having to inspect the coordinate definitions to see if it is invalid or worry if it is partially invalid, which can add significant complexity to data writing and conversion processes.
>
> all the best
> mark
>
> -----Original Message-----
> From: cf-metadata-bounces at cgd.ucar.edu on behalf of Jon Blower
> Sent: Thu 19/04/2012 17:39
> To: cf-metadata at cgd.ucar.edu
> Subject: Re: [CF-metadata] identification of vector components
>
> Hi all,
>
> I started off agreeing with Mark in this discussion and thought that eastward_wind should be a special case of x_wind. However, I'm not so sure now. "eastward" is a suitably imprecise concept to go with the suitably-imprecise definition of "longitude" in CF (hence its evolution I guess). If the coordinate system is more precisely specified as a defined projection with a projection_x_coordinate, then x_wind seems appropriate.
>
> I.e. I think Bryan has a point when he says (or as I interpret): "if I see x_wind I expect to inspect the coordinate variable, if I see eastward_wind I don't". I think this is a useful distinction.
>
> What would one do in the case of a precisely-specified lat-lon system, e.g. a WGS84 system? Would this be encoded as a projection, and would we use x_wind in this case? What about, say, British National Grid, where the eastings and northings are oriented (roughly) east and north? Would eastward_wind be allowable?
>
> (I guess I'm driving toward the suggestion that eastward_wind only be allowed for the implicit lat-lon grid that CF allows and tends to be the default in the GCM community.)
>
> Thoughts?
> Jon
>
> -----Original Message-----
> From: cf-metadata-bounces at cgd.ucar.edu [mailto:cf-metadata-bounces at cgd.ucar.edu] On Behalf Of Hedley, Mark
> Sent: 19 April 2012 12:51
> To: cf-metadata at cgd.ucar.edu
> Subject: Re: [CF-metadata] identification of vector components
>
>
>> The problem I have with what you are proposing is that we would then potentially have two different standard names for the *same* quantity, and until such time as we have a way of handling that properly, we ought not do it.
> I do not feel uncomfortable about this. I feel that this situation already exists in a number of situations.
>
> For example, there are ocean models which use a tri-polar horizontal model grid, with 2 northerly poles and a normal south pole. The consequence of this grid for vector components is as follows:
>
> - in the southern hemisphere:
> - x == eastward
> - y == northward
> - in the northern hemisphere
> - x != eastward
> - y != northward
> - the amount of discrepancy changes as either of the northerly poles is approached
>
> The Ocean models I know of write out vector components as x-<standard_name> and y-<standard_name> so in some locations x is east and in other locations it is not
>
> I suspect there are other datasets created where x may mean east.
>
> I feel it is a better compromise to allow x to mean east and encourage data consumers to be careful in interpreting vector components. I believe that https://cf-pcmdi.llnl.gov/trac/ticket/79 will help data consumers with this.
>
> mark
>
> -----Original Message-----
> From: Bryan Lawrence [mailto:bryan.lawrence at ncas.ac.uk]
>
>
> The problem I have with what you are proposing is that we would then potentially have two different standard names for the *same* quantity, and until such time as we have a way of handling that properly, we ought not do it.
>
> Cheers
> Bryan
>> Hello Bryan
>>
>>> Sorry, silence doesn't mean consent.
>> I didn't think it did, but prodding that notion can encourage people to pitch in.
>>
>> My reasoning is that I do not think it is the responsibility of the standard name to define what is meant by x. The initial parts of the definition in the table: '"x" indicates a vector component along the grid x-axis' ... ', positive with increasing x'; say everything there is to say.
>>
>> It is the responsibility of the coordinate and grid_mapping variables to define what 'x' means.
>>
>> Rather than this we have the case now where significant metadata inspection on coordinate system and coordinate is required to determine the correct standard_name from two mutually exclusive choices when writing CF NetCDF. This feels to me to be an unnecessary complication which delivers little benefit from a data and metadata definition perspective.
>>
>>> If you are importing something where x is used as the coordinate, and it is longitude, then why not put that in other metadata?
>> I would say that I have defined this explicitly, using the approach I propose. I define that the data variable is x-wind and I define that x is longitude, therefore I can infer that the x-wind data variable is eastward wind, with respect to the defined grid_mapping. Forcing me to put it in the standard_name adds complexity to software which writes data and increases the opportunity for data to be written incorrectly.
>>
>> For example, does the cf_checker cross reference the 'x' coordinate and any standard names to ensure that datasets defined with respect to a true longitude coordinate variable do not use standard names with the 'x' modifier?
>>
>>> The you say x, I say x, and we both mean different things, is what we need to avoid
>> This cannot be avoided, in almost all cases x means different things in different datasets. It can even mean different things in the same file.
>>
>>> in particular we must not change definitions of existing quantitities.
>> I don't think that it is safe to make that strong a statement on definition changes over time. I can understand the desire to avoid invalidating datasets by narrowing definitions after they are defined; but I don't think that a constrained broadening of the definition of a modifier should be refused on principle. Such changes sometimes need to take place to keep the standard as applicable to its community as possible.
>>
>>
>> That's not to say 'eastward' isn't a useful standard name: there is a good case for model intercomparison, as there is no guarantee that my 'x' is anything like your 'x' for a given dataset: we can agree to publish data as 'eastward' to allow quick and easy intercomparison.
>>
>> even this becomes slightly problematic at small scales, as eastward is with respect to a coordinate reference system, so my east may be subtly different from yours.
>>
>> many thanks
>> mark
>>
>> -----Original Message-----
>> From: Bryan Lawrence [mailto:bryan.lawrence at ncas.ac.uk]
>> Sent: Wed 18/04/2012 11:34
>> To: cf-metadata at cgd.ucar.edu
>> Cc: Hedley, Mark
>> Subject: Re: [CF-metadata] identification of vector components
>>
>> Hi Mark
>>
>> Sorry, silence doesn't mean consent.
>>
>> I think it is exactly the place of standard names to be completely proscriptive about what terms mean.
>>
>> The you say x, I say x, and we both mean different things, is what we need to avoid, and in particular we must not change definitions of existing quantitities.
>>
>> Admittedly, your change wouldn't strictly change anything retrospectively, since it's an inclusive change, but it's probably a dangerous thing to do. (My sense of deja vu tells me we've been here before, and I may even have been on the other side of the argument :-).
>>
>> If you are importing something where x is used as the coordinate, and it is longitude, then why not put that in other metadata? The point of the CF standard is that it just that ....
>>
>> Bryan
>>
>>> There have not been any responses to this post in the last 10 days.
>>>
>>> I know that this is a dangerous philosophy, but can I suggest that, in this case, silence equals consent?
>>>
>>> If it is, I would like to see these amendments in the standard_name publications as soon as possible. Would this cause concern?
>>>
>>> many thanks
>>> mark
>>>
>>> -----Original Message-----
>>> From: cf-metadata-bounces at cgd.ucar.edu on behalf of Hedley, Mark
>>> Sent: Thu 05/04/2012 17:35
>>> To: cf-metadata at cgd.ucar.edu
>>> Subject: [CF-metadata] identification of vector components
>>>
>>>
>>> There is a statement in the definition of many standard names which are used for vector component definitions, e.g.:
>>>
>>> x_wind
>>> alias: grid_eastward_wind
>>> "x" indicates a vector component along the grid x-axis, when this is not true longitude, positive with increasing x. Wind is defined as a two-dimensional (horizontal) air velocity vector, with no vertical component. (Vertical motion in the atmosphere has the standard name upward_air_velocity.)
>>>
>>> I think that the statement 'when this is not true longitude' is problematic, particularly for software converting from other formats, where x indicates the grid i direction, independent of rotation or projection. I do not think it is the place for standard_name to limit the use of the term 'x' to cases where the horizontal coordinate reference system is not 'true latitude longitude'
>>>
>>> I propose that these terms be removed from all standard names which have 'x' or 'y' as a modifier.
>>>
>>> This would enable all x-ward and y-ward definitions to be used, independent of the grid_mapping, as standard names.
>>>
>>> eastward and northward remain useful modifiers as many models may choose to output eastward vector components where east is not the x direction for the model grid.
>>>
>>> The work on vector containers in:
>>> https://cf-pcmdi.llnl.gov/trac/ticket/79
>>> has indicated a good way forward for identifying vector components, and identifying that vectors are with respect to a grid_mapping. I think this proposed change would interface nicely to the proposal in ticket 79
>>>
>>> How would this proposal be viewed by the community?
>>>
>>> mark
>>> _______________________________________________
>>>

-- 
*******************************************************
* Nan Galbraith        Information Systems Specailist *
* Upper Ocean Processes Group            Mail Stop 29 *
* Woods Hole Oceanographic Institution                *
* Woods Hole, MA 02543                 (508) 289-2444 *
*******************************************************
Received on Tue Apr 24 2012 - 06:53:37 BST

This archive was generated by hypermail 2.3.0 : Tue Sep 13 2022 - 23:02:41 BST

⇐ ⇒