Merge branch 'master_14.3.1' (14.3.1-10,11) into omaha_14.3.1
Former-commit-id: 4041e8afbb4bf1c0c416624140d74d27e963f9c8
This commit is contained in:
commit
6c82cc5c3d
62 changed files with 1784 additions and 226 deletions
|
@ -0,0 +1,30 @@
|
|||
# radarWatchdog.txt
|
||||
#
|
||||
# Controls how long to wait for products specified on the RPS list before
|
||||
# sounding an alarm. There are two sections: One defines VCP durations
|
||||
# and one that lists products to monitor.
|
||||
#
|
||||
# VCP duration format: <VCP number>|<duration in seconds>
|
||||
#
|
||||
# Product format: <product mnemonic>
|
||||
#
|
||||
# <product mnemonic> is a mnemonic found in radarInfo.txt.
|
||||
#
|
||||
#
|
||||
# If a product is listed, but is not actually in the current RPS list,
|
||||
# it will not be monitored.
|
||||
[VCP]
|
||||
11 | 300
|
||||
211 | 300
|
||||
12 | 270
|
||||
212 | 270
|
||||
21 | 360
|
||||
121 | 360
|
||||
221 | 360
|
||||
31 | 600
|
||||
32 | 600
|
||||
80 | 360
|
||||
90 | 360
|
||||
[Products]
|
||||
V
|
||||
Z
|
|
@ -124,6 +124,7 @@ public class RadarServer implements RadarEventListener {
|
|||
addListener(new DedicatedRadarActivator(this));
|
||||
addListener(new RequestScheduler(this));
|
||||
addListener(new RadarServerAvailable(this));
|
||||
addListener(new RadarWatchdogListener(configuration));
|
||||
}
|
||||
|
||||
public void addListener(RadarEventListener l) {
|
||||
|
|
|
@ -42,6 +42,7 @@ import com.raytheon.rcm.event.RadarEventAdapter;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* Nov 9, 2011 mnash Initial creation
|
||||
* 2012-07-27 DR 14896 D. Friedman Handle multiple RPGs.
|
||||
* 2014-05-22 DR 16319 dhuffman Change some methods to static.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -86,7 +87,7 @@ public class RadarServerAvailable extends RadarEventAdapter {
|
|||
}
|
||||
}
|
||||
|
||||
private void sendNotification(final String radarId, final String message) {
|
||||
public static void sendNotification(final String radarId, final String message) {
|
||||
getExecutorService().submit(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
@ -95,7 +96,7 @@ public class RadarServerAvailable extends RadarEventAdapter {
|
|||
});
|
||||
}
|
||||
|
||||
private void sendNotification2(String radarId, String message) {
|
||||
private static void sendNotification2(String radarId, String message) {
|
||||
ProcessBuilder builder;
|
||||
Process proc = null;
|
||||
|
||||
|
|
|
@ -0,0 +1,259 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.rcm.server;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import com.raytheon.rcm.config.Configuration;
|
||||
|
||||
/**
|
||||
*
|
||||
* This class encapsulates the watchdog activity into a plugin for the
|
||||
* RadarServer.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------- ---------- ----------- --------------------------
|
||||
* May 12, 2014 DR 16319 dhuffman Initial creation.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author dhuffman
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class RadarWatchdog extends Thread {
|
||||
|
||||
private static Object semifore = new Object();
|
||||
|
||||
protected static class GsmItem {
|
||||
protected String radarID;
|
||||
protected int vcp;
|
||||
protected long time;
|
||||
protected long alarmTime;
|
||||
protected long nextAlarmTime;
|
||||
|
||||
protected GsmItem() {
|
||||
}
|
||||
}
|
||||
|
||||
protected static class RadarItem {
|
||||
protected String radarID;
|
||||
protected String mnemonic;
|
||||
protected long time;
|
||||
protected long messageTime;
|
||||
|
||||
protected RadarItem() {
|
||||
}
|
||||
}
|
||||
|
||||
private long startTime = 0;
|
||||
private long shortestWait = 0;
|
||||
private static final long fudgeTime = 30;
|
||||
|
||||
private static Map<String, GsmItem> mapGSM = new ConcurrentHashMap<String, GsmItem>();
|
||||
private static Map<String, Map<String, RadarItem>> mapMnemonic = new ConcurrentHashMap<String, Map<String, RadarItem>>();
|
||||
private static Map<Integer, Integer> mapDuration = new ConcurrentHashMap<Integer, Integer>();
|
||||
private static List<String> mapMnemonicProducts = new ArrayList<String>();
|
||||
|
||||
protected Configuration configuration;
|
||||
private static String configFileName = "radarWatchdog.txt";
|
||||
|
||||
protected RadarWatchdog(Configuration conf) {
|
||||
setDaemon(true);
|
||||
startTime = System.currentTimeMillis();
|
||||
configuration = conf;
|
||||
|
||||
loadConfigFile(configFileName);
|
||||
|
||||
Iterator<String> mnem = mapMnemonicProducts.iterator();
|
||||
while (mnem.hasNext()) {
|
||||
String mn = mnem.next();
|
||||
Map<String, RadarItem> mapRadar = new ConcurrentHashMap<String, RadarItem>();
|
||||
mapMnemonic.put(mn, mapRadar);
|
||||
}
|
||||
}
|
||||
|
||||
public GsmItem getGSMItem(final String radarID) {
|
||||
return mapGSM.get(radarID);
|
||||
}
|
||||
|
||||
public void putGSMItem(GsmItem gi) {
|
||||
if (gi != null) {
|
||||
mapGSM.put(gi.radarID, gi);
|
||||
}
|
||||
}
|
||||
|
||||
public RadarItem getRadarItem(final String Mnemonic, final String radarID) {
|
||||
Map<String, RadarItem> mapRadar = mapMnemonic.get(Mnemonic);
|
||||
if (mapRadar != null)
|
||||
return mapRadar.get(radarID);
|
||||
return null;
|
||||
}
|
||||
|
||||
public void putRadarItem(RadarItem ri) {
|
||||
if (ri != null) {
|
||||
Map<String, RadarItem> mapRadar = mapMnemonic.get(ri.mnemonic);
|
||||
if (mapRadar != null) {
|
||||
mapRadar.put(ri.radarID, ri);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
long currentTime = 0;
|
||||
shortestWait = 0;
|
||||
while (true) {
|
||||
|
||||
try {
|
||||
synchronized (semifore) {
|
||||
semifore.wait(shortestWait < 800 ? 800 : shortestWait);
|
||||
currentTime = System.currentTimeMillis();
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
patrol(currentTime);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void patrol(long currentTime) {
|
||||
long duration = 0;
|
||||
long adjustedTime = currentTime - fudgeTime;
|
||||
shortestWait = 0;
|
||||
Iterator<GsmItem> git = mapGSM.values().iterator();
|
||||
while (git.hasNext()) {
|
||||
GsmItem gi = git.next();
|
||||
if (mapDuration.get(gi.vcp) != null) {
|
||||
duration = mapDuration.get(gi.vcp) * 1000;
|
||||
|
||||
Iterator<String> mnem = mapMnemonicProducts.iterator();
|
||||
while (mnem.hasNext()) {
|
||||
String mn = mnem.next();
|
||||
Map<String, RadarItem> mapRadar = mapMnemonic.get(mn);
|
||||
if (mapRadar == null)
|
||||
continue;
|
||||
RadarItem ri = mapRadar.get(gi.radarID);
|
||||
|
||||
if (ri == null) {
|
||||
if (duration + startTime < adjustedTime
|
||||
&& gi.alarmTime != startTime) {
|
||||
alert(duration, gi, mn);
|
||||
gi.alarmTime = startTime;
|
||||
gi.nextAlarmTime = startTime + duration;
|
||||
}
|
||||
|
||||
if (shortestWait < 1 || duration < shortestWait)
|
||||
shortestWait = duration;
|
||||
}
|
||||
|
||||
if (ri != null) {
|
||||
|
||||
if (ri.time + duration < adjustedTime) {
|
||||
if (ri.time <= gi.alarmTime
|
||||
&& gi.nextAlarmTime < currentTime) {
|
||||
alert(duration, gi, ri.mnemonic);
|
||||
gi.alarmTime = ri.time;
|
||||
gi.nextAlarmTime = currentTime + duration;
|
||||
}
|
||||
if (gi.nextAlarmTime < currentTime)
|
||||
gi.alarmTime = ri.time;
|
||||
}
|
||||
|
||||
if ((duration + ri.time) - adjustedTime < shortestWait
|
||||
&& 1 <= (duration + ri.time) - adjustedTime)
|
||||
shortestWait = (duration + ri.time) - adjustedTime;
|
||||
if (shortestWait < 1)
|
||||
shortestWait = duration;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void alert(final long duration, final GsmItem gi, final String mn) {
|
||||
String AlertVizMessage = "Watchdog: Radar ";
|
||||
AlertVizMessage += gi.radarID + " has not produced a '" + mn
|
||||
+ "' product in the last " + duration / 1000 + " seconds.";
|
||||
RadarServerAvailable.sendNotification(gi.radarID, AlertVizMessage);
|
||||
}
|
||||
|
||||
public void notifyWatchdog() {
|
||||
synchronized (semifore) {
|
||||
semifore.notify();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean loadConfigFile(final String filename) {
|
||||
try {
|
||||
InputStream inFile = configuration.getDropInData(filename);
|
||||
InputStreamReader reader = new InputStreamReader(inFile);
|
||||
BufferedReader in = new BufferedReader(reader);
|
||||
String line;
|
||||
|
||||
while ((line = in.readLine()) != null) {
|
||||
if (line.contains("#"))
|
||||
continue;
|
||||
if (line.contains("["))
|
||||
break;
|
||||
}
|
||||
|
||||
while ((line = in.readLine()) != null) {
|
||||
if (line.contains("#"))
|
||||
continue;
|
||||
if (line.contains("["))
|
||||
break;
|
||||
String s[] = line.split("\\|");
|
||||
mapDuration.put(Integer.parseInt(s[0].trim()),
|
||||
Integer.parseInt(s[1].trim()));
|
||||
}
|
||||
|
||||
while ((line = in.readLine()) != null) {
|
||||
if (line.contains("#"))
|
||||
continue;
|
||||
if (line.contains("["))
|
||||
break;
|
||||
mapMnemonicProducts.add(line.trim());
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
Log.errorf(": watchdog: Error while loading config file %s",
|
||||
filename, e);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,139 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.rcm.server;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import com.raytheon.rcm.config.Configuration;
|
||||
import com.raytheon.rcm.event.RadarEvent;
|
||||
import com.raytheon.rcm.event.RadarEventAdapter;
|
||||
import com.raytheon.rcm.message.GSM;
|
||||
import com.raytheon.rcm.message.GraphicProduct;
|
||||
import com.raytheon.rcm.message.Message;
|
||||
import com.raytheon.rcm.message.GraphicProduct.PDB;
|
||||
import com.raytheon.rcm.products.ProductInfo;
|
||||
import com.raytheon.rcm.products.RadarProduct;
|
||||
import com.raytheon.rcm.server.RadarWatchdog;
|
||||
|
||||
/**
|
||||
*
|
||||
* This class listens to messages sent to the RadarServer, that the watchdog has
|
||||
* an interest in.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------- ---------- ----------- --------------------------
|
||||
* May 12, 2014 DR 16319 dhuffman Initial creation.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author dhuffman
|
||||
* @version 1.0
|
||||
*/
|
||||
public class RadarWatchdogListener extends RadarEventAdapter {
|
||||
|
||||
protected static RadarWatchdog radarWatchdog;
|
||||
|
||||
private static HashMap<String, String> mnemonicMap = new HashMap<String, String>();
|
||||
{
|
||||
mnemonicMap.put("HZ", "Z");
|
||||
mnemonicMap.put("HV", "V");
|
||||
mnemonicMap.put("HSW", "SW");
|
||||
}
|
||||
|
||||
public RadarWatchdogListener(Configuration configuration) {
|
||||
radarWatchdog = new RadarWatchdog(configuration);
|
||||
radarWatchdog.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleRadarEvent(RadarEvent event) {
|
||||
if (event.getType() == RadarEvent.MESSAGE_RECEIVED) {
|
||||
byte[] msg = event.getMessageData();
|
||||
int messageCode = Message.messageCodeOf(msg);
|
||||
if (messageCode == Message.GSM) {
|
||||
GSM gsm = null;
|
||||
try {
|
||||
gsm = GSM.decode(msg);
|
||||
} catch (Exception e) {
|
||||
// This message error will be reported by EventLogger.
|
||||
return;
|
||||
}
|
||||
|
||||
if (gsm != null) {
|
||||
RadarWatchdog.GsmItem gi = new RadarWatchdog.GsmItem();
|
||||
gi.radarID = event.getRadarID();
|
||||
gi.vcp = gsm.vcp;
|
||||
gi.time = gsm.time.getTimeInMillis();
|
||||
|
||||
RadarWatchdog.GsmItem oldgi = radarWatchdog
|
||||
.getGSMItem(gi.radarID);
|
||||
if (oldgi == null
|
||||
|| (oldgi != null && oldgi.time <= gi.time)) {
|
||||
radarWatchdog.putGSMItem(gi);
|
||||
}
|
||||
}
|
||||
|
||||
} else if (16 <= messageCode) {
|
||||
int mcode = 0;
|
||||
PDB pdb = null;
|
||||
RadarWatchdog.RadarItem ri = new RadarWatchdog.RadarItem();
|
||||
mcode = Message.messageCodeOf(msg);
|
||||
ri.messageTime = (Message.decodeHeader(msg).time)
|
||||
.getTimeInMillis();
|
||||
|
||||
RadarProduct rp = ProductInfo.getInstance().getPoductForCode(
|
||||
mcode);
|
||||
if (rp == null)
|
||||
return;
|
||||
|
||||
ri.mnemonic = rp.mnemonic;
|
||||
String newMnemonic = mnemonicMap.get(ri.mnemonic);
|
||||
if (newMnemonic != null)
|
||||
ri.mnemonic = newMnemonic;
|
||||
|
||||
try {
|
||||
pdb = GraphicProduct.pdbOfMessage(msg);
|
||||
} catch (Exception e) {
|
||||
// This message error will be reported by EventLogger.
|
||||
return;
|
||||
}
|
||||
|
||||
if (pdb != null) {
|
||||
ri.radarID = event.getRadarID();
|
||||
ri.time = System.currentTimeMillis();
|
||||
|
||||
RadarWatchdog.RadarItem oldri = radarWatchdog.getRadarItem(
|
||||
ri.mnemonic, ri.radarID);
|
||||
|
||||
if (oldri == null
|
||||
|| (oldri != null && oldri.messageTime <= ri.messageTime)) {
|
||||
radarWatchdog.putRadarItem(ri);
|
||||
radarWatchdog.notifyWatchdog();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -170,6 +170,7 @@ import com.vividsolutions.jts.geom.Envelope;
|
|||
* paint using the time in paintProps and
|
||||
* remove dead code in paintInternal
|
||||
* Apr 03, 2014 2737 randerso Uncommented out listers for iscParm inventory changed
|
||||
* May 20, 2014 15814 zhao Make image display for model Parm not affected by ISC mode
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -519,6 +520,8 @@ public class GFEResource extends
|
|||
.getValidPeriod());
|
||||
|
||||
boolean iscParm = this.parm.isIscParm();
|
||||
boolean modelParm = isModelParm();
|
||||
|
||||
if ((gd.length == 0) && !dataManager.getParmManager().iscMode()) {
|
||||
return;
|
||||
}
|
||||
|
@ -605,7 +608,7 @@ public class GFEResource extends
|
|||
VectorGridSlice vectorSlice = (VectorGridSlice) gs;
|
||||
Grid2DBit mask = parm.getDisplayAttributes().getDisplayMask();
|
||||
|
||||
if (dataManager.getParmManager().iscMode() || iscParm) {
|
||||
if ( (dataManager.getParmManager().iscMode() || iscParm) && !modelParm ) {
|
||||
vectorSlice = new VectorGridSlice();
|
||||
mask = dataManager.getIscDataAccess().getCompositeGrid(
|
||||
new GridID(this.parm, this.curTime.getRefTime()),
|
||||
|
@ -692,7 +695,7 @@ public class GFEResource extends
|
|||
ScalarGridSlice scalarSlice = (ScalarGridSlice) gs;
|
||||
Grid2DBit mask = parm.getDisplayAttributes().getDisplayMask();
|
||||
|
||||
if (dataManager.getParmManager().iscMode() || iscParm) {
|
||||
if ( (dataManager.getParmManager().iscMode() || iscParm) && !modelParm ) {
|
||||
scalarSlice = new ScalarGridSlice();
|
||||
mask = dataManager.getIscDataAccess().getCompositeGrid(
|
||||
new GridID(this.parm, this.curTime.getRefTime()),
|
||||
|
@ -736,7 +739,7 @@ public class GFEResource extends
|
|||
|
||||
Grid2DBit mask = parm.getDisplayAttributes().getDisplayMask();
|
||||
|
||||
if (dataManager.getParmManager().iscMode() || iscParm) {
|
||||
if ( (dataManager.getParmManager().iscMode() || iscParm) && !modelParm ) {
|
||||
slice = new DiscreteGridSlice();
|
||||
GridID gid = new GridID(parm, this.curTime.getRefTime());
|
||||
mask = dataManager.getIscDataAccess().getCompositeGrid(gid,
|
||||
|
@ -813,7 +816,7 @@ public class GFEResource extends
|
|||
|
||||
Grid2DBit mask = parm.getDisplayAttributes().getDisplayMask();
|
||||
|
||||
if (dataManager.getParmManager().iscMode() || iscParm) {
|
||||
if ( (dataManager.getParmManager().iscMode() || iscParm) && !modelParm ) {
|
||||
slice = new WeatherGridSlice();
|
||||
GridID gid = new GridID(parm, this.curTime.getRefTime());
|
||||
mask = dataManager.getIscDataAccess().getCompositeGrid(gid,
|
||||
|
@ -1592,4 +1595,14 @@ public class GFEResource extends
|
|||
}
|
||||
}
|
||||
|
||||
private boolean isModelParm() {
|
||||
String parmId = parm.getParmID().toString();
|
||||
if ( parmId.contains("__Fcst_") ||
|
||||
parmId.contains("__ISC_") ||
|
||||
parmId.contains("__Official_") ||
|
||||
parmId.contains("__Restore_")) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -464,6 +464,16 @@
|
|||
key="VGP" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Conv Precip"
|
||||
key="CP" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Max Updraft VV"
|
||||
key="MXUVV" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Max Downdraft VV"
|
||||
key="MXDVV" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Max Updraft Helicity"
|
||||
key="MAXUPHL" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Most Unstable BL Parcel Level"
|
||||
key="PLPL" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Max Lightning Threat"
|
||||
key="LTNG" indentText="true" />
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="toolbarSubMenu" menuText="Marine">
|
||||
|
@ -513,6 +523,12 @@
|
|||
key="BARO" indentText="false" />
|
||||
<contribute xsi:type="menuItem" menuText="Barometric Velocity"
|
||||
key="SPBARO" indentText="false" />
|
||||
<contribute xsi:type="menuItem" menuText="Tidal Height"
|
||||
key="ELEV" indentText="false" />
|
||||
<contribute xsi:type="menuItem" menuText="ET Storm Surge"
|
||||
key="ETSRG" indentText="false" />
|
||||
<contribute xsi:type="menuItem" menuText="Combined ET Surge and Tide Hgt"
|
||||
key="ETCWL" indentText="false" />
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="toolbarSubMenu" menuText="GFSLAMP Station">
|
||||
|
@ -1352,6 +1368,14 @@
|
|||
key="REFD" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Derived Composite"
|
||||
key="REFC" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="CAPPI"
|
||||
key="REFD" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="MAX 1hr CAPPI"
|
||||
key="MXREF" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Derived VIL"
|
||||
key="VILIQ" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Derived Echo Top"
|
||||
key="RETOP" indentText="true" />
|
||||
</contribute>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -114,6 +114,7 @@
|
|||
-->
|
||||
<contribute xsi:type="toolBarItem" toolItemName = "Hgt">
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="54ft" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="80m" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" menuText="1500 m" key="1.5km" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="0.5kmAgl" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="1kmAgl" indentText="false"/>
|
||||
|
@ -344,6 +345,7 @@
|
|||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="LowLyr" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="MidLyr" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="HiLyr" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="SIG0.8-0.5" indentText="false"/>
|
||||
<contribute xsi:type="titleImgItem" titleText="Pressure" displayImage="true" displayDashes="true"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="300MB-200MB" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="400MB-200MB" indentText="false"/>
|
||||
|
@ -356,6 +358,7 @@
|
|||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="850MB-700MB" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="925MB-700MB" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="925MB-850MB" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="1000MB-400MB" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="1000MB-500MB" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="1000MB-700MB" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="1000MB-850MB" indentText="false"/>
|
||||
|
@ -367,6 +370,7 @@
|
|||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="0-5kmAgl" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="0-6kmAgl" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="0-10kmAgl" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="2-5kmAgl" indentText="false"/>
|
||||
<contribute xsi:type="menuItem" textLookup="LevelMapping" key="3-6kmAgl" indentText="false"/>
|
||||
|
||||
<contribute xsi:type="toolbarSubMenu" menuText="thin layers">
|
||||
|
|
|
@ -1146,6 +1146,7 @@
|
|||
</Level>
|
||||
<Level displayName="Hi Layer" key="HiLyr" group="S">
|
||||
<DatabaseLevel levelName="HCY" levelOneValue="0" />
|
||||
<DatabaseLevel levelName="HCL" levelOneValue="0" />
|
||||
</Level>
|
||||
<Level displayName="Low Cloud Base" key="LowCloudBase" group="S">
|
||||
<DatabaseLevel levelName="LCBL" levelOneValue="0" />
|
||||
|
@ -1349,4 +1350,20 @@
|
|||
<Level displayName="Sea Surface" key="0BSS">
|
||||
<DatabaseLevel levelName="BSS" levelOneValue="0" />
|
||||
</Level>
|
||||
<Level displayName="80 m" key="80m" group="S">
|
||||
<DatabaseLevel levelName="FHAG" levelOneValue="80.0"
|
||||
unit="m" />
|
||||
</Level>
|
||||
<Level displayName="SIG0.8-0.5" key="SIG0.8-0.5" group="S">
|
||||
<DatabaseLevel levelName="SIG" levelOneValue="0.5"
|
||||
levelTwoValue="0.8" unit="m/s" />
|
||||
</Level>
|
||||
<Level displayName="1000MB-400MB" key="1000MB-400MB" group="C">
|
||||
<DatabaseLevel levelName="MB" levelOneValue="1000"
|
||||
levelTwoValue="400" unit="hPa" />
|
||||
</Level>
|
||||
<Level displayName="2-5km AGL" key="2-5kmAgl" group="C">
|
||||
<DatabaseLevel levelName="FHAG" levelOneValue="2000"
|
||||
levelTwoValue="5000.0" unit="m" />
|
||||
</Level>
|
||||
</LevelMappings>
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
<vbSource key="HiResW-NMM-PR" category="Volume" />
|
||||
<vbSource key="HiResW-NMM-SJU" category="Volume" />
|
||||
<vbSource key="HiResW-NMM-West" category="Volume" />
|
||||
<vbSource key="HRRR" category="Volume" />
|
||||
<vbSource key="MRF204" category="Volume" />
|
||||
<vbSource key="LAMPQPF" category="Volume" />
|
||||
<vbSource key="LAPS" category="Volume" />
|
||||
|
@ -67,6 +68,8 @@
|
|||
<vbSource key="DHM" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="ENPWAVE253" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="EPwave10" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="estofsUS" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="estofsPR" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="GFE" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="GFS199" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="GFSGuide" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
|
|
|
@ -1,113 +0,0 @@
|
|||
#! /bin/ksh
|
||||
## create new directories for dual-pol products and logs in redmine ticket3454 in A2 14.3.1
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/daa_decoded ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/daa_decoded
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/daa_decoded
|
||||
fi
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/daa_archive ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/daa_archive
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/daa_archive
|
||||
fi
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/rdmosaic ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/rdmosaic
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/rdmosaic
|
||||
fi
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/bdmosaic ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/bdmosaic
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/bdmosaic
|
||||
fi
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/ldmosaic ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/ldmosaic
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/ldmosaic
|
||||
fi
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/mdmosaic ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/mdmosaic
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/mdmosaic
|
||||
fi
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/mldmosaic ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/mldmosaic
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/mldmosaic
|
||||
fi
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/avgrdmosaic ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/avgrdmosaic
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/avgrdmosaic
|
||||
fi
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/maxrdmosaic ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/maxrdmosaic
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/maxrdmosaic
|
||||
fi
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/locspandp ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/locspandp
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/locspandp
|
||||
fi
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/locbiasdp ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/locbiasdp
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/locbiasdp
|
||||
fi
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/state_var_dp ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/state_var_dp
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/state_var_dp
|
||||
fi
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/srdmosaic ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/srdmosaic
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/srdmosaic
|
||||
fi
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/srdgmosaic ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/srdgmosaic
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/srdgmosaic
|
||||
fi
|
||||
|
||||
# create directory defined by the token dsa_grid_dir
|
||||
# this directory contains the decoded DSA products
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/dsa_decoded ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/dsa_decoded
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/dsa_decoded
|
||||
fi
|
||||
|
||||
# create directory defined by the token dpr_grid_dir
|
||||
# this directory contains the decoded DPR products.
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/dpr_decoded ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/dpr_decoded
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/dpr_decoded
|
||||
fi
|
||||
|
||||
# create directory for Post Analysis
|
||||
# this directory contains 1 hr QPE files generated by the Save/separate option
|
||||
|
||||
if [[ ! -d /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/post_analysis ]]
|
||||
then
|
||||
mkdir /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/post_analysis
|
||||
chmod 777 /awips2/edex/data/share/hydroapps/precip_proc/local/data/mpe/post_analysis
|
||||
fi
|
||||
|
|
@ -1,9 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<aliasList caseSensitive="true" namespace="gfeParamInfo">
|
||||
<alias base="estofsUS">ESTOFS</alias>
|
||||
<alias base="estofsPR">ESTOFS</alias>
|
||||
<alias base="GLERL">glerl</alias>
|
||||
<alias base="MPE-Local">localMPE</alias>
|
||||
<alias base="MPE-Mosaic">mosaicMPE</alias>
|
||||
<alias base="HPE">localHPE</alias>
|
||||
<alias base="HRRR">HRRR</alias>
|
||||
<alias base="BHPE">localBHPE</alias>
|
||||
<alias base="RFCqpf">qpf218</alias>
|
||||
<alias base="nogaps">nogaps</alias>
|
||||
|
|
|
@ -23,8 +23,10 @@
|
|||
<alias base="DIRSW">dirsw</alias>
|
||||
<alias base="DpD">dpd</alias>
|
||||
<alias base="DpT">dpt</alias>
|
||||
<alias base="ELEV">ELEV</alias>
|
||||
<alias base="EMSP">emsp</alias>
|
||||
<alias base="EPT">ept</alias>
|
||||
<alias base="ETSRG">ETSRG</alias>
|
||||
<alias base="GeH">geh</alias>
|
||||
<alias base="GH">gh</alias>
|
||||
<alias base="GVV">gvv</alias>
|
||||
|
@ -268,6 +270,7 @@
|
|||
<alias base="ThP6hr">thp6hr</alias>
|
||||
<alias base="Tmean">tmean</alias>
|
||||
<alias base="TOTSN">totsn</alias>
|
||||
<alias base="TP1hr">tp1hr</alias>
|
||||
<alias base="TP120hr">tp120hr</alias>
|
||||
<alias base="tp12c1">tp12c1</alias>
|
||||
<alias base="tp12c2">tp12c2</alias>
|
||||
|
|
|
@ -312,6 +312,9 @@ Hazards = ("Hazards", DISCRETE, "wwa", "Hazards", YES, HazardKeys, 4)
|
|||
# use in calculations) Either form may be used.
|
||||
ExtraWEPrecision = []
|
||||
|
||||
# Parms for ESTOFS
|
||||
AstroTide = ("AstroTide", SCALAR, "ft", "Astro Tide", 20.0, -8.0, 1, NO)
|
||||
StormSurge = ("StormSurge", SCALAR, "ft", "Storm Surge", 30.0, -5.0, 1, NO)
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
#
|
||||
|
@ -966,6 +969,7 @@ Official = ('Official', GRID, '', YES, YES, 1, 24)
|
|||
ISC = ('ISC', GRID, '', YES, NO, 1, 12)
|
||||
LAPS = ('LAPS', GRID, '', YES, NO, 1, 30)
|
||||
SAT = ('SAT', GRID, '', YES, NO, 1, 12)
|
||||
ESTOFS = ('ESTOFS', GRID, '', NO, NO, 2, 0)
|
||||
HPCGuide = ('HPCGuide', GRID, '', NO, NO, 2, 0)
|
||||
NAM12 = ('NAM12', GRID, '', NO, NO, 2, 0)
|
||||
NAM40 = ('NAM40', GRID, '', NO, NO, 2, 0)
|
||||
|
@ -988,6 +992,7 @@ GlobalWave = ('GlobalWave', GRID, '', NO, NO, 2, 0)
|
|||
GLWM = ('GLWM', GRID, '', NO, NO, 2, 0)##########DCS3499
|
||||
HIRESWarw = ('HIRESWarw', GRID, '', NO, NO, 2, 0)##########DCS3501
|
||||
HIRESWnmm = ('HIRESWnmm', GRID, '', NO, NO, 2, 0)
|
||||
HRRR = ("HRRR", GRID, '', NO, NO, 3, 0)
|
||||
#### SPC = ('SPC', GRID, '', NO, NO, 2, 0)###DR20634
|
||||
WCwave10 = ('WCwave10', GRID, '', NO, NO, 2, 0)
|
||||
WCwave4 = ('WCwave4', GRID, '', NO, NO, 2, 0)
|
||||
|
@ -1116,6 +1121,7 @@ elif SID == "SJU":
|
|||
('TPCWindProb', 'TPCProb'),
|
||||
('ECMWF-HiRes','ECMWFHiRes'),
|
||||
'RTOFS-Atlantic',
|
||||
('estofsPR', 'ESTOFS'),
|
||||
'NAHwave15',
|
||||
'NAHwave10',
|
||||
'NAHwave4',
|
||||
|
@ -1139,6 +1145,7 @@ elif SID in CONUS_EAST_SITES:
|
|||
D2DMODELS = [('GFS212', 'GFS40'),
|
||||
('AVN211', 'GFS80'),
|
||||
('ETA', 'NAM80'),
|
||||
('HRRR', 'HRRR'),
|
||||
('NGM', 'NGM80'),
|
||||
('MRF', 'gfsLR'),
|
||||
('RUC130', 'RUC13'),
|
||||
|
@ -1181,6 +1188,7 @@ elif SID in CONUS_EAST_SITES:
|
|||
('SPCGuide', 'SPC'),
|
||||
('ECMWF-HiRes','ECMWFHiRes'),
|
||||
('ENPWAVE253', 'ENPwave'),
|
||||
('estofsUS', 'ESTOFS'),
|
||||
'NAHwave15',
|
||||
'NAHwave10',
|
||||
'NAHwave4',
|
||||
|
@ -1439,6 +1447,7 @@ elif SID == "SJU":
|
|||
# "EPwave10" : ["EPwEave10"],
|
||||
"RTMA": ['RTMA'],
|
||||
"NamDNG5" : ["NamDNG5"],
|
||||
"ESTOFS" : ["ESTOFS"],
|
||||
}
|
||||
|
||||
# Guam OCONUS
|
||||
|
@ -1471,6 +1480,7 @@ else:
|
|||
"RTMA": ['RTMA'],
|
||||
"NamDNG5" : ["NamDNG5"],
|
||||
"SREF" : ["SREF"],
|
||||
"HRRR" : ['HRRR'],
|
||||
#########DCS3501
|
||||
"GLWM" : ["GLWM"],
|
||||
"HIRESWarw" : ["HIRESWarw"],
|
||||
|
@ -1483,6 +1493,7 @@ else:
|
|||
# "WNAwave10" : ["WNAwave10"],
|
||||
# "WNAwave4" : ["WNAwave4"],
|
||||
# "ENPwave": ["ENPwave"],
|
||||
"ESTOFS" : ["ESTOFS"],
|
||||
}
|
||||
|
||||
#initialization skip certain model runs
|
||||
|
@ -1506,6 +1517,7 @@ D2DAccumulativeElements= {
|
|||
"GFS80": ["tp", "cp"],
|
||||
"GFS75": ["tp", "cp"],
|
||||
"GFS190": ["tp", "cp"],
|
||||
"HRRR": ["tp1hr", "crain", "csnow", "cfrzr", "cicep"],
|
||||
"NAM95": ["tp", "cp"],
|
||||
"NAM80": ["tp", "cp"],
|
||||
"NAM40": ["tp", "cp"],
|
||||
|
@ -1623,7 +1635,7 @@ localRTMAParms = []
|
|||
localNamDNG5Parms = []
|
||||
localSREFParms = []
|
||||
localTPCProbParms = []
|
||||
localISCExtraParms = []
|
||||
localHRRRParms = localESTOFSParms = localISCExtraParms = []
|
||||
|
||||
myOfficeType = SITES[GFESUITE_SITEID][5]
|
||||
|
||||
|
@ -1636,6 +1648,7 @@ if not BASELINE and siteImport('localConfig'):
|
|||
else:
|
||||
myOfficeType = SITES[GFESUITE_SITEID] #probably from localConfig
|
||||
|
||||
localESTOFSParms = getattr(localConfig, 'parmsESTOFS', localESTOFSParms)
|
||||
localParms = getattr(localConfig, 'parms', localParms)
|
||||
localNAM12Parms = getattr(localConfig, 'parmsNAM12', localNAM12Parms)
|
||||
localOPCWavEParms = getattr(localConfig, 'parmsOPCWavE', localOPCWavEParms)
|
||||
|
@ -1660,6 +1673,7 @@ if not BASELINE and siteImport('localConfig'):
|
|||
localGLWMParms = getattr(localConfig, 'parmsGLWM', localGLWMParms) #########DCS3499
|
||||
localHIRESWarwParms = getattr(localConfig, 'parmsHIRESWarw', localHIRESWarwParms) ########DCS3501
|
||||
localHIRESWnmmParms = getattr(localConfig, 'parmsHIRESWnmm', localHIRESWnmmParms)
|
||||
localHRRRParms = getattr(localConfig, 'parmsHRRR', localHRRRParms)
|
||||
#DR20634 localSPCParms = getattr(localConfig, 'parmsSPC', localSPCParms)
|
||||
localWNAWAVEParms = getattr(localConfig, 'parmsWNAWAVE', localWNAWAVEParms)
|
||||
localAKWAVEParms = getattr(localConfig, 'parmsAKWAVE', localAKWAVEParms)
|
||||
|
@ -1721,6 +1735,10 @@ STD1_MODEL = [([Temp, Td, RH, Wind, Wind20ft, Sky, FzLevel, SnowLevel], TC1),
|
|||
([MaxT], MaxTTC), ([MinT], MinTTC),
|
||||
([Wetflag], FireWx1300TC)]
|
||||
|
||||
ESTOFSPARMS = [([StormSurge, AstroTide], TC1)]
|
||||
|
||||
HRRRPARMS = [([Temp, Td, RH, Wind, WindGust, Sky, QPF], TC1)]
|
||||
|
||||
# 3 hourly
|
||||
STD3_MODEL = [([Temp, Td, RH, Wind, Wind20ft, Sky, FzLevel, SnowLevel], TC3),
|
||||
([Haines, MixHgt, FreeWind, TransWind], TC3),
|
||||
|
@ -1731,6 +1749,7 @@ STD3_MODEL = [([Temp, Td, RH, Wind, Wind20ft, Sky, FzLevel, SnowLevel], TC3),
|
|||
([MaxT], MaxTTC), ([MinT], MinTTC),
|
||||
([Wetflag], FireWx1300TC)]
|
||||
|
||||
|
||||
######DCS3501
|
||||
# 3 hourly-HIRESW
|
||||
STD3_MODEL_HIRESW = [([Temp, Td, RH, Wind, FzLevel], TC3),
|
||||
|
@ -1897,10 +1916,12 @@ DATABASES = [(Official, OFFICIALDBS + localParms),
|
|||
(AKwave10, WAVEPARMS + localAKwave10Parms),
|
||||
(AKwave4, WAVEPARMS + localAKwave4Parms),
|
||||
(EPwave10, WAVEPARMS + localEPwave10Parms),
|
||||
(ESTOFS, ESTOFSPARMS + localESTOFSParms),
|
||||
(GlobalWave, WAVEPARMS + localGlobalWaveParms),
|
||||
(GLWM, GLWMPARMS + localGLWMParms), #####DCS3499
|
||||
(HIRESWarw, STD3_MODEL + localHIRESWarwParms), #####DCS3501
|
||||
(HIRESWnmm, STD3_MODEL + localHIRESWnmmParms),
|
||||
(HRRR, HRRRPARMS + localHRRRParms),
|
||||
#DR20634 (SPC, SPCPARMS + localSPCParms),
|
||||
(WCwave10, WAVEPARMS + localWCwave10Parms),
|
||||
(WCwave4, WAVEPARMS + localWCwave4Parms),
|
||||
|
|
|
@ -0,0 +1,236 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<gridParamInfo xmlns:ns2="group">
|
||||
<valtimeMINUSreftime>
|
||||
<fcst>0</fcst>
|
||||
<fcst>3600</fcst>
|
||||
<fcst>7200</fcst>
|
||||
<fcst>10800</fcst>
|
||||
<fcst>14400</fcst>
|
||||
<fcst>18000</fcst>
|
||||
<fcst>21600</fcst>
|
||||
<fcst>25200</fcst>
|
||||
<fcst>28800</fcst>
|
||||
<fcst>32400</fcst>
|
||||
<fcst>36000</fcst>
|
||||
<fcst>39600</fcst>
|
||||
<fcst>43200</fcst>
|
||||
<fcst>46800</fcst>
|
||||
<fcst>50400</fcst>
|
||||
<fcst>54000</fcst>
|
||||
<fcst>57600</fcst>
|
||||
<fcst>61200</fcst>
|
||||
<fcst>64800</fcst>
|
||||
<fcst>68400</fcst>
|
||||
<fcst>72000</fcst>
|
||||
<fcst>75600</fcst>
|
||||
<fcst>79200</fcst>
|
||||
<fcst>82800</fcst>
|
||||
<fcst>86400</fcst>
|
||||
<fcst>90000</fcst>
|
||||
<fcst>93600</fcst>
|
||||
<fcst>97200</fcst>
|
||||
<fcst>100800</fcst>
|
||||
<fcst>104400</fcst>
|
||||
<fcst>108000</fcst>
|
||||
<fcst>111600</fcst>
|
||||
<fcst>115200</fcst>
|
||||
<fcst>118800</fcst>
|
||||
<fcst>122400</fcst>
|
||||
<fcst>126000</fcst>
|
||||
<fcst>129600</fcst>
|
||||
<fcst>133200</fcst>
|
||||
<fcst>136800</fcst>
|
||||
<fcst>140400</fcst>
|
||||
<fcst>144000</fcst>
|
||||
<fcst>147600</fcst>
|
||||
<fcst>151200</fcst>
|
||||
<fcst>154800</fcst>
|
||||
<fcst>158400</fcst>
|
||||
<fcst>162000</fcst>
|
||||
<fcst>165600</fcst>
|
||||
<fcst>169200</fcst>
|
||||
<fcst>172800</fcst>
|
||||
<fcst>176400</fcst>
|
||||
<fcst>180000</fcst>
|
||||
<fcst>183600</fcst>
|
||||
<fcst>187200</fcst>
|
||||
<fcst>190800</fcst>
|
||||
<fcst>194400</fcst>
|
||||
<fcst>198000</fcst>
|
||||
<fcst>201600</fcst>
|
||||
<fcst>205200</fcst>
|
||||
<fcst>208800</fcst>
|
||||
<fcst>212400</fcst>
|
||||
<fcst>216000</fcst>
|
||||
<fcst>219600</fcst>
|
||||
<fcst>223200</fcst>
|
||||
<fcst>226800</fcst>
|
||||
<fcst>230400</fcst>
|
||||
<fcst>234000</fcst>
|
||||
<fcst>237600</fcst>
|
||||
<fcst>241200</fcst>
|
||||
<fcst>244800</fcst>
|
||||
<fcst>248400</fcst>
|
||||
<fcst>252000</fcst>
|
||||
<fcst>255600</fcst>
|
||||
<fcst>259200</fcst>
|
||||
<fcst>262800</fcst>
|
||||
<fcst>266400</fcst>
|
||||
<fcst>270000</fcst>
|
||||
<fcst>273600</fcst>
|
||||
<fcst>277200</fcst>
|
||||
<fcst>280800</fcst>
|
||||
<fcst>284400</fcst>
|
||||
<fcst>288000</fcst>
|
||||
<fcst>291600</fcst>
|
||||
<fcst>295200</fcst>
|
||||
<fcst>298800</fcst>
|
||||
<fcst>302400</fcst>
|
||||
<fcst>306000</fcst>
|
||||
<fcst>309600</fcst>
|
||||
<fcst>313200</fcst>
|
||||
<fcst>316800</fcst>
|
||||
<fcst>320400</fcst>
|
||||
<fcst>324000</fcst>
|
||||
<fcst>327600</fcst>
|
||||
<fcst>331200</fcst>
|
||||
<fcst>334800</fcst>
|
||||
<fcst>338400</fcst>
|
||||
<fcst>342000</fcst>
|
||||
<fcst>345600</fcst>
|
||||
<fcst>349200</fcst>
|
||||
<fcst>352800</fcst>
|
||||
<fcst>356400</fcst>
|
||||
<fcst>360000</fcst>
|
||||
<fcst>363600</fcst>
|
||||
<fcst>367200</fcst>
|
||||
<fcst>370800</fcst>
|
||||
<fcst>374400</fcst>
|
||||
<fcst>378000</fcst>
|
||||
<fcst>381600</fcst>
|
||||
<fcst>385200</fcst>
|
||||
<fcst>388800</fcst>
|
||||
<fcst>392400</fcst>
|
||||
<fcst>396000</fcst>
|
||||
<fcst>399600</fcst>
|
||||
<fcst>403200</fcst>
|
||||
<fcst>406800</fcst>
|
||||
<fcst>410400</fcst>
|
||||
<fcst>414000</fcst>
|
||||
<fcst>417600</fcst>
|
||||
<fcst>421200</fcst>
|
||||
<fcst>424800</fcst>
|
||||
<fcst>432000</fcst>
|
||||
<fcst>435600</fcst>
|
||||
<fcst>439200</fcst>
|
||||
<fcst>442800</fcst>
|
||||
<fcst>446400</fcst>
|
||||
<fcst>450000</fcst>
|
||||
<fcst>453600</fcst>
|
||||
<fcst>457200</fcst>
|
||||
<fcst>460800</fcst>
|
||||
<fcst>464400</fcst>
|
||||
<fcst>468000</fcst>
|
||||
<fcst>471600</fcst>
|
||||
<fcst>475200</fcst>
|
||||
<fcst>478800</fcst>
|
||||
<fcst>482400</fcst>
|
||||
<fcst>486000</fcst>
|
||||
<fcst>489600</fcst>
|
||||
<fcst>493200</fcst>
|
||||
<fcst>496800</fcst>
|
||||
<fcst>500400</fcst>
|
||||
<fcst>504000</fcst>
|
||||
<fcst>507600</fcst>
|
||||
<fcst>511200</fcst>
|
||||
<fcst>514800</fcst>
|
||||
<fcst>518400</fcst>
|
||||
<fcst>522000</fcst>
|
||||
<fcst>525600</fcst>
|
||||
<fcst>529200</fcst>
|
||||
<fcst>532800</fcst>
|
||||
<fcst>536400</fcst>
|
||||
<fcst>540000</fcst>
|
||||
<fcst>543600</fcst>
|
||||
<fcst>547200</fcst>
|
||||
<fcst>550800</fcst>
|
||||
<fcst>554400</fcst>
|
||||
<fcst>558000</fcst>
|
||||
<fcst>561600</fcst>
|
||||
<fcst>565200</fcst>
|
||||
<fcst>568800</fcst>
|
||||
<fcst>572400</fcst>
|
||||
<fcst>576000</fcst>
|
||||
<fcst>579600</fcst>
|
||||
<fcst>583200</fcst>
|
||||
<fcst>586800</fcst>
|
||||
<fcst>590400</fcst>
|
||||
<fcst>594000</fcst>
|
||||
<fcst>597600</fcst>
|
||||
<fcst>601200</fcst>
|
||||
<fcst>604800</fcst>
|
||||
<fcst>608400</fcst>
|
||||
<fcst>612000</fcst>
|
||||
<fcst>615600</fcst>
|
||||
<fcst>619200</fcst>
|
||||
<fcst>622800</fcst>
|
||||
<fcst>626400</fcst>
|
||||
<fcst>630000</fcst>
|
||||
<fcst>633600</fcst>
|
||||
<fcst>637200</fcst>
|
||||
<fcst>640800</fcst>
|
||||
<fcst>644400</fcst>
|
||||
<fcst>648000</fcst>
|
||||
</valtimeMINUSreftime>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>ETSRG</short_name>
|
||||
<long_name>Extra Tropical Storm Surge</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meters</udunits>
|
||||
<uiname>ETSRG</uiname>
|
||||
<valid_range>-3.0</valid_range>
|
||||
<valid_range>6.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC </levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>ELEV</short_name>
|
||||
<long_name>tide height</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meters</udunits>
|
||||
<uiname>ELEV</uiname>
|
||||
<valid_range>-3.0</valid_range>
|
||||
<valid_range>5.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC </levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>staticSpacing</short_name>
|
||||
<long_name>Grid spacing </long_name>
|
||||
<units>meters </units>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>staticTopo</short_name>
|
||||
<long_name>Topography </long_name>
|
||||
<units>meters </units>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>staticCoriolis</short_name>
|
||||
<long_name>Coriolis parameter </long_name>
|
||||
<units>/second </units>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
</gridParameterInfo>
|
||||
</gridParamInfo>
|
|
@ -0,0 +1,525 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<gridParamInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<valtimeMINUSreftime>
|
||||
<fcst>0</fcst>
|
||||
<fcst>3600</fcst>
|
||||
<fcst>7200</fcst>
|
||||
<fcst>10800</fcst>
|
||||
<fcst>14400</fcst>
|
||||
<fcst>18000</fcst>
|
||||
<fcst>21600</fcst>
|
||||
<fcst>25200</fcst>
|
||||
<fcst>28800</fcst>
|
||||
<fcst>32400</fcst>
|
||||
<fcst>36000</fcst>
|
||||
<fcst>39600</fcst>
|
||||
<fcst>43200</fcst>
|
||||
<fcst>46800</fcst>
|
||||
<fcst>50400</fcst>
|
||||
<fcst>54000</fcst>
|
||||
</valtimeMINUSreftime>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>refc</short_name>
|
||||
<long_name>composite radar reflectivity</long_name>
|
||||
<units>dBZ</units>
|
||||
<udunits>decibals</udunits>
|
||||
<uiname>Refc</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>100000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>EA</levelsDesc>
|
||||
<levels>
|
||||
<level>EA</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>refd</short_name>
|
||||
<long_name>derived radar reflectivity</long_name>
|
||||
<units>dBZ</units>
|
||||
<udunits>decibals</udunits>
|
||||
<uiname>Refd</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>100000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>FHAG 1000 HYB 1</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG1000</level>
|
||||
<level>HYB1</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>sli</short_name>
|
||||
<long_name>Surface lifted index</long_name>
|
||||
<units>K</units>
|
||||
<udunits>degree_Kelvin</udunits>
|
||||
<uiname>LftInd</uiname>
|
||||
<valid_range>-20.0</valid_range>
|
||||
<valid_range>20.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>MB 0>500</levelsDesc>
|
||||
<levels>
|
||||
<level>MB0500</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>cape</short_name>
|
||||
<long_name>Convective Available Potential Energy</long_name>
|
||||
<units>J/kg</units>
|
||||
<udunits>joule/Kilogram</udunits>
|
||||
<uiname>CAPE</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>6000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC BL 0>180 0>255</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
<level>BL0180</level>
|
||||
<level>BL0255</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>staticSpacing</short_name>
|
||||
<long_name>Grid spacing</long_name>
|
||||
<units>m</units>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>tp</short_name>
|
||||
<long_name>total precipitation</long_name>
|
||||
<units>mm</units>
|
||||
<udunits>millimeter</udunits>
|
||||
<uiname>totPrecip</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>weasd</short_name>
|
||||
<long_name>water equivalent of accumulated snow depth</long_name>
|
||||
<units>ml</units>
|
||||
<udunits>mil</udunits>
|
||||
<uiname>waterEqvAccSnowDepth</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>cpozp</short_name>
|
||||
<long_name>Probability of freezing precip</long_name>
|
||||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>FreezePcpProb</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>tcc</short_name>
|
||||
<long_name>Total Cloud Cover</long_name>
|
||||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>totalCldCvr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>EA</levelsDesc>
|
||||
<levels>
|
||||
<level>EA</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>lcdc</short_name>
|
||||
<long_name>Low-level cloud fraction</long_name>
|
||||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>lowLvlCldFr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>LCY</levelsDesc>
|
||||
<levels>
|
||||
<level>LCY</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>mcdc</short_name>
|
||||
<long_name>Mid-level cloud fraction</long_name>
|
||||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>midLvlCldFr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>MCY</levelsDesc>
|
||||
<levels>
|
||||
<level>MCY</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>hcdc</short_name>
|
||||
<long_name>High-level cloud fraction</long_name>
|
||||
<units>%</units>
|
||||
<udunits>percent</udunits>
|
||||
<uiname>highLvlCldFr</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>100.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>HCL</levelsDesc>
|
||||
<levels>
|
||||
<level>HCL</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>crain</short_name>
|
||||
<long_name>Categorical rain</long_name>
|
||||
<units>yes=1, no=0</units>
|
||||
<udunits />
|
||||
<uiname>CategoricalRain</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>uw</short_name>
|
||||
<long_name>u wind component</long_name>
|
||||
<units>m/s</units>
|
||||
<udunits>meter/sec</udunits>
|
||||
<uiname>uWind</uiname>
|
||||
<valid_range>-150.0</valid_range>
|
||||
<valid_range>150.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>10 FHAG</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG10</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>cin</short_name>
|
||||
<long_name>Convective Inhibition</long_name>
|
||||
<units>J/kg</units>
|
||||
<udunits>joule/Kilogram</udunits>
|
||||
<uiname>convInhib</uiname>
|
||||
<valid_range>-1000.0</valid_range>
|
||||
<valid_range>1000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC BL 0>255</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
<level>BL0255</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>mmsp</short_name>
|
||||
<long_name>pressure at mean sea level</long_name>
|
||||
<units>Pa</units>
|
||||
<udunits>pascal</udunits>
|
||||
<uiname>PMSL</uiname>
|
||||
<valid_range>80000.0</valid_range>
|
||||
<valid_range>110000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>MSL</levelsDesc>
|
||||
<levels>
|
||||
<level>MSL</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>snd</short_name>
|
||||
<long_name>Snow depth</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meters</udunits>
|
||||
<uiname>snowDepth</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>10.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>csnow</short_name>
|
||||
<long_name>Categorical snow</long_name>
|
||||
<units>yes=1, no=0</units>
|
||||
<udunits />
|
||||
<uiname>CategoricalSnow</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>cicep</short_name>
|
||||
<long_name>Categorical ice pellets</long_name>
|
||||
<units>yes=1, no=0</units>
|
||||
<udunits />
|
||||
<uiname>CategoricalIcePlt</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>bli</short_name>
|
||||
<long_name>Best lifted index</long_name>
|
||||
<units>K</units>
|
||||
<udunits>degree_Kelvin</udunits>
|
||||
<uiname>bestLftInd</uiname>
|
||||
<valid_range>-20.0</valid_range>
|
||||
<valid_range>50.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>BL 0>180</levelsDesc>
|
||||
<levels>
|
||||
<level>BL0180</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>staticTopo</short_name>
|
||||
<long_name>Topography</long_name>
|
||||
<units>m</units>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>wgs</short_name>
|
||||
<long_name>Wind Gust Speed</long_name>
|
||||
<units>m/s</units>
|
||||
<udunits>meter/sec</udunits>
|
||||
<uiname>windGustSpeed</uiname>
|
||||
<valid_range>0</valid_range>
|
||||
<valid_range>150.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>10 FHAG</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG10</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>wgs1hr</short_name>
|
||||
<long_name>Max 1hr Wind Speed</long_name>
|
||||
<units>m/s</units>
|
||||
<udunits>meter/sec</udunits>
|
||||
<uiname>maxWindSpeed</uiname>
|
||||
<valid_range>0</valid_range>
|
||||
<valid_range>150.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>10 FHAG</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG10</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>dpt</short_name>
|
||||
<long_name>Dewpoint Temperature</long_name>
|
||||
<units>K</units>
|
||||
<udunits>degree_Kelvin</udunits>
|
||||
<uiname>Td</uiname>
|
||||
<valid_range>180.0</valid_range>
|
||||
<valid_range>330.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>FHAG 2</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG2</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>heli</short_name>
|
||||
<long_name>helicity sigma</long_name>
|
||||
<units>m/s2</units>
|
||||
<udunits>meter/second2</udunits>
|
||||
<uiname>hel</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>FHAG 1000 3000</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG1000</level>
|
||||
<level>FHAG3000</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>vis</short_name>
|
||||
<long_name>visibility</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meters</udunits>
|
||||
<uiname>Vis</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>100000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>vw</short_name>
|
||||
<long_name>v wind component</long_name>
|
||||
<units>m/s</units>
|
||||
<udunits>meter/sec</udunits>
|
||||
<uiname>vWind</uiname>
|
||||
<valid_range>-150.0</valid_range>
|
||||
<valid_range>150.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>10 FHAG</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG10</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>t</short_name>
|
||||
<long_name>Temperature</long_name>
|
||||
<units>K</units>
|
||||
<udunits>degree_Kelvin</udunits>
|
||||
<uiname>T</uiname>
|
||||
<valid_range>180.0</valid_range>
|
||||
<valid_range>330.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>2 FHAG</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG2</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>staticCoriolis</short_name>
|
||||
<long_name>Coriolis parameter</long_name>
|
||||
<units>s^-1</units>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>gh</short_name>
|
||||
<long_name>Geopotential height</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meters</udunits>
|
||||
<uiname>geoPotHt</uiname>
|
||||
<valid_range>-2000.0</valid_range>
|
||||
<valid_range>20000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>CBL CTL</levelsDesc>
|
||||
<levels>
|
||||
<level>CBL</level>
|
||||
<level>CTL</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>p</short_name>
|
||||
<long_name>pressure</long_name>
|
||||
<units>Pa</units>
|
||||
<udunits>pascal</udunits>
|
||||
<uiname>atmP</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>110000.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>pw</short_name>
|
||||
<long_name>precipitable water</long_name>
|
||||
<units>mm</units>
|
||||
<udunits>millimeter</udunits>
|
||||
<uiname>precipH2O</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>300.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>EA</levelsDesc>
|
||||
<levels>
|
||||
<level>EA</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>cfrzr</short_name>
|
||||
<long_name>Categorical freezing rain</long_name>
|
||||
<units>yes=1, no=0</units>
|
||||
<udunits />
|
||||
<uiname>CategoricalFrzRain</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>wd</short_name>
|
||||
<long_name>Wind Direction</long_name>
|
||||
<units>degreeTrue</units>
|
||||
<udunits>degree_True</udunits>
|
||||
<uiname>windDir</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>360.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>FHAG 10</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG10</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xsi:type="parameterInfo">
|
||||
<short_name>mwind</short_name>
|
||||
<long_name>Maximum Wind Speed</long_name>
|
||||
<units>m/s</units>
|
||||
<udunits>meter/sec</udunits>
|
||||
<uiname>maxWindSpeed</uiname>
|
||||
<valid_range>0</valid_range>
|
||||
<valid_range>150</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levelsDesc>10 FHAG</levelsDesc>
|
||||
<levels>
|
||||
<level>FHAG10</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
</gridParamInfo>
|
|
@ -0,0 +1,31 @@
|
|||
## ESTOFS
|
||||
|
||||
from Init import *
|
||||
|
||||
##--------------------------------------------------------------------------
|
||||
class ESTOFSForecaster(Forecaster):
|
||||
def __init__(self):
|
||||
Forecaster.__init__(self, "ESTOFS","ESTOFS")
|
||||
|
||||
|
||||
#===========================================================================
|
||||
# Ingest the gridded ESTOFS storm surge guidance
|
||||
#===========================================================================
|
||||
def calcStormSurge(self, ETSRG_SFC):
|
||||
|
||||
return ETSRG_SFC * 3.2808
|
||||
|
||||
#===========================================================================
|
||||
# Ingest the gridded ESTOFS storm surge guidance
|
||||
#===========================================================================
|
||||
def calcAstroTide(self, ELEV_SFC):
|
||||
|
||||
return ELEV_SFC * 3.2808
|
||||
|
||||
|
||||
def main():
|
||||
ESTOFSForecaster().run()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
184
edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/smartinit/HRRR.py
Executable file
184
edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/smartinit/HRRR.py
Executable file
|
@ -0,0 +1,184 @@
|
|||
#
|
||||
from Init import *
|
||||
##--------------------------------------------------------------------------
|
||||
class HRRRForecaster(Forecaster):
|
||||
def __init__(self):
|
||||
Forecaster.__init__(self, "HRRR","HRRR")
|
||||
|
||||
# def calcClgHgt(self, cc_CCL):
|
||||
# ceil = cc_CCL * .03280839
|
||||
# ceil = where(less_equal(ceil, 0.0), 250.0, ceil)
|
||||
# return ceil
|
||||
|
||||
def calcVis(self, vis_SFC):
|
||||
return (vis_SFC * 3.2808) / 5279.85564
|
||||
|
||||
def calcT(self, t_FHAG2):
|
||||
return self.KtoF(t_FHAG2)
|
||||
|
||||
def calcTd(self, dpt_FHAG2):
|
||||
return self.KtoF(dpt_FHAG2)
|
||||
|
||||
##--------------------------------------------------------------------------
|
||||
## Returns the maximum of the specified MaxT and the T grids
|
||||
##--------------------------------------------------------------------------
|
||||
## def calcMaxT(self, T, MaxT):
|
||||
## if MaxT is None:
|
||||
## return T
|
||||
## return maximum(MaxT, T)
|
||||
|
||||
##--------------------------------------------------------------------------
|
||||
## Returns the minimum of the specified MinT and T grids
|
||||
##--------------------------------------------------------------------------
|
||||
## def calcMinT(self, T, MinT):
|
||||
## if MinT is None:
|
||||
## return T
|
||||
## return minimum(MinT, T)
|
||||
|
||||
|
||||
def calcRH(self, T, Td):
|
||||
Tc = .556 * (T - 32.0)
|
||||
Tdc = .556 * (Td - 32.0)
|
||||
Vt = 6.11 * pow(10, (Tc * 7.5 / (Tc + 237.3)))
|
||||
Vd = 6.11 * pow(10, (Tdc * 7.5 / (Tdc + 237.3)))
|
||||
RH = (Vd / Vt) * 100.0
|
||||
# return the new value
|
||||
return RH
|
||||
|
||||
def dewFromTandRH(self,T,RH):
|
||||
tc=(T-32.0)*(5.0/9.0)
|
||||
rh=clip(RH,0.001,99.999)/100.0
|
||||
x=(log(rh)/17.67)+(tc/(tc+243.5))
|
||||
tdc=(243.5*x)/(1.0-x)
|
||||
td=(tdc*9.0/5.0)+32.0
|
||||
return td
|
||||
|
||||
##--------------------------------------------------------------------------
|
||||
# Calculates QPF from the total precip field out of the model
|
||||
##--------------------------------------------------------------------------
|
||||
def calcQPF(self, tp_SFC):
|
||||
return tp_SFC / 25.4 # convert from millimeters to inches
|
||||
|
||||
def calcQPF6(self, QPF, QPF6):
|
||||
if QPF6 is None:
|
||||
QPF6=QPF
|
||||
else:
|
||||
QPF6=QPF6+QPF
|
||||
return QPF6
|
||||
|
||||
def calcQPF12(self, QPF6, QPF12):
|
||||
if QPF12 is None:
|
||||
QPF12=QPF6
|
||||
else:
|
||||
QPF12=QPF12+QPF6
|
||||
return QPF12
|
||||
|
||||
##--------------------------------------------------------------------------
|
||||
## Converts the lowest available wind level from m/s to knots
|
||||
##--------------------------------------------------------------------------
|
||||
def calcWind(self, wind_FHAG10):
|
||||
return (wind_FHAG10[0] * 1.94,clip(wind_FHAG10[1], 0, 359.5))
|
||||
#
|
||||
# Return the max of the max wind or wind gust
|
||||
#
|
||||
def calcWindGust(self, wgs_FHAG10, wgs1hr_FHAG10):
|
||||
return (maximum(wgs_FHAG10,wgs1hr_FHAG10) * 1.94)
|
||||
#=========================================================================
|
||||
# SnowAmt - simple snow ratio based on surface temperature - multiplied
|
||||
# times the model QPF amount
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
def calcSnowAmt(self,T,QPF):
|
||||
m1=less(T,9.0)
|
||||
m2=greater_equal(T,30.0)
|
||||
snowr=(T*-0.5)+22.5
|
||||
snowr=where(m1,20,snowr)
|
||||
snowr=where(m2,0,snowr)
|
||||
snowamt=QPF*snowr
|
||||
return snowamt
|
||||
|
||||
##--------------------------------------------------------------------------
|
||||
## Use cloud base and cloud top to get sky cover
|
||||
##--------------------------------------------------------------------------
|
||||
|
||||
# def calcSky(self, gh_CBL, gh_CTL):
|
||||
# depth=gh_CTL-gh_CBL
|
||||
# c100=greater_equal(depth, 1000)
|
||||
# partialcloudy=depth/10
|
||||
# sky=0
|
||||
# sky=where(depth, c100, sky)
|
||||
## sky=where(depth, partialcloudy, sky)
|
||||
# return sky
|
||||
|
||||
|
||||
def calcSky(self,tcc_EA):
|
||||
return tcc_EA
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# PoP - based strongly on QPF (since when model has one inch of precip the
|
||||
# chance of getting 0.01 is pretty high). However, there is a big
|
||||
# difference between a place that model has 0.00 precip and is very
|
||||
# close to precipitating - and those where model has 0.00 and is a
|
||||
# thousand miles from the nearest cloud. Thus, uses the average
|
||||
#
|
||||
# Uses hyperbolic tangent of QPF, so that it rises quickly as model
|
||||
# QPF increases - but tapers out to nearly 100% as QPF gets high.
|
||||
#
|
||||
# Adjustable parameters:
|
||||
# topQPF is QPF amount that would give 75% PoP if nothing else
|
||||
# considered at half this amount, PoP is 45%, at double this
|
||||
# amount PoP is 96%. Default set at 0.40.
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# def calcPoP(self, QPF12):
|
||||
#
|
||||
# topQPF=0.40 # QPF value where raw PoP would be 75%
|
||||
# factor=tanh(QPF12*(1.0/topQPF))
|
||||
# factor2=tanh(QPF12*(2.0/topQPF))
|
||||
# pop=(factor*100.0)+(factor2*100.0)
|
||||
# pop=clip(pop,0,100)
|
||||
# return pop
|
||||
|
||||
##--------------------------------------------------------------------------
|
||||
## Use sky, reflecivity, qpf, vis, categoricals to get weather
|
||||
##--------------------------------------------------------------------------
|
||||
|
||||
def calcWx(self, T, QPF, Vsby, crain_SFC, csnow_SFC, cicep_SFC, bli_BL0180, cfrzr_SFC, refc_EA):
|
||||
|
||||
# Now apply a different algorithm for each type
|
||||
key = ['<NoCov>:<NoWx>:<NoInten>:<NoVis>:',
|
||||
"Wide:S:-:<NoVis>:", "Wide:R:-:<NoVis>:",
|
||||
"Wide:S:-:<NoVis>:^Wide:R:-:<NoVis>:",
|
||||
'Wide:ZR:-:<NoVis>:', 'Wide:IP:-:<NoVis>:',
|
||||
'Wide:ZR:-:<NoVis>:^Wide:IP:-:<NoVis>:',
|
||||
"Sct:SW:-:<NoVis>:", "Sct:RW:-:<NoVis>:",
|
||||
"Sct:SW:-:<NoVis>:^Sct:RW:-:<NoVis>:",
|
||||
"Chc:ZR:-:<NoVis>:", 'Chc:IP:-:<NoVis>:',
|
||||
'Chc:ZR:-:<NoVis>:^Chc:IP:-:<NoVis>:']
|
||||
|
||||
wx = self._empty
|
||||
wx = where(logical_and(greater(QPF,0.02),greater(T,35)), 2, wx)
|
||||
wx = where(equal(crain_SFC, 1), 2, wx)
|
||||
wx = where(equal(cfrzr_SFC, 1), 4, wx)
|
||||
wx = where(equal(cicep_SFC, 1), 5, wx)
|
||||
wx = where(equal(csnow_SFC, 1), 1, wx)
|
||||
|
||||
# Make showers (scattered/Chc)
|
||||
convecMask = less(refc_EA, 35)
|
||||
wx = where(logical_and(not_equal(wx, 0), convecMask), wx + 6, wx)
|
||||
|
||||
# Thunder
|
||||
for i in xrange(len(key)):
|
||||
tcov = string.split(key[i], ":")[0]
|
||||
if tcov == "Chc" or tcov == "<NoCov>":
|
||||
tcov = "Sct"
|
||||
key.append(key[i] + "^" + tcov
|
||||
+ ":T:<NoInten>:<NoVis>:")
|
||||
wx = where(logical_and(greater_equal(bli_BL0180, -3), greater_equal(refc_EA, 35)), wx + 13, wx)
|
||||
|
||||
# No wx where no qpf
|
||||
wx = where(less(QPF, 0.01), 0, wx)
|
||||
return(wx, key)
|
||||
|
||||
def main():
|
||||
HRRRForecaster().run()
|
|
@ -901,4 +901,9 @@
|
|||
<datasetId>PROB3HR</datasetId>
|
||||
<dt>3</dt>
|
||||
</info>
|
||||
<info>
|
||||
<title>HRRR</title>
|
||||
<datasetId>HRRR</datasetId>
|
||||
<dt>1</dt>
|
||||
</info>
|
||||
</datasetInfoSet>
|
||||
|
|
|
@ -10,46 +10,6 @@
|
|||
|
||||
<gribModelSet>
|
||||
<!-- SUBCENTER 0 -->
|
||||
<model>
|
||||
<name>estofsHW</name>
|
||||
<center>7</center>
|
||||
<subcenter>4</subcenter>
|
||||
<grid>321225001</grid>
|
||||
<process>
|
||||
<id>14</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>estofsAK</name>
|
||||
<center>7</center>
|
||||
<subcenter>4</subcenter>
|
||||
<grid>825553001</grid>
|
||||
<process>
|
||||
<id>14</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>estofsPR</name>
|
||||
<center>7</center>
|
||||
<subcenter>4</subcenter>
|
||||
<grid>339227001</grid>
|
||||
<process>
|
||||
<id>1</id>
|
||||
<id>14</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>estofsUS</name>
|
||||
<center>7</center>
|
||||
<subcenter>4</subcenter>
|
||||
<grid>2145137701</grid>
|
||||
<process>
|
||||
<id>1</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>GFSLAMP</name>
|
||||
|
@ -61,6 +21,15 @@
|
|||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>HRRR</name>
|
||||
<center>7</center>
|
||||
<subcenter>0</subcenter>
|
||||
<process>
|
||||
<id>83</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>ETA</name>
|
||||
<center>7</center>
|
||||
|
@ -2903,20 +2872,31 @@
|
|||
</model>
|
||||
|
||||
<model>
|
||||
<name>estofsUS</name>
|
||||
<name>estofsPR</name>
|
||||
<center>7</center>
|
||||
<subcenter>4</subcenter>
|
||||
<grid>1971</grid>
|
||||
<grid>339227001</grid>
|
||||
<process>
|
||||
<id>1</id>
|
||||
<id>14</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>estofsHW</name>
|
||||
<center>7</center>
|
||||
<subcenter>4</subcenter>
|
||||
<grid>321225001</grid>
|
||||
<process>
|
||||
<id>14</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<name>estofsPR</name>
|
||||
<name>estofsAK</name>
|
||||
<center>7</center>
|
||||
<subcenter>4</subcenter>
|
||||
<grid>339227-95</grid>
|
||||
<grid>825553001</grid>
|
||||
<process>
|
||||
<id>14</id>
|
||||
</process>
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<subGridDef>
|
||||
<modelNames>ESTOFS</modelNames>
|
||||
<referenceGrid>184</referenceGrid>
|
||||
<nx>800</nx>
|
||||
<ny>1000</ny>
|
||||
<!--
|
||||
<centerLatitude>36.5</centerLatitude>
|
||||
<centerLongitude>-81</centerLongitude>
|
||||
-->
|
||||
</subGridDef>
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<subGridDef>
|
||||
<modelNames>HRRR</modelNames>
|
||||
<referenceGrid>184</referenceGrid>
|
||||
<nx>500</nx>
|
||||
<ny>500</ny>
|
||||
<!--
|
||||
<centerLatitude>36.5</centerLatitude>
|
||||
<centerLongitude>-81</centerLongitude>
|
||||
-->
|
||||
</subGridDef>
|
|
@ -19,6 +19,22 @@
|
|||
further_licensing_information.
|
||||
-->
|
||||
<styleRuleset>
|
||||
<!-- ESTOFS -->
|
||||
<styleRule>
|
||||
<paramLevelMatches>
|
||||
<parameter>ELEV</parameter>
|
||||
<parameter>ETSRG</parameter>
|
||||
<parameter>ETCWL</parameter>
|
||||
</paramLevelMatches>
|
||||
<contourStyle>
|
||||
<displayUnits>ft</displayUnits>
|
||||
<displayFlags>NoPlane</displayFlags>
|
||||
<contourLabeling labelSpacing="4">
|
||||
<increment>1</increment>
|
||||
</contourLabeling>
|
||||
</contourStyle>
|
||||
</styleRule>
|
||||
|
||||
<!--
|
||||
* GH, GHxSM, zAGL
|
||||
dam | 0.1 | 0.0 | 4 | i4 | |..|8000F0FF| | 0 | 50
|
||||
|
|
|
@ -39,7 +39,17 @@
|
|||
</colorbarLabeling>
|
||||
</imageStyle>
|
||||
</styleRule>
|
||||
|
||||
<!-- ESTOFS -->
|
||||
<styleRule>
|
||||
<paramLevelMatches>
|
||||
<parameter>ELEV</parameter>
|
||||
<parameter>ETSRG</parameter>
|
||||
<parameter>ETCWL</parameter>
|
||||
</paramLevelMatches>
|
||||
<imageStyle>
|
||||
<displayUnits>ft</displayUnits>
|
||||
</imageStyle>
|
||||
</styleRule>
|
||||
<!--
|
||||
* GH, GHxSM, Topo, zAGL
|
||||
km | 0.001 | 0.0 | 0 | 1 | | | 29 | -1 | 0.1
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
##### Evan Bookbinder 05-05-2013 handleClosesPoints and 3rd bullet changes (OVER & now)
|
||||
##### Evan Bookbinder 09-20-2013 Fixed rural area otherPoints in pathcast section, added rural phrase
|
||||
##### Qinglu Lin 03-17-2014 DR 16309. Updated inserttorwatches and insertsvrwatches.
|
||||
##### Qinglu Lin 05-13-2014 DR 17177. Updated secondBullet.
|
||||
####################################################################################################
|
||||
#*
|
||||
Mile Marker Test Code
|
||||
|
@ -203,7 +202,7 @@ ${dateUtil.period(${watches.getLatestTorTime()},${timeFormat.plain}, 15, ${local
|
|||
#if(${secondtimezone})
|
||||
/${dateUtil.format(${watch.getEndTime()}, ${timeFormat.plain}, 15, ${secondtimezone})}/##
|
||||
#end
|
||||
FOR##
|
||||
FOR ##
|
||||
#set($numPortions = ${list.size(${watch.getPortions()})})
|
||||
#set($count = 0)
|
||||
#foreach(${portion} in ${watch.getPortions()})
|
||||
|
@ -237,7 +236,7 @@ ${dateUtil.period(${watches.getLatestSvrTime()},${timeFormat.plain}, 15, ${local
|
|||
#if(${secondtimezone})
|
||||
/${dateUtil.format(${watch.getEndTime()}, ${timeFormat.plain}, 15, ${secondtimezone})}/##
|
||||
#end
|
||||
FOR##
|
||||
FOR ##
|
||||
#set($numPortions = ${list.size(${watch.getPortions()})})
|
||||
#set($count = 0)
|
||||
#foreach(${portion} in ${watch.getPortions()})
|
||||
|
@ -1143,13 +1142,10 @@ ${partOfArea}${area.name}...
|
|||
######### MACRO TO GENERATE SECOND BULLET (UNTIL XXXX AMPM TZ (DAY) IN WARNINGS ##########
|
||||
#macro(secondBullet $dateUtil $expire $timeFormat $localtimezone $secondtimezone $duration)
|
||||
#if(${duration} >= 360)
|
||||
#set($text = "UNTIL ${dateUtil.format(${expire}, ${timeFormat.plain}, 15, ${localtimezone})}")
|
||||
UNTIL ${dateUtil.format(${expire}, ${timeFormat.plain}, 15, ${localtimezone})}##
|
||||
#else
|
||||
#set($text = "UNTIL ${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${localtimezone})}")
|
||||
UNTIL ${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${localtimezone})}##
|
||||
#end
|
||||
#set($text = $text.replace("1200 PM", "NOON"))
|
||||
#set($text = $text.replace("1200 AM", "MIDNIGHT"))
|
||||
${text}##
|
||||
#if(${secondtimezone})
|
||||
#if(${duration} >= 360)
|
||||
/${dateUtil.format(${expire}, ${timeFormat.plain}, 15, ${secondtimezone})}/##
|
||||
|
|
|
@ -381,9 +381,19 @@ DENSE FOG WAS REDUCING VISIBILITIES TO BELOW ${visibility}. REDUCE YOUR SPEED...
|
|||
&&
|
||||
#end
|
||||
|
||||
#############
|
||||
## WATCHES ##
|
||||
#############
|
||||
#if(${list.contains($includedWatches, "torWatches")} && ${list.contains(${bullets}, "includeTorWatches")})
|
||||
#inserttorwatches(${watches}, ${list}, ${secondtimezone}, ${dateUtil}, ${timeFormat})
|
||||
#end
|
||||
#if(${list.contains(${includedWatches}, "svrWatches")} && ${list.contains(${bullets}, "includeSvrWatches")})
|
||||
#insertsvrwatches(${watches}, ${list}, ${secondtimezone}, ${dateUtil}, ${timeFormat})
|
||||
#end
|
||||
####################################
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
|
||||
|
||||
####################################
|
||||
#end
|
||||
|
||||
#printcoords(${areaPoly}, ${list})
|
||||
|
|
|
@ -124,6 +124,8 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletName="lightningCTA" bulletText="Intense lightning" parseString="INTENSE LIGHTNING IS OCCURRING WITH THIS STORM"/>
|
||||
<bullet bulletName="reportCTA" bulletText="Report severe weather to coast guard" parseString="REPORT SEVERE WEATHER TO THE COAST GUARD"/>
|
||||
<bullet bulletName="fogCTA" bulletText="Dense fog" parseString="DENSE FOG WAS REDUCING VISIBILITIES TO"/>
|
||||
<bullet bulletName="includeTorWatches" bulletText="Include Tornado Watches" bulletDefault="true" parseString=""/>
|
||||
<bullet bulletName="includeSvrWatches" bulletText="Include Severe Thunderstorm Watches" bulletDefault="true" parseString=""/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
<bulletActionGroup action="COR" phen="MA" sig="S">
|
||||
|
@ -164,6 +166,8 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletName="lightningCTA" bulletText="Intense lightning" parseString="INTENSE LIGHTNING IS OCCURRING WITH THIS STORM"/>
|
||||
<bullet bulletName="reportCTA" bulletText="Report severe weather to coast guard" parseString="REPORT SEVERE WEATHER TO THE COAST GUARD"/>
|
||||
<bullet bulletName="fogCTA" bulletText="Dense fog" parseString="DENSE FOG WAS REDUCING VISIBILITIES TO"/>
|
||||
<bullet bulletName="includeTorWatches" bulletText="Include Tornado Watches" bulletDefault="true" parseString=""/>
|
||||
<bullet bulletName="includeSvrWatches" bulletText="Include Severe Thunderstorm Watches" bulletDefault="true" parseString=""/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
|
|
@ -109,6 +109,8 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletName="frontalPassage" bulletText="cold frontal passage"/>
|
||||
<bullet bulletName="heavySnow" bulletText="heavy snow/low visibility"/>
|
||||
<bullet bulletName="snowAmt" bulletText="snowfall amounts"/>
|
||||
<bullet bulletName="includeTorWatches" bulletText="Include Tornado Watches" bulletDefault="true" parseString=""/>
|
||||
<bullet bulletName="includeSvrWatches" bulletText="Include Severe Thunderstorm Watches" bulletDefault="true" parseString=""/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
<bulletActionGroup action="COR">
|
||||
|
@ -144,6 +146,8 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletName="frontalPassage" bulletText="cold frontal passage"/>
|
||||
<bullet bulletName="heavySnow" bulletText="heavy snow/low visibility"/>
|
||||
<bullet bulletName="snowAmt" bulletText="snowfall amounts"/>
|
||||
<bullet bulletName="includeTorWatches" bulletText="Include Tornado Watches" bulletDefault="true" parseString=""/>
|
||||
<bullet bulletName="includeSvrWatches" bulletText="Include Severe Thunderstorm Watches" bulletDefault="true" parseString=""/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
|
|
@ -349,9 +349,10 @@ CONDITIONS CAN DETERIORATE RAPIDLY IN WINTER WEATHER SITUATIONS. BE PREPARED FOR
|
|||
#############
|
||||
## WATCHES ##
|
||||
#############
|
||||
#if(${list.contains($includedWatches, "includeSvrWatches")})
|
||||
#if(${list.contains($includedWatches, "torWatches")} && ${list.contains(${bullets}, "includeTorWatches")})
|
||||
#inserttorwatches(${watches}, ${list}, ${secondtimezone}, ${dateUtil}, ${timeFormat})
|
||||
|
||||
#end
|
||||
#if(${list.contains(${includedWatches}, "svrWatches")} && ${list.contains(${bullets}, "includeSvrWatches")})
|
||||
#insertsvrwatches(${watches}, ${list}, ${secondtimezone}, ${dateUtil}, ${timeFormat})
|
||||
#end
|
||||
####################################
|
||||
|
|
|
@ -116,7 +116,8 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletName="torrentialRainfallCTA" bulletText="Torrential rainfall" parseString="TORRENTIAL RAINFALL IS ALSO OCCURRING"/>
|
||||
<bullet bulletName="lawEnforcementCTA" bulletText="Report Svr Wx to Law Enforcement Agency" parseString="CONTACT YOUR NEAREST LAW ENFORCEMENT"/>
|
||||
<bullet bulletName="boatersCTA" bulletText="Over Lake - Boaters seek shelter" parseString="GET OUT OF THE WATER AND MOVE INDOORS"/>
|
||||
<bullet bulletName="includeSvrWatches" bulletText="Include Severe Thunderstorm Watches" bulletGroup="toggle2" bulletDefault="true" parseString=""/>
|
||||
<bullet bulletName="includeTorWatches" bulletText="Include Tornado Watches" bulletDefault="true" parseString=""/>
|
||||
<bullet bulletName="includeSvrWatches" bulletText="Include Severe Thunderstorm Watches" bulletDefault="true" parseString=""/>
|
||||
<bullet bulletText="******** WINTER WX CALLS TO ACTION (CHOOSE 1 OR MORE) *********" bulletType="title"/>
|
||||
<bullet bulletName="advisoryCTA" bulletText="Advisory may be required" bulletGroup="toggle3" parseString="STORMS MAY INTENSIFY...MONITOR TV"/>
|
||||
<bullet bulletName="advisoryEffectCTA" bulletText="Advisory in effect" bulletGroup="toggle3" parseString="FREQUENT CLOUD TO GROUND LIGHTNING IS OCCURRING"/>
|
||||
|
@ -172,7 +173,8 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletName="torrentialRainfallCTA" bulletText="Torrential rainfall" parseString="TORRENTIAL RAINFALL IS ALSO OCCURRING"/>
|
||||
<bullet bulletName="lawEnforcementCTA" bulletText="Report Svr Wx to Law Enforcement Agency" parseString="CONTACT YOUR NEAREST LAW ENFORCEMENT"/>
|
||||
<bullet bulletName="boatersCTA" bulletText="Over Lake - Boaters seek shelter" parseString="GET OUT OF THE WATER AND MOVE INDOORS"/>
|
||||
<bullet bulletName="includeSvrWatches" bulletText="Include Severe Thunderstorm Watches" bulletGroup="toggle2" bulletDefault="true" parseString=""/>
|
||||
<bullet bulletName="includeTorWatches" bulletText="Include Tornado Watches" bulletDefault="true" parseString=""/>
|
||||
<bullet bulletName="includeSvrWatches" bulletText="Include Severe Thunderstorm Watches" bulletDefault="true" parseString=""/>
|
||||
<bullet bulletText="******** WINTER WX CALLS TO ACTION (CHOOSE 1 OR MORE) *********" bulletType="title"/>
|
||||
<bullet bulletName="advisoryCTA" bulletText="Advisory may be required" bulletGroup="toggle3" parseString="STORMS MAY INTENSIFY...MONITOR TV"/>
|
||||
<bullet bulletName="advisoryEffectCTA" bulletText="Advisory in effect" bulletGroup="toggle3" parseString="FREQUENT CLOUD TO GROUND LIGHTNING IS OCCURRING"/>
|
||||
|
|
|
@ -22,6 +22,18 @@
|
|||
<Method name="Alias">
|
||||
<Field abbreviation="CCOV"/>
|
||||
</Method>
|
||||
<Method name="Alias" models="HRRR">
|
||||
<Field abbreviation="TCC"/>
|
||||
</Method>
|
||||
<Method name="Alias" levels="HiLyr">
|
||||
<Field abbreviation="HCDC" level="HiLyr"/>
|
||||
</Method>
|
||||
<Method name="Alias" levels="MidLyr">
|
||||
<Field abbreviation="MCDC" level="MidLyr"/>
|
||||
</Method>
|
||||
<Method name="Alias" levels="LowLyr">
|
||||
<Field abbreviation="LCDC" level="LowLyr"/>
|
||||
</Method>
|
||||
<Method models="HPCGuide" displayName="Total Cloud Cover" name="Multiply">
|
||||
<Field abbreviation="TCC"/>
|
||||
<ConstantField value="100.0"/>
|
||||
|
|
|
@ -24,4 +24,7 @@
|
|||
<Field abbreviation="P"/>
|
||||
<ConstantField value="-2"/>
|
||||
</Method>
|
||||
<Method name="Alias">
|
||||
<Field abbreviation="GVV1hr"/>
|
||||
</Method>
|
||||
</DerivedParameter>
|
||||
|
|
|
@ -18,20 +18,5 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<lambertConformalGridCoverage>
|
||||
<name>2145137701</name>
|
||||
<description>Extratropical Storm and Tide Operation Forecast System</description>
|
||||
<la1>20.19</la1>
|
||||
<lo1>-121.55</lo1>
|
||||
<firstGridPointCorner>LowerLeft</firstGridPointCorner>
|
||||
<nx>2145</nx>
|
||||
<ny>1377</ny>
|
||||
<dx>1.25</dx>
|
||||
<dy>1.25</dy>
|
||||
<spacingUnit>km</spacingUnit>
|
||||
<minorAxis>6371200.0</minorAxis>
|
||||
<majorAxis>6371200.0</majorAxis>
|
||||
<lov>20.0</lov>
|
||||
<latin1>19.544</latin1>
|
||||
<latin2>-63.88</latin2>
|
||||
</lambertConformalGridCoverage>
|
||||
<DerivedParameter unit="" name="Max Lightning Threat (flashes/km^2)" abbreviation="LTNG">
|
||||
</DerivedParameter>
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<DerivedParameter abbreviation="MXDVV" name="Max Downdraft Vertical Velocity" unit="m/s" >
|
||||
<Method name="Alias">
|
||||
<Field abbreviation="MAXDVV1hr"/>
|
||||
</Method>
|
||||
</DerivedParameter>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<DerivedParameter abbreviation="MXREF" name="Max 1hr CAPPI" unit="dB" >
|
||||
<Method name="Alias" >
|
||||
<Field abbreviation="MAXREF1hr" />
|
||||
</Method>
|
||||
</DerivedParameter>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<DerivedParameter abbreviation="MAXUPHL" name="Max Updraft Helicity" unit="m^2/s^2" >
|
||||
<Method name="Alias" >
|
||||
<Field abbreviation="MXUPHL1hr" />
|
||||
</Method>
|
||||
</DerivedParameter>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<DerivedParameter abbreviation="MXUVV" name="Max Updraft Vertical Velocity" unit="m/s" >
|
||||
<Method name="Alias">
|
||||
<Field abbreviation="MAXUVV1hr"/>
|
||||
</Method>
|
||||
</DerivedParameter>
|
||||
|
|
@ -49,6 +49,9 @@
|
|||
<ConstantField value="-1e35"/>
|
||||
<ConstantField value="-1"/>
|
||||
</Method>
|
||||
<Method models="HRRR" name="Alias" levels="Skin" >
|
||||
<Field level="Surface" abbreviation="T"/>
|
||||
</Method>
|
||||
<Method models="SREF212" name="Alias">
|
||||
<Field abbreviation="Tmean"/>
|
||||
</Method>
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<DerivedParameter abbreviation="WGS1hr" name="Max 1-hr Wind Gust Speed" unit="m/s">
|
||||
<Method name="Alias" levels="Surface">
|
||||
<Field abbreviation="WGS1hr" level="10FHAG"/>
|
||||
</Method>
|
||||
<Method name="Vector" levels="Surface" >
|
||||
<Field abbreviation="MAXUW1hr" level="FHAG10" />
|
||||
<Field abbreviation="MAXVW1hr" level="FHAG10" />
|
||||
</Method>
|
||||
</DerivedParameter>
|
|
@ -732,6 +732,20 @@
|
|||
<versionsToKeep>5</versionsToKeep>
|
||||
<modTimeToWait>00-00:15:00</modTimeToWait>
|
||||
</rule>
|
||||
<!-- Purge rule for the HRRR model -->
|
||||
<rule>
|
||||
<keyValue>HRRR</keyValue>
|
||||
<versionsToKeep>4</versionsToKeep>
|
||||
</rule>
|
||||
<!-- Purge rule for the ESTOFS model -->
|
||||
<rule>
|
||||
<keyValue>estofsUS</keyValue>
|
||||
<versionsToKeep>2</versionsToKeep>
|
||||
</rule>
|
||||
<rule>
|
||||
<keyValue>estofsPR</keyValue>
|
||||
<versionsToKeep>2</versionsToKeep>
|
||||
</rule>
|
||||
<!-- Purge rule for the GFS199 (Guam-GFSDNG) model -->
|
||||
<rule>
|
||||
<keyValue>GFS199</keyValue>
|
||||
|
|
|
@ -98,13 +98,21 @@ public class PurgeJob extends Thread {
|
|||
// Flag used to track if this job has failed
|
||||
boolean failed = false;
|
||||
startTime = System.currentTimeMillis();
|
||||
PurgeLogger.logInfo("Purging expired data...", pluginName);
|
||||
if (this.purgeType.equals(PURGE_JOB_TYPE.PURGE_ALL)) {
|
||||
PurgeLogger.logInfo("Purging all data...", pluginName);
|
||||
} else {
|
||||
PurgeLogger.logInfo("Purging expired data...", pluginName);
|
||||
}
|
||||
PluginDao dao = null;
|
||||
|
||||
try {
|
||||
dao = PluginFactory.getInstance().getPluginDao(pluginName);
|
||||
if (dao.getDaoClass() != null) {
|
||||
dao.purgeExpiredData();
|
||||
if (this.purgeType.equals(PURGE_JOB_TYPE.PURGE_ALL)) {
|
||||
dao.purgeAllData();
|
||||
} else {
|
||||
dao.purgeExpiredData();
|
||||
}
|
||||
|
||||
PurgeLogger.logInfo("Data successfully Purged!", pluginName);
|
||||
|
||||
|
@ -121,10 +129,10 @@ public class PurgeJob extends Thread {
|
|||
"Unable to purge data. This plugin does not specify a record class and does not implement a custom purger.",
|
||||
pluginName);
|
||||
} else {
|
||||
if (this.purgeType.equals(PURGE_JOB_TYPE.PURGE_EXPIRED)) {
|
||||
dao.purgeExpiredData();
|
||||
} else {
|
||||
if (this.purgeType.equals(PURGE_JOB_TYPE.PURGE_ALL)) {
|
||||
dao.purgeAllData();
|
||||
} else {
|
||||
dao.purgeExpiredData();
|
||||
}
|
||||
|
||||
PurgeLogger.logInfo("Data successfully Purged!",
|
||||
|
|
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/daa_archive/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/daa_archive/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/daa_decoded/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/daa_decoded/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/dpr_decoded/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/dpr_decoded/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/dsa_decoded/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/dsa_decoded/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/bdmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/bdmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/ldmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/ldmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/locbiasdp/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/locbiasdp/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/locspandp/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/locspandp/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/mdmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/mdmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/mldmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/mldmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/rdmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/rdmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/srdgmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/srdgmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/srdmosaic/.gitignore
vendored
Normal file
0
nativeLib/files.native/awipsShare/hydroapps/precip_proc/local/data/mpe/srdmosaic/.gitignore
vendored
Normal file
|
@ -118,28 +118,6 @@ function captureQpidStat() {
|
|||
numQpidConnections=$( qpid-stat -c | wc -l )
|
||||
(( numQpidConnections-=3 ))
|
||||
echo -e "Total Number of QPID Connections: ${numQpidConnections}" >> ${logDirectory}/${nowTimeDate}-qpid-stat.out
|
||||
if [[ ${numQpidConnections} -ge $(( qpidConnLimit - qpidConnMedAlarm )) && ${numQpidConnections} -lt $(( qpidConnLimit - qpidConnHighAlarm )) ]] ; then
|
||||
echo -e "\tNOTE: Sending Warning ITO to NCF because number of connections is between $(( qpidConnLimit - qpidConnMedAlarm )) and $(( qpidConnLimit - qpidConnHighAlarm ))" >> ${logDirectory}/${nowTimeDate}-qpid-stat.out
|
||||
if [[ -f /opt/OV/bin/OpC/opcmsg ]] ; then
|
||||
/opt/OV/bin/OpC/opcmsg application=QPIDD object=QPIDD msg_text="Number Of Connections To QPID is between $(( qpidConnLimit - qpidConnMedAlarm )) and $(( qpidConnLimit - qpidConnHighAlarm )) : Please check for deadlock condition" severity=Warning msg_grp=AWIPS
|
||||
else
|
||||
echo -e "\tERROR - can not find /opt/OV/bin/OpC/opcmsg on $( hostname )" >> ${logDirectory}/${nowTimeDate}-qpid-stat.out
|
||||
fi
|
||||
elif [[ ${numQpidConnections} -ge $(( qpidConnLimit - qpidConnHighAlarm )) && ${numQpidConnections} -lt $(( qpidConnLimit - qpidConnCritAlarm )) ]] ; then
|
||||
echo -e "\tNOTE: Sending Major ITO to NCF because number of connections is between $(( qpidConnLimit - qpidConnHighAlarm )) and $(( qpidConnLimit - qpidConnCritAlarm ))" >> ${logDirectory}/${nowTimeDate}-qpid-stat.out
|
||||
if [[ -f /opt/OV/bin/OpC/opcmsg ]] ; then
|
||||
/opt/OV/bin/OpC/opcmsg application=QPIDD object=QPIDD msg_text="Number Of Connections To QPID is between $(( qpidConnLimit - qpidConnMedAlarm )) and $(( qpidConnLimit - qpidConnHighAlarm )) : Please check for deadlock condition" severity=Major msg_grp=AWIPS
|
||||
else
|
||||
echo -e "\tERROR - can not find /opt/OV/bin/OpC/opcmsg on $( hostname )" >> ${logDirectory}/${nowTimeDate}-qpid-stat.out
|
||||
fi
|
||||
elif [[ ${numQpidConnections} -ge $(( qpidConnLimit - qpidConnCritAlarm )) ]] ; then
|
||||
echo -e "\tNOTE: Sending CRITIAL ITO to NCF because number of connections is >= $(( qpidConnLimit - qpidConnCritAlarm ))" >> ${logDirectory}/${nowTimeDate}-qpid-stat.out
|
||||
if [[ -f /opt/OV/bin/OpC/opcmsg ]] ; then
|
||||
/opt/OV/bin/OpC/opcmsg application=QPIDD object=QPIDD msg_text="Number Of Connections To QPID is >= $(( qpidConnLimit - qpidConnCritAlarm )) -- Take IMMEDIATE action to prevent system failure" severity=Critical msg_grp=AWIPS
|
||||
else
|
||||
echo -e "\tERROR - can not find /opt/OV/bin/OpC/opcmsg on $( hostname )" >> ${logDirectory}/${nowTimeDate}-qpid-stat.out
|
||||
fi
|
||||
fi
|
||||
|
||||
echo >> ${logDirectory}/${nowTimeDate}-qpid-stat.out
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ listen_addresses = '*' # what IP address(es) to listen on;
|
|||
# defaults to 'localhost'; use '*' for all
|
||||
# (change requires restart)
|
||||
port = 5432 # (change requires restart)
|
||||
max_connections = 300 # (change requires restart)
|
||||
max_connections = 400 # (change requires restart)
|
||||
# Note: Increasing max_connections costs ~400 bytes of shared memory per
|
||||
# connection slot, plus lock space (see max_locks_per_transaction).
|
||||
#superuser_reserved_connections = 3 # (change requires restart)
|
||||
|
|
|
@ -727,3 +727,13 @@ HDS ^(JUTX(([2-4]1)|53)) (.{4}) (..)(..)(..)
|
|||
# C = West Conus H = Honolulu K = West Atl
|
||||
NGRID ^(E[HS-V][A-DG-KST][B-T]01) (KWBW) (..)(..)(..)
|
||||
FILE -overwrite -log -close -edex /data_store/grib2/(\3:yyyy)(\3:mm)\3/\4/RTOFS/\1_\2_\3\4\5_(seq).grib2.%Y%m%d%H
|
||||
|
||||
# ESTOFS
|
||||
# Pattern provided by Joshua.Watson.
|
||||
NGRID ^(E[EHC][IP][A-Z]88) (KWBM) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*)
|
||||
FILE -overwrite -log -close -edex /data_store/\6/(\3:yyyy)(\3:mm)\3/\4/\7/GRID\8/\(10)Z_\(11)_\(12)-\1_\2_\3\4\5_(seq).\6.%Y%m%d%H
|
||||
|
||||
# HRRR
|
||||
# Pattern provided by Joshua.Watson.
|
||||
NGRID ^(Y.C[A-MZ][089][0-9]) (KWBY) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*)
|
||||
FILE -overwrite -log -close -edex /data_store/\6/(\3:yyyy)(\3:mm)\3/\4/\7/GRID\8/\(10)Z_\(11)_\(12)-\1_\2_\3\4\5_(seq).\6.%Y%m%d%H
|
||||
|
|
|
@ -24,12 +24,12 @@ BuildRequires: awips2-postgresql = 9.2.3-1.el6
|
|||
BuildRequires: postgresql = 8.4.13-1.el6_3
|
||||
BuildRequires: postgresql-devel = 8.4.13-1.el6_3
|
||||
BuildRequires: postgresql-libs = 8.4.13-1.el6_3
|
||||
BuildRequires: wxGTK = 2.8.12-1.el6.rf
|
||||
BuildRequires: wxGTK-devel = 2.8.12-1.el6.rf
|
||||
BuildRequires: wxGTK >= 2.8.12-1
|
||||
BuildRequires: wxGTK-devel >= 2.8.12-1
|
||||
|
||||
provides: awips2-pgadmin3
|
||||
requires: awips2-psql = 9.2.3-1
|
||||
requires: wxGTK = 2.8.12-1.el6.rf
|
||||
requires: wxGTK >= 2.8.12-1
|
||||
|
||||
%description
|
||||
AWIPS II pgadmin3 Distribution - A custom compilation of the pgadmin3 client compatible with
|
||||
|
|
Loading…
Add table
Reference in a new issue