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

John Caron caron at unidata.ucar.edu
Tue Sep 5 16:47:33 MDT 2006


Thank you, this is very helpful. 

One question on situation (b): You make both one-dimensional auxiliary coordinate variables, but could you make one a coordinate and one an auxiliary coordinate? Eg:

 variables:
   double reftime(time);
     reftime:standard_name = "forecast_reference_time" ;
     reftime:units = "hours since 2003-01-01 00:00" ;

   double time(time);
     time:standard_name = "time" ;
     time:units = "hours since 2003-01-01 00:00" ;

   float temp(time,level,lat,lon);
     temp:long_name = "Air temperature on model levels" ;
     temp:standard_name = "air_temperature" ;
     temp:units = "K" ;
     temp:coordinates = "reftime"

that would look quite similar to case (a)

 variables:
   double reftime;
     reftime:standard_name = "forecast_reference_time" ;
     reftime:units = "hours since 2003-01-01 00:00" ;

   double time(time);
     time:standard_name = "time" ;
     time:units = "hours since 2003-01-01 00:00" ;

   float temp(time,level,lat,lon);
     temp:long_name = "Air temperature on model levels" ;
     temp:standard_name = "air_temperature" ;
     temp:units = "K" ;
     temp:coordinates = "reftime"

So i guess that Im unclear why these are structurally different.


Jonathan Gregory wrote:
> Dear John
> 
> We had a long discussion, initiated by Ag, on the CF email list in summer 2003
> about forecast time etc. but no-one has ever had time to put the outcome into
> the CF standard. I have just been looking through the emails and below is what
> I have found. Maybe we can find the time to put it in the standard now before
> we forget again! Please have a look yourself at the past emails.
> 
> In a discussion about five years ago in PCMDI, we identified four cases, and
> the discussion in 2003 added a fifth case, in effect. They are:
> 
> (i) A forecast run with multiple forecast periods (12 h, 24 h, 36 h, etc.)
> from a single analysis. This can be done with a single-valued analysis time
> and a separate validity time axis. If the reference time for the validity time
> units is the analysis time, the values of the validity time coordinates equal
> the forecast period.
> 
> (ii) A set of forecasts for the same validity time, made from different
> analyses. This can be done with a single-valued validity time and a separate
> analysis time axis.
> 
> (iii) Multiple validity and analysis times, where all combinations exist.
> 
> (iv) Multiple forecast periods from various analyses, where all combinations
> exist.
> 
> (v) Multiple validity and analysis times, where not all cases exist.
> 
> The outcome of the discussion on the email list in 2003 was that we identified
> two structurally different situations.
> 
> (a) If validity time and analysis time, or both, are single-valued (cases i
> and ii), we have independent coordinates for them. Single-valued coordinates
> can be supplied either as scalar coordinate variables or as size-one axes.
> 
> (b) If they are both multivalued (cases iii, iv and v), we introduce an index
> dimension and make them both one-dimensional auxiliary coordinate variables
> with this dimension.
> 
> The standard name for the analysis time is "forecast_reference_time", and for
> validity time is "time". There is an example in CF 5.7 of structure
> (a) (case i), with a scalar coordinate variable for forecast_reference_time
> and a multivalued time axis for validity time.
> 
> In that example, the "since" date and time in the units string of the validity
> time is the analysis time, which means that the values of the validity time
> coordinates are equal to the forecast periods.  But if that were not so, you
> could have another auxiliary coordinate variable with a standard name
> of forecast_period.
> 
> I think what we need to do is add an example of structure (b), and here is
> one (an instance of case v) from the earlier discussion.
> 
> 
>>20030101 12:00 analysis (at 00hr) and 12hr,36hr forecasts
>>20030101 00:00 analysis 6hr,12hr,18hr,24hr forecasts
>>20030101 06:00 analysis 6hr,18hr forecasts
> 
> 
> could be expressed as follows (ordering the time samples as they are above)
> 
> variables:
>   double reftime(record);
>     time1:standard_name = "forecast_reference_time" ;
>     time1:units = "hours since 2003-01-01 00:00" ;
>   double valtime(record);
>     time2:standard_name = "time" ;
>     time2:units = "hours since 2003-01-01 00:00" ;
>   float temp(record,level,lat,lon);
>     temp:long_name = "Air temperature on model levels" ;
>     temp:standard_name = "air_temperature" ;
>     temp:units = "K" ;
>     temp:coordinates = "valtime reftime"
> data:
>   reftime = 12., 12., 12.,  0.,  0.,  0.,  0.,  6.,  6. ; 
>   valtime = 12., 24., 48.,  6., 12., 18., 24., 12., 24. ;
> 
> In this example, again you could add another auxiliary coordinate of
> forecast_period, which would have values
> 0, 12, 36, 6, 12, 18, 24, 6, 18;
> i.e. it's just the difference valtime-reftime, so it doesn't really seem
> to be necessary.
> 
> In the earlier discussion, we did *not* propose to introduce a structure with
> two multivalued time axes, because those situations can be handled by
> structure (b). It's less efficient, but simpler not to have lots of different
> structures.
> 
> Does this cover your needs?
> 
> Best wishes
> 
> Jonathan
> _______________________________________________
> CF-metadata mailing list
> CF-metadata at cgd.ucar.edu
> http://www.cgd.ucar.edu/mailman/listinfo/cf-metadata



More information about the CF-metadata mailing list