gfe checkout remotes/origin/ncep_14.2.1

Former-commit-id: 0ca7aa3091
This commit is contained in:
mjames-upc 2014-09-26 17:20:49 -06:00
parent a4d2da147f
commit 638413162c
10 changed files with 44 additions and 32 deletions

View file

@ -66,7 +66,7 @@ values will vary across the grid. This portion of the tool was written to apply
information from the chosen source at each point, so if the flow varies across the grid domain,
then this would be reflected in the output.
<br><br>
The NAM12 and the RAP-13km have data only every three hours; the GFS40 only every six.
The NAM12 and the RUC13 have data only every three hours; the GFS40 only every six.
Originally, the code was written to let GFE interpolate model data between its valid times,
but this did not work in offices whose GFE default for missingDataMode was not set equal to
create, i.e., interpolate, and forcing create in the smartTool call up command had no

View file

@ -52,7 +52,7 @@ determine sky cover.
points 1 and 2. </li>
</ol><br>
<b>Maximum model layer RH Algorithm</b><br>
Since GFE OB7.1, both the GFS-40km and NAM12 include near-surface layers (30mb deep), with respect to
Since GFE OB7.1, both the GFS40 and NAM12 include near-surface layers (30mb deep), with respect to
ground level. The Populate_SkyTool makes use of the mean RH in the lowest 4 of these near-surface AGL
layers. From 925mb to 500mb, the Populate_SkyTool has available RH data in 25mb increments. From 500mb
through 300mb, the vertical resolution available is 50mb. The RH data points are shown schematically
@ -145,8 +145,8 @@ Populate_SkyTool, you will see a graphical user interface (GUI) appear, as shown
<img alt="Populate_SkyProcedure" src="images/Populate13.jpg"><br><br>
The following is an explanation of each option within the Populate_SkyTool GUI:<br>
<ul>
<li><b>Model:</b> Select the model you wish to use, either GFS-40km or NAM12. The NAM12 can be used on
grids out 84 hours from the current model run time, and is available in 3-hrly increments. The GFS-40km
<li><b>Model:</b> Select the model you wish to use, either GFS40 or NAM12. The NAM12 can be used on
grids out 84 hours from the current model run time, and is available in 3-hrly increments. The GFS40
is available in 6-hrly increments out through 180 hours. </li>
<li><b>Model Run:</b> Select the model run you wish to use, either the current run, or the previous
(6 hour earlier) run. Note: as new model data is coming into GFE, you may need to select the previous
@ -188,7 +188,7 @@ procedure to run properly. These times are model dependent:
<ul>
<li>For the NAM12, the available grid times are 00, 03, 06, 09, 12, 15, 18, 21 UTC, out 84h from the
model run time. </li>
<li>For the GFS-40km, the available grid times are 00, 06, 12, 18 UTC, out 180h from the model run time
<li>For the GFS40, the available grid times are 00, 06, 12, 18 UTC, out 180h from the model run time
(through the end of day 7). </li>
</ul>
Once you select your options and highlight your time range, choose <i>Run</i> or <i>Run/Dismiss</i> at
@ -219,8 +219,8 @@ grids.<br><br>
<li>BUFKIT is a useful software tool to understand and anticipate the sky cover values generated by the
Populate_SkyTool based on model forecast soundings. Viewing point model soundings can give the
forecaster a better idea of when they may want to toggle on/off high and low clouds, and whether
population with the NAM12 or GFS-40km is more desirable in a given situation.</li>
<li>In some forecast areas, the NAM12 tends to reach 100% RH more easily than the GFS-40km, but the NAM12
population with the NAM12 or GFS40 is more desirable in a given situation.</li>
<li>In some forecast areas, the NAM12 tends to reach 100% RH more easily than the GFS40, but the NAM12
also tends to show low-level RH values that are too high beneath frontal and subsidence inversions
(often near saturation). In these situations, turning clouds below 925mb off can give a more accurate
result. Also, if high near-surface RH resulting from anticipated ground fog is appearing as cloud cover,

View file

