parent
a4d2da147f
commit
638413162c
10 changed files with 44 additions and 32 deletions
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -235,9 +235,9 @@ gets MaxT from the most recent NAM run created by GFE initialization.<br>
|
|||
MaxT_SFC_BOU_D2D_NAM12
|
||||
:
|
||||
gets MaxT from the most recent original NAM12 run from D2D.<br>
|
||||
rh_MB300_BOU_D2D_GFS-40km
|
||||
rh_MB300_BOU_D2D_GFS40
|
||||
:
|
||||
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
|
||||
|
|
|
@ -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> "RUC80" : ["RUC80"],</tt>
|
||||
<br>
|
||||
<tt> "GFS-40km" : ["GFS-40km"],</tt>
|
||||
<tt> "GFS40" : ["GFS40"],</tt>
|
||||
<br>
|
||||
<tt> "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> "GFS-40km": ["tp", "cp"],</tt>
|
||||
<tt> "GFS40": ["tp", "cp"],</tt>
|
||||
<br>
|
||||
<tt> "NAM80": ["tp", "cp"],</tt>
|
||||
<br>
|
||||
|
|
|
@ -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:"]))
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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:"]))
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue