A vgf file is created using the interactive product generation tools within NMAP2. A closed line is drawn enclosing the region of interest, and a text label is grouped with the line assigning a value of 1 to the contour.
Once the region of interest is defined, a grid file can be created using the GRPHGD standalone program (It can also be created using the graph-to-grid option in NMAP2).
Create grid from VGF file with GRPHGD
GEMPAK-GRPHGD> GDOUTF = 2007071900_cmask.grd GUESS = PROJ = MER GRDAREA = KXKY = 10;10 MAXGRD = 200 CPYFIL = #A218 ANLYSS = CNTRFL = cmask.info GDATTIM = 070719/0000f000 GFUNC = cmask GLEVEL = 0 GVCORD = none KEYCOL = KEYLINE = OLKDAY = GGLIMS = HISTGRD = NO BOUNDS = TYPE = C GAMMA = 0.3 SEARCH = 20 NPASS = 2 QCNTL = GUESFUN = CATMAP = DISCRETE = DLINES = yes;no|-0.5 GGVGF = conusoutline_cmask.vgf EDGEOPTS = GEMPAK-GRPHGD>r
Check with GDINFO
GEMPAK-GDINFO> GDFILE = 2007071900_cmask.grd LSTALL = YES OUTPUT = T GDATTIM = all GLEVEL = 0 GVCORD = none GFUNC = cmask GEMPAK-GDINFO>r GRID FILE: cmask.gem GRID NAVIGATION: PROJECTION: LCC ANGLES: 25.0 -95.0 25.0 GRID SIZE: 614 428 LL CORNER: 12.19 -133.46 UR CORNER: 57.33 -49.42 Number of grids in file: 1 NUM TIME1 TIME2 LEVL1 LEVL2 VCORD PARM 1 070719/0000F000 0 NONE CMASK GEMPAK-GDINFO>
The parameter CMASK is created where values greater than 1 are enclosed by the contour. DLINES defines the epsilon of (here -0.5 is used since the contour was drawn counterclockwise) to add to vlaues on either side of the single contour to be define greater / less than the contour value of 1.0.
The grid point values of SGT(cmask,1) (greater than 1.0) as shown here:
Plot with GDPLOT2
The resultant grid can ge used with the MASK() function and logical operators to define mask or clipping regions of interest. As an example, the 24 hour precipitation in the top panel is masked by the region of interest in the lower panel so that only data within the region of interest will be considered.
GDFILE = nam12 + 2007071900_cmask.grd GDATTIM = f030 GLEVEL = 0 GVCORD = none PANEL = t ! b SKIP = 0 SCALE = 0 GDPFUN = p24i ! mask(p24i,sgt(cmask^070719/0000f000+2,1)) TYPE = f CONTUR = 3/3 CINT = 0 LINE = 2/1/2 FINT = .01;.1;.25;.5;.75;1;1.25;1.5;1.75;2;2.5;3;4;5;6;7;8;9 FLINE = 0;21-30;14-20;5 HILO = HLSYM = CLRBAR = 1 WIND = BM1 REFVEC = TITLE = 1 TEXT = 0.7/2/SW CLEAR = YES GAREA = us IJSKIP = PROJ = STR/90;-100;0
Using GDCSV to find local maximas
The HIGH() function can be used to obtain local maximas from the grid region of interest. The GWFS() gaussian weighted smoothing function can be used to reduce higher frequency features in the grid and focus on broader areas of interest. By using the GDCSV program, the locations of HIGH() output are output to a file for use in determining local mesoscale model domain centers. By masking the region, the model domains are ensured to be within the desired region.
GEMPAK-GDCSV>l GDATTIM = f030 GDFILE = nam12 + 2007071900_cmask.grd GLEVEL = 0 GAREA = grid PROJ = def GVCORD = none GFUNC = high(mask(gwfs(p24i,40),sgt(cmask^070719/0000f000+2,1)),30) SCALE = 0 OUTPUT = f/p24i_highs.dat GEMPAK-GDCSV>r
OUTPUT is to the text file p24i_highs.dat
. You can use the sort
command to return the top two local maxima:
sort -t, -k 5bnr p24i_highs.dat | head -2 508, 244, 42.3889, -72.2385, 2.53370 338, 236, 42.9560, -96.3721, 0.58850
These two values are now scriptable (use |head -1
for the first and | head -2 | tail -1
for the second) both for plotting regional areas of interest and for WRF domains. A WRF lesson is outside the reach of this document, but as an example of what is run at Unidata, here is are the primary and secondary regions
Plotting again with GDPLOT2 and GPANOT
The locations of the 2 greatest local maximas (42.3889,-72.2385 and 42.9560,-96.3721) are shown along with the precipitation forecast field. The primary and secondary domains can be drawn using GPANOT to overlay the boxes.
First plot masked precipitation, same as above, but change PANEL = 0
and CLEAR = n
GDFILE = nam12 + 2007071900_cmask.grd GDATTIM = f030 GLEVEL = 0 GVCORD = none PANEL = 0 SKIP = 0 SCALE = 0 GDPFUN = mask(p24i,sgt(cmask^070719/0000f000+2,1)) TYPE = f CONTUR = 3/3 CINT = 0 LINE = 2/1/2 FINT = .01;.1;.25;.5;.75;1;1.25;1.5;1.75;2;2.5;3;4;5;6;7;8;9 FLINE = 0;21-30;14-20;5 HILO = HLSYM = CLRBAR = 1 WIND = BM1 REFVEC = TITLE = 1 TEXT = 0.7/2/SW CLEAR = YES GAREA = us IJSKIP = PROJ = STR/90;-100;0 CLEAR = n r