Hosted by CU logo University of Colorado
Boulder
Powered by ESGF-CoG logo
Welcome, Guest. | Login | Create Account
ESMF logo
You are at the CoG-CU node
 

CF Stagger v0.1

In this ticket we propose an addition to the GRIDSPEC (https://cf-pcmdi.llnl.gov/trac/ticket/63) convention to allow it to express multiple stagger locations at once. The multiple staggers are expressed by allowing GRIDSPEC tile files to contain multiple copies of each tile each with a slightly different size from the original. There are two issues that this proposal covers. The first is how to store the stagger coordinates. The second is how to put a variable on a given stagger. 

 To store the stagger coordinates we propose allowing more than one copy of the coordinates in the tile file. The coordinate variables and dimensions for the center stagger are present as usual.  The staggered versions of the coordinates are also in the file. The attribute "gridspec_stagger" attached to the staggered coordinate variables is used to indicate their stagger.  A set of standard stagger names used in this attribute could be added to CF. 

 

The following is an example of a tile containing center and corner coordinates:

 

netcdf tile1 {

dimensions:

nx = 45;

ny = 45;

nxCorner = 46;

nyCorner = 46;

 

variables:

double lon(nx, ny);

lon:standard_name = "longitude;

lon:units = "degrees_east";

double lat(nx, ny);

lat:standard_name= "latitude";

lat:units = "degrees_north";

double lonCorner(nxCorner, nyCorner);

lon:standard_name = "longitude";

lon:units = "degrees_east":

lon:gridspec_stagger="corner";

double latCorner(nxCorner, nyCorner);

lat:standard_name = "latitude";

lat:units = "degrees_north";

lat:gridspec_stagger="corner";

}

 

 When referencing a staggered version of the coordinate data the user does the typical thing and uses the  "coordinates" attribute to specify which of the coordinates in the tile file the data is on. This in addition to the global variable gridspec_tile_name already in the GRIDSPEC convention gives the information needed to access the correct coordinates in the correct tile file. If the user needs to know which stagger their data is on, they can find that by looking at the "gridspec_stagger" attribute attached to the coordinates. 

 

The following is an example of putting a data field (Q) on the corner stagger. 

 

dimensions:

  nxCorner=46;

  nyCorner=46;

 

variables:

  float Q(nxCorner,nyCorner);

     Q:coordinates="lonCorner latCorner";

       

GLOBAL ATTRIBUTES:

     gridspec_tile_name="tile1";

 

 

Last Update: March 10, 2013, 8:30 p.m. by Hydra Administrator