[CF-metadata] file with both run time and forecast (valid) time coordinates

John Caron caron at unidata.ucar.edu
Mon Sep 4 17:08:30 MDT 2006


Do the CF conventions describe how to encode two time coordinates, run time and forecast (valid) time ?

I notice that there is a standard name "forecast_reference_time":

 "The forecast reference time in NWP is the "data time", the time of the analysis from which the forecast was made. It is not the time for which the forecast is valid; the standard name of time should be used for that time."

and standard name "forecast_period":

 "Forecast period is the time interval between the forecast reference time and the validity time. A period is an interval of time, or the time-period of an oscillation."

So I would guess we can just annotate the vaiables with the standard names forecast_reference_time and/or forecast_period?


This issue is a bit non-obvious for some synthetic datasets we are creating, which are based on a collection of runs, where we end up with a dataset with 2 time coordinates, one of them 2 dimensional:

   String run(run=5);
     :long_name = "Run time for ForecastModelRunCollection";
     :standard_name = "forecast_reference_time";

  double time(run=5, time=11);
     :units = "hours since 2006-08-11T00:00:00Z";
     :long_name = "Coordinate variable for time dimension";
     :standard_name = "time";

 data:

  {
    {0.0, 6.0, 12.0, 18.0, 24.0, 30.0, 36.0, 42.0, 48.0, 54.0, 60.0},
    {12.0, 18.0, 24.0, 30.0, 36.0, 42.0, 48.0, 54.0, 60.0, 66.0, 72.0},
    {24.0, 30.0, 36.0, 42.0, 48.0, 54.0, 60.0, 66.0, 72.0, 78.0, 84.0},
    {180.0, 186.0, 192.0, 198.0, 204.0, 210.0, 216.0, 222.0, 228.0, 234.0, 240.0},
    {192.0, 198.0, 204.0, 210.0, 216.0, 222.0, 228.0, 234.0, 240.0, 246.0, 252.0}
  }


We also create a number of synthetic datasets with a 1D time coordinate, eg:

  double time(time=28);
    :units = "hours since 2006-08-28T06:00:00Z";
    :long_name = "forecast time coordinate";
    :standard_name = "time";
    
  String time_run(time=28)
    :long_name = "model run dates for coordinate = time";
    :standard_name = "forecast_reference_time";

   double time_offset(time=28);
     :long_name = "hour offset from start of run for coordinate = time";
     :units = "hour";
     :standard_name = "forecast_period";

 data:

  {0.0, 6.0, 0.0, 6.0, 0.0, 6.0, 12.0, 18.0, 24.0, 30.0, 36.0, 42.0, 48.0, 54.0, 60.0, 0.0, 6.0, 0.0, 6.0, 12.0, 18.0, 24.0, 30.0, 36.0, 42.0, 48.0, 54.0, 60.0}

    
Another synthetic dataset uses all the data at the same valid time, so we are considering using the run time as the time coordinate: 

 double time(time=3);
    :units = "hours since 2006-08-28T06:00:00Z";
    :long_name = "run time coordinate";
    :standard_name = "forecast_reference_time";

  double time_offset(time=3);
     :long_name = "hour offset from start of run for coordinate = time";
     :units = "hour";
     :standard_name = "forecast_period";

 data:

  {30.0, 18.0, 6.0}

this may be too confusing, since many will asssume that the time coordinate variable is the forecast (valid) time.

Has anyone dealt with these issues?






More information about the CF-metadata mailing list