diff --git a/RadarServer/build.rcm/cfgbits/data/config/drop-ins/cronOTRs.xml b/RadarServer/build.rcm/cfgbits/data/config/drop-ins/cronOTRs.xml
index 8d07fc9780..0c532c4fb2 100644
--- a/RadarServer/build.rcm/cfgbits/data/config/drop-ins/cronOTRs.xml
+++ b/RadarServer/build.rcm/cfgbits/data/config/drop-ins/cronOTRs.xml
@@ -30,4 +30,6 @@
34 16
34 32
+
+
\ No newline at end of file
diff --git a/cave/build/static/common/cave/etc/bundles/DefaultRadarFourPanelBlendedBestRes.xml b/cave/build/static/common/cave/etc/bundles/DefaultRadarFourPanelBlendedBestRes.xml
index dd08b6641a..6806261a7d 100644
--- a/cave/build/static/common/cave/etc/bundles/DefaultRadarFourPanelBlendedBestRes.xml
+++ b/cave/build/static/common/cave/etc/bundles/DefaultRadarFourPanelBlendedBestRes.xml
@@ -68,9 +68,9 @@
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -224,9 +102,9 @@
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -400,9 +156,9 @@
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -574,9 +190,9 @@
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -754,264 +230,70 @@
-
+
-
+
-
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -1045,9 +327,9 @@
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -1219,9 +361,9 @@
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifySave.py b/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifySave.py
index 4372cb3b3a..ed335f7835 100644
--- a/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifySave.py
+++ b/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifySave.py
@@ -485,18 +485,16 @@ class Procedure (SmartScript.SmartScript):
#
# get History of last time this grid was modified
#
+ username = ""
+ updtime = None
historyList=self.getGridHistory(dbid,parm,"SFC",gridTR)
for hists in historyList:
for hist in hists:
if hist[4] not in [None, "None"]:
username=hist[4].split(':')[1]
- else:
- username=""
if hist[5] is not None:
updtime=hist[5].unixTime()
- else:
- updtime = None
if self.VU.getDebug()>=1:
t2=self.gstring1(time.gmtime(updtime))
@@ -830,6 +828,7 @@ class Procedure (SmartScript.SmartScript):
# different values from getComposite after IFPS16.
#
def getBetterComposite(self,parmName, timeRange):
+ from com.raytheon.uf.common.dataplugin.gfe.db.objects import GFERecord_GridType as GridType
#
# Get the type, rateParm flag, and limits
# for the parameter name passed in.
@@ -864,7 +863,7 @@ class Procedure (SmartScript.SmartScript):
sum=self._empty+150.0
else:
sum=self._empty
- if (wxType==1):
+ if GridType.VECTOR.equals(wxType):
sumv=self._empty
cnt = zeros_like(self._empty)
all = ones_like(self._empty)
@@ -880,7 +879,7 @@ class Procedure (SmartScript.SmartScript):
#
# Add to sums, or min/max
#
- if wxType==0: # SCALAR
+ if GridType.SCALAR.equals(wxType): # SCALAR
bits,isc=comp
#isc=self.getGrids("ISC",parmName,"SFC",tr)
#
@@ -904,14 +903,14 @@ class Procedure (SmartScript.SmartScript):
else:
sum=where(bits,sum+isc,sum)
cnt[bits] += 1
- if wxType==1: # VECTOR
+ if GridType.VECTOR.equals(wxType): # VECTOR
bits,mag,direc=comp
#(mag,dir)=self.getGrids("ISC",parmName,"SFC",tr)
(u,v)=self.MagDirToUV(mag,direc)
sum=where(bits,sum+u,sum)
sumv=where(bits,sumv+v,sumv)
cnt[bits] += 1
- if wxType==2: # WEATHER
+ if GridType.WEATHER.equals(wxType): # WEATHER
bits,keys,strings=comp
#(keys,strings)=self.getGrids("ISC",parmName,"SFC",tr)
#
@@ -920,9 +919,9 @@ class Procedure (SmartScript.SmartScript):
#
noISC=less(cnt,0.5)
bits=greater(cnt,0.5)
- if ((wxType==0)or(wxType==1)):
+ if GridType.SCALAR.equals(wxType) or GridType.VECTOR.equals(wxType):
cnt[less(cnt,1)] = 1
- if (wxType==1):
+ if GridType.VECTOR.equals(wxType):
sum=where(noISC,minlimit,sum/cnt)
sumv=where(noISC,minlimit,sumv/cnt)
(mag,direc)=self.UVToMagDir(sum,sumv)
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/PWS_Procedure.py b/cave/build/static/common/cave/etc/gfe/userPython/procedures/PWS_Procedure.py
index 4d5baf8fbf..1ba41d4ae4 100644
--- a/cave/build/static/common/cave/etc/gfe/userPython/procedures/PWS_Procedure.py
+++ b/cave/build/static/common/cave/etc/gfe/userPython/procedures/PWS_Procedure.py
@@ -97,8 +97,8 @@ class Procedure (SmartScript.SmartScript):
trList = []
for g in gridInfo:
- start = g.gridTime().startTime().unixTime()
- end = g.gridTime().endTime().unixTime()
+ start = g.gridTime().startTime().unixTime() * 1000
+ end = g.gridTime().endTime().unixTime() * 1000
tr = TimeRange.TimeRange(start,end)
if tr.overlaps(timeRange):
trList.append(tr)
@@ -243,7 +243,8 @@ class Procedure (SmartScript.SmartScript):
modelTR_cum = self.getModelTimeRange(modelID, "prob34", weNames)
weNames = ["pwsD34", "pwsD64", "pwsN34", "pwsN64"]
modelTR_inc = self.getModelTimeRange(modelID, "pws34", weNames)
-
+ if modelTR_cum is None or len(modelTR_cum) < 3:
+ return
timeRange = modelTR_cum[0]
minTime = modelTR_cum[1]
maxTime = modelTR_cum[2]
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/BOIVerifyUtility.py b/cave/build/static/common/cave/etc/gfe/userPython/utilities/BOIVerifyUtility.py
index c34271829b..09a02e0037 100644
--- a/cave/build/static/common/cave/etc/gfe/userPython/utilities/BOIVerifyUtility.py
+++ b/cave/build/static/common/cave/etc/gfe/userPython/utilities/BOIVerifyUtility.py
@@ -4367,13 +4367,13 @@ class BOIVerifyUtility(SmartScript.SmartScript):
recmatch=logical_and(recbase,recfit)
recnumbers=compress(recmatch,self.fncRecs)
recList=list(recnumbers)
- recList.sort(lambda x,y: cmp(self.fncStime[x],self.fncStime[y]))
+ recList.sort(lambda x,y: cmp(self.fncStime[int(x)],self.fncStime[int(y)]))
else:
recmatch=logical_and(greater(self.oncEtime,stime),
less(self.oncStime,etime))
recnumbers=compress(recmatch,self.oncRecs)
recList=list(recnumbers)
- recList.sort(lambda x,y: cmp(self.oncStime[x],self.oncStime[y]))
+ recList.sort(lambda x,y: cmp(self.oncStime[int(x)],self.oncStime[int(y)]))
self.logMsg("number of intersecting grids:%d"%len(recList),10)
if len(recList)<1:
return retVal
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/ProcessVariableList.py b/cave/build/static/common/cave/etc/gfe/userPython/utilities/ProcessVariableList.py
index b0aed174cc..2e06dff604 100644
--- a/cave/build/static/common/cave/etc/gfe/userPython/utilities/ProcessVariableList.py
+++ b/cave/build/static/common/cave/etc/gfe/userPython/utilities/ProcessVariableList.py
@@ -54,10 +54,9 @@ class ProcessVariableList:
## The following arguments are no longer used but remain part of the signature for compatibility reasons
## * parent - not needed
## * modal - similar functionality is achieved by setting or not setting a callback
- ## * dbSubsystem - not needed, see TODO
+ ## * dataMgr - required for model and D2D_model widgets
## * cmdLineVarDict - not needed, see TODO
##
- ## TODO evaluate cmdLineVarDict and determine if it is really not needed
## TODO dbSubsytem may be needed when implementing the model and D2D_model widgets
##
## @param title: str() of the title of the dialog that will appear
@@ -68,7 +67,7 @@ class ProcessVariableList:
## @param argList: list() of arguments to pass to the callback function
##
def __init__(self, title, varList, varDict=None, parent=None,
- dbSubsystem=None, modal=1, runCB=None, argList=[],
+ dataMgr=None, modal=1, runCB=None, argList=[],
cmdLineVarDict=None):
self.__varDict = varDict
@@ -80,7 +79,7 @@ class ProcessVariableList:
widgetList = buildWidgetList(varList)
# Construct the dialog
- self.__dialog = ValuesDialog.openDialog(title, widgetList)
+ self.__dialog = ValuesDialog.openDialog(title, widgetList, dataMgr)
#self.__dialog = ValuesDialog(title,widgetList)
# since ValuesDialog blocks on open() we can set status and varDict here
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py b/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py
index 9cd6a4cd40..2018230417 100644
--- a/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py
+++ b/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py
@@ -1838,12 +1838,8 @@ class SmartScript(BaseTool.BaseTool):
# @rtype: list of strings
def getDiscreteKeys(self, elementName):
parm = self.getParm("Fcst", elementName, "SFC")
- keyList = []
- inventory = parm.getGridInventory()
- for gridData in inventory:
- slice = gridData.getGridSlice()
- for discreteKey in slice.getKey():
- keyList.append(discreteKey.toString())
+ keyList = parm.getGridInfo().getDiscreteKeys()
+ keyList = JUtil.javaStringListToPylist(keyList)
return keyList
#########################################################################
diff --git a/cave/build/static/common/cave/etc/menus/upperair/baseUSEastern.xml b/cave/build/static/common/cave/etc/menus/upperair/baseUSEastern.xml
index 70de133c32..cf8cccd01d 100644
--- a/cave/build/static/common/cave/etc/menus/upperair/baseUSEastern.xml
+++ b/cave/build/static/common/cave/etc/menus/upperair/baseUSEastern.xml
@@ -107,7 +107,7 @@
-
+
+
+
+
diff --git a/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/catalog/ScriptCreator.java b/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/catalog/ScriptCreator.java
index cbb4e4447e..94052790a2 100644
--- a/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/catalog/ScriptCreator.java
+++ b/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/catalog/ScriptCreator.java
@@ -25,9 +25,9 @@ import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.WeakHashMap;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IConfigurationElement;
@@ -48,7 +48,6 @@ import com.raytheon.uf.common.util.FileUtil;
import com.raytheon.uf.viz.core.Activator;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.localization.LocalizationManager;
-import com.raytheon.uf.viz.core.status.StatusConstants;
/**
* Creates uEngine scripts on the fly.
@@ -75,7 +74,8 @@ import com.raytheon.uf.viz.core.status.StatusConstants;
* @version 1
*/
public class ScriptCreator {
- private static final transient IUFStatusHandler statusHandler = UFStatus.getHandler(ScriptCreator.class);
+ private static final transient IUFStatusHandler statusHandler = UFStatus
+ .getHandler(ScriptCreator.class);
private static final String DEFAULT_SCRIPT_LIBRARY = "BaseRequest";
@@ -99,10 +99,10 @@ public class ScriptCreator {
new Path("scriptTemplates/standardTemplate.vm"),
null)).getPath());
} catch (IOException e) {
- statusHandler.handle(
- Priority.CRITICAL,
- "Unable to load the standard script template. Requesting products will not work until this is fixed.",
- e);
+ statusHandler
+ .handle(Priority.CRITICAL,
+ "Unable to load the standard script template. Requesting products will not work until this is fixed.",
+ e);
}
}
@@ -148,7 +148,7 @@ public class ScriptCreator {
return;
}
- pluginToLibraryMap = new WeakHashMap();
+ pluginToLibraryMap = new HashMap();
IExtensionRegistry registry = Platform.getExtensionRegistry();
IExtensionPoint point = registry.getExtensionPoint(RESOURCE_EXTENSION);
diff --git a/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/drawables/ColorMapParameters.java b/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/drawables/ColorMapParameters.java
index c3cd3ee7bc..3be9fb188e 100644
--- a/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/drawables/ColorMapParameters.java
+++ b/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/drawables/ColorMapParameters.java
@@ -938,7 +938,7 @@ public class ColorMapParameters implements Cloneable, ISerializableObject {
index = 1.0f;
}
return colorToRGB(colorMap.getColors().get(
- (int) (index * colorMap.getSize())));
+ (int) (index * (colorMap.getSize()-1))));
}
/**
@@ -954,7 +954,7 @@ public class ColorMapParameters implements Cloneable, ISerializableObject {
} else if (index > 1.0f) {
index = 1.0f;
}
- return colorMap.getColors().get((int) (index * colorMap.getSize()));
+ return colorMap.getColors().get((int) (index * (colorMap.getSize()-1)));
}
public static RGB colorToRGB(Color c) {
diff --git a/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/rsc/capabilities/DisplayTypeCapability.java b/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/rsc/capabilities/DisplayTypeCapability.java
index 2fcb9d1f81..1e74333482 100644
--- a/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/rsc/capabilities/DisplayTypeCapability.java
+++ b/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/rsc/capabilities/DisplayTypeCapability.java
@@ -19,6 +19,9 @@
**/
package com.raytheon.uf.viz.core.rsc.capabilities;
+import java.util.Collections;
+import java.util.List;
+
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
@@ -46,6 +49,8 @@ public class DisplayTypeCapability extends AbstractCapability {
@XmlAttribute
private DisplayType displayType = DisplayType.CONTOUR;
+ private transient List alternativeDisplayTypes;
+
public DisplayType getDisplayType() {
return displayType;
}
@@ -54,6 +59,18 @@ public class DisplayTypeCapability extends AbstractCapability {
this.displayType = displayType;
}
+ public List getAlternativeDisplayTypes() {
+ if (alternativeDisplayTypes == null) {
+ return Collections.emptyList();
+ }
+ return alternativeDisplayTypes;
+ }
+
+ public void setAlternativeDisplayTypes(
+ List alternativeDisplayTypes) {
+ this.alternativeDisplayTypes = alternativeDisplayTypes;
+ }
+
/*
* (non-Javadoc)
*
diff --git a/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/style/StyleManager.java b/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/style/StyleManager.java
index d0d1f289df..fffc05d083 100644
--- a/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/style/StyleManager.java
+++ b/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/style/StyleManager.java
@@ -41,7 +41,7 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Sep 24, 2007 njensen Initial creation
- *
+ * May 21, 2012 DR 14833 gzhang Adding a getter for StyleRuleset
*
*
* @author njensen
@@ -149,5 +149,24 @@ public class StyleManager {
return new double[] { vmin, vmax };
}
-
+
+ /**2012-05-21
+ * DR 14833: FFMP uses this getter to find the color
+ * map if a user modified ffmpImageryStlyeRules.xml
+ * incorrectly.
+ *
+ * @param st: StyleType
+ * @return: StyleRuleset related to the StyleType
+ */
+ public StyleRuleset getStyleRuleSet(StyleType st){
+
+ synchronized(st){
+
+ if( ! rules.containsKey(st)){
+ loadRules(st);
+ }
+ }
+
+ return rules.get(st);
+ }
}
diff --git a/cave/com.raytheon.uf.viz.cwat/plugin.xml b/cave/com.raytheon.uf.viz.cwat/plugin.xml
index c58dfe0aa0..09880f3eee 100644
--- a/cave/com.raytheon.uf.viz.cwat/plugin.xml
+++ b/cave/com.raytheon.uf.viz.cwat/plugin.xml
@@ -35,4 +35,17 @@
scriptLibrary="BaseRequest">
+
+
+
+
+
+
+
diff --git a/cave/com.raytheon.uf.viz.d2d.core/src/com/raytheon/uf/viz/d2d/core/sampling/D2DSamplingResource.java b/cave/com.raytheon.uf.viz.d2d.core/src/com/raytheon/uf/viz/d2d/core/sampling/D2DSamplingResource.java
index 937b4503de..255d055963 100644
--- a/cave/com.raytheon.uf.viz.d2d.core/src/com/raytheon/uf/viz/d2d/core/sampling/D2DSamplingResource.java
+++ b/cave/com.raytheon.uf.viz.d2d.core/src/com/raytheon/uf/viz/d2d/core/sampling/D2DSamplingResource.java
@@ -140,7 +140,6 @@ public class D2DSamplingResource extends SamplingResource implements
inspectForced = false;
setSampling(false);
issueRefresh();
- return true;
}
return false;
}
diff --git a/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/display/D2DNSharpDescriptor.java b/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/display/D2DNSharpDescriptor.java
index 5b93ad130a..8f991be196 100644
--- a/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/display/D2DNSharpDescriptor.java
+++ b/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/display/D2DNSharpDescriptor.java
@@ -102,7 +102,18 @@ public class D2DNSharpDescriptor extends NsharpSkewTDescriptor {
IDescriptor.FrameChangeMode dmode = IDescriptor.FrameChangeMode
.valueOf(mode.name());
// Just hand this off to the resource.
- getSkewtResource().setSteppingTimeLine(dop, dmode);
+ switch (dmode) {
+ case TIME_ONLY:
+ getSkewtResource().setSteppingTimeLine(dop, dmode /*ignored*/);
+ break;
+ case SPACE_ONLY:
+ // noop for now
+ break;
+ case TIME_AND_SPACE:
+ // same as TIME_ONLY for now
+ getSkewtResource().setSteppingTimeLine(dop, dmode /*ignored*/);
+ break;
+ }
}
};
}
diff --git a/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/rsc/D2DNSharpResource.java b/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/rsc/D2DNSharpResource.java
index 2ad57c617b..b6ac9b30c4 100644
--- a/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/rsc/D2DNSharpResource.java
+++ b/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/rsc/D2DNSharpResource.java
@@ -152,10 +152,25 @@ public class D2DNSharpResource extends
skewRsc.addRsc(myDataMap, stnInfo);
// Adding to nsharp changes the frame but in D2D we like to keep the
// current frame.
- while (picked != null
+ backToPicked : while (picked != null
&& !skewRsc.getPickedStnInfoStr().equals(picked)) {
- skewRsc.setSteppingTimeLine(FrameChangeOperation.NEXT,
- FrameChangeMode.TIME_AND_SPACE);
+ String initStn = skewRsc.getPickedStnInfoStr().substring(0, 4);
+ do { // for each station...
+ String initTimePickedStnInfoStr = skewRsc.getPickedStnInfoStr();
+ do { // ...for each time
+ skewRsc.setSteppingTimeLine(FrameChangeOperation.NEXT, FrameChangeMode.TIME_ONLY);
+ // see if we're back home; if so, success
+ if (skewRsc.getPickedStnInfoStr().equals(picked)) {
+ break backToPicked;
+ }
+ // if we've cycled through all times for this station...
+ } while (!skewRsc.getPickedStnInfoStr().equals(initTimePickedStnInfoStr));
+ // ...then go to the next station
+ skewRsc.setSteppingStnIdList(FrameChangeOperation.NEXT);
+ // if we've cycled through all stations without a station/time match...
+ } while (!skewRsc.getPickedStnInfoStr().substring(0, 4).equals(initStn));
+ // ...then something is wrong
+ //TODO: consider logging internal error here? -- original "picked" station/time not found
}
issueRefresh();
}
diff --git a/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/rsc/D2DNSharpResourceData.java b/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/rsc/D2DNSharpResourceData.java
index 2faea2e9e8..e629f4381f 100644
--- a/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/rsc/D2DNSharpResourceData.java
+++ b/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/rsc/D2DNSharpResourceData.java
@@ -178,8 +178,8 @@ public abstract class D2DNSharpResourceData extends
stnInfo.setRangestarttime(fcstTime);
}
if (coordinate != null) {
- stnInfo.setLongitude((float) coordinate.x);
- stnInfo.setLatitude((float) coordinate.y);
+ stnInfo.setLongitude(coordinate.x);
+ stnInfo.setLatitude(coordinate.y);
}
if (pointName != null) {
stnInfo.setStnDisplayInfo(pointName + " "
diff --git a/cave/com.raytheon.uf.viz.d2d.ui/localization/styleRules/d2dArrowStyleRules.xml b/cave/com.raytheon.uf.viz.d2d.ui/localization/styleRules/d2dArrowStyleRules.xml
index 9da60120be..1daeeb5004 100644
--- a/cave/com.raytheon.uf.viz.d2d.ui/localization/styleRules/d2dArrowStyleRules.xml
+++ b/cave/com.raytheon.uf.viz.d2d.ui/localization/styleRules/d2dArrowStyleRules.xml
@@ -108,6 +108,7 @@
Wind
+ Gust
kts
diff --git a/cave/com.raytheon.uf.viz.d2d.xy.adapters/src/com/raytheon/uf/viz/d2d/xy/adapters/crosssection/GribCSAdapter.java b/cave/com.raytheon.uf.viz.d2d.xy.adapters/src/com/raytheon/uf/viz/d2d/xy/adapters/crosssection/GribCSAdapter.java
index 403aa100f1..3845575adf 100644
--- a/cave/com.raytheon.uf.viz.d2d.xy.adapters/src/com/raytheon/uf/viz/d2d/xy/adapters/crosssection/GribCSAdapter.java
+++ b/cave/com.raytheon.uf.viz.d2d.xy.adapters/src/com/raytheon/uf/viz/d2d/xy/adapters/crosssection/GribCSAdapter.java
@@ -32,6 +32,7 @@ import javax.measure.unit.Unit;
import org.geotools.coverage.grid.GridGeometry2D;
import org.geotools.geometry.DirectPosition2D;
+import org.opengis.referencing.crs.CoordinateReferenceSystem;
import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.common.dataplugin.grib.GribModel;
@@ -87,6 +88,8 @@ public class GribCSAdapter extends AbstractCrossSectionAdapter {
private Unit> unit;
+ private CoordinateReferenceSystem crs;
+
/*
* (non-Javadoc)
*
@@ -250,21 +253,6 @@ public class GribCSAdapter extends AbstractCrossSectionAdapter {
if (xVal <= -9999) {
continue;
}
- // these cases handle rotating a vector to be oriented
- // towards the north pole rather than the up direction of a
- // grid.
- if (c == 0) {
- speed = xVal;
- } else if (c == 1) {
- direction = xVal - 180
- + MapUtil.rotation(coordinates[i], area);
- xVal = (float) direction;
- direction = Math.toRadians(direction);
- } else if (c == 2) {
- xVal = (float) (-speed * Math.sin(direction));
- } else if (c == 3) {
- xVal = (float) (-speed * Math.cos(direction));
- }
dataLists.get(c).add(new XYData(xVal, yVal));
}
}
@@ -292,6 +280,7 @@ public class GribCSAdapter extends AbstractCrossSectionAdapter {
super.addRecord(pdo);
if (pdo != null && pdo instanceof GribRecord) {
unit = ((GribRecord) pdo).getModelInfo().getParameterUnitObject();
+ crs = ((GribRecord) pdo).getSpatialObject().getCrs();
}
yRecords.remove(pdo.getDataTime());
}
@@ -355,4 +344,12 @@ public class GribCSAdapter extends AbstractCrossSectionAdapter {
}
}
+ @Override
+ public CoordinateReferenceSystem getDataCoordinateReferenceSystem() {
+ if (crs == null) {
+ return super.getDataCoordinateReferenceSystem();
+ }
+ return crs;
+ }
+
}
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/Gust.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/Gust.xml
index 02fe4fbb87..183a92be33 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/Gust.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/Gust.xml
@@ -1,27 +1,27 @@
-
+
-
-
+
+
-
+
-
+
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG.xml
index d8b1850f29..0ad2b56c64 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG.xml
@@ -18,4 +18,8 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
+
+
+
+
\ No newline at end of file
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG518E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG518E2.xml
index 054bffba28..ebdd0a8578 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG518E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG518E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG549E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG549E2.xml
index abf232406b..d1fb02333e 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG549E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG549E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG579E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG579E2.xml
index 773c339bdf..46ad357b8d 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG579E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG579E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_122E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_122E2.xml
index 373394b2b4..691388e4f4 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_122E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_122E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_152E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_152E2.xml
index b4a1d1c77c..2745c39c74 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_152E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_152E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_183E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_183E2.xml
index 388c725074..b0b0205820 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_183E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_183E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_20.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_20.xml
index 97da9bc504..7952865b21 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_20.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_20.xml
@@ -18,4 +18,8 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_213E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_213E2.xml
index 608d572421..2c15e924de 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_213E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_213E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_244E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_244E2.xml
index c3af811360..fb48c2a1aa 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_244E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_244E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_274E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_274E2.xml
index 50bc944df4..38138938c7 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_274E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_274E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_30.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_30.xml
index 2aa0753163..81ee8bdbc7 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_30.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_30.xml
@@ -18,4 +18,8 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_305E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_305E2.xml
index 722e5d2830..8ed7433086 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_305E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_305E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_335E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_335E2.xml
index 9f781e96e6..6166e42aeb 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_335E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_335E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_366E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_366E2.xml
index 1f4970b4e5..7bff2e52df 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_366E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_366E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_396E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_396E2.xml
index cab6263956..54ca63edac 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_396E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_396E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_40.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_40.xml
index 6982a409f3..ceae2c8037 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_40.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_40.xml
@@ -18,4 +18,8 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_427E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_427E2.xml
index ba78776425..5f96368f4a 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_427E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_427E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_457E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_457E2.xml
index 886e268aeb..b7d989aab6 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_457E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_457E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_488E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_488E2.xml
index 8af64e7d3f..a458389fc5 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_488E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_488E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_50.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_50.xml
index e3bafbc288..cb0d74025c 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_50.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_50.xml
@@ -18,4 +18,8 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_60.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_60.xml
index 5cde84cf80..8add6a3fff 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_60.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_60.xml
@@ -18,4 +18,8 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_610E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_610E2.xml
index 08f2ada08c..81e0972501 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_610E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_610E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_61E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_61E2.xml
index 9a57727604..0623653e1d 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_61E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_61E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_640E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_640E2.xml
index 4c03295afd..18f5e3038b 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_640E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_640E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_671E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_671E2.xml
index fc5a63ce44..e134f228a0 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_671E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_671E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_70.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_70.xml
index db9174ac58..378ff7f39d 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_70.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_70.xml
@@ -18,4 +18,8 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_701E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_701E2.xml
index fd0d8661e8..df59ed1bb0 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_701E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_701E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_732E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_732E2.xml
index 68a86e4c8d..a10d1f2f01 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_732E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_732E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_762E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_762E2.xml
index ee69ea9452..cdce81ef5d 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_762E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_762E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_80.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_80.xml
index 3f5343ca20..b2171a23e5 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_80.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_80.xml
@@ -18,4 +18,8 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_90.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_90.xml
index ae6dfce072..39eec0498d 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_90.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_90.xml
@@ -18,4 +18,8 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_91E2.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_91E2.xml
index 46ba838cac..8da6ab8b3b 100644
--- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_91E2.xml
+++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/TPCSG_91E2.xml
@@ -18,7 +18,7 @@
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
-
+
diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/META-INF/MANIFEST.MF b/cave/com.raytheon.uf.viz.monitor.ffmp/META-INF/MANIFEST.MF
index 67dbd582dc..e9786c74cd 100644
--- a/cave/com.raytheon.uf.viz.monitor.ffmp/META-INF/MANIFEST.MF
+++ b/cave/com.raytheon.uf.viz.monitor.ffmp/META-INF/MANIFEST.MF
@@ -19,7 +19,8 @@ Require-Bundle: org.eclipse.ui,
com.raytheon.uf.viz.d2d.core;bundle-version="1.11.15",
com.raytheon.uf.viz.localization,
javax.measure;bundle-version="1.0.0",
- com.raytheon.uf.common.ohd;bundle-version="1.12.1174"
+ com.raytheon.uf.common.ohd;bundle-version="1.12.1174",
+ com.raytheon.uf.common.cache;bundle-version="1.12.1174"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Import-Package: com.raytheon.uf.common.colormap,
diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/FFMPMonitor.java b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/FFMPMonitor.java
index ed8500c198..dbf1221d70 100644
--- a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/FFMPMonitor.java
+++ b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/FFMPMonitor.java
@@ -28,6 +28,7 @@ import org.eclipse.ui.PlatformUI;
import com.raytheon.uf.common.dataplugin.ffmp.FFMPBasin;
import com.raytheon.uf.common.dataplugin.ffmp.FFMPBasinData;
+import com.raytheon.uf.common.dataplugin.ffmp.FFMPCacheRecord;
import com.raytheon.uf.common.dataplugin.ffmp.FFMPGuidanceBasin;
import com.raytheon.uf.common.dataplugin.ffmp.FFMPGuidanceInterpolation;
import com.raytheon.uf.common.dataplugin.ffmp.FFMPRecord;
@@ -95,2491 +96,2517 @@ import com.raytheon.uf.viz.monitor.listeners.IMonitorListener;
*/
public class FFMPMonitor extends ResourceMonitor implements
- IFFMPMonitorListener {
- private static long SECONDS_PER_HOUR = 60 * 60;
+ IFFMPMonitorListener {
+ private static long SECONDS_PER_HOUR = 60 * 60;
- /** boolean for initialization **/
- public static boolean isInitialized = false;
+ /** boolean for initialization **/
+ public static boolean isInitialized = false;
- /** Singleton instance of this class */
- private static FFMPMonitor monitor = null;
+ /** Singleton instance of this class */
+ private static FFMPMonitor monitor = null;
- /** Array of scan listeners **/
- private ArrayList resourceListeners = new ArrayList();
+ /** Array of scan listeners **/
+ private ArrayList resourceListeners = new ArrayList();
- public FFMPSplash ffmpSplash;
+ public FFMPSplash ffmpSplash;
- private String wfo = null;
+ private String wfo = null;
- /** Pattern for dates in radar */
- public static String datePattern = "yyyy-MM-dd HH:mm:ss";
+ /** Pattern for dates in radar */
+ public static String datePattern = "yyyy-MM-dd HH:mm:ss";
- /** FFMP Records indexed by site, times and field **/
- public ConcurrentHashMap> ffmpData = null;
+ /** FFMP Records indexed by site, times and field **/
+ public ConcurrentHashMap> ffmpData = null;
- // list of earliest available date queried by site, sourceName
- public ConcurrentHashMap> ffmpAvailableUriQueryDates = null;
+ // list of earliest available date queried by site, sourceName
+ public ConcurrentHashMap> ffmpAvailableUriQueryDates = null;
- // map by site, sourceName, Date
- public ConcurrentHashMap>>> ffmpAvailableUris = null;
+ // map by site, sourceName, Date
+ public ConcurrentHashMap>>> ffmpAvailableUris = null;
- // map by field, huc, and the URIs that have been loaded for
- public ConcurrentHashMap>>> ffmpLoadedUris = null;
+ // map by field, huc, and the URIs that have been loaded for
+ public ConcurrentHashMap>>> ffmpLoadedUris = null;
- // Interpolation Guidance Sources
- public FFMPGuidanceInterpolation interpolation = null;
+ // Interpolation Guidance Sources
+ public FFMPGuidanceInterpolation interpolation = null;
- /** config manager **/
- public FFMPSourceConfigurationManager fscm = null;
+ /** config manager **/
+ public FFMPSourceConfigurationManager fscm = null;
- /** config manager **/
- public FFMPConfig ffmpConfig = null;
+ /** config manager **/
+ public FFMPConfig ffmpConfig = null;
- public ArrayList dataTimes = null;
+ public ArrayList dataTimes = null;
- private FFMPTimeWindow qpfWindow = null;
+ private FFMPTimeWindow qpfWindow = null;
+
+ private FFMPTimeWindow qpeWindow = null;
- private FFMPTimeWindow qpeWindow = null;
+ /** The infamous templates **/
+ private FFMPTemplates templates = null;
+
+ private FFMPRunConfigurationManager frcm = null;
- /** The infamous templates **/
- private FFMPTemplates templates = null;
+ private FFFGDataMgr fffg = null;
- private FFMPRunConfigurationManager frcm = null;
-
- private FFFGDataMgr fffg = null;
-
- private static final transient IUFStatusHandler statusHandler = UFStatus
- .getHandler(FFMPMonitor.class);
-
- @Override
- public void nullifyMonitor() {
-
- if (resourceListeners != null) {
- for (IFFMPResourceListener listener : resourceListeners) {
- if (listener instanceof FFMPResource) {
- FFMPResource res = (FFMPResource) listener;
- if (res.basinTableDlg != null) {
- closeDialog(res);
- }
-
- // will kill any loaders running
- if (res.getResourceData().floader != null) {
- res.getResourceData().floader.kill();
- res.getResourceData().floader = null;
- }
- }
- }
-
- // clear the resource list
- resourceListeners.clear();
- }
-
- ffmpData = null;
- ffmpAvailableUriQueryDates = null;
- ffmpAvailableUris = null;
- ffmpLoadedUris = null;
-
- // kill this monitor
- monitor = null;
- System.gc();
- }
-
- @Override
- public void thresholdUpdate(IMonitorThresholdEvent me) {
- // TODO Auto-generated method stub
- }
-
- @Override
- public void configUpdate(IMonitorConfigurationEvent me) {
- // updates the config
- getSourceConfig().readConfigXml();
- boolean isLinkToFrame = getConfig().getFFMPConfigData()
- .getLinkToFrame();
-
- for (IFFMPResourceListener listener : resourceListeners) {
-
- listener.setLinkToFrame(isLinkToFrame);
-
- if (listener.isAutoRefresh()) {
- listener.setQuery(true);
- fireRefresh(listener);
- }
-
- listener.updateDialog();
- }
- }
-
- /**
- * Actual initialization if necessary
- *
- * @return
- */
- public static synchronized FFMPMonitor getInstance() {
- if (monitor == null) {
- monitor = new FFMPMonitor();
- monitor.createDataStructures();
- isInitialized = true;
- }
-
- return monitor;
- }
-
- /**
- * check for life
- *
- * @return
- */
- public static boolean isRunning() {
-
- if (monitor == null) {
- return false;
- }
-
- return true;
- }
-
- /**
- * get a ref to the config
- *
- * @return
- */
- public FFMPSourceConfigurationManager getSourceConfig() {
- if (fscm == null) {
- fscm = FFMPSourceConfigurationManager.getInstance();
- fscm.readConfigXml();
- }
-
- return fscm;
- }
-
- /**
- * Gets the FFFG manager
- *
- * @return
- */
- public FFFGDataMgr getFFFGConfig() {
- if (fffg == null) {
- fffg = FFFGDataMgr.getInstance();
- }
-
- return fffg;
- }
-
- /**
- * Gets the dialog config
- *
- * @return
- */
- public FFMPConfig getConfig() {
- if (ffmpConfig == null) {
- ffmpConfig = FFMPConfig.getInstance();
- }
- return ffmpConfig;
- }
-
- /**
- * Creates the linked maps
- */
- private void createDataStructures() {
- ffmpData = new ConcurrentHashMap>();
- ffmpAvailableUris = new ConcurrentHashMap>>>();
- ffmpAvailableUriQueryDates = new ConcurrentHashMap>();
- ffmpLoadedUris = new ConcurrentHashMap>>>();
- }
-
- /**
- * gets the URI's by field type and site
- *
- * @param siteKey
- * @param pfield
- * @param phuc
- * @return
- */
- private ConcurrentHashMap getUriMap(String siteKey,
- String source, String phuc) {
-
- ConcurrentHashMap>> siteLoadedUris = null;
-
- if (ffmpLoadedUris != null) {
- siteLoadedUris = ffmpLoadedUris.get(siteKey);
- }
-
- if (siteLoadedUris == null) {
- siteLoadedUris = new ConcurrentHashMap>>();
- ffmpLoadedUris.put(siteKey, siteLoadedUris);
- }
-
- ConcurrentHashMap> sourceLoadedUris = null;
-
- if (ffmpLoadedUris != null) {
- sourceLoadedUris = ffmpLoadedUris.get(siteKey).get(source);
- }
-
- if (sourceLoadedUris == null) {
-
- sourceLoadedUris = new ConcurrentHashMap>();
- ffmpLoadedUris.get(siteKey).put(source, sourceLoadedUris);
- }
-
- ConcurrentHashMap hucLoadedUris = null;
-
- if (ffmpLoadedUris != null) {
- hucLoadedUris = ffmpLoadedUris.get(siteKey).get(source).get(phuc);
- }
-
- if (hucLoadedUris == null) {
-
- hucLoadedUris = new ConcurrentHashMap(200, 0.75f, 4);
- if (ffmpLoadedUris != null) {
- ffmpLoadedUris.get(siteKey).get(source)
- .put(phuc, hucLoadedUris);
- }
- }
-
- return hucLoadedUris;
- }
-
- /**
- * Static to make it fast, at least that's the idea.
- *
- * @param uri
- * @return
- * @throws VizException
- */
- private static FFMPRecord loadRecordFromDatabase(String uri)
- throws VizException {
- FFMPRecord ffmpRec = null;
-
- if (uri != null) {
- Map vals = new HashMap();
- vals.put("pluginName", "ffmp");
- vals.put("dataURI", uri);
- ffmpRec = (FFMPRecord) Loader.loadData(vals);
- }
-
- return ffmpRec;
- }
-
- public FFMPRecord populateFFMPRecord(ProductXML product, String siteKey,
- String dataKey, String source, Date ptime, String phuc) {
- return populateFFMPRecord(product, siteKey, dataKey, source, ptime,
- phuc, false);
- }
-
- /**
- * populate a new FFMPRecord
- *
- * @param sourceName
- * @param icao
- * @param refTime
- * @return
- * @throws VizException
- */
- public FFMPRecord populateFFMPRecord(ProductXML product, String siteKey,
- String dataKey, String source, Date ptime, String phuc,
- boolean retrieveNew) {
-
- FFMPRecord ffmpRec = null;
- boolean isProductLoad = false;
- if (product != null) {
- isProductLoad = true;
- }
-
- if (source != null) {
-
- SortedMap> urisByDate = getAvailableUris(
- siteKey, dataKey, source, ptime, retrieveNew);
-
- if (urisByDate != null) {
- for (List uris : urisByDate.values()) {
- for (String uri : uris) {
- if ((uri != null)
- && !getUriMap(siteKey, source, phuc)
- .containsKey(uri)) {
- try {
- ffmpRec = loadRecordFromDatabase(uri);
- populateFFMPRecord(isProductLoad, siteKey,
- ffmpRec, source, phuc);
- } catch (Exception e) {
- statusHandler.handle(Priority.PROBLEM,
- "FFMP Can't retrieve FFMP URI, " + uri,
- e);
- }
- }
- }
- }
- }
- }
-
- return ffmpRec;
- }
-
- /**
- * populate a new FFMPRecord
- *
- * @param sourceName
- * @param icao
- * @param refTime
- * @return
- * @throws VizException
- */
- public FFMPRecord populateFFMPRecord(boolean isProductLoad, String uri,
- String siteKey, String source, String phuc) throws Exception {
-
- try {
- populateFFMPRecord(isProductLoad, siteKey,
- loadRecordFromDatabase(uri), source, phuc);
- } catch (VizException e) {
- statusHandler.handle(Priority.INFO,
- "FFMP Can't retrieve FFMP URI, " + uri, e);
- }
-
- return ffmpData.get(siteKey).get(source);
- }
-
- /**
- * Inserts the loader records directly into the cache
- *
- * @param data
- * @param siteKey
- * @param dataKey
- * @param source
- * @param huc
- */
- public void insertFFMPData(FFMPBasinData data, String siteKey,
- String source, String huc) {
-
- final String fsiteKey = siteKey;
- final FFMPBasinData fdata = data;
- final String fsource = source;
- final String fhuc = huc;
-
- VizApp.runAsync(new Runnable() {
- @Override
- public void run() {
-
- if (ffmpData.containsKey(fsiteKey)) {
- if (ffmpData.get(fsiteKey).containsKey(fsource)) {
- ffmpData.get(fsiteKey).get(fsource)
- .setBasinBuddyData(fdata, fhuc);
- }
- }
- }
- });
- }
-
- /**
- * Try and get the loading off of the GUI thread
- *
- * @param isProductLoad
- * @param siteKey
- * @param ffmpRec
- * @param source
- * @param phuc
- * @throws Exception
- */
- public void populateFFMPRecord(boolean isProductLoad, String siteKey,
- FFMPRecord ffmpRec, String source, String phuc) throws Exception {
-
- FFMPLoadRecord flr = new FFMPLoadRecord(isProductLoad, siteKey,
- ffmpRec, source, phuc);
- flr.run();
- }
-
- /**
- * Get load of basins off the main thread
- *
- * @param dataUri
- * @param siteKey
- * @param source
- * @param phuc
- * @param basin
- * @throws VizException
- */
- public void populateFFMPBasin(String dataUri, String siteKey,
- String source, String phuc, FFMPBasin basin) throws VizException {
-
- final String fdataUri = dataUri;
- final String fsiteKey = siteKey;
- final String fhuc = phuc;
- final String fsource = source;
- final FFMPBasin fbasin = basin;
-
- VizApp.runAsync(new Runnable() {
- @Override
- public void run() {
-
- if (fdataUri != null) {
- ConcurrentMap uris = getUriMap(fsiteKey,
- fsource, fhuc);
- if (!uris.containsKey(fdataUri)) {
- try {
- FFMPRecord ffmpRec = loadRecordFromDatabase(fdataUri);
- File loc = HDF5Util.findHDF5Location(ffmpRec);
- IDataStore dataStore = DataStoreFactory
- .getDataStore(loc);
- SourceXML sourceXML = fscm.getSource(fsource);
-
- if (sourceXML.getSourceType().equals(
- SOURCE_TYPE.GAGE.getSourceType())
- && fhuc.equals("ALL")) {
- ffmpRec.retrieveVirtualBasinFromDataStore(
- dataStore, fdataUri,
- getTemplates(fsiteKey), ffmpRec
- .getDataTime().getRefTime(),
- fbasin);
- } else {
- ffmpRec.retrieveBasinFromDataStore(dataStore,
- fdataUri, getTemplates(fsiteKey), fhuc,
- ffmpRec.getDataTime().getRefTime(),
- ffmpRec.getSourceName(), fbasin);
- }
- } catch (Throwable e) {
- try {
- throw new VizException(
- "Error occurred loading uri "
- + fdataUri, e);
- } catch (VizException e1) {
- statusHandler.handle(Priority.PROBLEM,
- "FFMP Can't retrieve FFMP URI, "
- + fdataUri, e1);
- }
- }
- }
- }
- }
- });
- }
-
- /**
- * Getting a specific URI
- *
- * @param date
- * @return
- */
- public String getAvailableUri(String siteKey, String dataKey,
- String sourceName, Date ptime) {
-
- String uri = null;
- SimpleDateFormat datef = new SimpleDateFormat(datePattern);
- datef.setTimeZone(TimeZone.getTimeZone("Zulu"));
- String sql = "select datauri from ffmp where wfo = '" + getWfo()
- + "' and reftime = '" + datef.format(ptime)
- + "' and sourcename = '" + sourceName + "' and sitekey = '"
- + siteKey + "' and datakey = '" + dataKey
- + "' order by reftime";
- try {
- List