@ -235,9 +235,9 @@ gets MaxT from the most recent NAM run created by GFE initialization.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MaxT_SFC_BOU_D2D_NAM12
:&nbsp;&nbsp;
gets MaxT from the most recent original NAM12 run from D2D.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rh_MB300_BOU_D2D_GFS-40km
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rh_MB300_BOU_D2D_GFS40
:&nbsp;&nbsp;&nbsp;
gets rh from the most recent original GFS-40km run from D2D.</p>
gets rh from the most recent original GFS40 run from D2D.</p>
<p>For a list of D2D elements and descriptions<a
href="d2dWENames.html">
click here.</a> </p>
@ -474,9 +474,9 @@ minimum and maximum values must be supplied along with the default
value.
You can also specify a resolution if you wish. The default is 1.</li>
<li class="Bulleted">"model" -- gives a list of GFE Surface model
runs e.g. NAM12, GFS-40km, RUC80</li>
runs e.g. NAM12, GFS40, RUC80</li>
<li class="Bulleted">"D2D_model" -- give a list of D2D model runs
e.g. NAM12, GFS-40km, RUC80</li>
e.g. NAM12, GFS40, RUC80</li>
<li class="Bulleted">"label" -- simply displays text given in the
"Variable Name" slot.</li>
<li class="Bulleted">"scrollbar" -- adds a scrollbar to the

View file

