So looking at this one:
href.t06z.sprd.f36.grib2
RefTime = 2015-05-20T06:00:00Z
PDS byte
value
7: Year of end of
overall time interval == 2015
39: Month of end of
overall time interval == 5
40: Day of end of
overall time interval == 20
41: Hour of end of
overall time interval == 42
42: Minute of end of
overall time interval == 0
43: Second of end of
overall time interval == 0
its seems clear that they just added the forecast hour to the hour of the
run (i was wondering if they just set the field to the forecasst hour)
so it seems ok to change the code to do:
if (hour > 23) {
day += (hour/24);
hour = hour % 24;
}
so im adding that to 4.6.2. However, im skeptical this is the way things
should be encoded, and you might want to notify the producer in case they
want to fix it. Its from NCEP:
Grib2IdentificationSection
Center = (7) US National Weather Service, National Centres for
Environmental Prediction (NCEP)
SubCenter = (2) NCEP Ensemble Products
Master Table = 0
Local Table = 1
RefTimeSignif = 1 (Start of forecast)
RefTime = 2015-05-20T06:00:00Z
RefTime Fields = 2015-5-20 6:0:0
ProductionStatus = 0 (Operational products)
TypeOfProcessedData = 1 (Forecast products)
John
On Mon, May 18, 2015 at 5:40 PM, Jack Settelmaier - NOAA Federal <
jack.settelmaier@xxxxxxxx> wrote:
> It's ensemble output, and I think the ensemble contains the last X model
> runs, so maybe that is why > 24?
>
> I can check with Steve Earle at NCEP, if he's not on this list?
>
> Sent from a mobile device
>
> On May 18, 2015, at 6:35 PM, John Caron <caron@xxxxxxxx> wrote:
>
> Hi Steve:
>
> So this is what Im seeing in the file: href.t00z.prob.f36.grib2 :
>
>
> ...
> 48: Year of end of
> overall time interval == 2015
> 50: Month of end of
> overall time interval == 5
> 51: Day of end of
> overall time interval == 18
> 52: Hour of end of
> overall time interval == 36
> 53: Minute of end of
> overall time interval == 0
> 54: Second of end of
> overall time interval == 0
>
> Ive never seen Hour >= 24 before; not sure if this is a miscoding, or if
> its intended to increment the day. We see a lot of forecasts > 24, but
> never one that didnt encode the day / hour with hour < 24.
>
> what do you think?
>
> John
>
>
> On Mon, May 18, 2015 at 3:05 PM, Steve Ansari - NOAA Federal <
> steve.ansari@xxxxxxxx> wrote:
>
>> Hello John and Unidata crew,
>>
>> I ran into a GRIB reading error with some files from NCEP. Here is a
>> link for sample files (change the date if needed, since they only keep
>> 24-48 hours)
>>
>> http://para.nomads.ncep.noaa.gov/pub/data/nccf/com/hiresw/para/href.20150518/
>>
>> It is producing errors for forecast hours > 21. Below is an example
>> error I'm seeing:
>>
>> I'm using NetCDF-Java 4.6, released on May 15th.
>>
>> Thanks!
>> Steve
>>
>>
>> Caused by: org.joda.time.IllegalFieldValueException: Value 27 for
>> hourOfDay must be in the range [0,23]
>> at org.joda.time.field.FieldUtils.verifyValueBounds(FieldUtils.java:236)
>> at
>> org.joda.time.chrono.BasicChronology.getDateTimeMillis(BasicChronology.java:172)
>> at
>> org.joda.time.chrono.AssembledChronology.getDateTimeMillis(AssembledChronology.java:133)
>> at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:254)
>> at org.joda.time.DateTime.<init>(DateTime.java:435)
>> at ucar.nc2.time.CalendarDate.of(CalendarDate.java:54)
>> at ucar.nc2.grib.grib2.Grib2Pds.calcTime(Grib2Pds.java:1428)
>> at
>> ucar.nc2.grib.grib2.Grib2Pds$Grib2Pds12.getIntervalTimeEnd(Grib2Pds.java:673)
>> at
>> ucar.nc2.grib.grib2.table.Grib2Customizer.getForecastTimeInterval(Grib2Customizer.java:234)
>> at
>> ucar.nc2.grib.grib2.table.NcepLocalTables.getForecastTimeInterval(NcepLocalTables.java:217)
>> at
>> ucar.nc2.grib.grib2.table.Grib2Customizer.getForecastTimeIntervalOffset(Grib2Customizer.java:284)
>> at
>> ucar.nc2.grib.collection.Grib2CollectionBuilder.filterIntervals(Grib2CollectionBuilder.java:181)
>> at
>> ucar.nc2.grib.collection.Grib2CollectionBuilder.makeGroups(Grib2CollectionBuilder.java:123)
>> at
>> ucar.nc2.grib.collection.GribCollectionBuilder.createMultipleRuntimeCollections(GribCollectionBuilder.java:149)
>> at
>> ucar.nc2.grib.collection.GribCollectionBuilder.createIndex(GribCollectionBuilder.java:138)
>> at
>> ucar.nc2.grib.collection.GribCdmIndex.openGribCollectionFromDataFile(GribCdmIndex.java:740)
>> at
>> ucar.nc2.grib.collection.GribCdmIndex.openGribCollectionFromDataFile(GribCdmIndex.java:724)
>> at
>> ucar.nc2.grib.collection.GribCdmIndex.openGribCollectionFromRaf(GribCdmIndex.java:694)
>> at ucar.nc2.grib.collection.GribIosp.open(GribIosp.java:187)
>> at ucar.nc2.NetcdfFile.<init>(NetcdfFile.java:1527)
>> at ucar.nc2.NetcdfFile.open(NetcdfFile.java:824)
>> at ucar.nc2.NetcdfFile.open(NetcdfFile.java:428)
>> ... 17 more
>>
>>
>> --
>> *Steve Ansari*
>> *Physical Scientist*
>> *NOAA National Centers for Environmental Information (NCEI)*
>> *(828) 271-4611 <%28828%29%20271-4611>*
>>
>> The newly formed NCEI merges the National Oceanographic Data Center
>> (NODC), the National Climatic Data Center (NCDC), and the National
>> Geophysical Data Center (NGDC).
>>
>> _______________________________________________
>> netcdf-java mailing list
>> netcdf-java@xxxxxxxxxxxxxxxx
>> For list information or to unsubscribe, visit:
>> http://www.unidata.ucar.edu/mailing_lists/
>>
>
>