Im working with NOAA's CFSR dataset, reading it into the CDM, which
essentially means converting GRIB into CF/netCDF.
ref:
http://nomads.ncdc.noaa.gov/data.php#cfs-reanal-data
http://dss.ucar.edu/datasets/ds093.2/
from NCAR's DSS page:
"CFSR monthly atmospheric, oceanic and land surface output products
are available as 6-hourly diurnal monthly means (00Z, 06Z, 12Z, and 18Z)"
If I understand this correctly, the monthly mean data is as follows:
for each month:
for each day of the month:
compute separate averages of the data at the 0,6,12, and 18Z
time coordinate.
So one ends up with 4 time coordinates per month, and the data
represents the average for that month at that time. The time coordinate
is not a real calendar date, for example for the month 2008-08, the time
coordinate is not really
2008-08-01T00:00:00.000Z
2008-08-01T06:00:00.000Z
2008-08-01T12:00:00.000Z
2008-08-01T18:00:00.000Z
but more like:
2008-08-*T00:00:00.000Z
2008-08-*T06:00:00.000Z
2008-08-*T12:00:00.000Z
2008-08-*T18:00:00.000Z
where the * indicates an average over the days in that month.
From
http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.6/cf-conventions.html#climatological-statistics
It appears that CF would represent this as:
dimensions:
time=4;
nv=2;
variables:
float temperature(time,lat,lon);
temperature:long_name="surface air temperature";
temperature:cell_methods="time: point within days time: mean over days";
temperature:units="K";
double time(time);
time:climatology="climatology_bounds";
time:units="days since 2008-01-01";
double climatology_bounds(time,nv);
data:
time="2008-08-01T00:00Z","2008-08-01T06:00Z","2008-08-01T12:00Z","2008-08-01T18:00Z" ;
climatology_bounds="2008-08-01T00:00Z", "2008-08-31T00:00Z",
"2008-08-01T06:00Z", "2008-08-31T06:00Z",
"2008-08-01T12:00Z", "2008-08-31T12:00Z",
"2008-08-01T18:00Z", "2008-08-31T18:00Z" ;
Using "point within days" because we have an instantaneous quantity.
However, im not sure what this sentence in 7.4 means: "When considering
intervals within days, if the earlier time of day is equal to the later
time of day, then the method is applied to a full 24 hour day."
Another case is when the data are on time intervals, for example "Total
Precipitation Accumulation". In this case, the original data are on time
intervals which i represent as (start,end) dates:
2008-08-01T00:00:00.000Z, 2008-08-01T00:00:06.000Z
2008-08-01T06:00:00.000Z, 2008-08-01T00:00:12.000Z
2008-08-01T12:00:00.000Z, 2008-08-01T00:00:18.000Z
2008-08-01T18:00:00.000Z, 2008-08-01T00:00:24.000Z
2008-08-02T00:00:00.000Z, 2008-08-02T00:00:06.000Z
2008-08-02T06:00:00.000Z, 2008-08-02T00:00:12.000Z
2008-08-02T12:00:00.000Z, 2008-08-02T00:00:18.000Z
2008-08-02T18:00:00.000Z, 2008-08-02T00:00:24.000Z
2008-08-03T00:00:00.000Z, 2008-08-03T00:00:06.000Z
...
which are are averaged over days, giving 4 averages for each month,
which i denote as:
2008-08-*T00:00:00.000Z, 2008-08-*T00:00:06.000Z
2008-08-*T06:00:00.000Z, 2008-08-*T00:00:12.000Z
2008-08-*T12:00:00.000Z, 2008-08-*T00:00:18.000Z
2008-08-*T18:00:00.000Z, 2008-08-*T00:00:24.000Z
So perhaps this is:
dimensions:
time=4;
nv=2;
variables:
float precipitation(time,lat,lon);
precipitation:long_name="surface air temperature";
precipitation:cell_methods="time: sum within days time: mean over days";
precipitation:units="K";
double time(time);
time:climatology="climatology_bounds";
time:units="days since 2008-01-01";
double climatology_bounds(time,nv);
data:
time="2008-08-01T03:00Z","2008-08-01T09:00Z","2008-08-01T15:00Z","2008-08-01T21:00Z" ;
climatology_bounds="2008-08-01T00:00Z", "2008-08-31T06:00Z",
"2008-08-01T06:00Z", "2008-08-31T12:00Z",
"2008-08-01T12:00Z", "2008-08-31T18:00Z",
"2008-08-01T18:00Z", "2008-08-31T24:00Z" ;
??
thanks for any insights,
John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <
http://mailman.cgd.ucar.edu/pipermail/cf-metadata/attachments/20120220/06f778dd/attachment.html>
Received on Mon Feb 20 2012 - 10:27:34 GMT