Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
In the above message you wrote:
>I have a problem with time. I have netCDF and the udunits packages.
I want to
>be able to write time-dependent meteorological datasets where the time
is
>hours, minutes, and seconds, either local or Zulu time.
>
>I would like to do this, satisfying these conditions:
>
>A) I would like to do it in a standard, de facto standard, or quasistandard
>way.
>
>B) I would like my visualization program to be able to figure out, just
by
>looking at the file without my having to press buttons, that the time
should be
>displayed as hh:mm:ss.
I would store the times in a netCDF `double' variable with a unit
attribute something like "seconds since 1993-12-15 00:00 UTC". I'd then
interpret and display the netCDF file in something like the following
manner:
#include <udunits.h>
...
char string[128]; /* value & units print-buffer */
utUnit unit; /* input units */
double value; /* input value */
...
if (utIsTime(unit))
{
/*
* We're dealing with a temporal unit.
*/
int year, month, day, hour, minute;
float second;
(void) utCalendar(value, unit, &year, &month, &day, &hour,
&minute, &second);
(void) sprintf(string, "%d-%d-%d %d:%d:%d UTC", year, month,
day, hour, minute, (int)second);
}
else
{
/*
* We're dealing with a non-temporal unit.
*/
(void) sprintf(string, "%g ", value);
(void) utPrint(unit, string + strlen(string));
}
>Also, is there such a thing as a udunits document?
Yes. It's the manual page in the UDUNITS package.
--------
Steve Emmerson <steve@unidata.ucar.edu>