@ -730,9 +730,9 @@ models and the Python object name that is required:
<td>parmsGFS80</td>
</tr>
<tr>
<td>GFS-40km<br>
<td>GFS40<br>
</td>
<td>parmsGFS-40km</td>
<td>parmsGFS40</td>
</tr>
<tr>
<td style="vertical-align: top;">GFS190<br>
@ -1642,7 +1642,7 @@ MyNAM.
<br>
<tt>&nbsp;&nbsp;&nbsp; "RUC80" : ["RUC80"],</tt>
<br>
<tt>&nbsp;&nbsp;&nbsp; "GFS-40km" : ["GFS-40km"],</tt>
<tt>&nbsp;&nbsp;&nbsp; "GFS40" : ["GFS40"],</tt>
<br>
<tt>&nbsp;&nbsp;&nbsp; "NGM80" : ["NGM80"],</tt>
<br>
@ -1818,7 +1818,7 @@ modify entries, rather than redefining the entire dictionary.<br>
</p>
<p><tt>serverConfig.D2DAccumulativeElements= {</tt>
<br>
<tt>&nbsp;&nbsp;&nbsp; "GFS-40km": ["tp", "cp"],</tt>
<tt>&nbsp;&nbsp;&nbsp; "GFS40": ["tp", "cp"],</tt>
<br>
<tt>&nbsp;&nbsp;&nbsp; "NAM80": ["tp", "cp"],</tt>
<br>

View file

@ -55,8 +55,8 @@ from math import *
# Add or delete models according to whether or not they are available at your office.
#
#sourceList = ["NAM12", "GFS-40km", "RAP-40km"]
sourceList = ["NAM12", "GFS-40km", "RAP-13km", "wrfnmm", "wrfarw", "WSETA"]
#sourceList = ["NAM12", "GFS40", "RUC40"]
sourceList = ["NAM12", "GFS40", "RUC13", "wrfnmm", "wrfarw", "WSETA"]
toolName = 'Extrapolate'
#
@ -126,7 +126,7 @@ class Procedure (SmartScript.SmartScript):
self.fragmentCmd(["variableElement"], timeRange)
h=starth
modelList = ["NAM12", "GFS-40km", "RAP-13km", "wrfnmm", "wrfarw", "WSETA", "Fcst"] #####################################################
modelList = ["NAM12", "GFS40", "RUC13", "wrfnmm", "wrfarw", "WSETA", "Fcst"] #####################################################
if varDict["Source:"] not in modelList and varDict["Source:"] != "Observed (enter below)":
modelList.append((varDict["Source:"]))

View file

@ -49,7 +49,7 @@ VariableList = [("Product to\ndecode:", [], "check",
("Product to\n decode:", [], "check",
["TCMCP1", "TCMCP2", "TCMCP3", "TCMCP4", "TCMCP5",
"TCPWP1", "TCPWP2", "TCPWP3", "TCPWP4", "TCPWP5"]),
("Background\nModel:", "Fcst", "radio", ["GFS-40km", "NAM12", "ECMWFHiRes", "Fcst"]),
("Background\nModel:", "Fcst", "radio", ["GFS40", "NAM12", "ECMWFHiRes", "Fcst"]),
("Number of Pie Slices?", "4", "radio", ["4", "8", "12", "16"]),
("Eye Diameter:", 0, "scale", [0, 100], 1),
("34 knot radius at 3 days (NM):", 100, "scale", [0, 1000], 10),

View file

@ -47,12 +47,12 @@ from math import *
# Add or delete models according to whether or not they are available at your office.
#
#sourceList = ["NAM12", "GFS-40km", "RUC80"]
sourceList = ["NAM12", "GFS-40km", "RAP-40km", "wrfnmm", "wrfarw", "WSETA"]
#sourceList = ["NAM12", "GFS40", "RUC80"]
sourceList = ["NAM12", "GFS40", "RUC40", "wrfnmm", "wrfarw", "WSETA"]
threeHour = ["NAM12"]
sixHour = ["GFS-40km"]
RUC = ["RAP-13km", "RAP-40km"]
sixHour = ["GFS40"]
RUC = ["RUC13", "RUC40"]
resolution = 2.5
@ -86,7 +86,7 @@ class Tool (SmartScript.SmartScript):
"Extrapolate features foward or backward in time based on observed or model speed"
self.logToolUse("Smart Tool execution")
modelList = ["NAM12", "GFS-40km", "RAP-40km", "RAP-13km", "wrfnmm", "wrfarw", "WSETA", "Fcst"] #####################################################
modelList = ["NAM12", "GFS40", "RUC40", "RUC13", "wrfnmm", "wrfarw", "WSETA", "Fcst"] #####################################################
if varDict["Source:"] not in modelList and varDict["Source:"] != "Observed (enter below)":
modelList.append((varDict["Source:"]))

View file

@ -55,6 +55,7 @@
# Nov 07, 2013 2476 dgilling Fix _getGridsResult() for retrieving
# Wx/Discrete in First mode.
# Dec 23, 2013 16893 ryu Added unloadWEs() method (created by njensen)
# Apr 29, 2014 3097 randerso Fixed getGrids() to return non-scalar grids as tuples in all cases
#
########################################################################
import types, string, time, sys
@ -477,7 +478,9 @@ class SmartScript(BaseTool.BaseTool):
else:
# discrete or weather
keys = JUtil.javaObjToPyVal(jxlgrid.getKeyList())
xlgrid.append(keys)
xlgrid = (xlgrid[0], keys)
else:
xlgrid = (xlgrid[0], xlgrid[1])
xlated.append(xlgrid)
retVal = xlated
else:
@ -487,12 +490,14 @@ class SmartScript(BaseTool.BaseTool):
if len(result) == 1:
if result[0].dtype != numpy.int8:
# scalar
result = result[0]
retVal = result[0]
else:
# discrete or weather
keys = JUtil.javaObjToPyVal(slice.getKeyList())
result.append(keys)
retVal = result
retVal = (result[0], keys)
else:
# vector
retVal = (result[0], result[1])
if retVal is None or retVal == []:
if noDataError == 1:

View file

@ -141,6 +141,8 @@ import com.raytheon.viz.gfe.types.MutableInteger;
* to simplify maintenance of this class.
* Changed handling of enabling/disabling Topo parm
* 04/02/2014 #2969 randerso Fix error when Toop parm is unloaded.
* 05/01/2014 #3105 dgilling Ensure mutable db gets into availableServerDatabases
* if it has to be created during ParmManager construction.
* </pre>
*
* @author chammack
@ -1314,6 +1316,11 @@ public class ParmManager implements IParmManager, IMessageClient {
ServerResponse<?> sr = this.dataManager.getClient()
.createNewDb(mutableDbId);
containsMutable = sr.isOkay();
if (containsMutable) {
this.availableServerDatabases.add(mutableDbId);
Collections.sort(this.availableServerDatabases);
}
}
if (containsMutable) {

View file

@ -297,7 +297,7 @@ public class WEBrowserTypeRecord {
*
* @param modelNames
* A list of model runs. Format for the strings should be model
* DD/HH (e.g., "RAP-13km 03/12" or "GFS-40km 30/00")
* DD/HH (e.g., "RUC13 03/12" or "GFS40 30/00")
* @return A single map containing all parms present in the model runs
* mapped to all possible pressure values.
*/
@ -325,7 +325,7 @@ public class WEBrowserTypeRecord {
*
* @param modelNames
* A list of model runs. Format for the strings should be model
* DD/HH (e.g., "RAP-13km 03/12" or "GFS-40km 30/00")
* DD/HH (e.g., "RUC13 03/12" or "GFS40 30/00")
* @return A single map containing all parms present in the model runs
* mapped to all possible "misc." pressure values.
*/
@ -352,7 +352,7 @@ public class WEBrowserTypeRecord {
*
* @param model
* The model run name and time, specified in "model DD/HH" format
* (e.g., "RAP-13km 03/12" or "GFS-40km 30/00").
* (e.g., "RUC13 03/12" or "GFS40 30/00").
* @param parmName
* The parm name (e.g., "t" or "pop").
* @return An array containing all valid pressure level values for the
@ -375,7 +375,7 @@ public class WEBrowserTypeRecord {
*
* @param model
* The model run name and time, specified in "model DD/HH" format
* (e.g., "RAP-13km 03/12" or "GFS-40km 30/00").
* (e.g., "RUC13 03/12" or "GFS40 30/00").
* @param parmName
* The parm name (e.g., "t" or "pop").
* @return An array containing all valid "misc." pressure level values for