⇐ ⇒

[CF-metadata] WRF staggered grids

From: John Caron <caron>
Date: Mon, 27 Oct 2003 11:25:55 -0700

Jonathan Gregory wrote:

>Dear John
>
>
>
>>Has there been any discusion of staggered coordinate systems?
>>
>>
>Yes, informally, but no proposals are "on the table".
>
>
>
>>It has variables on various staggerings, for example U is on (z,y,x_stag)
>>while V is on (z, y_stag, x), and W is on (z_stag,y,x), where the
>>staggered coordinates are the "edges" of the non-staggered coordinates.
>>
>>On first pass these could constitute seperate coordinate systems, but it
>>seems like it would be better to represent how they are related.
>>
>>
>
>I think the representation as separate systems is essential. For most software
>that is all which is necessary and the program shouldn't be expected to do
>anything cleverer. The issue is whether we want to include additional metadata
>which indicates how the systems are related. Are you aware of a need for this
>higher-level information? For instance, when would you like to know that the
>pressure, U and V are in an Arakawa C-grid arrangement? To record this would
>be redundant, in principle, so is it better to deduce it when you need to?
>
I agree it will be important that the coord systems be able to be seen
as stand-alone for most software wont know or care about the staggering.

Its always chicken and egg: there are no standard tools that use this
info because its not available because no tools use it....

Anyway, its still a good question about how this info could be used. I
would guess if you are trying to do derived fields, particularly
gradients, that knowing exactly how eg U, V and W winds are related to
the other quantities would be important.

So the problem looks like:

 dimensions:
   west_east = 90;
   west_east_stag = 91;

   south_north = 81;
   south_north_stag = 82;

   bottom_top = 27;
   bottom_top_stag = 28;

 variables:
   float U( bottom_top, south_north, west_east_stag);

   float V( bottom_top, south_north_stag, west_east);

   float W( bottom_top_stag, south_north, west_east);

    // most of the rest are on the unstaggered grid
   float QVAPOR(Time, bottom_top, south_north, west_east);
   float P(Time, bottom_top, south_north, west_east);
    ...

So we would have coordinate variables like:

  float west_east(west_east);
  float west_east_stag(west_east_stag);

So, one possibility is:

  float west_east(west_east);
     west_east:stagger = "west_east_stag";

  float west_east_stag(west_east_stag);
    west_east:stagger = "west_east";

Note that west_east and west_east_stag are also bounds for each other,
except that they dont use extra dimensions like
   float west_east_bounds(west_east, 2)

but rather the simpler (n+1) case, so we cant currently just overload
the bounds attribute :^(
Received on Mon Oct 27 2003 - 11:25:55 GMT

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

⇐ ⇒