1/24/2012 time unit is month

 - My message 1/23/2012
     We are seeing some NDFD GRIB2 records that may be incorrect.  In short,
     the time unit is encoded as a "3" meaning "Month" so that the forecast
     intervals are as many as 13 months out. Possibly that should be "Days" ?

     Attached is a sample record that came in on the conduit feed for the
     20120119_1800 run. below is a dump of the info in it.

     --------------

     File=0 C:/tmp/ndfd-monthUnit.grib2
     Header=""

     Grib2IndicatorSection
      Discipline = (0) Meteorological products
      Length     = 53384

     Grib2IdentificationSection
      Center        = (8) US National Weather Service Telecommunications Gateway (NWSTG)
      SubCenter     = (-9999) null
      Master Table  = 1
      Local Table   = 0
      RefTimeSignif = 1 (Start of forecast)
      RefTime       = 2012-01-19T18:00:00.000Z
      RefTime Fields = 2012-1-19 18:0:0
      ProductionStatus      = 1 (Operational test products)
      TypeOfProcessedData   = 1 (Forecast products)

     Grib2ProductDefinitionSection
      Start interval     = 12
      End   interval     = 15

     (4.9) Product definition template 4.9 - probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
       1:                                                                                 PDS length == 71
       5:                                                                                    Section == 4
       6:                                                Number of coordinates values after Template == 0
       8:                                                         Product Definition Template Number == 9
      10:                                                                         Parameter category == 1
      11:                                                                           Parameter number == 8
      12:                                                                 Type of generating process == 2 (table 4.3: Forecast)
      13:                   Background generating process identifier (defined by originating centre) == 0 (table ProcessId: Table ProcessId code 0 not found)
      14:                     Forecast generating process identifier (defined by originating centre) == 0 (table ProcessId: Table ProcessId code 0 not found)
      15:                                                  Hours after reference time of data cutoff == 255
      17:                                                Minutes after reference time of data cutoff == 255
      18:                                                            Indicator of unit of time range == 3 (table 4.4: Month)
      19:                                                 Forecast time in units defined by octet 18 == 13
      23:                                                                Type of first fixed surface == 1 (table 4.5: Ground or water surface)
      24:                                                        Scale factor of first fixed surface == 0
      25:                                                        Scaled value of first fixed surface == 0
      29:                                                               Type of second fixed surface == 255 (table 4.5: Missing)
      30:                                                       Scale factor of second fixed surface == 129
      31:                                                       Scaled value of second fixed surface == -9999
      35:                                                                Forecast probability number == 255
      36:                                                     Total number of forecast probabilities == 2
      37:                                                                           Probability type == 0 (table 4.9: Probability of event below lower limit)
      38:                                                                Scale factor of lower limit == 0
      39:                                                                Scaled value of lower limit == 0
      43:                                                                Scale factor of upper limit == 0
      44:                                                                Scaled value of upper limit == 0
      48:                                                       Year of end of overall time interval == 2013
      50:                                                      Month of end of overall time interval == 5
      51:                                                        Day of end of overall time interval == 1
      52:                                                       Hour of end of overall time interval == 0
      53:                                                     Minute of end of overall time interval == 0
      54:                                                     Second of end of overall time interval == 0
      55: n - number of time range specifications describing the time intervals used to calculate the statistically-processed field == 1
      56:                             Total number of data values missing in the statistical process == 0
      60: Statistical process used to calculate the processed field from the field at each time increment during the time range == 0 (table 4.10: Average)
      61:        Type of time increment between successive fields used in the statistical processing == 255 (table 4.11: Missing)
      62:         Indicator of unit of time for time range over which statistical processing is done == 3 (table 4.4: Month)
      63: Length of the time range over which statistical processing is done, in units defined by the previous octet == 3
      67:             Indicator of unit of time for the increment between the successive fields used == 1 (table 4.4: Hour)
      68:           Time increment between successive fields, in units defined by the previous octet == 0
      72:                                      As octets 60 to 71, next innermost step of processing == -9999
      84: Additional time range specifications, included in accordance with the value of n. Contents as octets 60 to 71, repeated as necessary. == -9999

 - David.Ruth@noaa.gov response:

    This file contains a 3-month (seasonal) probability of below average precipitation produced by CPC.

    These 3-month grids are encoded with a time range indicator of 3 (months) and the number of months from the reference time
    to the end of the 3-month valid period.  NDFD currently contains 3-month probability grids that go out to May 1, 2013.

    Please see http://www.cpc.ncep.noaa.gov/products/predictions/long_range/seasonal.php?lead=13

 - Using months, i get the following time coordinate:

     calendar Month since 2012-01-19T18:00:00.000Z
     time4 =
       {1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}

      (0.000000, 1.000000) == (2012-01-19T18:00:00.000Z, 2012-02-19T18:00:00.000Z)
      (0.000000, 3.000000) == (2012-01-19T18:00:00.000Z, 2012-04-19T18:00:00.000Z)
      (1.000000, 4.000000) == (2012-02-19T18:00:00.000Z, 2012-05-19T18:00:00.000Z)
      (2.000000, 5.000000) == (2012-03-19T18:00:00.000Z, 2012-06-19T18:00:00.000Z)
      (3.000000, 6.000000) == (2012-04-19T18:00:00.000Z, 2012-07-19T18:00:00.000Z)
      (4.000000, 7.000000) == (2012-05-19T18:00:00.000Z, 2012-08-19T18:00:00.000Z)
      (5.000000, 8.000000) == (2012-06-19T18:00:00.000Z, 2012-09-19T18:00:00.000Z)
      (6.000000, 9.000000) == (2012-07-19T18:00:00.000Z, 2012-10-19T18:00:00.000Z)
      (7.000000, 10.000000) == (2012-08-19T18:00:00.000Z, 2012-11-19T18:00:00.000Z)
      (8.000000, 11.000000) == (2012-09-19T18:00:00.000Z, 2012-12-19T18:00:00.000Z)
      (9.000000, 12.000000) == (2012-10-19T18:00:00.000Z, 2013-01-19T18:00:00.000Z)
      (10.000000, 13.000000) == (2012-11-19T18:00:00.000Z, 2013-02-19T18:00:00.000Z)
      (11.000000, 14.000000) == (2012-12-19T18:00:00.000Z, 2013-03-19T18:00:00.000Z)
      (12.000000, 15.000000) == (2013-01-19T18:00:00.000Z, 2013-04-19T18:00:00.000Z)

 for these variables:
  Temperature_Surface_1_Month_Average_Prob_below_0
  Temperature_Surface_1_Month_Average_Prob_above_0
  Total_precipitation_Surface_1_Month_Average_Prob_below_0
  Total_precipitation_Surface_1_Month_Average_Prob_above_0

 - my note back to Davis:

     Hi David:

    Thanks much for the clarification, i didnt realize such long range forecasts were possible.

    1) Its possible we are misclassifying these as part of the NDFD dataset as they come to us on the CONDUIT datafeed. Are they part of NDFD?

    If so, is there a simple way (eg WMO header) to distinguish these fields from the other NDFD variables?

    2) I am interpreting the time range intervals, eg from the 2012-01-19T18:00 run as :

     (0.000000, 1.000000) == (2012-01-19T18:00:00.000Z, 2012-02-19T18:00:00.000Z)
     (0.000000, 3.000000) == (2012-01-19T18:00:00.000Z, 2012-04-19T18:00:00.000Z)
     (1.000000, 4.000000) == (2012-02-19T18:00:00.000Z, 2012-05-19T18:00:00.000Z)
     (2.000000, 5.000000) == (2012-03-19T18:00:00.000Z, 2012-06-19T18:00:00.000Z)
     (3.000000, 6.000000) == (2012-04-19T18:00:00.000Z, 2012-07-19T18:00:00.000Z)
     (4.000000, 7.000000) == (2012-05-19T18:00:00.000Z, 2012-08-19T18:00:00.000Z)
     (5.000000, 8.000000) == (2012-06-19T18:00:00.000Z, 2012-09-19T18:00:00.000Z)
     (6.000000, 9.000000) == (2012-07-19T18:00:00.000Z, 2012-10-19T18:00:00.000Z)
     (7.000000, 10.000000) == (2012-08-19T18:00:00.000Z, 2012-11-19T18:00:00.000Z)
     (8.000000, 11.000000) == (2012-09-19T18:00:00.000Z, 2012-12-19T18:00:00.000Z)
     (9.000000, 12.000000) == (2012-10-19T18:00:00.000Z, 2013-01-19T18:00:00.000Z)
     (10.000000, 13.000000) == (2012-11-19T18:00:00.000Z, 2013-02-19T18:00:00.000Z)
     (11.000000, 14.000000) == (2012-12-19T18:00:00.000Z, 2013-03-19T18:00:00.000Z)
     (12.000000, 15.000000) == (2013-01-19T18:00:00.000Z, 2013-04-19T18:00:00.000Z)

    does that seem correct to you?

    thanks,
    John