Merge branch 'ss_sync' (OB12.4.1-10) into 9-Wes2Bridge
Conflicts: ncep/gov.noaa.nws.ncep.common.dataplugin.mcidas/src/gov/noaa/nws/ncep/common/dataplugin/mcidas/McidasRecord.java ncep/gov.noaa.nws.ncep.common.dataplugin.ncpafm/src/gov/noaa/nws/ncep/common/dataplugin/ncpafm/NcPafmRecord.java ncep/gov.noaa.nws.ncep.common.dataplugin.ncuair/src/gov/noaa/nws/ncep/common/dataplugin/ncuair/NcUairRecord.java ncep/gov.noaa.nws.ncep.edex.plugin.mosaic/src/gov/noaa/nws/ncep/edex/plugin/mosaic/common/MosaicRecord.java All of these were 'self-resolved' when kdiff3 invoked Former-commit-id: f98354aae305ad227eaf3b36e4393b8aefc80f02
This commit is contained in:
commit
092efd6072
2312 changed files with 143907 additions and 136663 deletions
0
MHSEmulator/MHSEmulator.ecl
Normal file
0
MHSEmulator/MHSEmulator.ecl
Normal file
0
RadarServer/build.rcm/.project
Executable file → Normal file
0
RadarServer/build.rcm/.project
Executable file → Normal file
0
RadarServer/build.rcm/bits/bin/importAwips1
Executable file → Normal file
0
RadarServer/build.rcm/bits/bin/importAwips1
Executable file → Normal file
0
RadarServer/build.rcm/bits/bin/start
Executable file → Normal file
0
RadarServer/build.rcm/bits/bin/start
Executable file → Normal file
0
RadarServer/build.rcm/bits/bin/stop
Executable file → Normal file
0
RadarServer/build.rcm/bits/bin/stop
Executable file → Normal file
0
RadarServer/build.rcm/build.rcm.ecl
Normal file
0
RadarServer/build.rcm/build.rcm.ecl
Normal file
0
RadarServer/build.rcm/build.sh
Executable file → Normal file
0
RadarServer/build.rcm/build.sh
Executable file → Normal file
0
RadarServer/build.rcm/build.xml
Executable file → Normal file
0
RadarServer/build.rcm/build.xml
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.clear-air.VCP31
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.clear-air.VCP31
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.clear-air.VCP32
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.clear-air.VCP32
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.maint
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.maint
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP11
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP11
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP112
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP112
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP12
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP12
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP121
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP121
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP21
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP21
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP211
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP211
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP212
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP212
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP221
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP221
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP80
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP80
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP90
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/KXXX.storm.VCP90
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/prodList.txt
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/prodList.txt
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/rps-RPGOP-tcp.clear-air
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/rps-RPGOP-tcp.clear-air
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/rps-RPGOP-tcp.storm
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/rps-RPGOP-tcp.storm
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/rps-SPGOP-tcp.storm
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/rps-SPGOP-tcp.storm
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/tdwrProdList.txt
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/tdwrProdList.txt
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/wmoSiteInfo.txt
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/drop-ins/wmoSiteInfo.txt
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/persist/config.xml
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/persist/config.xml
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/start-config
Executable file → Normal file
0
RadarServer/build.rcm/cfgbits/data/config/start-config
Executable file → Normal file
|
@ -79,17 +79,24 @@ import com.raytheon.rcm.server.Log;
|
|||
import com.raytheon.rcm.server.RadarServer;
|
||||
import com.raytheon.rcm.server.StatusManager.RadarStatus;
|
||||
|
||||
|
||||
public class MsgServ implements RadarEventListener, MessageListener {
|
||||
|
||||
QueueConnection queueConn;
|
||||
|
||||
QueueSession queueSession;
|
||||
|
||||
QueueSender queueSender;
|
||||
|
||||
TopicConnection topicConn;
|
||||
|
||||
TopicSession topicSession;
|
||||
|
||||
TopicPublisher topicPublisher;
|
||||
|
||||
JAXBContext jaxbCtx;
|
||||
|
||||
Marshaller m;
|
||||
|
||||
Unmarshaller u;
|
||||
|
||||
Serv serv;
|
||||
|
@ -110,14 +117,16 @@ public class MsgServ implements RadarEventListener, MessageListener {
|
|||
TopicConnectionFactory tConnFac) {
|
||||
try {
|
||||
queueConn = qConnFac.createQueueConnection();
|
||||
queueSession = queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
|
||||
queueSession = queueConn.createQueueSession(false,
|
||||
Session.AUTO_ACKNOWLEDGE);
|
||||
Queue queue = queueSession.createQueue("RadarServer");
|
||||
queueSender = queueSession.createSender(null);
|
||||
QueueReceiver qr = queueSession.createReceiver(queue);
|
||||
qr.setMessageListener(this);
|
||||
|
||||
topicConn = tConnFac.createTopicConnection();
|
||||
topicSession = topicConn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
|
||||
topicSession = topicConn.createTopicSession(false,
|
||||
Session.AUTO_ACKNOWLEDGE);
|
||||
Topic topic = topicSession.createTopic("RadarEvents");
|
||||
topicPublisher = topicSession.createPublisher(topic);
|
||||
|
||||
|
@ -158,11 +167,13 @@ public class MsgServ implements RadarEventListener, MessageListener {
|
|||
try {
|
||||
po = handleRequest(replyToDestination, ro);
|
||||
} catch (RuntimeException e) {
|
||||
error = "Unexpected error while processing request: " + e.toString();
|
||||
error = "Unexpected error while processing request: "
|
||||
+ e.toString();
|
||||
exc = e;
|
||||
}
|
||||
} else if (o != null)
|
||||
error = String.format("Invalid request class '%s'", o.getClass());
|
||||
error = String.format("Invalid request class '%s'",
|
||||
o.getClass());
|
||||
} else
|
||||
error = "Invalid JMS message type";
|
||||
|
||||
|
@ -186,8 +197,7 @@ public class MsgServ implements RadarEventListener, MessageListener {
|
|||
Log.errorf("Error processing remote request: %s", e);
|
||||
return;
|
||||
}
|
||||
TextMessage rtm = queueSession.createTextMessage(
|
||||
sw.toString());
|
||||
TextMessage rtm = queueSession.createTextMessage(sw.toString());
|
||||
|
||||
String id = msg.getJMSCorrelationID();
|
||||
if (id == null)
|
||||
|
@ -212,13 +222,12 @@ public class MsgServ implements RadarEventListener, MessageListener {
|
|||
Log.eventf("Got remote request %s", ro);
|
||||
|
||||
if (ro instanceof GetRadarList)
|
||||
po = ReplyObj.toGetRadarList(
|
||||
serv.getRadarList());
|
||||
po = ReplyObj.toGetRadarList(serv.getRadarList());
|
||||
else if (ro instanceof GetRadarConfig) {
|
||||
GetRadarConfig grc = (GetRadarConfig) ro;
|
||||
if (grc.radarID != null)
|
||||
po = ReplyObj.toGetRadarConfig(
|
||||
serv.getRadarConfig(grc.radarID));
|
||||
po = ReplyObj
|
||||
.toGetRadarConfig(serv.getRadarConfig(grc.radarID));
|
||||
else
|
||||
po = ReplyObj.toGetRadarConfig(serv.getAllRadarConfigs());
|
||||
} else if (ro instanceof SetRadarConfig) {
|
||||
|
@ -227,28 +236,26 @@ public class MsgServ implements RadarEventListener, MessageListener {
|
|||
} else if (ro instanceof GetRadarStatusMessages) {
|
||||
GetRadarStatusMessages grs = (GetRadarStatusMessages) ro;
|
||||
if (grs.radarID != null)
|
||||
po = ReplyObj.toGetRadarStatusMessages(
|
||||
createROStatus(grs.radarID,
|
||||
serv.getRadarStatus(grs.radarID)));
|
||||
po = ReplyObj.toGetRadarStatusMessages(createROStatus(
|
||||
grs.radarID, serv.getRadarStatus(grs.radarID)));
|
||||
else {
|
||||
ArrayList<ROStatus> status = new ArrayList<ROStatus>();
|
||||
for (Map.Entry<String, ? extends RadarStatus> e :
|
||||
serv.getAllRadarStatus().entrySet()) {
|
||||
status.add(createROStatus(e.getKey(),
|
||||
e.getValue()));
|
||||
for (Map.Entry<String, ? extends RadarStatus> e : serv
|
||||
.getAllRadarStatus().entrySet()) {
|
||||
status.add(createROStatus(e.getKey(), e.getValue()));
|
||||
}
|
||||
po = ReplyObj.toGetRadarStatusMessages(status);
|
||||
}
|
||||
} else if (ro instanceof SendOneTimeRequests) {
|
||||
MsgServOtrHandler handler = null;
|
||||
|
||||
/* Correlation ID should be null so as to not intefere
|
||||
* with the handler list on the client side.
|
||||
/*
|
||||
* Correlation ID should be null so as to not intefere with the
|
||||
* handler list on the client side.
|
||||
*/
|
||||
/*
|
||||
String id = msg.getJMSCorrelationID();
|
||||
if (id == null)
|
||||
id = msg.getJMSMessageID();
|
||||
* String id = msg.getJMSCorrelationID(); if (id == null) id =
|
||||
* msg.getJMSMessageID();
|
||||
*/
|
||||
String id = null;
|
||||
if (replyToDestination != null)
|
||||
|
@ -268,15 +275,15 @@ public class MsgServ implements RadarEventListener, MessageListener {
|
|||
GetRpsList r = (GetRpsList) ro;
|
||||
if (r.radarID != null) {
|
||||
int vcp = r.vcp != null ? r.vcp : -1;
|
||||
int opMode = r.opMode != null ? r.opMode : GSM.OP_MODE_MAINTENANCE;
|
||||
int opMode = r.opMode != null ? r.opMode
|
||||
: GSM.OP_MODE_MAINTENANCE;
|
||||
RpsList rpsList = serv.getRpsList(r.radarID, opMode, vcp);
|
||||
po = new ReplyObj.RpsListReply(rpsList);
|
||||
/*
|
||||
if (rpsList != null)
|
||||
po = ReplyObj.toGetRpsList(rpsList);
|
||||
else
|
||||
error = String.format("Could not retrieve RPS list for radar %s%s",
|
||||
r.radarID, vcp != -1 ? ", VCP " + vcp : "");
|
||||
* if (rpsList != null) po = ReplyObj.toGetRpsList(rpsList);
|
||||
* else error =
|
||||
* String.format("Could not retrieve RPS list for radar %s%s",
|
||||
* r.radarID, vcp != -1 ? ", VCP " + vcp : "");
|
||||
*/
|
||||
} else
|
||||
error = "Must specify a radar name";
|
||||
|
@ -301,7 +308,8 @@ public class MsgServ implements RadarEventListener, MessageListener {
|
|||
po = r;
|
||||
} else if (ro instanceof SendAlertRequest) {
|
||||
SendAlertRequest ro2 = (SendAlertRequest) ro;
|
||||
error = serv.sendAlertRequest(ro2.radarID, ro2.areaIndex, ro2.alertRequest);
|
||||
error = serv.sendAlertRequest(ro2.radarID, ro2.areaIndex,
|
||||
ro2.alertRequest);
|
||||
} else if (ro instanceof SendMessageToRPG) {
|
||||
SendMessageToRPG ro2 = (SendMessageToRPG) ro;
|
||||
error = serv.sendMessageToRPG(ro2.radarID, ro2.message);
|
||||
|
@ -359,8 +367,7 @@ public class MsgServ implements RadarEventListener, MessageListener {
|
|||
return;
|
||||
}
|
||||
try {
|
||||
TextMessage tm = topicSession.createTextMessage(
|
||||
sw.toString());
|
||||
TextMessage tm = topicSession.createTextMessage(sw.toString());
|
||||
topicPublisher.publish(tm);
|
||||
} catch (JMSException e) {
|
||||
Log.errorf("Error sending message: %s", e);
|
||||
|
@ -374,6 +381,7 @@ public class MsgServ implements RadarEventListener, MessageListener {
|
|||
|
||||
class MsgServOtrHandler implements OTRHandler {
|
||||
Destination destination;
|
||||
|
||||
String correlationID;
|
||||
|
||||
public MsgServOtrHandler(Destination destination, String correlationID) {
|
||||
|
@ -384,11 +392,12 @@ public class MsgServ implements RadarEventListener, MessageListener {
|
|||
@Override
|
||||
public void handleOtrEvent(OtrEvent event) {
|
||||
OtrEvent eventToSend = event.clone();
|
||||
/* This OTR notification capability is currently only used to
|
||||
* display alerts in CAVE. Thus, there is no need to send the
|
||||
* actual product data. Given that some products can be larger
|
||||
* than one megabyte and the notification is in XML format,
|
||||
* this is a useful optimization.
|
||||
/*
|
||||
* This OTR notification capability is currently only used to
|
||||
* display alerts in CAVE. Thus, there is no need to send the actual
|
||||
* product data. Given that some products can be larger than one
|
||||
* megabyte and the notification is in XML format, this is a useful
|
||||
* optimization.
|
||||
*/
|
||||
if (event.product != null
|
||||
&& com.raytheon.rcm.message.Message
|
||||
|
@ -406,8 +415,7 @@ public class MsgServ implements RadarEventListener, MessageListener {
|
|||
return;
|
||||
}
|
||||
try {
|
||||
TextMessage rtm = queueSession.createTextMessage(
|
||||
sw.toString());
|
||||
TextMessage rtm = queueSession.createTextMessage(sw.toString());
|
||||
if (correlationID != null)
|
||||
rtm.setJMSCorrelationID(correlationID);
|
||||
queueSender.send(destination, rtm);
|
||||
|
|
0
cave/build/build.ecl
Normal file
0
cave/build/build.ecl
Normal file
|
@ -18,9 +18,13 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
Date DR# Engineer Description
|
||||
03/26/2012 12864 zhao Changed CigVisTrendTimeout from 300 to 1800
|
||||
-->
|
||||
<ClimateTimeouts>
|
||||
<ClimateMetarTimeout>20</ClimateMetarTimeout>
|
||||
<WindRoseTimeout>20</WindRoseTimeout>
|
||||
<CigVisDistTimeout>90</CigVisDistTimeout>
|
||||
<CigVisTrendTimeout>300</CigVisTrendTimeout>
|
||||
<CigVisTrendTimeout>1800</CigVisTrendTimeout>
|
||||
</ClimateTimeouts>
|
||||
|
|
|
@ -452,7 +452,8 @@ class Procedure (SmartScript.SmartScript):
|
|||
" locked by another user."
|
||||
self.statusBarMsg(msg, "S")
|
||||
continue
|
||||
gustGrid[windTooHigh] = windGrid
|
||||
|
||||
gustGrid = where(windTooHigh, windGrid, gustGrid)
|
||||
self.createGrid(MODEL, "WindGust", "SCALAR", gustGrid, tr)
|
||||
gustDict[tr] = gustGrid # update the gustDict
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ VariableList=[]
|
|||
VariableList.append(("Value:",1,"numeric"))
|
||||
VariableList.append(("Action:","Add","radio",["Add","Subtract","Multiply","Divide"]))
|
||||
VariableList.append(("Elevation:","None","radio",["None","Mountain","Valley","Specific"]))
|
||||
VariableList.append(("Vectors:","Magnitude","radio",["Both","Magnitude","Direction"]))
|
||||
VariableList.append(("Vectors:","Magnitude","radio",["Magnitude","Direction"]))
|
||||
VariableList.append(("Edge:","Flat","radio",["Flat","Edge","Taper"]))
|
||||
VariableList.append(("Edge Width:",5,"scale",[1,30],1))
|
||||
VariableList.append(("Specific Elevation:",5000,"numeric"))
|
||||
|
@ -76,7 +76,7 @@ class Tool (SmartScript.SmartScript):
|
|||
SmartScript.SmartScript.__init__(self, dbss)
|
||||
def preProcessTool(self):
|
||||
self.savemode=self.getVectorEditMode()
|
||||
self.setVectorEditMode("Both")
|
||||
self.setVectorEditMode("Magnitude")
|
||||
def postProcessTool(self):
|
||||
self.setVectorEditMode(self.savemode)
|
||||
def preProcessGrid(self,Topo,editArea,varDict):
|
||||
|
@ -167,7 +167,7 @@ class Tool (SmartScript.SmartScript):
|
|||
else:
|
||||
mag=variableElement[0]
|
||||
dir=variableElement[1]
|
||||
if ((vect=="Magnitude")or(vect=="Both")):
|
||||
if (vect=="Magnitude"):
|
||||
if (action=="Add"):
|
||||
newmag=mag+(self.deltagrid*deltavalue)
|
||||
elif (action=="Subtract"):
|
||||
|
|
|
@ -162,6 +162,7 @@ class DiscretePhrases(PhraseBuilder.PhraseBuilder):
|
|||
|
||||
timeDescriptor = self.headlinesTimeRange_descriptor(
|
||||
tree, node, key, tr, areaLabel, issuanceTime)
|
||||
from com.raytheon.uf.common.dataplugin.gfe.discrete import DiscreteKey
|
||||
headlineWords = DiscreteKey.discreteDefinition(siteId).keyDesc(
|
||||
"Hazards" + "_SFC", key)
|
||||
if headlineWords == "": # Don't process the "<None>" key
|
||||
|
|
121
cave/build/static/common/cave/etc/ncep/nsharp/nsharpConfig.xml
Normal file
121
cave/build/static/common/cave/etc/ncep/nsharp/nsharpConfig.xml
Normal file
|
@ -0,0 +1,121 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<NsharpConfigStore xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
|
||||
<graphProperty tempOffset="0" windBarbDistance="400" windBarb="true" corfidiV="false" omega="true" smvBunkersL="true" smvBunkersR="true" smv1585="false" smv3075="false" meanWind="true" hodo="true" cloud="false" effLayer="true" moistAdiabat="false" dryAdiabat="true" mixratio="false" wetBulb="true" vTemp="true" parcel="true" dewp="true" temp="true"/>
|
||||
<linePropertyMap>
|
||||
<Line lineName="Compare 6">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {0, 255, 255}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Compare 5">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {255, 215, 0}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Compare 4">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {30, 144, 255}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Icing EPI">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {255, 0, 255}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Compare 3">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {155, 0, 220}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Wind Barb">
|
||||
<lineProperty lineWidth="1" lineStyle="SOLID">
|
||||
<lineColor>RGB {255, 255, 0}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Icing RH">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {0, 255, 0}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Compare 9">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {0, 139, 0}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Compare 8">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {139, 0, 139}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Compare 7">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {139, 71, 38}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Compare 10">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {144, 238, 144}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Overlay 2">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {0, 255, 0}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Temperature">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {255, 0, 0}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Overlay 1">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {255, 0, 0}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Turbulence WindShear">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {255, 174, 185}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Compare 2">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {0, 255, 0}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Compare 1">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {255, 0, 0}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Icing Temp">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {255, 0, 0}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Wetbulb">
|
||||
<lineProperty lineWidth="1" lineStyle="SOLID">
|
||||
<lineColor>RGB {0, 255, 255}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Turbulence Ln">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {255, 0, 255}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Virtual Temp">
|
||||
<lineProperty lineWidth="2" lineStyle="SHORT_DASHED">
|
||||
<lineColor>RGB {255, 0, 0}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Dew Point">
|
||||
<lineProperty lineWidth="2" lineStyle="SOLID">
|
||||
<lineColor>RGB {0, 255, 0}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
<Line lineName="Parcel">
|
||||
<lineProperty lineWidth="1" lineStyle="SHORT_DASHED">
|
||||
<lineColor>RGB {255, 250, 250}</lineColor>
|
||||
</lineProperty>
|
||||
</Line>
|
||||
</linePropertyMap>
|
||||
</NsharpConfigStore>
|
0
cave/build/static/win32.x86/cave/lib/libgcc_s_dw2-1.dll
Executable file → Normal file
0
cave/build/static/win32.x86/cave/lib/libgcc_s_dw2-1.dll
Executable file → Normal file
0
cave/build/static/win32.x86/cave/lib/libgfortran-3.dll
Executable file → Normal file
0
cave/build/static/win32.x86/cave/lib/libgfortran-3.dll
Executable file → Normal file
0
cave/build/static/win32.x86/cave/lib/libquadmath-0.dll
Executable file → Normal file
0
cave/build/static/win32.x86/cave/lib/libquadmath-0.dll
Executable file → Normal file
|
@ -27,4 +27,8 @@
|
|||
<framesPerSecondPreference>25</framesPerSecondPreference>
|
||||
<tileBoundaries>false</tileBoundaries>
|
||||
<fontMagnification>1.0</fontMagnification>
|
||||
<qpid>
|
||||
<max_count>1000</max_count>
|
||||
<policy_type>ring</policy_type>
|
||||
</qpid>
|
||||
</configuration>
|
||||
|
|
|
@ -54,6 +54,7 @@ import com.raytheon.uf.viz.core.Activator;
|
|||
import com.raytheon.uf.viz.core.comm.JMSConnection;
|
||||
import com.raytheon.uf.viz.core.notification.INotificationObserver;
|
||||
import com.raytheon.uf.viz.core.notification.NotificationMessage;
|
||||
import com.raytheon.uf.viz.core.preferences.JMSPreferences;
|
||||
|
||||
/**
|
||||
* Job to monitor the JMS topic containing notification messages, delegating the
|
||||
|
@ -505,10 +506,11 @@ public class NotificationManagerJob implements ExceptionListener, IDisposable {
|
|||
disconnect();
|
||||
session = manager.connection.createSession(false,
|
||||
Session.AUTO_ACKNOWLEDGE);
|
||||
|
||||
if (session != null) {
|
||||
String topicName = id;
|
||||
Topic t = session.createTopic(topicName);
|
||||
|
||||
Topic t = session.createTopic(JMSPreferences
|
||||
.getPolicyString(topicName));
|
||||
if (queryString != null) {
|
||||
consumer = session.createConsumer(t, queryString);
|
||||
} else {
|
||||
|
|
|
@ -0,0 +1,148 @@
|
|||
/**
|
||||
* 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.uf.viz.core.preferences;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
|
||||
import com.raytheon.uf.viz.core.Activator;
|
||||
|
||||
/**
|
||||
* Serialized class for the JMS policy type
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Jan 30, 2012 mnash Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author mnash
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class JMSPreferences {
|
||||
|
||||
// these are the policy types as supported by QPID
|
||||
//
|
||||
// reject - reject the message if the topic is full
|
||||
//
|
||||
// ring - start overwriting messages in a ring based on sizing. If head
|
||||
// meets tail, advance head.
|
||||
//
|
||||
// flow to disk - flow the messages to disk to preserve memory
|
||||
//
|
||||
// ring strict - start overwriting messages in a ring based on sizing. If
|
||||
// head meets tail, AND the consumer has the tail message acquired it will
|
||||
// reject
|
||||
//
|
||||
public enum PolicyType {
|
||||
REJECT("reject"), RING("ring"), FLOW_TO_DISK("flow_to_disk"), RING_STRICT(
|
||||
"ring_strict");
|
||||
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* @return the type
|
||||
*/
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
private PolicyType(String name) {
|
||||
type = name;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// declare topic as ADDR, not BURL
|
||||
private static final String addressArgs = "ADDR:'amq.topic'/";
|
||||
|
||||
private static final String declareArgs = "; { node: { type: 'topic', x-declare: {arguments: {";
|
||||
|
||||
private static final String linkArgs = "}}}, link: { name: '";
|
||||
|
||||
private static final String linkDeclareArgs = "', x-declare: {arguments: {";
|
||||
|
||||
private static final String QPID_MAX_COUNT = "qpid.max_count";
|
||||
|
||||
private static final String QPID_POLICY_TYPE = "qpid.policy_type";
|
||||
|
||||
private static String policyType = "";
|
||||
|
||||
private static int maxVal = 0;
|
||||
|
||||
// putting together the arguments for the qpid queue
|
||||
public static String getPolicyString(String val) {
|
||||
// for qpid.policy_type, there is a corresponding constant in
|
||||
// QpidQueueOptions, but did not want to add a dependency
|
||||
|
||||
return addressArgs + val + declareArgs + "'" + QPID_MAX_COUNT + "':"
|
||||
+ getMaxCount() + ",'" + QPID_POLICY_TYPE + "':"
|
||||
+ getPolicyType() + linkArgs + val + UUID.randomUUID()
|
||||
+ linkDeclareArgs + "'" + QPID_MAX_COUNT + "':" + getMaxCount()
|
||||
+ ",'" + QPID_POLICY_TYPE + "':" + getPolicyType() + "}}}}";
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the policyTypeOption
|
||||
*/
|
||||
public static String getPolicyType() {
|
||||
if (policyType != null && !policyType.isEmpty()) {
|
||||
return policyType;
|
||||
}
|
||||
IPreferenceStore store = Activator.getDefault().getPreferenceStore();
|
||||
String value = store.getString(QPID_POLICY_TYPE);
|
||||
// validation
|
||||
for (PolicyType type : PolicyType.values()) {
|
||||
if (!type.getType().equals(value)) {
|
||||
policyType = value;
|
||||
}
|
||||
}
|
||||
// fail safe for bad configurations
|
||||
if (policyType == null || policyType.isEmpty()) {
|
||||
policyType = PolicyType.RING.getType();
|
||||
}
|
||||
return "'" + policyType + "'";
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the max count as given in the config.xml in the preference store
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static int getMaxCount() {
|
||||
if (maxVal != 0) {
|
||||
return maxVal;
|
||||
}
|
||||
IPreferenceStore store = Activator.getDefault().getPreferenceStore();
|
||||
maxVal = store.getInt(QPID_MAX_COUNT);
|
||||
|
||||
// fail safe
|
||||
if (maxVal == 0) {
|
||||
maxVal = 1000;
|
||||
}
|
||||
return maxVal;
|
||||
}
|
||||
}
|
|
@ -32,6 +32,7 @@ import com.raytheon.uf.common.message.IMessage;
|
|||
import com.raytheon.uf.common.serialization.SerializationException;
|
||||
import com.raytheon.uf.common.serialization.SerializationUtil;
|
||||
import com.raytheon.uf.viz.core.comm.JMSConnection;
|
||||
import com.raytheon.uf.viz.core.preferences.JMSPreferences;
|
||||
|
||||
/**
|
||||
* Sends messages to jms endpoints programmatically.
|
||||
|
@ -88,7 +89,8 @@ public class MessageSender {
|
|||
dest = session.createQueue(endpoint);
|
||||
}
|
||||
if (DestinationType.TOPIC.equals(type)) {
|
||||
dest = session.createTopic(endpoint);
|
||||
dest = session
|
||||
.createTopic(JMSPreferences.getPolicyString(endpoint));
|
||||
}
|
||||
return dest;
|
||||
|
||||
|
|
0
cave/com.raytheon.uf.viz.cwa/com.raytheon.uf.viz.cwa.ecl
Normal file
0
cave/com.raytheon.uf.viz.cwa/com.raytheon.uf.viz.cwa.ecl
Normal file
|
@ -61,6 +61,7 @@ import com.raytheon.uf.viz.core.rsc.IResourceDataChanged.ChangeType;
|
|||
import com.raytheon.uf.viz.core.rsc.IResourceGroup;
|
||||
import com.raytheon.uf.viz.core.rsc.LoadProperties;
|
||||
import com.raytheon.uf.viz.core.rsc.ResourceList;
|
||||
import com.raytheon.uf.viz.core.time.TimeMatchingJob;
|
||||
import com.raytheon.uf.viz.d2d.core.D2DLoadProperties;
|
||||
|
||||
/**
|
||||
|
@ -72,6 +73,7 @@ import com.raytheon.uf.viz.d2d.core.D2DLoadProperties;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Feb 10, 2009 chammack Initial creation
|
||||
* 2012-04-20 DR 14699 D. Friedman Work around race conditions
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -122,6 +124,10 @@ public class D2DTimeMatcher extends AbstractTimeMatcher implements
|
|||
|
||||
private AbstractTimeMatchingConfigurationFactory configFactory;
|
||||
|
||||
// DR 14699 work arounds
|
||||
private boolean needRetry;
|
||||
private int nRetries;
|
||||
|
||||
/**
|
||||
* Default Constructor.
|
||||
*/
|
||||
|
@ -152,6 +158,8 @@ public class D2DTimeMatcher extends AbstractTimeMatcher implements
|
|||
public void redoTimeMatching(IDescriptor descriptor) throws VizException {
|
||||
|
||||
synchronized (this) {
|
||||
needRetry = false;
|
||||
|
||||
if (timeMatchBasis != null) {
|
||||
IDescriptor tmDescriptor = timeMatchBasis.getDescriptor();
|
||||
if (tmDescriptor != null && tmDescriptor != descriptor) {
|
||||
|
@ -175,8 +183,11 @@ public class D2DTimeMatcher extends AbstractTimeMatcher implements
|
|||
Iterator<ResourcePair> pairIterator = descriptor.getResourceList()
|
||||
.listIterator();
|
||||
while (pairIterator.hasNext()) {
|
||||
AbstractVizResource<?, ?> rsc = pairIterator.next()
|
||||
ResourcePair rp = pairIterator.next();
|
||||
AbstractVizResource<?, ?> rsc = rp
|
||||
.getResource();
|
||||
if (rsc == null && rp.getResourceData() instanceof AbstractRequestableResourceData)
|
||||
needRetry = true;
|
||||
recursiveOverlay(descriptor, new FramesInfo(timeSteps, -1,
|
||||
resourceTimeMap), rsc);
|
||||
}
|
||||
|
@ -193,6 +204,14 @@ public class D2DTimeMatcher extends AbstractTimeMatcher implements
|
|||
timeMatchUpdate(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (needRetry) {
|
||||
if (nRetries < 200) {
|
||||
++nRetries;
|
||||
TimeMatchingJob.scheduleTimeMatch(descriptor);
|
||||
}
|
||||
} else
|
||||
nRetries = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -303,6 +322,8 @@ public class D2DTimeMatcher extends AbstractTimeMatcher implements
|
|||
if (rsc instanceof IResourceGroup) {
|
||||
for (ResourcePair rp : ((IResourceGroup) rsc).getResourceList()) {
|
||||
AbstractVizResource<?, ?> rsc1 = rp.getResource();
|
||||
if (rsc1 == null && rp.getResourceData() instanceof AbstractRequestableResourceData)
|
||||
needRetry = true;
|
||||
recursiveOverlay(descriptor, framesInfo, rsc1);
|
||||
}
|
||||
}
|
||||
|
@ -311,7 +332,9 @@ public class D2DTimeMatcher extends AbstractTimeMatcher implements
|
|||
TimeMatchingConfiguration config = getConfiguration(rsc
|
||||
.getLoadProperties());
|
||||
DataTime[] timeSteps = getFrameTimes(descriptor, framesInfo);
|
||||
if (Arrays.equals(timeSteps, config.getLastBaseTimes())) {
|
||||
if (Arrays.equals(timeSteps, config.getLastBaseTimes()) &&
|
||||
config.getLastFrameTimes() != null &&
|
||||
config.getLastFrameTimes().length > 0) {
|
||||
framesInfo.getTimeMap().put(rsc, config.getLastFrameTimes());
|
||||
} else {
|
||||
config = config.clone();
|
||||
|
|
|
@ -94,7 +94,7 @@ public class MdlSndNSharpResourceData extends D2DNSharpResourceData {
|
|||
|
||||
@Override
|
||||
protected NcSoundingCube getSoundingCube(NsharpStationInfo stnInfo) {
|
||||
float[][] latLon = { { stnInfo.getLatitude(), stnInfo.getLongitude() } };
|
||||
double[][] latLon = { { stnInfo.getLatitude(), stnInfo.getLongitude() } };
|
||||
return NcSoundingQuery.pfcSoundingQueryByLatLon(stnInfo.getReftime()
|
||||
.getTime(), stnInfo.getRangestarttime().getTime(), latLon,
|
||||
stnInfo.getSndType(), NcSoundingLayer.DataType.ALLDATA, false,
|
||||
|
|
|
@ -37,6 +37,28 @@
|
|||
</contourLabeling>
|
||||
</contourStyle>
|
||||
</styleRule>
|
||||
|
||||
<!--
|
||||
* GH, GHxSM, zAGL
|
||||
dam | 0.1 | 0.0 | 4 | i4 | |..|8000F0FF| | 0 | 50
|
||||
-->
|
||||
<!-- geopotential height (GH) rules for HRRR-East -->
|
||||
<styleRule>
|
||||
<paramLevelMatches>
|
||||
<parameter>GH</parameter>
|
||||
<parameter>GHxSM</parameter>
|
||||
<parameter>zAGL</parameter>
|
||||
<creatingEntity>HRRR-East</creatingEntity>
|
||||
<creatingEntity>HRRR-West</creatingEntity>
|
||||
</paramLevelMatches>
|
||||
<contourStyle>
|
||||
<displayUnits>ft</displayUnits>
|
||||
<contourLabeling labelSpacing="4" labelFormat="#">
|
||||
<increment>5000</increment>
|
||||
</contourLabeling>
|
||||
</contourStyle>
|
||||
</styleRule>
|
||||
|
||||
<!--
|
||||
* GH, GHxSM, Topo, Surface
|
||||
m | 1.0 | 0.0 | 4 | i4 | |..|8000F0FF| | 12 | 1 100 200 300 500 700 1000 1500 2000 2500 3000 3500
|
||||
|
@ -345,7 +367,7 @@ F | 1.8 |-459.67| 4 | | |..|8000F0FF| | 0 | 5
|
|||
<contourStyle>
|
||||
<displayUnits>F</displayUnits>
|
||||
<range scale="LINEAR">
|
||||
<minValue>-40</minValue>
|
||||
<minValue>-100</minValue>
|
||||
<maxValue>115</maxValue>
|
||||
</range>
|
||||
<contourLabeling>
|
||||
|
@ -962,7 +984,7 @@ PVU |1e5| 0.0 | 4 | | |..|8000F0FF| |16| \
|
|||
<parameter>MpV</parameter>
|
||||
</paramLevelMatches>
|
||||
<contourStyle>
|
||||
<displayUnits label="PVU">K/hPa/s*1.0E-5</displayUnits>
|
||||
<displayUnits label="PVU">K/hPa/s</displayUnits>
|
||||
<contourLabeling labelSpacing="4">
|
||||
<values>-1 -.5 -.1 0 1 1.5 2 3 4 5 6 8 10 12 15 20</values>
|
||||
</contourLabeling>
|
||||
|
|
|
@ -81,6 +81,8 @@ import com.raytheon.uf.viz.derivparam.tree.UnionLevelNode;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 17, 2010 bsteffen Initial creation
|
||||
* Apr 11, 2012 DR14666 porricel Modified resolveField to
|
||||
* use middle of layer for BL
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -1026,12 +1028,19 @@ public abstract class AbstractInventory implements DerivParamUpdateListener {
|
|||
// masterlevel name
|
||||
if (level.getMasterLevel().getName().equals(fieldParamAbbrev)) {
|
||||
|
||||
FloatRequestableData data = new FloatRequestableData(
|
||||
FloatRequestableData data;
|
||||
if (level.isRangeLevel() && fieldParamAbbrev.equals("BL")){
|
||||
// get midpoint of boundary layer
|
||||
data = new FloatRequestableData(
|
||||
(float) ((level.getLevelonevalue() + level.getLeveltwovalue())/2));
|
||||
}
|
||||
else {
|
||||
data = new FloatRequestableData(
|
||||
(float) level.getLevelonevalue());
|
||||
}
|
||||
data.setUnit(level.getMasterLevel().getUnit());
|
||||
return data;
|
||||
}
|
||||
|
||||
String validSource = field.getValidSource();
|
||||
SourceNode fieldSourceNode = sourceNode;
|
||||
|
||||
|
|
|
@ -57,6 +57,9 @@ import com.raytheon.uf.viz.derivparam.library.IDerivParamField;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Dec 14, 2009 rjpeter Initial creation
|
||||
* Apr 11, 2012 DR14666 porricel Modified getDataInternal to
|
||||
* use 0-30MB for derived boundary
|
||||
* layer
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -396,9 +399,12 @@ public class DerivedLevelNode extends AbstractDerivedLevelNode {
|
|||
if (record.getRequest().getBaseParams().size() == method
|
||||
.getFields().size()) {
|
||||
modifyRequest(record);
|
||||
// Define derived BL as 0-30MB
|
||||
if (record.getLevel().getMasterLevel().getName().equals("BL") && record.getLevel().getLevelOneValueAsString().equals("0.0") &&
|
||||
!record.getLevel().getLevelTwoValueAsString().equals("30.0"))
|
||||
continue;
|
||||
finalResponses.add(record);
|
||||
}
|
||||
|
||||
}
|
||||
return finalResponses;
|
||||
}
|
||||
|
|
0
cave/com.raytheon.uf.viz.ffg/com.raytheon.uf.viz.ffg.ecl
Normal file
0
cave/com.raytheon.uf.viz.ffg/com.raytheon.uf.viz.ffg.ecl
Normal file
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue