Maarten,
This is life with CF. Just to be sure I understand the details of the
problem, the vertical set of pressure values at one lat and lon is
different from the vertical set at a different lat and lon, correct? Is
there no metric (as in, not just an index) vertical coordinate that you
can construct that doesn't vary across the lat/lon grid?
As far as the pressure bounds being a variable no user will ever need,
I've got to differ with you. Having an unambiguous, consistent, and
automation-friendly mechanism for declaring bounds is quite useful. It
removes uncertainty and avoids the problems that can develop when a
product is developed by one community of people who say, for example,
"Everyone knows that the grid boundaries are halfway between the grid
points" and then gets used by a community of people who say, "Everyone
knows that the grid boundaries are at the grid points." (I've dealt with
this sort of problem more than once in my career!) If CF had a standard
that stated that an extra element at the end of a dimension was
understood to be an upper bound, then your original proposal would be
fine. Without a standard, your original proposal is non-standard (by
definition), and thus open to conflicting interpretations.
I've felt the same frustration about the inefficiencies of coordinate
grids, but until we define a standard for a more compact representation,
it's what we've got.
Grace and peace,
Jim
On 2/20/15 6:05 AM, Maarten Sneep wrote:
> On 19-02-15 18:56, Jim Biard wrote:
>> Maarten,
>>
>> It would, instead be something like this:
>>
>> dimensions:
>> lon = 360;
>> lat = 180;
>> layer = 18;
>> vertices = 2;
>>
>> variables:
>> float lat(lat);
>> lat:long_name = "latitude";
>> lat:units = "degrees_north";
>> lat:bounds = "lat_bnds";
>> float lon(lon);
>> lon:long_name = "longitude";
>> lon:units = "degrees_east";
>> lon:bounds = "lon_bnds";
>> float pressure(layer, lon, lat);
>> pressure:long_name = "pressure grid";
>> pressure:units = "hPa";
>> pressure:bounds = "pressure_bnds";
>> float lat_bnds(lon,vertices);
>> float lon_bnds(lat,vertices);
>> float pressure_bnds(layer,lon,lat,vertices);
>> float O3(layer, lon, lat);
>> O3:units = "1e-9";
>> O3:coordinates = "pressure";
>>
>> You can have a layer index coordinate variable if you require/desire
>> one, but it isn't necessary. The bounds attribute is applied to the
>> pressure variable, and a coordinates attribute is applied to the O3
>> variable naming the pressure variable. The pressure variable is an
>> "auxiliary coordinate", and must be explicitly associated with the O3
>> variable in this way.
>
> Thanks, but my colleague has a remark: "this is very inefficient"
> (although it is CF compliant).
>
> Only the pressure boundaries are of interest, the pressures themselves
> are pretty much a dummy variable, although a pretty large dummy
> variable: 18*360*180 elements. Then the interfaces: 18*360*180*2. so
> instead of storing (18+1)*360*180, the storage requirement jumps to
> 3*18*360*180, or 2.84 times as much. Not a fantastic score. Especially
> for vertical coordinates this is a common situation
>
> For regular coordinates the overhead is there, but at least it is a
> lot smaller. For irregular grids, this overhead is large, and adds
> variables no user will ever need. I'll think if I can think of a neat
> solution that can be used in CF2.
>
> Best,
>
> Maarten Sneep
--
CICS-NC <http://www.cicsnc.org/> Visit us on
Facebook <http://www.facebook.com/cicsnc> *Jim Biard*
*Research Scholar*
Cooperative Institute for Climate and Satellites NC <http://cicsnc.org/>
North Carolina State University <http://ncsu.edu/>
NOAA's National Climatic Data Center <http://ncdc.noaa.gov/>
151 Patton Ave, Asheville, NC 28801
e: jbiard at cicsnc.org
o: +1 828 271 4900
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cgd.ucar.edu/pipermail/cf-metadata/attachments/20150220/f128b7ff/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bbhbajha.png
Type: image/png
Size: 11847 bytes
Desc: not available
URL: <http://mailman.cgd.ucar.edu/pipermail/cf-metadata/attachments/20150220/f128b7ff/attachment-0001.png>
Received on Fri Feb 20 2015 - 07:40:35 GMT