<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Sorry for being late the the party. If I have correctly interpreted the messages in this thread so far, Wesley has established that cnvgrib is not working properly for the conversion from grib1 to grib2 because it can’t deal with a 30-minute time unit and messes
 up the time metadata in the grib2 files. So forget grib2; you must use your data in grib1 format.&nbsp;
<div class=""><br class="">
</div>
<div class="">I can get GrADS to read this data using the descriptor file copied below.</div>
<div class=""><br class="">
</div>
<div class="">
<div class=""><font face="Courier" size="2" class="">dset ^%ch<br class="">
options template<br class="">
chsub 3 3 WRFPRS_d01.00_20<br class="">
chsub 4 4 WRFPRS_d01.00_30<br class="">
dtype grib&nbsp;</font></div>
<div class=""><font face="Courier" size="2" class="">index ^WRFPRS_d01.idx<br class="">
undef 9.999E&#43;20<br class="">
title WRF sample<br class="">
pdef 149 149 lccr -29.363000 45.203000 1 1 -21.633000 -21.633000 54.288000 12000 12000<br class="">
xdef 149 linear 45.203000 0.12517162785946<br class="">
ydef 149 linear -29.363000 0.109090909090909<br class="">
zdef 25 levels 1000 975 950 925 900 875 850 825 800 775 750 700 650 600 550 500 450 400 350 300 250 200 150 100 50<br class="">
tdef 4 linear 00Z17nov2017 10mn<br class="">
vars 82<br class="">
*SNOHF10m &nbsp;0 229,105,10 ** 10 m above ground Snow phase-change heat flux [W/m^2]<br class="">
*MAXREF1000m &nbsp;0 235,105,1000 ** 1000 m above ground Hourly max of sim. reflect at 1km AGL [dbZ]<br class="">
*MXUPHL2000_5000m &nbsp; 0 236,106,12820 ** 2000-5000 m above ground Hourly max updraft helicity 2-5km AGL [m^2/s^2]<br class="">
*MAXUVV400_1000mb &nbsp;0 237,101,10340 ** 400-1000 mb Hourly max upward vert vel in lowest 400mb [m/s]<br class="">
*MAXDVV400_1000mb &nbsp;0 238,101,10340 ** 400-1000 mb Hourly max downward vert fel in lowest 400mb [m/s]<br class="">
no4LFTX180_0mb &nbsp;0 132,116,46080 ** 180-0 mb above gnd Best (4-layer) lifted index [K]<br class="">
ACPCPsfc &nbsp;0 63,1,0 &nbsp;** surface Convective precipitation [kg/m^2]<br class="">
APCPsfc &nbsp;0 61,1,0 &nbsp;** surface Total precipitation [kg/m^2]<br class="">
CAPEsfc &nbsp;0 157,1,0 &nbsp;** surface Convective Avail. Pot. Energy [J/kg]<br class="">
CAPE90_0mb &nbsp;0 157,116,23040 ** 90-0 mb above gnd Convective Avail. Pot. Energy [J/kg]<br class="">
CAPE180_0mb &nbsp;0 157,116,46080 ** 180-0 mb above gnd Convective Avail. Pot. Energy [J/kg]<br class="">
CAPE255_0mb &nbsp;0 157,116,65280 ** 255-0 mb above gnd Convective Avail. Pot. Energy [J/kg]<br class="">
CDCONclm &nbsp;0 72,200,0 ** atmos column Convective cloud cover [%]<br class="">
CFRZRsfc &nbsp;0 141,1,0 &nbsp;** surface Categorical freezing rain [yes=1;no=0]<br class="">
CICEPsfc &nbsp;0 142,1,0 &nbsp;** surface Categorical ice pellets [yes=1;no=0]<br class="">
CINsfc &nbsp;0 156,1,0 &nbsp;** surface Convective inhibition [J/kg]<br class="">
CIN90_0mb &nbsp;0 156,116,23040 ** 90-0 mb above gnd Convective inhibition [J/kg]<br class="">
CIN180_0mb &nbsp;0 156,116,46080 ** 180-0 mb above gnd Convective inhibition [J/kg]<br class="">
CIN255_0mb &nbsp;0 156,116,65280 ** 255-0 mb above gnd Convective inhibition [J/kg]<br class="">
CPRATsfc &nbsp;0 214,1,0 &nbsp;** surface Convective precip. rate [kg/m^2/s]<br class="">
CRAINsfc &nbsp;0 140,1,0 &nbsp;** surface Categorical rain [yes=1;no=0]<br class="">
CSNOWsfc &nbsp;0 143,1,0 &nbsp;** surface Categorical snow [yes=1;no=0]<br class="">
DLWRFsfc &nbsp;0 205,1,0 &nbsp;** surface Downward long wave flux [W/m^2]<br class="">
DPTprs 25 17,100,0 ** (profile) Dew point temp. [K]<br class="">
DPT2m &nbsp;0 17,105,2 ** 2 m above ground Dew point temp. [K]<br class="">
DSWRFsfc &nbsp;0 204,1,0 &nbsp;** surface Downward short wave flux [W/m^2]<br class="">
ELONsfc &nbsp;0 177,1,0 &nbsp;** surface East longitude (0-360) [deg]<br class="">
GFLUXsfc &nbsp;0 155,1,0 &nbsp;** surface Ground heat flux [W/m^2]<br class="">
GUSTsfc &nbsp;0 180,1,0 &nbsp;** surface Surface wind gust [m/s]<br class="">
HCDChcl &nbsp;0 75,234,0 ** high cloud level High level cloud cover [%]<br class="">
HGTsfc &nbsp;0 7,1,0 &nbsp;** surface Geopotential height [gpm]<br class="">
HGTprs 25 7,100,0 ** (profile) Geopotential height [gpm]<br class="">
HGT0deg &nbsp;0 7,4,0 ** 0C isotherm level Geopotential height [gpm]<br class="">
HGTadcl &nbsp;0 7,5,0 ** adiabatic lifting condensation level Geopotential height [gpm]<br class="">
HINDEXsfc &nbsp;0 250,1,0 &nbsp;** surface Haines index []<br class="">
HLCY0_3000m &nbsp; 0 190,106,7680 ** 0-3000 m above ground Storm relative helicity [m^2/s^2]<br class="">
HPBLsfc &nbsp;0 221,1,0 &nbsp;** surface Planetary boundary layer height [m]<br class="">
LANDsfc &nbsp;0 81,1,0 &nbsp;** surface Land cover (land=1;sea=0) [fraction]<br class="">
LCDClcl &nbsp;0 73,214,0 ** low cloud level Low level cloud cover [%]<br class="">
LFTX500_1000mb &nbsp;0 131,101,12900 ** 500-1000 mb Surface lifted index [K]<br class="">
LTNGsfc &nbsp;0 187,1,0 &nbsp;** surface Lightning [non-dim]<br class="">
MCDCmcl &nbsp;0 74,224,0 ** mid-cloud level Mid level cloud cover [%]<br class="">
MSLETmsl &nbsp;0 130,102,0 ** mean-sea level Mean sea level pressure (ETA model) [Pa]<br class="">
MSLMAmsl &nbsp;0 129,102,0 ** mean-sea level Mean sea level pressure (MAPS) [Pa]<br class="">
NCPCPsfc &nbsp;0 62,1,0 &nbsp;** surface Large scale precipitation [kg/m^2]<br class="">
NLATsfc &nbsp;0 176,1,0 &nbsp;** surface Latitude (-90 to &#43;90) [deg]<br class="">
PLI30_0mb &nbsp;0 24,116,7680 ** 30-0 mb above gnd Parcel lifted index (to 500 hPa) [K]<br class="">
PRATEsfc &nbsp;0 59,1,0 &nbsp;** surface Precipitation rate [kg/m^2/s]<br class="">
PWAT30_0mb &nbsp;0 54,116,7680 ** 30-0 mb above gnd Precipitable water [kg/m^2]<br class="">
PWATclm &nbsp;0 54,200,0 ** atmos column Precipitable water [kg/m^2]<br class="">
REFCclm &nbsp;0 212,200,0 ** atmos column Maximum/Composite radar reflectivity [dbZ]<br class="">
RHprs 25 52,100,0 ** (profile) Relative humidity [%]<br class="">
RH2m &nbsp;0 52,105,2 ** 2 m above ground Relative humidity [%]<br class="">
RWMRhlev1 &nbsp;0 170,109,1 ** hybrid level 1 Rain water mixing ratio [kg/kg]<br class="">
SNMRhlev1 &nbsp;0 171,109,1 ** hybrid level 1 Snow mixing ratio [kg/kg]<br class="">
SNODsfc &nbsp;0 66,1,0 &nbsp;** surface Snow depth [m]<br class="">
SNOLsfc &nbsp;0 79,1,0 &nbsp;** surface Large scale snow [kg/m^2]<br class="">
SNOMsfc &nbsp;0 99,1,0 &nbsp;** surface Snow melt [kg/m^2]<br class="">
SNOWCsfc &nbsp;0 238,1,0 &nbsp;** surface Snow cover [%]<br class="">
SSRUNsfc &nbsp;0 235,1,0 &nbsp;** surface Storm surface runoff [kg/m^2]<br class="">
SUNSDsfc &nbsp;0 191,1,0 &nbsp;** surface Sunshine duration [s]<br class="">
TCDCclm &nbsp;0 71,200,0 ** atmos column Total cloud cover [%]<br class="">
TMPsfc &nbsp;0 11,1,0 &nbsp;** surface Temp. [K]<br class="">
TMPprs 25 11,100,0 ** (profile) Temp. [K]<br class="">
TMP100m &nbsp;0 11,105,100 ** 100 m above ground Temp. [K]<br class="">
TMP2m &nbsp;0 11,105,2 ** 2 m above ground Temp. [K]<br class="">
UGRDprs 25 33,100,0 ** (profile) u wind [m/s]<br class="">
UGRD305m &nbsp;0 33,105,305 ** 305 m above ground u wind [m/s]<br class="">
UGRD100m &nbsp;0 33,105,100 ** 100 m above ground u wind [m/s]<br class="">
UGRD80m &nbsp;0 33,105,80 ** 80 m above ground u wind [m/s]<br class="">
UGRD50m &nbsp;0 33,105,50 ** 50 m above ground u wind [m/s]<br class="">
UGRD30m &nbsp;0 33,105,30 ** 30 m above ground u wind [m/s]<br class="">
UGRD10m &nbsp;0 33,105,10 ** 10 m above ground u wind [m/s]<br class="">
ULWRFsfc &nbsp;0 212,1,0 &nbsp;** surface Upward long wave flux [W/m^2]<br class="">
USWRFsfc &nbsp;0 211,1,0 &nbsp;** surface Upward short wave flux [W/m^2]<br class="">
VGRDprs 25 34,100,0 ** (profile) v wind [m/s]<br class="">
VGRD305m &nbsp;0 34,105,305 ** 305 m above ground v wind [m/s]<br class="">
VGRD100m &nbsp;0 34,105,100 ** 100 m above ground v wind [m/s]<br class="">
VGRD80m &nbsp;0 34,105,80 ** 80 m above ground v wind [m/s]<br class="">
VGRD50m &nbsp;0 34,105,50 ** 50 m above ground v wind [m/s]<br class="">
VGRD30m &nbsp;0 34,105,30 ** 30 m above ground v wind [m/s]<br class="">
VGRD10m &nbsp;0 34,105,10 ** 10 m above ground v wind [m/s]<br class="">
VISsfc &nbsp;0 20,1,0 &nbsp;** surface Visibility [m]<br class="">
VISclt &nbsp;0 20,3,0 ** cloud top Visibility [m]<br class="">
VVELprs 25 39,100,0 ** (profile) Pressure vertical velocity [Pa/s]<br class="">
WEASDsfc &nbsp;0 65,1,0 &nbsp;** surface Accum. snow [kg/m^2]<br class="">
WTMPsfc &nbsp;0 80,1,0 &nbsp;** surface Water temp. [K]<br class="">
ENDVARS<br class="">
</font></div>
</div>
<div class=""><br class="">
</div>
<div class="">&nbsp;There were a few complexities:</div>
<div class=""><br class="">
</div>
<div class="">1. The first five variables listed (commented out in my descriptor) are missing the forecast interval metadata and so appear to be valid at the base time (00z17nov) in both the 20- and 30-minute data files. If these variables are important to
 you, you will have to jump through some extra hoops. For the moment, I will assume we can ignore them.</div>
<div class=""><br class="">
</div>
<div class="">2. Your grib1 files have two different syntaxes for expressing the forecast interval -- for the 20-minute data file the unit is minutes and the interval value is 20; for the 30-minute data file the unit is 30 minutes and the interval value is
 1. This is unusual (and confusing), but GrADS (and gribmap in particular) can deal with it. My descriptor specifies the base time in the TDEF entry as the same base time in the data files, so there will be no data for t=1 and t=2, which have forecast interval
 values of 0 and 10 minutes respectively. The 20-minute file is valid at t=3, and the 30-minute file is valid at t=4. You could also have used</div>
<div class="">&nbsp;&nbsp;</div>
<span style="font-family: Courier; font-size: small;" class="">chsub 1 1 WRFPRS_d01.00_20</span><br style="font-family: Courier;" class="">
<span style="font-family: Courier; font-size: small;" class="">chsub 2 2 WRFPRS_d01.00_30</span><br style="font-family: Courier;" class="">
<div class=""><span style="font-family: Courier; font-size: small;" class="">tdef 2 linear 00:20Z17nov2017 10mn</span><br style="font-family: Courier;" class="">
</div>
<div class=""><br class="">
</div>
<div class="">But I find it is more intuitive to have the t=1 value be the start of a forecast. Either way will work.&nbsp;</div>
<div class=""><br class="">
</div>
<div class="">—Jennifer</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">
<div class=""><br class="">
<blockquote type="cite" class="">On Nov 21, 2017, at 3:47 PM, Wesley Ebisuzaki - NOAA Federal &lt;<a href="mailto:wesley.ebisuzaki@noaa.gov" class="">wesley.ebisuzaki@noaa.gov</a>&gt; wrote:<br class="">
<br class="">
Ivan,<br class="">
<br class="">
New plan: don't fix g2ctl and alt_g2ctl.<br class="">
<br class="">
Turns out that the problem was in your grib1 files. &nbsp;Your grib1&nbsp;<br class="">
20 minute forecast file had items like &quot;20min fcst&quot; and &quot;valid 0-0min&quot;.<br class="">
The last one should have been &quot;valid 10-20min&quot; or &quot;valid 0-20min&quot;.<br class="">
This error makes templating impossible.<br class="">
<br class="">
Wesley<br class="">
<br class="">
On Tue, Nov 21, 2017 at 2:42 PM, Wesley Ebisuzaki - NOAA Federal&nbsp;&lt;<a href="mailto:wesley.ebisuzaki@noaa.gov" class="">wesley.ebisuzaki@noaa.gov</a>&gt;&nbsp;wrote:<br class="">
Ivan,<br class="">
<br class="">
The error message, &quot;add_time: undefined time unit 14&quot;, comes from wgrib2.<br class="">
So you have to be processing the grib2 files.<br class="">
<br class="">
I don't work with files that are sub-hourly. &nbsp;So the support for<br class="">
minutes is not robust. &nbsp;There is no support for minutes by<br class="">
the program&nbsp;grib2ctl.pl. &nbsp;G2ctl has some support for minutes<br class="">
but it appears to be broken for your files. &nbsp;<br class="">
<br class="">
Plan: fix g2ctl and alt_g2ctl. I stopped working<br class="">
on grib1 utilities about 10 years ago.<br class="">
<br class="">
Wesley<br class="">
<br class="">
<br class="">
On Tue, Nov 21, 2017 at 1:20 PM, Ivan Toman&nbsp;&lt;ivtoman@inet.hr&gt;&nbsp;wrote:<br class="">
Wesley,<br class="">
<br class="">
Thank you very much for your efforts to help. However I'm still&nbsp;not sure we understand each other well? It is not important&nbsp;to me&nbsp;to use grib2 format. I just want to be<br class="">
<br class="">
able to get data from model&nbsp;using GrADS, regardless of format or tools used. But I can't&nbsp;postprocess grib1 also, if I use&nbsp;grib2ctl.pl&nbsp;on grib1 format, I&nbsp;again get same error like when I use g2ctl on grib2, as I pasted&nbsp;below.<br class="">
<br class="">
So basically for me neither grib2 nor grib1 work.<br class="">
<br class="">
Ivan<br class="">
<br class="">
<br class="">
<br class="">
On 11/21/2017 04:48 PM, Wesley Ebisuzaki - NOAA Federal wrote:<br class="">
<blockquote type="cite" class="">Ivan,<br class="">
<br class="">
I just modified&nbsp;grb1to2.pl&nbsp;to add support for&nbsp;minutes time units. &nbsp;Both<br class="">
g2ctl and alt_g2ctl need some changes to add support for&nbsp;templates<br class="">
that use minutes and forecast minutes. &nbsp;I'll get to it&nbsp;soon.<br class="">
<br class="">
The problem is that you are using cnvgrib to convert from&nbsp;grib1<br class="">
to grib2. &nbsp;Cnvgrib does not handle grib1 files that use a&nbsp;30-minute<br class="">
time units (value=14) and produces invalid grib2 files.<br class="">
<br class="">
I talked with the person who use to support cnvgrib and he&nbsp;stated that&nbsp;<br class="">
another person complained about a similar problem and that&nbsp;cnvgrib&nbsp;<br class="">
is no longer supported. &nbsp;So you are not going to get the fix&nbsp;from<br class="">
the official source of the program. &nbsp;The fix is straight&nbsp;forward;<br class="">
however, you should reconsider how you do your processing.<br class="">
<br class="">
Wesley<br class="">
<br class="">
On Mon, Nov 20, 2017 at 6:47 PM, Ivan&nbsp;Toman&nbsp;&lt;ivtoman@inet.hr&gt;&nbsp;wrote:<br class="">
Thank&nbsp;you Wesley,<br class="">
<br class="">
but it seems that same problem happens with grib1&nbsp;format, directly from UPP postprocessor:<br class="">
<br class="">
grib2ctl.pl
<div class="">&nbsp;-verf WRFPRS_d01.00_30 &gt;30.ctl</div>
<div class="">add_time: undefined time unit 14</div>
<div class="">PDS_date: problem</div>
<div class="">add_time: undefined time unit 14</div>
<div class="">PDS_date: problem</div>
<br class="">
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">wgrib WRFPRS_d01.00_20</div>
<div class="">1:0:d=17111700:RWMR:kpds5=170:</div>
kpds6=109:kpds7=1:TR=10:P1=0:P
<div class="">2=20:TimeU=0:hybrid lev 1:20min fcst:NAve=0</div>
<div class="">2:44496:d=17111700:SNMR:kpds5=</div>
171:kpds6=109:kpds7=1:TR=10:P1
<div class="">=0:P2=20:TimeU=0:hybrid lev 1:20min fcst:NAve=0</div>
<div class="">3:88992:d=17111700:REFC:kpds5=</div>
212:kpds6=200:kpds7=0:TR=10:P1
<div class="">=0:P2=20:TimeU=0:atmos col:20min fcst:NAve=0</div>
<div class=""><br class="">
</div>
<div class="">But:</div>
<div class=""><br class="">
</div>
<div class="">wgrib WRFPRS_d01.00_30</div>
<div class="">1:0:d=17111700:RWMR:kpds5=170:</div>
kpds6=109:kpds7=1:TR=10:P1=0:P
<div class="">2=1:TimeU=14:hybrid lev 1:30min fcst:NAve=0</div>
<div class="">2:44496:d=17111700:SNMR:kpds5=</div>
171:kpds6=109:kpds7=1:TR=10:P1
<div class="">=0:P2=1:TimeU=14:hybrid lev 1:30min fcst:NAve=0</div>
<div class="">3:88992:d=17111700:REFC:kpds5=</div>
212:kpds6=200:kpds7=0:TR=10:P1
<div class="">=0:P2=1:TimeU=14:atmos col:30min fcst:NAve=0</div>
<div class=""><br class="">
</div>
<br class="Apple-interchange-newline">
I believe, pretty much the same response on time units&nbsp;on grib1 format.<br class="">
<br class="">
Is this expected behaviour or grib files look wrong? I&nbsp;uploaded them here if you want to take a look:<br class="">
http://gamma.meteoadriatic.net/tmp/jennifer/<br class="">
<br class="">
Thx<br class="">
Ivan<br class="">
<br class="">
<br class="">
On 11/20/2017 01:52 AM, Wesley Ebisuzaki - NOAA&nbsp;Federal wrote:<br class="">
<blockquote type="cite" class="">Ivan,<br class="">
<br class="">
Back from a conference. &nbsp;14 = 1/2 hour for&nbsp;grib1. However<br class="">
there isn't a 1/2 hour time unit for grib2.<br class="">
<br class="">
&nbsp; &nbsp;http://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_table4-4.shtml<br class="">
<br class="">
The code needs to be changed to use minutes as&nbsp;the grib2 time units.<br class="">
Note: grib1 only used 1 byte &nbsp;or 2 bytes to store&nbsp;the forecast length.<br class="">
Therefore they invented a large number of time&nbsp;units. &nbsp;Grib2 uses<br class="">
4 bytes to store the number of time units.<br class="">
<br class="">
You can try to convince NCO to fix cnvgrib. &nbsp;I&nbsp;know the person<br class="">
responsible for cnvgrib and good luck. &nbsp;<br class="">
<br class="">
My suggestion #1 doesn't work<br class="">
<br class="">
$ wgrib2 wrfprs_d01.00_30.g2 -if &quot;:30 min&nbsp;fcst:&quot; -set_ftime &quot;30 min fcst&quot; -fi -grib&nbsp;wrfprs_d01.00_30.g2.con<br class="">
add_time: undefined time unit 14<br class="">
add_time: undefined time unit 14<br class="">
add_time: undefined time unit 14<br class="">
<br class="">
-if &quot;:30 min fcst:&quot; will always fail because&nbsp;wgrib2 doesn't understand the time code 14.<br class="">
The error message &quot;add_time: undefined time&nbsp;unit 14&quot; comes from the calculation of<br class="">
the verification time.<br class="">
<br class="">
Wesley<br class="">
<br class="">
<br class="">
On Fri, Nov 17, 2017 at&nbsp;3:34 AM, Ivan Toman&nbsp;&lt;ivtoman@inet.hr&gt;&nbsp;wrote:<br class="">
Wesley,<br class="">
<br class="">
I think this comes from here:<br class="">
<br class="">
On grib1 output from UPP - this is for 10min&nbsp;record, all normal:<br class="">
<br class="">
$ wgrib WRFPRS_d01.00_10<br class="">
1:0:d=17111700:RWMR:kpds5=170:kpds6=109:kpds7=1:TR=10:P1=0:P2=10:TimeU=0:hybrid&nbsp;lev 1:10min&nbsp;fcst:NAve=0<br class="">
2:44496:d=17111700:SNMR:kpds5=171:kpds6=109:kpds7=1:TR=10:P1=0:P2=10:TimeU=0:hybrid&nbsp;lev 1:10min&nbsp;fcst:NAve=0<br class="">
3:88992:d=17111700:REFC:kpds5=212:kpds6=200:kpds7=0:TR=10:P1=0:P2=10:TimeU=0:atmos&nbsp;col:10min&nbsp;fcst:NAve=0<br class="">
...<br class="">
<br class="">
however, for 30min record:<br class="">
<br class="">
$ wgrib WRFPRS_d01.00_30&nbsp;<br class="">
1:0:d=17111700:RWMR:kpds5=170:kpds6=109:kpds7=1:TR=10:P1=0:P2=1:TimeU=14:hybrid&nbsp;lev 1:30min&nbsp;fcst:NAve=0<br class="">
2:44496:d=17111700:SNMR:kpds5=171:kpds6=109:kpds7=1:TR=10:P1=0:P2=1:TimeU=14:hybrid&nbsp;lev 1:30min&nbsp;fcst:NAve=0<br class="">
3:88992:d=17111700:REFC:kpds5=212:kpds6=200:kpds7=0:TR=10:P1=0:P2=1:TimeU=14:atmos&nbsp;col:30min&nbsp;fcst:NAve=0<br class="">
...<br class="">
<br class="">
TimeU=14<br class="">
<br class="">
<br class="">
Where this comes from?&nbsp;<br class="">
<br class="">
As far as I understand it, UPP follows this&nbsp;time designation for time units:<br class="">
http://www.nco.ncep.noaa.gov/pmb/docs/on388/table4.html<br class="">
14 = &quot;Half an hour&quot;<br class="">
<br class="">
This is from UPP code that sets it:<br class="">
<br class="">
! &nbsp; &nbsp;J. HALLEY GOTWAY, MODIFY HOW THE TIME&nbsp;INFORMATION IS STORED IN ID(17-20),<br class="">
! &nbsp; &nbsp;(FCST TIME UNIT, P1, P2, TIME RANGE&nbsp;INDICATOR).<br class="">
! &nbsp; &nbsp;CHECK IF THE NUMBER OF FORECAST MINUTES&nbsp;IS ZERO FOR HOURS OR NON-ZERO FOR<br class="">
! &nbsp; &nbsp;OFF-HOUR FORECASTS. &nbsp;FOR OFF-HOUR&nbsp;FORECASTS, CHECK IF THE TOTAL NUMBER<br class="">
! &nbsp; &nbsp;OF MINUTES IS DIVISIBLE BY 30, 15, OR&nbsp;NEITHER, AND USE THE APPROPRIATE<br class="">
! &nbsp; &nbsp;FCST TIME UNIT VALUE. &nbsp;FOR ANY FIELD&nbsp;OTHER THAN AN INSTANTANEOUS FIELD,<br class="">
! &nbsp; &nbsp;ASSUME ID(18-20), ARE PASSED IN&nbsp;CORRECTLY.<br class="">
<br class="">
&nbsp; &nbsp; &nbsp;IF(IFMIN .GE. 1)THEN<br class="">
! &nbsp; &nbsp; &nbsp; ID(17) &nbsp; &nbsp; = 0<br class="">
! &nbsp; &nbsp;COMPUTE THE TOTAL FORECAST MINUTES.<br class="">
&nbsp; &nbsp; &nbsp; &nbsp;TOTMIN=IFHR*60&#43;IFMIN<br class="">
<br class="">
! &nbsp; &nbsp;CHECK FOR 1/2 HOURLY INCREMENTS.<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF (MOD(TOTMIN, 30) == 0) THEN<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ID(17) = 14<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DIV &nbsp; &nbsp;= 30<br class="">
! &nbsp; &nbsp;CHECK FOR 1/4 HOURLY INCREMENTS.<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ELSEIF (MOD(TOTMIN, 15) == 0)&nbsp;THEN<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ID(17) = 13<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DIV &nbsp; &nbsp;= 15<br class="">
! &nbsp; &nbsp;OTHERWISE, USE MINUTES.<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ELSE<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ID(17) = 0<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DIV &nbsp; &nbsp;= 1<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ENDIF<br class="">
<br class="">
<br class="">
Does this look OK to you?<br class="">
<br class="">
Thx<br class="">
Ivan<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
On 11/15/2017 02:39 PM, Wesley Ebisuzaki -&nbsp;NOAA Federal wrote:<br class="">
<blockquote type="cite" class="">Ivan,<br class="">
<br class="">
I am not aware of a time unit 14. &nbsp;It's&nbsp;not in NCEP's documentation.<br class="">
<br class="">
Wesley<br class="">
<br class="">
http://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_table4-4.shtml<br class="">
<br class="">
On Wed,&nbsp;Nov 15, 2017 at 4:27 AM, Ivan&nbsp;Toman&nbsp;&lt;ivtoman@inet.hr&gt;&nbsp;wrote:<br class="">
Wesley,<br class="">
<br class="">
I finally found time to&nbsp;dig into this.<br class="">
<br class="">
I actually get &quot;undefined&nbsp;time unit 14&quot; from wgrib2&nbsp;when trying to handle 30&nbsp;min records. That's&nbsp;probably why&nbsp;g2ctl,&nbsp;alt_g2ctl also does not do&nbsp;the job (throwing this&nbsp;message) and so on.<br class="">
<br class="">
For example, your&nbsp;suggestion #2:<br class="">
<br class="">
$ wgrib2&nbsp;wrfprs_d01.00_30.g2 -if&nbsp;&quot;:30 min fcst:&quot; -set_ftime&nbsp;&quot;30 min fcst&quot; -fi -grib&nbsp;wrfprs_d01.00_30.g2.con<br class="">
add_time: undefined time&nbsp;unit 14<br class="">
add_time: undefined time&nbsp;unit 14<br class="">
add_time: undefined time&nbsp;unit 14<br class="">
1:0:d=2017111500:RWMR:1&nbsp;hybrid level:1 ? fcst:<br class="">
add_time: undefined time&nbsp;unit 14<br class="">
add_time: undefined time&nbsp;unit 14<br class="">
add_time: undefined time&nbsp;unit 14<br class="">
2:2310:d=2017111500:SNMR:1&nbsp;hybrid level:1 ? fcst:<br class="">
add_time: undefined time&nbsp;unit 14<br class="">
...<br class="">
<br class="">
<br class="">
Or...<br class="">
<br class="">
$ alt_gmp -i&nbsp;wrfprs_d01.grib2.ctl&nbsp;<br class="">
wgrib2_flags=-npts&nbsp;-set_ext_name 1 -end_FT&nbsp;-ext_name -lev<br class="">
wgrib2_inv=.invd01<br class="">
dtype: &nbsp;dtype grib2<br class="">
pdef: &nbsp;pdef 149 149 lccr&nbsp;-29.363000 45.203000 1 1&nbsp;-21.633000 -21.633000&nbsp;54.288000 12000.000000&nbsp;12000.000000tdef: &nbsp;nt=7&nbsp;start=00Z15nov2017 by=10mn<br class="">
zdef: nlevel=25<br class="">
resolve_dsets&nbsp;dset=wrfprs_d01.grib2&nbsp;inctime=10mn<br class="">
resolve_dsets: no template<br class="">
scanning wrfprs_d01.grib2&nbsp;(process=0)<br class="">
add_time: undefined time&nbsp;unit 14<br class="">
add_time: undefined time&nbsp;unit 14<br class="">
add_time: undefined time&nbsp;unit 14<br class="">
add_time: undefined time&nbsp;unit 14<br class="">
add_time: undefined time&nbsp;unit 14<br class="">
<br class="">
<br class="">
<br class="">
grib1to2.pl&nbsp;did not work either, it&nbsp;failed:<br class="">
<br class="">
$ for i in WRFPRS_d01.0* ;&nbsp;do ./grb1to2.pl&nbsp;-o $i.g2 $i ; done<br class="">
(((rec 1:0:date&nbsp;2017111500&nbsp;RWMR kpds5=170 kpds6=109&nbsp;kpds7=1 levels=(0,1)&nbsp;grid=255 hybrid lev 1 anl:<br class="">
&nbsp; RWMR=Rain water mixing&nbsp;ratio [kg/kg]<br class="">
&nbsp; timerange 0 P1 0 P2 0&nbsp;TimeU 1 &nbsp;nx 149 ny 149 GDS&nbsp;grid 3 num_in_ave 0&nbsp;missing 0<br class="">
&nbsp; center 7 subcenter 0&nbsp;process 125 Table 2 scan:&nbsp;WE:SN winds(grid)&nbsp;<br class="">
&nbsp; Lambert Conf: Lat1&nbsp;-29.363000 Lon1 45.203000&nbsp;Lov 54.288000<br class="">
&nbsp; &nbsp; &nbsp; Latin1 -21.633000&nbsp;Latin2 -21.633000 LatSP&nbsp;-90.000000 LonSP 0.000000<br class="">
&nbsp; &nbsp; &nbsp; South Pole (149 x&nbsp;149) Dx 12.000000 Dy&nbsp;12.000000 scan 64 mode 136<br class="">
&nbsp; min/max data 0 0 &nbsp;num&nbsp;bits 0 &nbsp;BDS_Ref 0&nbsp;&nbsp;DecScale 0 BinScale 0<br class="">
<br class="">
)))<br class="">
&gt;&gt; grib2_metadata&nbsp;--- WRFPRS_d01.00_00 &nbsp;&nbsp;wgrib=./wgrib&nbsp;wgrib2=./wgrib2<br class="">
Use of uninitialized value&nbsp;$1 in negation (-) at ./grib1to2_metadata.pl&nbsp;line 74, &lt;INV&gt; line&nbsp;1.<br class="">
no scan mode at ./grib1to2_metadata.pl&nbsp;line 83, &lt;INV&gt; line&nbsp;1.<br class="">
missing GRIB record(s)<br class="">
((()))<br class="">
Problem, winds not&nbsp;defined! old ./wgrib?<br class="">
grib2 message ignored (use&nbsp;wgrib2)<br class="">
missing GRIB record(s)<br class="">
((()))<br class="">
Problem, winds not&nbsp;defined! old ./wgrib?<br class="">
(((rec 1:0:date&nbsp;2017111500&nbsp;RWMR kpds5=170 kpds6=109&nbsp;kpds7=1 levels=(0,1)&nbsp;grid=255 hybrid lev 1&nbsp;10min fcst:<br class="">
&nbsp; RWMR=Rain water mixing&nbsp;ratio [kg/kg]<br class="">
&nbsp; timerange 10 P1 0 P2 10&nbsp;TimeU 0 &nbsp;nx 149 ny 149 GDS&nbsp;grid 3 num_in_ave 0&nbsp;missing 0<br class="">
&nbsp; center 7 subcenter 0&nbsp;process 125 Table 2 scan:&nbsp;WE:SN winds(grid)&nbsp;<br class="">
&nbsp; Lambert Conf: Lat1&nbsp;-29.363000 Lon1 45.203000&nbsp;Lov 54.288000<br class="">
&nbsp; &nbsp; &nbsp; Latin1 -21.633000&nbsp;Latin2 -21.633000 LatSP&nbsp;-90.000000 LonSP 0.000000<br class="">
&nbsp; &nbsp; &nbsp; South Pole (149 x&nbsp;149) Dx 12.000000 Dy&nbsp;12.000000 scan 64 mode 136<br class="">
&nbsp; min/max data 0&nbsp;5.31824e-06 &nbsp;num bits 16&nbsp;&nbsp;BDS_Ref 0 &nbsp;DecScale 11&nbsp;BinScale 4<br class="">
<br class="">
<br class="">
<br class="">
I have no idea how to&nbsp;proceed further.<br class="">
Tks,<br class="">
Ivan<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
On 11/07/2017 08:12 PM,&nbsp;Wesley Ebisuzaki - NOAA&nbsp;Federal wrote:<br class="">
<blockquote type="cite" class="">Ivan,<br class="">
<br class="">
&quot;UPP follows NCEP&nbsp;code table for timing&nbsp;grib records - for 15&nbsp;and 30<br class="">
minute records use&nbsp;codes 13 and 14&nbsp;respectively instead&nbsp;of simple<br class="">
minutes. This seems to&nbsp;confuse GrADS (or&nbsp;g2ctl/gribmap, I'm not&nbsp;sure).&quot;<br class="">
<br class="">
&quot;Yes it is fixed. I'm&nbsp;currently need to&nbsp;output 10 min&nbsp;intervals. So, for&nbsp;<br class="">
full hour, 10m, 20m,&nbsp;40m and 50m I get OK&nbsp;data. But for 30m I do&nbsp;not.&quot;<br class="">
<br class="">
These quotes&nbsp;suggests that it is a&nbsp;problem with gribmap&nbsp;expecting<br class="">
30&nbsp;minute_time_units &nbsp;and&nbsp;not being able to&nbsp;handle 1&nbsp;30_minute_time_units.<br class="">
<br class="">
Suggestion #1<br class="">
<br class="">
&nbsp; &nbsp; use&nbsp;alt_g2ctl/alt_gmp<br class="">
<br class="">
&nbsp; &nbsp; Both are based&nbsp;on wgrib2 which uses&nbsp;english rather than&nbsp;code table numbers.<br class="">
<br class="">
Suggestion #2<br class="">
<br class="">
&nbsp; &nbsp; convert&nbsp;forecast time from 1&nbsp;(30 minutes) to 30&nbsp;(minutes)<br class="">
<br class="">
&nbsp; &nbsp; &nbsp;wgrib2 IN.grb&nbsp;-if &quot;:30 min fcst:&quot;&nbsp;-set_ftime &quot;30 min&nbsp;fcst&quot; -fi -grib&nbsp;OUT.grb<br class="">
<br class="">
Wesley<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
On&nbsp;Tue, Nov 7, 2017&nbsp;at 1:21 PM, Jeff&nbsp;Duda&nbsp;&lt;jeffduda319@gmail.com&gt;&nbsp;wrote:<br class="">
What&nbsp;result do you&nbsp;get when you&nbsp;do<br class="">
<br class="">
wgrib2 -T&nbsp;(grib file)<br class="">
<br class="">
?<br class="">
<br class="">
Look after the&nbsp;&quot;D=&quot;, as the&nbsp;represents the&nbsp;time in the&nbsp;GRIB2 file.<br class="">
<br class="">
Jeff<br class="">
<br class="">
On&nbsp;Tue, Nov 7,&nbsp;2017 at 12:10&nbsp;PM, Ivan Toman&nbsp;&lt;ivtoman@inet.hr&gt;&nbsp;wrote:<br class="">
Hello,<br class="">
<br class="">
Yes it is&nbsp;fixed. I'm&nbsp;currently need&nbsp;to output 10&nbsp;min intervals.&nbsp;So, for full&nbsp;hour, 10m,&nbsp;20m, 40m and&nbsp;50m I get&nbsp;OK&nbsp;data. But for&nbsp;30m I do not.<br class="">
<br class="">
Thank you!<br class="">
Ivan<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
On 11/07/2017&nbsp;05:50 PM, Jeff&nbsp;Duda wrote:<br class="">
<blockquote type="cite" class="">What is&nbsp;your time&nbsp;interval? If&nbsp;it's not&nbsp;fixed, that's&nbsp;one problem.&nbsp;If it is&nbsp;fixed, then I&nbsp;don't see why&nbsp;regular&nbsp;templating&nbsp;wouldn't work&nbsp;unless the&nbsp;time being&nbsp;written to the&nbsp;grib2 file is&nbsp;not right. But&nbsp;there are ways&nbsp;to fix
 that.<br class="">
<br class="">
Jeff Duda<br class="">
<br class="">
On&nbsp;Tue, Nov 7,&nbsp;2017 at 10:12&nbsp;AM, Ivan Toman&nbsp;&lt;ivtoman@inet.hr&gt;&nbsp;wrote:<br class="">
Hello,<br class="">
<br class="">
I'm having&nbsp;difficulties&nbsp;reading&nbsp;sub-hourly&nbsp;time records&nbsp;from WRF grib<br class="">
files in&nbsp;GrADS.<br class="">
<br class="">
UPP follows&nbsp;NCEP code&nbsp;table for&nbsp;timing grib&nbsp;records - for&nbsp;15 and 30<br class="">
minute records&nbsp;use codes 13&nbsp;and 14&nbsp;respectively&nbsp;instead of&nbsp;simple<br class="">
minutes. This&nbsp;seems to&nbsp;confuse GrADS&nbsp;(or&nbsp;g2ctl/gribmap,&nbsp;I'm not sure).<br class="">
<br class="">
What I get as&nbsp;result is that&nbsp;I can read any&nbsp;sub-hourly&nbsp;record as long&nbsp;as<br class="">
it is not 15&nbsp;or 30 minute&nbsp;record. For&nbsp;those, I get&nbsp;undefined grid<br class="">
instead of&nbsp;data.<br class="">
<br class="">
I use this&nbsp;workflow for&nbsp;postprocessing:&nbsp;wfrout&nbsp;&gt;(UPP)&gt;&nbsp;grib1&nbsp;&gt;(cnvgrib)&gt;<br class="">
grib2&nbsp;&gt;(g2ctl,gribmap)&gt;&nbsp;GrADS<br class="">
<br class="">
Does anybody&nbsp;know what is&nbsp;going on&nbsp;there?<br class="">
<br class="">
Thank you in&nbsp;advance<br class="">
<br class="">
Ivan Toman<br class="">
<br class="">
_______________________________________________<br class="">
gradsusr&nbsp;mailing list<br class="">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
<br class="">
<br class="">
<br class="">
--&nbsp;<br class="">
Jeff Duda<br class="">
Post-doctoral&nbsp;research&nbsp;fellow<br class="">
University of&nbsp;Oklahoma&nbsp;School of&nbsp;Meteorology<br class="">
<br class="">
<br class="">
______________________________
<div class="">_________________</div>
<div class="">gradsusr mailing list</div>
<br class="Apple-interchange-newline">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
</blockquote>
<br class="">
<br class="">
_______________________________________________<br class="">
gradsusr&nbsp;mailing list<br class="">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
--&nbsp;<br class="">
Jeff Duda<br class="">
Post-doctoral&nbsp;research&nbsp;fellow<br class="">
University of&nbsp;Oklahoma&nbsp;School of&nbsp;Meteorology<br class="">
<br class="">
_______________________________________________<br class="">
gradsusr mailing&nbsp;list<br class="">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
______________________________
<div class="">_________________</div>
<div class="">gradsusr mailing list</div>
<br class="Apple-interchange-newline">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
</blockquote>
<br class="">
<br class="">
_______________________________________________<br class="">
gradsusr mailing list<br class="">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
______________________________
<div class="">_________________</div>
<div class="">gradsusr mailing list</div>
<br class="Apple-interchange-newline">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
</blockquote>
<br class="">
<br class="">
_______________________________________________<br class="">
gradsusr mailing list<br class="">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
______________________________
<div class="">_________________</div>
<div class="">gradsusr mailing list</div>
<br class="Apple-interchange-newline">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
</blockquote>
<br class="">
<br class="">
_______________________________________________<br class="">
gradsusr mailing list<br class="">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
______________________________
<div class="">_________________</div>
<div class="">gradsusr mailing list</div>
<br class="Apple-interchange-newline">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
</blockquote>
<br class="">
<br class="">
_______________________________________________<br class="">
gradsusr mailing list<br class="">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
<br class="">
<br class="">
<br class="">
_______________________________________________<br class="">
gradsusr mailing list<br class="">
gradsusr@gradsusr.org<br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
</blockquote>
<br class="">
<div class="">--<br class="">
Jennifer Miletta Adams<br class="">
Center for Ocean-Land-Atmosphere Studies (COLA)<br class="">
George Mason University<br class="">
<br class="">
<br class="">
</div>
<br class="">
</div>
</div>
</body>
</html>