<div dir="ltr"><div><div><div><div><div>Ivan,<br><br></div>Back from a conference. 14 = 1/2 hour for grib1. However<br></div>there isn't a 1/2 hour time unit for grib2.<br><br> <a href="http://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_table4-4.shtml">http://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_table4-4.shtml</a><br><br></div>The code needs to be changed to use minutes as the grib2 time units.<br></div>Note: grib1 only used 1 byte or 2 bytes to store the forecast length.</div><div>Therefore they invented a large number of time units. Grib2 uses</div><div>4 bytes to store the number of time units.</div><div><br></div><div>You can try to convince NCO to fix cnvgrib. I know the person</div><div>responsible for cnvgrib and good luck. <br></div><div><br></div><div>My suggestion #1 doesn't work</div><div><br></div><div>$ wgrib2 wrfprs_d01.00_30.g2 -if ":30 min fcst:"
-set_ftime "30 min fcst" -fi -grib
wrfprs_d01.00_30.g2.con<br>
add_time: undefined time unit 14<br>
add_time: undefined time unit 14<br>
add_time: undefined time unit 14</div><div><br></div><div>-if ":30 min fcst:" will always fail because wgrib2 doesn't understand the time code 14.</div><div>The error message "add_time: undefined time unit 14" comes from the calculation of</div><div>the verification time.</div><div><br></div><div>Wesley<br></div><div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 17, 2017 at 3:34 AM, Ivan Toman <span dir="ltr"><<a href="mailto:ivtoman@inet.hr" target="_blank">ivtoman@inet.hr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div class="m_7180575574443492308moz-cite-prefix">Wesley,<br>
<br>
I think this comes from here:<br>
<br>
On grib1 output from UPP - this is for 10min record, all normal:<br>
<br>
$ wgrib WRFPRS_d01.00_10<br>
1:0:d=17111700:RWMR:kpds5=170:<wbr>kpds6=109:kpds7=1:TR=10:P1=0:<wbr>P2=10:TimeU=0:hybrid
lev 1:10min fcst:NAve=0<br>
2:44496:d=17111700:SNMR:kpds5=<wbr>171:kpds6=109:kpds7=1:TR=10:<wbr>P1=0:P2=10:TimeU=0:hybrid
lev 1:10min fcst:NAve=0<br>
3:88992:d=17111700:REFC:kpds5=<wbr>212:kpds6=200:kpds7=0:TR=10:<wbr>P1=0:P2=10:TimeU=0:atmos
col:10min fcst:NAve=0<br>
...<br>
<br>
however, for 30min record:<br>
<br>
$ wgrib WRFPRS_d01.00_30 <br>
1:0:d=17111700:RWMR:kpds5=170:<wbr>kpds6=109:kpds7=1:TR=10:P1=0:<wbr>P2=1:TimeU=14:hybrid
lev 1:30min fcst:NAve=0<br>
2:44496:d=17111700:SNMR:kpds5=<wbr>171:kpds6=109:kpds7=1:TR=10:<wbr>P1=0:P2=1:TimeU=14:hybrid
lev 1:30min fcst:NAve=0<br>
3:88992:d=17111700:REFC:kpds5=<wbr>212:kpds6=200:kpds7=0:TR=10:<wbr>P1=0:P2=1:TimeU=14:atmos
col:30min fcst:NAve=0<br>
...<br>
<br>
TimeU=14<br>
<br>
<br>
Where this comes from? <br>
<br>
As far as I understand it, UPP follows this time designation for
time units:<br>
<a class="m_7180575574443492308moz-txt-link-freetext" href="http://www.nco.ncep.noaa.gov/pmb/docs/on388/table4.html" target="_blank">http://www.nco.ncep.noaa.gov/<wbr>pmb/docs/on388/table4.html</a><br>
14 = "Half an hour"<br>
<br>
This is from UPP code that sets it:<br>
<br>
! J. HALLEY GOTWAY, MODIFY HOW THE TIME INFORMATION IS STORED
IN ID(17-20),<br>
! (FCST TIME UNIT, P1, P2, TIME RANGE INDICATOR).<br>
! CHECK IF THE NUMBER OF FORECAST MINUTES IS ZERO FOR HOURS OR
NON-ZERO FOR<br>
! OFF-HOUR FORECASTS. FOR OFF-HOUR FORECASTS, CHECK IF THE
TOTAL NUMBER<br>
! OF MINUTES IS DIVISIBLE BY 30, 15, OR NEITHER, AND USE THE
APPROPRIATE<br>
! FCST TIME UNIT VALUE. FOR ANY FIELD OTHER THAN AN
INSTANTANEOUS FIELD,<br>
! ASSUME ID(18-20), ARE PASSED IN CORRECTLY.<br>
<br>
IF(IFMIN .GE. 1)THEN<br>
! ID(17) = 0<br>
! COMPUTE THE TOTAL FORECAST MINUTES.<br>
TOTMIN=IFHR*60+IFMIN<br>
<br>
! CHECK FOR 1/2 HOURLY INCREMENTS.<br>
IF (MOD(TOTMIN, 30) == 0) THEN<br>
ID(17) = 14<br>
DIV = 30<br>
! CHECK FOR 1/4 HOURLY INCREMENTS.<br>
ELSEIF (MOD(TOTMIN, 15) == 0) THEN<br>
ID(17) = 13<br>
DIV = 15<br>
! OTHERWISE, USE MINUTES.<br>
ELSE<br>
ID(17) = 0<br>
DIV = 1<br>
ENDIF<br>
<br>
<br>
Does this look OK to you?<br>
<br>
Thx<br>
Ivan<br>
<br>
<br>
<br>
<br>
<br>
On 11/15/2017 02:39 PM, Wesley Ebisuzaki - NOAA Federal wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>
<div>Ivan,<br>
<br>
</div>
I am not aware of a time unit 14. It's not in NCEP's
documentation.<br>
<br>
</div>
Wesley<br>
<div><br>
<a href="http://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_table4-4.shtml" target="_blank">http://www.nco.ncep.noaa.gov/<wbr>pmb/docs/grib2/grib2_table4-4.<wbr>shtml</a><br>
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Nov 15, 2017 at 4:27
AM, Ivan Toman <span dir="ltr"><<a href="mailto:ivtoman@inet.hr" target="_blank">ivtoman@inet.hr</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<div class="m_7180575574443492308gmail-m_2394360537298039888moz-cite-prefix">Wesley,<br>
<br>
I finally found time to dig into this.<br>
<br>
I actually get "undefined time unit 14" from
wgrib2 when trying to handle 30 min records.
That's probably why g2ctl, alt_g2ctl also does
not do the job (throwing this message) and so
on.<br>
<br>
For example, your suggestion #2:<br>
<br>
$ wgrib2 wrfprs_d01.00_30.g2 -if ":30 min fcst:"
-set_ftime "30 min fcst" -fi -grib
wrfprs_d01.00_30.g2.con<br>
add_time: undefined time unit 14<br>
add_time: undefined time unit 14<br>
add_time: undefined time unit 14<br>
1:0:d=<a href="tel:%28201%29%20711-1500" value="+12017111500" target="_blank">2017111500</a>:RWMR:1
hybrid level:1 ? fcst:<br>
add_time: undefined time unit 14<br>
add_time: undefined time unit 14<br>
add_time: undefined time unit 14<br>
2:2310:d=<a href="tel:%28201%29%20711-1500" value="+12017111500" target="_blank">2017111500</a>:SNMR:1
hybrid level:1 ? fcst:<br>
add_time: undefined time unit 14<br>
...<br>
<br>
<br>
Or...<br>
<br>
$ alt_gmp -i wrfprs_d01.grib2.ctl <br>
wgrib2_flags=-npts -set_ext_name 1 -end_FT
-ext_name -lev<br>
wgrib2_inv=.invd01<br>
dtype: dtype grib2<br>
pdef: pdef 149 149 lccr -29.363000 45.203000 1
1 -21.633000 -21.633000 54.288000 12000.000000
12000.000000tdef: nt=7 start=00Z15nov2017
by=10mn<br>
zdef: nlevel=25<br>
resolve_dsets dset=wrfprs_d01.grib2 inctime=10mn<br>
resolve_dsets: no template<br>
scanning wrfprs_d01.grib2 (process=0)<br>
add_time: undefined time unit 14<br>
add_time: undefined time unit 14<br>
add_time: undefined time unit 14<br>
add_time: undefined time unit 14<br>
add_time: undefined time unit 14<br>
<br>
<br>
<br>
<a href="http://grib1to2.pl" target="_blank">grib1to2.pl</a> did not
work either, it failed:<br>
<br>
$ for i in WRFPRS_d01.0* ; do ./<a href="http://grb1to2.pl" target="_blank">grb1to2.pl</a> -o $i.g2
$i ; done<br>
(((rec 1:0:date <a href="tel:%28201%29%20711-1500" value="+12017111500" target="_blank">2017111500</a> RWMR
kpds5=170 kpds6=109 kpds7=1 levels=(0,1)
grid=255 hybrid lev 1 anl:<br>
RWMR=Rain water mixing ratio [kg/kg]<br>
timerange 0 P1 0 P2 0 TimeU 1 nx 149 ny 149
GDS grid 3 num_in_ave 0 missing 0<br>
center 7 subcenter 0 process 125 Table 2 scan:
WE:SN winds(grid) <br>
Lambert Conf: Lat1 -29.363000 Lon1 45.203000
Lov 54.288000<br>
Latin1 -21.633000 Latin2 -21.633000 LatSP
-90.000000 LonSP 0.000000<br>
South Pole (149 x 149) Dx 12.000000 Dy
12.000000 scan 64 mode 136<br>
min/max data 0 0 num bits 0 BDS_Ref 0
DecScale 0 BinScale 0<br>
<br>
)))<br>
>> grib2_metadata --- WRFPRS_d01.00_00
wgrib=./wgrib wgrib2=./wgrib2<br>
Use of uninitialized value $1 in negation (-) at
./<a href="http://grib1to2_metadata.pl" target="_blank">grib1to2_metadata.pl</a>
line 74, <INV> line 1.<br>
no scan mode at ./<a href="http://grib1to2_metadata.pl" target="_blank">grib1to2_metadata.pl</a>
line 83, <INV> line 1.<br>
missing GRIB record(s)<br>
((()))<br>
Problem, winds not defined! old ./wgrib?<br>
grib2 message ignored (use wgrib2)<br>
missing GRIB record(s)<br>
((()))<br>
Problem, winds not defined! old ./wgrib?<br>
(((rec 1:0:date <a href="tel:%28201%29%20711-1500" value="+12017111500" target="_blank">2017111500</a> RWMR
kpds5=170 kpds6=109 kpds7=1 levels=(0,1)
grid=255 hybrid lev 1 10min fcst:<br>
RWMR=Rain water mixing ratio [kg/kg]<br>
timerange 10 P1 0 P2 10 TimeU 0 nx 149 ny 149
GDS grid 3 num_in_ave 0 missing 0<br>
center 7 subcenter 0 process 125 Table 2 scan:
WE:SN winds(grid) <br>
Lambert Conf: Lat1 -29.363000 Lon1 45.203000
Lov 54.288000<br>
Latin1 -21.633000 Latin2 -21.633000 LatSP
-90.000000 LonSP 0.000000<br>
South Pole (149 x 149) Dx 12.000000 Dy
12.000000 scan 64 mode 136<br>
min/max data 0 5.31824e-06 num bits 16
BDS_Ref 0 DecScale 11 BinScale 4<br>
<br>
<br>
<br>
I have no idea how to proceed further.<br>
Tks,<br>
Ivan<br>
<br>
<br>
<br>
<br>
On 11/07/2017 08:12 PM, Wesley Ebisuzaki - NOAA
Federal wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>
<div>Ivan,<br>
<br>
</div>
</div>
<div>"UPP follows NCEP code table for timing
grib records - for 15 and 30<br>
minute records use codes 13 and 14
respectively instead of simple<br>
minutes. This seems to confuse GrADS (or
g2ctl/gribmap, I'm not sure)."<br>
<br>
"Yes it is fixed. I'm currently need to
output 10 min intervals. So, for <br>
full hour, 10m, 20m, 40m and 50m I get OK
data. But for 30m I do not."<br>
<br>
</div>
<div>These quotes suggests that it is a
problem with gribmap expecting<br>
</div>
<div>30 minute_time_units and not being able
to handle 1 30_minute_time_units.<br>
<br>
</div>
<div>Suggestion #1<br>
<br>
</div>
<div> use alt_g2ctl/alt_gmp<br>
<br>
</div>
<div> Both are based on wgrib2 which uses
english rather than code table numbers.<br>
</div>
<div><br>
</div>
<div>Suggestion #2<br>
<br>
</div>
<div> convert forecast time from 1 (30
minutes) to 30 (minutes)<br>
<br>
</div>
<div> wgrib2 IN.grb -if ":30 min fcst:"
-set_ftime "30 min fcst" -fi -grib OUT.grb<br>
<br>
</div>
<div>Wesley<br>
<br>
</div>
<div><br>
<br>
</div>
<div><br>
</div>
<div><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Nov 7,
2017 at 1:21 PM, Jeff Duda <span dir="ltr"><<a href="mailto:jeffduda319@gmail.com" target="_blank">jeffduda319@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>
<div>
<div>What result do you get when
you do<br>
<br>
</div>
wgrib2 -T (grib file)<br>
<br>
?<br>
<br>
</div>
Look after the "D=", as the
represents the time in the GRIB2
file.<br>
<br>
</div>
Jeff<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Nov
7, 2017 at 12:10 PM, Ivan Toman <span dir="ltr"><<a href="mailto:ivtoman@inet.hr" target="_blank">ivtoman@inet.hr</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<div class="m_7180575574443492308gmail-m_2394360537298039888gmail-m_1535943391223832856m_5316030439332110718moz-cite-prefix">Hello,<br>
<br>
Yes it is fixed. I'm
currently need to output 10
min intervals. So, for full
hour, 10m, 20m, 40m and 50m
I get OK data. But for 30m I
do not.<br>
<br>
Thank you!<span class="m_7180575574443492308gmail-m_2394360537298039888gmail-m_1535943391223832856HOEnZb"><font color="#888888"><br>
Ivan</font></span>
<div>
<div class="m_7180575574443492308gmail-m_2394360537298039888gmail-m_1535943391223832856h5"><br>
<br>
<br>
<br>
On 11/07/2017 05:50 PM,
Jeff Duda wrote:<br>
</div>
</div>
</div>
<div>
<div class="m_7180575574443492308gmail-m_2394360537298039888gmail-m_1535943391223832856h5">
<blockquote type="cite">
<div dir="ltr">
<div>What is your time
interval? If it's
not fixed, that's
one problem. If it
is fixed, then I
don't see why
regular templating
wouldn't work unless
the time being
written to the grib2
file is not right.
But there are ways
to fix that.<br>
<br>
</div>
Jeff Duda<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On
Tue, Nov 7, 2017 at
10:12 AM, Ivan Toman
<span dir="ltr"><<a href="mailto:ivtoman@inet.hr" target="_blank">ivtoman@inet.hr</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<br>
I'm having
difficulties
reading sub-hourly
time records from
WRF grib<br>
files in GrADS.<br>
<br>
UPP follows NCEP
code table for
timing grib
records - for 15
and 30<br>
minute records use
codes 13 and 14
respectively
instead of simple<br>
minutes. This
seems to confuse
GrADS (or
g2ctl/gribmap, I'm
not sure).<br>
<br>
What I get as
result is that I
can read any
sub-hourly record
as long as<br>
it is not 15 or 30
minute record. For
those, I get
undefined grid<br>
instead of data.<br>
<br>
I use this
workflow for
postprocessing:
wfrout
>(UPP)>
grib1
>(cnvgrib)><br>
grib2
>(g2ctl,gribmap)>
GrADS<br>
<br>
Does anybody know
what is going on
there?<br>
<br>
Thank you in
advance<br>
<br>
Ivan Toman<br>
<br>
______________________________<wbr>_________________<br>
gradsusr mailing
list<br>
<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<a href="http://gradsusr.org/mailman/listinfo/gradsusr" rel="noreferrer" target="_blank">http://gradsusr.org/mailman/li<wbr>stinfo/gradsusr</a><br>
</blockquote>
</div>
<br>
<br clear="all">
<br>
-- <br>
<div class="m_7180575574443492308gmail-m_2394360537298039888gmail-m_1535943391223832856m_5316030439332110718gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>Jeff Duda<br>
Post-doctoral
research
fellow<br>
University of
Oklahoma
School of
Meteorology<br>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset class="m_7180575574443492308gmail-m_2394360537298039888gmail-m_1535943391223832856m_5316030439332110718mimeAttachmentHeader"></fieldset>
<br>
<pre>______________________________<wbr>_________________
gradsusr mailing list
<a class="m_7180575574443492308gmail-m_2394360537298039888gmail-m_1535943391223832856m_5316030439332110718moz-txt-link-abbreviated" href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>
<a class="m_7180575574443492308gmail-m_2394360537298039888gmail-m_1535943391223832856m_5316030439332110718moz-txt-link-freetext" href="http://gradsusr.org/mailman/listinfo/gradsusr" target="_blank">http://gradsusr.org/mailman/li<wbr>stinfo/gradsusr</a>
</pre>
</blockquote>
<p><br>
</p>
</div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<a href="http://gradsusr.org/mailman/listinfo/gradsusr" rel="noreferrer" target="_blank">http://gradsusr.org/mailman/li<wbr>stinfo/gradsusr</a><br>
<br>
</blockquote>
</div>
<span class="m_7180575574443492308gmail-m_2394360537298039888gmail-HOEnZb"><font color="#888888"><br>
<br clear="all">
<br>
-- <br>
<div class="m_7180575574443492308gmail-m_2394360537298039888gmail-m_1535943391223832856gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>Jeff Duda<br>
Post-doctoral research
fellow<br>
University of Oklahoma
School of Meteorology<br>
</div>
</div>
</div>
</div>
</div>
</font></span></div>
<br>
______________________________<wbr>_________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<a href="http://gradsusr.org/mailman/listinfo/gradsusr" rel="noreferrer" target="_blank">http://gradsusr.org/mailman/li<wbr>stinfo/gradsusr</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
<fieldset class="m_7180575574443492308gmail-m_2394360537298039888mimeAttachmentHeader"></fieldset>
<br>
<pre>______________________________<wbr>_________________
gradsusr mailing list
<a class="m_7180575574443492308gmail-m_2394360537298039888moz-txt-link-abbreviated" href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>
<a class="m_7180575574443492308gmail-m_2394360537298039888moz-txt-link-freetext" href="http://gradsusr.org/mailman/listinfo/gradsusr" target="_blank">http://gradsusr.org/mailman/li<wbr>stinfo/gradsusr</a>
</pre>
</blockquote>
<p><br>
</p>
</div>
<br>
______________________________<wbr>_________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<a href="http://gradsusr.org/mailman/listinfo/gradsusr" rel="noreferrer" target="_blank">http://gradsusr.org/mailman/li<wbr>stinfo/gradsusr</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset class="m_7180575574443492308mimeAttachmentHeader"></fieldset>
<br>
<pre>______________________________<wbr>_________________
gradsusr mailing list
<a class="m_7180575574443492308moz-txt-link-abbreviated" href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>
<a class="m_7180575574443492308moz-txt-link-freetext" href="http://gradsusr.org/mailman/listinfo/gradsusr" target="_blank">http://gradsusr.org/mailman/<wbr>listinfo/gradsusr</a>
</pre>
</blockquote>
<p><br>
</p>
</div>
<br>______________________________<wbr>_________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org">gradsusr@gradsusr.org</a><br>
<a href="http://gradsusr.org/mailman/listinfo/gradsusr" rel="noreferrer" target="_blank">http://gradsusr.org/mailman/<wbr>listinfo/gradsusr</a><br>
<br></blockquote></div><br></div>