diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/GfeClient.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/GfeClient.java
index f5a631fd56..bbaabb251f 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/GfeClient.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/GfeClient.java
@@ -52,6 +52,7 @@ import com.raytheon.viz.ui.personalities.awips.AbstractCAVEComponent;
* Jun 25, 2010 mschenke Initial creation
* Aug 20, 2012 #1081 dgilling Don't pass -server and -site args
* to python script.
+ * Mar 10, 2013 #15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
*
@@ -96,7 +97,7 @@ public class GfeClient extends AbstractCAVEComponent {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext baseContext = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
String pyVizDir = pathMgr.getFile(baseContext, "pyViz").getPath();
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/PythonPreferenceStore.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/PythonPreferenceStore.java
index 5015cb67da..e8a335303c 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/PythonPreferenceStore.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/PythonPreferenceStore.java
@@ -55,6 +55,8 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
* ------------ ---------- ----------- --------------------------
* Dec 11, 2009 njensen Initial creation
* Jun 22, 2011 9897 ryu allow new GFE config and send notification
+ * Mar 06 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * for GFE localization files
*
*
*
@@ -88,7 +90,7 @@ public class PythonPreferenceStore implements IPreferenceStore,
public void loadConfiguration(String configName) {
IPathManager pathMgr = PathManagerFactory.getPathManager();
String utilityDir = pathMgr.getFile(
- pathMgr.getContext(LocalizationType.CAVE_STATIC,
+ pathMgr.getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.BASE),
com.raytheon.uf.common.util.FileUtil.join("gfe", "utility"))
.getPath();
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/core/internal/WEGroupManager.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/core/internal/WEGroupManager.java
index 867f7c4780..3046424a32 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/core/internal/WEGroupManager.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/core/internal/WEGroupManager.java
@@ -63,7 +63,8 @@ import com.raytheon.viz.gfe.core.IWEGroupManager;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 5, 2008 chammack Initial creation
- *
+ * Mar 06,2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * for GFE localization files
*
*
* @author chammack
@@ -96,7 +97,7 @@ public class WEGroupManager implements IWEGroupManager,
IPathManager pathManager = PathManagerFactory.getPathManager();
weGroupDir = pathManager.getLocalizationFile(pathManager.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE),
WEGROUP_DIR);
weGroupDir.addFileUpdatedObserver(this);
@@ -133,7 +134,7 @@ public class WEGroupManager implements IWEGroupManager,
IPathManager pathManager = PathManagerFactory.getPathManager();
LocalizationContext[] contexts = pathManager
- .getLocalSearchHierarchy(LocalizationType.CAVE_STATIC);
+ .getLocalSearchHierarchy(LocalizationType.COMMON_STATIC);
LocalizationFile[] files = pathManager.listFiles(contexts, WEGROUP_DIR,
new String[] { ".xml" }, false, true);
@@ -362,7 +363,7 @@ public class WEGroupManager implements IWEGroupManager,
IPathManager pm = PathManagerFactory.getPathManager();
- LocalizationContext lc = pm.getContext(LocalizationType.CAVE_STATIC,
+ LocalizationContext lc = pm.getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.USER);
LocalizationFile file = pm.getLocalizationFile(lc,
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/core/script/AbstractScriptCatalog.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/core/script/AbstractScriptCatalog.java
index 578f9792e5..4c15f91c56 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/core/script/AbstractScriptCatalog.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/core/script/AbstractScriptCatalog.java
@@ -37,7 +37,13 @@ import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.util.FileUtil;
/**
- * @author wldougher
+ * SOFTWARE HISTORY
+ * Date Ticket# Engineer Description
+ * ------------ ---------- ----------- --------------------------
+ * wldougher Initial creation
+ * Mar 06 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * for GFE localization files
+ * @author wldougher
*
*/
public abstract class AbstractScriptCatalog {
@@ -72,11 +78,11 @@ public abstract class AbstractScriptCatalog {
this.pathManager = pathManager;
LocalizationContext userCtx = pathManager.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
LocalizationContext siteCtx = pathManager.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
LocalizationContext baseCtx = pathManager.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
String pathPrefix = getScriptTypePathPrefix();
procDir = pathManager.getLocalizationFile(userCtx, pathPrefix);
siteDir = pathManager.getLocalizationFile(siteCtx, pathPrefix);
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/GFEConfigDialog.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/GFEConfigDialog.java
index 885b065b5e..d8cd05f5b9 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/GFEConfigDialog.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/GFEConfigDialog.java
@@ -83,8 +83,8 @@ import com.raytheon.viz.ui.dialogs.CaveJFACEDialog;
* Date Ticket// Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 30, 2009 randerso Initial creation
- * Oct 30, 2012 1298 rferrel Code cleanup for non-blocking dialog.
- *
+ * Oct 30, 2012 1298 rferrel Code cleanup for non-blocking dialog.
+ * Mar 10, 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
* @author randerso
@@ -380,7 +380,7 @@ public class GFEConfigDialog extends CaveJFACEDialog {
private void saveLastConfig() {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext context = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
LocalizationFile lf = pathMgr.getLocalizationFile(context, LAST_CONFIG);
File file = lf.getFile();
@@ -414,7 +414,7 @@ public class GFEConfigDialog extends CaveJFACEDialog {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext context = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
LocalizationFile lf = pathMgr.getLocalizationFile(context, LAST_CONFIG);
File file = lf.getFile();
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/ZoneCombinerComp.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/ZoneCombinerComp.java
index e9e9614d0f..0d645e0267 100755
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/ZoneCombinerComp.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/ZoneCombinerComp.java
@@ -99,7 +99,7 @@ import com.raytheon.viz.gfe.ui.zoneselector.ZoneSelector;
* Changes for non-blocking SaveDeleteComboDlg.
* Changes for non-blocking ShuffleZoneGroupsDialog.
* Changes for non-blocking ZoneColorEditorDlg.
- *
+ * 07 Mar 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
* @author lvenable
@@ -264,7 +264,7 @@ public class ZoneCombinerComp extends Composite implements
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext baseCtx = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
comboDir = pathMgr.getLocalizationFile(baseCtx,
CombinationsFileUtil.COMBO_DIR_PATH);
comboDir.addFileUpdatedObserver(this);
@@ -932,12 +932,12 @@ public class ZoneCombinerComp extends Composite implements
"saved", name + ".py");
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext userContext = pm.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
LocalizationFile userFile = pm.getLocalizationFile(userContext,
searchName);
if (AccessMgr.verifyDelete(userFile.getName(),
- LocalizationType.CAVE_STATIC, false)) {
+ LocalizationType.COMMON_STATIC, false)) {
if (userFile.isAvailableOnServer()) {
userFile.delete();
} else if (userFile.exists()) {
@@ -978,7 +978,7 @@ public class ZoneCombinerComp extends Composite implements
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext localization = pm.getContext(
- LocalizationType.CAVE_STATIC, level);
+ LocalizationType.COMMON_STATIC, level);
File localFile = pm.getFile(localization,
FileUtil.join(CombinationsFileUtil.COMBO_DIR_PATH, local));
return localFile;
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/procedures/ProcedureController.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/procedures/ProcedureController.java
index 9b48fff6f2..88db289345 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/procedures/ProcedureController.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/procedures/ProcedureController.java
@@ -46,6 +46,7 @@ import com.raytheon.viz.gfe.core.DataManager;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Nov 5, 2008 njensen Initial creation
+ * Mar 7, 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
* @author njensen
@@ -66,7 +67,7 @@ public class ProcedureController extends BaseGfePyController {
super(filePath, anIncludePath, classLoader, dataManager, "Procedure");
LocalizationContext baseCtx = PathManagerFactory.getPathManager()
- .getContext(LocalizationType.CAVE_STATIC,
+ .getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.BASE);
proceduresDir = GfePyIncludeUtil.getProceduresLF(baseCtx);
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/procedures/ProcedureFactory.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/procedures/ProcedureFactory.java
index 34d4ad86a8..669b5c31d3 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/procedures/ProcedureFactory.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/procedures/ProcedureFactory.java
@@ -39,6 +39,8 @@ import com.raytheon.viz.gfe.core.DataManager;
* ------------ ---------- ----------- --------------------------
* Nov 5, 2008 njensen Initial creation
* Feb 25, 2010 4108 ryu Add user/site directories to include path
+ * Mar 06, 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * for GFE localization files
*
*
*
@@ -51,7 +53,7 @@ public class ProcedureFactory {
private static ProcedureController buildInstance(DataManager dataMgr,
boolean ui) throws JepException {
LocalizationContext baseCtx = PathManagerFactory.getPathManager()
- .getContext(LocalizationType.CAVE_STATIC,
+ .getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.BASE);
String baseUtil = GfePyIncludeUtil.getUtilitiesLF(baseCtx).getFile()
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/SmartToolEdit.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/SmartToolEdit.java
index 1064fca3c3..9262c6b247 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/SmartToolEdit.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/SmartToolEdit.java
@@ -53,7 +53,8 @@ import com.raytheon.viz.gfe.PythonUtil;
* ------------ ---------- ----------- --------------------------
* Mar 20, 2008 njensen Initial creation
* Sep 25, 2008 1562 askripsky Moved methods out to
- *
+ * Mar 06, 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * for GFE localization files
*
*
* @author njensen
@@ -74,7 +75,7 @@ public class SmartToolEdit {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext tx = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
File templateFile = PathManagerFactory.getPathManager().getFile(tx,
SmartToolConstants.TEMPLATES_DIR);
@@ -93,7 +94,7 @@ public class SmartToolEdit {
template = Velocity.getTemplate("smartTool.vm");
LocalizationContext cx = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
localizationFile = PathManagerFactory.getPathManager()
.getLocalizationFile(
cx,
@@ -137,7 +138,7 @@ public class SmartToolEdit {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext tx = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
File templateFile = pathMgr.getFile(tx,
SmartToolConstants.TEMPLATES_DIR);
@@ -155,7 +156,7 @@ public class SmartToolEdit {
template = Velocity.getTemplate("utility.vm");
LocalizationContext cx = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
localizationFile = PathManagerFactory.getPathManager()
.getLocalizationFile(
cx,
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/TextFileUtil.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/TextFileUtil.java
index 62815667f9..8c8774bf17 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/TextFileUtil.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/TextFileUtil.java
@@ -46,6 +46,7 @@ import com.raytheon.viz.gfe.GFEOperationFailedException;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 28, 2009 njensen Initial creation
+ * Mar 07 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
*
@@ -66,7 +67,7 @@ public class TextFileUtil {
file = PATH_MGR.getStaticLocalizationFile(name);
if (file == null) {
LocalizationContext ctx = PATH_MGR.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
file = PATH_MGR.getLocalizationFile(ctx, name);
}
}
@@ -81,7 +82,7 @@ public class TextFileUtil {
if (name != null) {
LocalizationContext ctx = PATH_MGR.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
file = PATH_MGR.getLocalizationFile(ctx, name);
}
return file;
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/Tool.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/Tool.java
index f5f1fbd529..50bacb0e9f 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/Tool.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/Tool.java
@@ -422,8 +422,8 @@ public class Tool {
if (grids.length == 0) {
String message = "Smart Tool " + toolName
+ ": No Grids To Edit for " + inputParm.expressionName();
- throw new SmartToolException(message);
- // AFPS.UserAlertMsg_send_mh(self.__msgHand, message, "A", "GFE")
+ statusHandler.handle(Priority.EVENTA, message);
+ return;
}
// Make sure parm is mutable
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/script/SmartToolController.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/script/SmartToolController.java
index 4c81b4319a..aa55d9639a 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/script/SmartToolController.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/script/SmartToolController.java
@@ -69,6 +69,7 @@ import com.raytheon.viz.gfe.core.wxvalue.WxValue;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Oct 20, 2008 njensen Initial creation
+ * Mar 07 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
* @author njensen
@@ -102,7 +103,7 @@ public class SmartToolController extends BaseGfePyController {
super(filePath, anIncludePath, classLoader, dataManager, "Tool");
LocalizationContext baseCtx = PathManagerFactory.getPathManager()
- .getContext(LocalizationType.CAVE_STATIC,
+ .getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.BASE);
smartToolDir = GfePyIncludeUtil.getSmartToolsLF(baseCtx);
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/script/SmartToolFactory.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/script/SmartToolFactory.java
index 9214cfbdb5..6a31da338c 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/script/SmartToolFactory.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/script/SmartToolFactory.java
@@ -35,11 +35,12 @@ import com.raytheon.viz.gfe.core.DataManager;
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Mar 21, 2008 njensen Initial creation
- * Jul 9, 2009 2454 ryu Put user and site's python scripts on path for import
- *
+ * Date Ticket# Engineer Description
+ * ------------ ---------- ----------- --------------------------
+ * Mar 21, 2008 njensen Initial creation
+ * Jul 9, 2009 2454 ryu Put user and site's python scripts on path for import
+ * Mar 06,2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * for GFE localization files
*
*
* @author njensen
@@ -50,7 +51,7 @@ public class SmartToolFactory {
private static String getScriptPath() {
LocalizationContext baseCtx = PathManagerFactory.getPathManager()
- .getContext(LocalizationType.CAVE_STATIC,
+ .getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.BASE);
String scriptPath = GfePyIncludeUtil.getUtilitiesLF(baseCtx).getFile()
.getPath();
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/CombinationsFileGenerator.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/CombinationsFileGenerator.java
index d359ff50a8..bfd9288283 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/CombinationsFileGenerator.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/CombinationsFileGenerator.java
@@ -28,6 +28,7 @@
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
*6/12/2008 mnash Initial creation
+ *03/07/2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
*
@@ -101,7 +102,7 @@ public class CombinationsFileGenerator {
ifpc.makeRequest(req);
IPathManager pm = PathManagerFactory.getPathManager();
- LocalizationContext ctx = pm.getContext(LocalizationType.CAVE_STATIC,
+ LocalizationContext ctx = pm.getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.SITE);
pm.getFile(ctx, FileUtil.join("gfe", "combinations", filename));
}
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/CombinationsFileUtil.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/CombinationsFileUtil.java
index cb47b506c8..99216e0d8a 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/CombinationsFileUtil.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/CombinationsFileUtil.java
@@ -61,6 +61,7 @@ import com.raytheon.viz.gfe.textformatter.CombinationsFileUtil.ComboData.Entry;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jul 25, 2008 mnash Initial creation
+ * Mar 07, 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
* @author mnash
@@ -139,7 +140,7 @@ public class CombinationsFileUtil {
String s = FileUtil.mangle(id) + ".xml";
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationFile lf = pm.getLocalizationFile(pm.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE), FileUtil
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE), FileUtil
.join(SAVED_COMBO_DIR, s));
return lf;
}
@@ -205,7 +206,7 @@ public class CombinationsFileUtil {
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext baseContext = pm.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
// Strip any path components from comboName
File comboFile = new File(comboName);
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/TextFmtParserUtil.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/TextFmtParserUtil.java
index 5ca964a2fe..cb67e9521a 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/TextFmtParserUtil.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/TextFmtParserUtil.java
@@ -41,6 +41,7 @@ import com.raytheon.uf.common.python.PythonScript;
* ------------ ---------- ----------- --------------------------
* 09 Dec 2008 lvenable Initial creation
* 10 Nov 2010 njensen Cache python
+ * 07 Mar 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
* @author lvenable
@@ -72,7 +73,7 @@ public class TextFmtParserUtil {
if (python == null) {
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext baseContext = pm.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
File baseFile = pm.getFile(baseContext, "gfe" + File.separator
+ "userPython" + File.separator + "utilities"
+ File.separator + "ProductParser.py");
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/TextProductManager.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/TextProductManager.java
index 7a39b63590..2b7fc834dd 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/TextProductManager.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textformatter/TextProductManager.java
@@ -59,6 +59,7 @@ import com.raytheon.viz.gfe.core.DataManager;
* ------------ ---------- ----------- --------------------------
* May 1, 2009 njensen Initial creation
* Jan 15, 2010 3395 ryu Fix "issued by" functionality
+ * Mar 07, 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
*
@@ -100,11 +101,11 @@ public class TextProductManager {
private void init() throws VizException, JepException {
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext configContext = pm.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.CONFIGURED);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.CONFIGURED);
LocalizationContext siteContext = pm.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
LocalizationContext userContext = pm.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
lfConfigDir = pm.getLocalizationFile(configContext,
GfePyIncludeUtil.TEXT_PRODUCTS);
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/TextProductCatalog.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/TextProductCatalog.java
index 5e49fe6f2c..c485bef886 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/TextProductCatalog.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/TextProductCatalog.java
@@ -35,6 +35,14 @@ import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.viz.gfe.core.script.AbstractScriptCatalog;
/**
+ * SOFTWARE HISTORY
+ * Date Ticket# Engineer Description
+ * ------------ ---------- ----------- --------------------------
+ * wldougher Initial creation
+ * Mar 06 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * for GFE localization files
+ *
+ *
* @author wldougher
*
*/
@@ -78,7 +86,7 @@ public class TextProductCatalog extends AbstractScriptCatalog {
getScriptTypePathPrefix() + File.separator + "configured",
getExtensions(), false, true);
LocalizationFile[] userProducts = pathManager.listFiles(pathManager
- .getContext(LocalizationType.CAVE_STATIC,
+ .getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.USER), getScriptTypePathPrefix(),
getExtensions(), false, true);
@@ -131,7 +139,7 @@ public class TextProductCatalog extends AbstractScriptCatalog {
path = getScriptTypePathPrefix() + File.separator + scriptName;
result = pathManager.getLocalizationFile(pathManager.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER), path);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER), path);
if (result != null && !result.exists()) {
result = null;
}
@@ -140,7 +148,7 @@ public class TextProductCatalog extends AbstractScriptCatalog {
path = GfePyIncludeUtil.TEXT_PRODUCTS + File.separator + scriptName;
result = pathManager
.getLocalizationFile(pathManager.getContext(
- LocalizationType.CAVE_STATIC,
+ LocalizationType.COMMON_STATIC,
LocalizationLevel.SITE), path);
}
if (result != null && !result.exists()) {
@@ -150,7 +158,7 @@ public class TextProductCatalog extends AbstractScriptCatalog {
if (result == null) {
path = GfePyIncludeUtil.TEXT_PRODUCTS + File.separator + scriptName;
result = pathManager.getLocalizationFile(
- pathManager.getContext(LocalizationType.CAVE_STATIC,
+ pathManager.getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.CONFIGURED), path);
}
if (result != null && !result.exists()) {
@@ -189,9 +197,9 @@ public class TextProductCatalog extends AbstractScriptCatalog {
this.pathManager = pathManager;
LocalizationContext userCtx = pathManager.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
LocalizationContext siteCtx = pathManager.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
String pathPrefix = getScriptTypePathPrefix();
userDir = pathManager.getLocalizationFile(userCtx, pathPrefix);
siteConfDir = pathManager.getLocalizationFile(siteCtx, pathPrefix
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/TextProductCatalogue.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/TextProductCatalogue.java
index 9202c7f002..7ee1c7fdb4 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/TextProductCatalogue.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/TextProductCatalogue.java
@@ -39,6 +39,8 @@ import com.raytheon.viz.gfe.core.msgs.ITextProductListChangedListener;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Sep 19, 2008 1562 askripsky Initial creation
+ * Mar 06 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * for GFE localization files
*
*
*
@@ -98,7 +100,7 @@ public class TextProductCatalogue {
// Retrieve the current set of Utilities from the Base
LocalizationContext baseContext = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
LocalizationFile[] baseUtilitiesFiles = pathMgr.listFiles(baseContext,
TextProductUtils.UTILITIES_PATH,
@@ -106,7 +108,7 @@ public class TextProductCatalogue {
// Retrieve the current set of Utilities from the Site
LocalizationContext siteContext = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
LocalizationFile[] siteUtilitiesFiles = pathMgr.listFiles(siteContext,
TextProductUtils.UTILITIES_PATH,
@@ -138,7 +140,7 @@ public class TextProductCatalogue {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext siteContext = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
// Gets the the current products
LocalizationFile[] productsFiles = pathMgr.listFiles(siteContext,
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/TextProductUtils.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/TextProductUtils.java
index f0d4a332cc..ab76488171 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/TextProductUtils.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/TextProductUtils.java
@@ -51,11 +51,12 @@ import com.raytheon.viz.gfe.PythonUtil;
* Utilities for text products
*
*
- * SOFTWARE HISTORY
+S * SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
- * Sept 23, 2008 askripsky Initial creation
- *
+ * Sep 23,2008 askripsky Initial creation
+ * Mar 06,2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * for GFE localization files
*
*
* @author askripsky
@@ -186,7 +187,7 @@ public class TextProductUtils {
// Get context for the Site
LocalizationContext cx = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
// Build the path to the new file
String path = (type.equals(PRODUCT) ? PRODUCTS_PATH : UTILITIES_PATH)
@@ -244,7 +245,7 @@ public class TextProductUtils {
// Get path to template file
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext tx = pathMgr.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
File templateFile = pathMgr.getFile(tx, TEMPLATES_PATH);
try {
diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/action/TextProductDeleteAction.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/action/TextProductDeleteAction.java
index 6ac9b27001..618508f2b4 100644
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/action/TextProductDeleteAction.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/textproduct/action/TextProductDeleteAction.java
@@ -41,6 +41,7 @@ import com.raytheon.viz.gfe.ui.AccessMgr;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jul 30, 2010 dgilling Initial creation
+ * Mar 07, 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
*
@@ -76,7 +77,7 @@ public class TextProductDeleteAction extends Action {
@Override
public void run() {
if (AccessMgr.verifyDelete(util.scripted(scriptName),
- LocalizationType.CAVE_STATIC, false)) {
+ LocalizationType.COMMON_STATIC, false)) {
try {
// Delete the script
util.delete(scriptName, LocalizationLevel.USER);
diff --git a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/colorscalemgr/ColorScaleMgrDlg.java b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/colorscalemgr/ColorScaleMgrDlg.java
index 23e8d74b79..98052253fd 100644
--- a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/colorscalemgr/ColorScaleMgrDlg.java
+++ b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/colorscalemgr/ColorScaleMgrDlg.java
@@ -69,6 +69,8 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
* ------------ ---------- ----------- --------------------------
* 29 NOV 2007 373 lvenable Initial creation
* 23 Feb 2011 5400 lbousaidi fixed issues in color/value bar
+ * 11 Mar 2013 15065 lbousaidi fixed issue with both color legend
+ * disappearing after save
*
*
* @author lvenable
@@ -807,6 +809,7 @@ public class ColorScaleMgrDlg extends CaveSWTDialog {
String source = getSource();
updateColor(source);
updateUsedColorValueLabelBar();
+ updateUsedColorSetGroupText();
}
});
@@ -1468,8 +1471,11 @@ public class ColorScaleMgrDlg extends CaveSWTDialog {
// ArrayList updatedColorSet = editColorData
// .getColorScaleDataArray(source, durationCbo.getText() + "_"
// + dataTypeCbo.getText());
- if (updatedColorSet == null) {
- updatedColorSet = new ArrayList();
+
+ if (updatedColorSet.size()==0) {
+ updatedColorSet = editColorData
+ .getColorScaleDataArray(source, 0 + "_"
+ + dataTypeCbo.getText());
}
int numCols = updatedColorSet.size();
@@ -1560,7 +1566,13 @@ public class ColorScaleMgrDlg extends CaveSWTDialog {
ArrayList updatedColorSet = editColorData
.getUsedColorScaleDataArray(source, selectedDurationInSeconds
+ "_" + dataTypeCbo.getText());
-
+
+ //use default color
+ if (updatedColorSet.size() == 0 ) {
+ updatedColorSet = editColorData
+ .getUsedColorScaleDataArray(source, 0
+ + "_" + dataTypeCbo.getText());
+ }
int numCols = updatedColorSet.size();
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
@@ -1877,7 +1889,10 @@ public class ColorScaleMgrDlg extends CaveSWTDialog {
Iterator i = dataTypes.iterator();
while (i.hasNext()) {
String dt = i.next();
- dataTypeCbo.add(colorManager.getDescription(dt));
+ //add a check in case there is a typo in dataType the it will be null
+ if (!dt.contains("null")) {
+ dataTypeCbo.add(colorManager.getDescription(dt));
+ }
}
if (dataTypeCbo.getItemCount() == 0) {
@@ -1960,10 +1975,11 @@ public class ColorScaleMgrDlg extends CaveSWTDialog {
} else {
createColorData(user);
}
-
- changeDuration();
-
- setReturnValue(true);
+
+ updateDurationCombo();
+ updateColorValueLabelBar();
+
+ setReturnValue(true);
}
/**
diff --git a/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/gagetable/GageTableDlg.java b/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/gagetable/GageTableDlg.java
index 019cd22112..f75476612a 100644
--- a/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/gagetable/GageTableDlg.java
+++ b/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/gagetable/GageTableDlg.java
@@ -21,7 +21,6 @@ package com.raytheon.viz.mpe.ui.dialogs.gagetable;
import java.awt.BorderLayout;
import java.awt.Container;
-import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
@@ -102,6 +101,7 @@ import com.raytheon.viz.mpe.ui.dialogs.gagetable.xml.GageTableSortType;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 28, 2009 2476 mpduff Initial creation.
+ * Mar 08, 2013 15725 snaples Updated to fix resort issues when editing value.
*
*
*
@@ -1212,33 +1212,7 @@ public class GageTableDlg extends JFrame {
public void tableChanged(TableModelEvent e) {
GageTableDataManager dataManager = GageTableDataManager
.getInstance();
- getContentPane().setCursor(new Cursor(Cursor.WAIT_CURSOR));
- int width = GageTableConstants.DEFAULT_WIDTH;
-
if ((e != null) && (e.getType() == TableModelEvent.UPDATE)) {
- table = null;
- table = new JTable(tableModel);
-
- JTableHeader header = table.getTableHeader();
- header.addMouseListener(new ColumnHeaderListener());
- // Disable autoCreateColumnsFromModel otherwise all the column
- // customizations and adjustments will be lost when the model
- // data is sorted
- table.setAutoCreateColumnsFromModel(false);
- table.setColumnSelectionAllowed(false);
- table.setRowSelectionAllowed(true);
- table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
- // make the user's edits stored without need for type "return"
- // key or click
- // on JTable
- table.putClientProperty("terminateEditOnFocusLost",
- Boolean.TRUE);
-
- /* Center all table data */
- JLabel renderer = ((JLabel) table
- .getDefaultRenderer(Object.class));
- renderer.setHorizontalAlignment(SwingConstants.CENTER);
-
// Get the changed info
int cellRow = table.convertRowIndexToModel(e.getFirstRow());
int cellColumn = e.getColumn();
@@ -1271,7 +1245,6 @@ public class GageTableDlg extends JFrame {
// or 'm' or 'M' or "".
if (newValue.equals("")) {
rowData.setValueEdited(false);
- // rowData.setEditValue(-999.0);
} else {
if (newValue.equalsIgnoreCase("m")) {
rowData.setEditValue(-999.0);
@@ -1281,7 +1254,6 @@ public class GageTableDlg extends JFrame {
}
rowData.setValueEdited(true);
}
- // rowData.setValueEdited(true);
int indexOf = rowDataList.indexOf(rowData);
rowDataList.set(indexOf, rowData);
editMap.put(
@@ -1289,36 +1261,8 @@ public class GageTableDlg extends JFrame {
rowData);
dataChanged = true;
}
- dataManager.setGageTableRowList(rowDataList);
- gageTablePanel.remove(scrollPane);
- scrollPane = new JScrollPane(table);
- gageTablePanel.add(scrollPane);
-
- List columnList = dataManager
- .getColumnDataList();
- ColumnHeaderToolTips tips = new ColumnHeaderToolTips();
-
- for (int i = 0; i < columnList.size(); i++) {
- TableColumn col = table.getColumnModel().getColumn(i);
- col.setHeaderRenderer(new GageTableHeaderCellRenderer());
- col.setMinWidth(25);
- GageTableColumn c = columnList.get(i);
-
- if (dataManager.getColumnWidthMap().get(c.getName()) == null) {
- width = GageTableConstants.DEFAULT_WIDTH;
- } else {
- width = dataManager.getColumnWidthMap()
- .get(c.getName());
- }
- col.setPreferredWidth(width);
- tips.setToolTip(col, c.getToolTipText());
- }
-
- header.addMouseMotionListener(tips);
-
// Update the grid combobox
gridCombo.removeAllItems();
- columnData = columnList;
populateGridCombo();
} else {
@@ -1330,8 +1274,6 @@ public class GageTableDlg extends JFrame {
.setHeaderRenderer(new GageTableHeaderCellRenderer());
}
}
- // sortTable();
- getContentPane().setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
}
@@ -1370,7 +1312,12 @@ public class GageTableDlg extends JFrame {
dispose();
}
- /**
+ public void setDataChanged(boolean dataChanged)
+ {
+ this.dataChanged = dataChanged;
+ }
+
+ /**
* Set the sort order of the columns.
*
* @param settings
diff --git a/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/CommonGridAttributes.java b/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/CommonGridAttributes.java
index e01358492c..e6ca5c85b7 100644
--- a/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/CommonGridAttributes.java
+++ b/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/CommonGridAttributes.java
@@ -31,6 +31,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 9, 2011 snaples Initial creation
+ * Mar 5, 2013 15884 wkwock gridPointLL and gridPointUR should be integer
*
*
*
@@ -62,9 +63,9 @@ public class CommonGridAttributes {
int[] gridSize = new int[2];
- Coordinate gridPointLL = new Coordinate();
+ int[] gridPointLL = new int[2];
- Coordinate gridPointUR = new Coordinate();
+ int[] gridPointUR = new int[2];
/**
* Time in seconds
diff --git a/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/GridAttributes.java b/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/GridAttributes.java
index 559f1a2c34..c444b5127d 100644
--- a/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/GridAttributes.java
+++ b/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/GridAttributes.java
@@ -40,6 +40,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 9, 2011 snaples Initial creation
+ * Mar 5, 2013 15884 wkwock gridPointLL and gridPointUR should be integer
*
*
*
@@ -119,9 +120,10 @@ public class GridAttributes {
if (rfcid.length() != 0) {
commonGridAttributes.siteID = rfcid;
}
- commonGridAttributes.gridPointLL = new Coordinate(XOR, YOR);
- commonGridAttributes.gridPointUR = new Coordinate(
- (XOR + hrap_grid.maxi), (YOR + hrap_grid.maxj));
+ commonGridAttributes.gridPointLL[0] = XOR;
+ commonGridAttributes.gridPointLL[1] = YOR;
+ commonGridAttributes.gridPointUR[0] = XOR + hrap_grid.maxi;
+ commonGridAttributes.gridPointUR[1] = YOR + hrap_grid.maxj;
gridType = apps_defaults.getToken("mpe_dqc_gridtype");
if (gridType.length() != 0) {
diff --git a/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/WriteDQCGribGrids.java b/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/WriteDQCGribGrids.java
index 542307f759..e8fce69f67 100644
--- a/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/WriteDQCGribGrids.java
+++ b/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/WriteDQCGribGrids.java
@@ -45,6 +45,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 9, 2011 snaples Initial creation
+ * Mar 5, 2013 15884 wkwock gridPointLL and gridPointUR should be integer
*
*
*
@@ -418,15 +419,15 @@ public class WriteDQCGribGrids {
/* Lower left corner of the main projected grid */
- x1 = ga.gridPointLL.x;
- y1 = ga.gridPointLL.y;
+ x1 = ga.gridPointLL[0];
+ y1 = ga.gridPointLL[1];
lon1 = ga.latLonLL.x;
lat1 = ga.latLonLL.y;
/* upper right corner of the main projected grid */
- x2 = ga.gridPointUR.x;
- y2 = ga.gridPointUR.y;
+ x2 = ga.gridPointUR[0];
+ y2 = ga.gridPointUR[1];
lon2 = ga.latLonUR.x;
lat2 = ga.latLonUR.y;
/*
diff --git a/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/WriteDQCNetCDFGrids.java b/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/WriteDQCNetCDFGrids.java
index 4f97e122c7..056773dabd 100644
--- a/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/WriteDQCNetCDFGrids.java
+++ b/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/WriteDQCNetCDFGrids.java
@@ -44,6 +44,7 @@ import com.raytheon.viz.mpe.util.DailyQcUtils.Hrap_Grid;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 9, 2011 snaples Initial creation
+ * Mar 5, 2013 15884 wkwock gridPointLL and gridPointUR should be integer
*
*
*
@@ -306,13 +307,13 @@ public class WriteDQCNetCDFGrids {
cdf_grid_id.addAttribute(new Attribute("domainExtent", dims));
dims = new ArrayList();
- dims.add(ga.gridPointLL.x);
- dims.add(ga.gridPointLL.y);
+ dims.add(ga.gridPointLL[0]);
+ dims.add(ga.gridPointLL[1]);
cdf_grid_id.addAttribute(new Attribute("gridPointLL", dims));
dims = new ArrayList();
- dims.add(ga.gridPointUR.x);
- dims.add(ga.gridPointUR.y);
+ dims.add(ga.gridPointUR[0]);
+ dims.add(ga.gridPointUR[1]);
cdf_grid_id.addAttribute(new Attribute("gridPointUR", dims));
cdf_grid_id.addAttribute(new Attribute("gridType", ga.gridType));
diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/interrogators/RadarDMDInterrogator.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/interrogators/RadarDMDInterrogator.java
index 38ade51a42..464993d819 100644
--- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/interrogators/RadarDMDInterrogator.java
+++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/interrogators/RadarDMDInterrogator.java
@@ -61,7 +61,8 @@ import com.vividsolutions.jts.geom.Envelope;
* SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
- * Oct 4, 2010 mnash Initial creation
+ * Oct 04, 2010 mnash Initial creation
+ * MAR 05, 2013 15313 kshresth Added sampling for DMD
*
*
*
@@ -72,6 +73,8 @@ import com.vividsolutions.jts.geom.Envelope;
public class RadarDMDInterrogator extends RadarGraphicInterrogator implements
IRadarInterrogator {
+ private Map _dataMap = new HashMap();
+
private DmdModifier modifier;
public RadarDMDInterrogator() {
@@ -90,7 +93,6 @@ public class RadarDMDInterrogator extends RadarGraphicInterrogator implements
@Override
public Map sample(RadarRecord record, Coordinate latLon,
ColorMapParameters params) {
- Map dataMap = new HashMap();
if (latLon == null) {
return null;
}
@@ -101,16 +103,16 @@ public class RadarDMDInterrogator extends RadarGraphicInterrogator implements
record.getCRS());
mt.transform(input, 0, output, 0, 1);
- dataMap.put("crsLocation", output == null ? "-1,-1" : output[0]
+ _dataMap.put("crsLocation", output == null ? "-1,-1" : output[0]
+ "," + output[1]);
} catch (Exception e) {
return null;
}
- dataMap.put("ICAO", record.getIcao());
- dataMap.put("Mnemonic", record.getMnemonic());
- addParameters(record, latLon, dataMap);
- return dataMap;
+ _dataMap.put("ICAO", record.getIcao());
+ _dataMap.put("Mnemonic", record.getMnemonic());
+ addParameters(record, latLon, _dataMap);
+ return _dataMap;
}
/*
@@ -242,43 +244,19 @@ public class RadarDMDInterrogator extends RadarGraphicInterrogator implements
baseHeight += "<";
}
- String baseHeightValue = GraphicDataUtil
- .setupConverter(
- currFeature,
- DMDAttributeIDs.BASE_HEIGHT
- .toString(),
- -1, false);
- if (!baseHeightValue.isEmpty()) {
- baseHeightValue = formatter
- .format(new Double(
- baseHeightValue));
- }
- baseHeight += baseHeightValue
- + GraphicDataUtil
- .getUnit(DMDAttributeIDs.BASE_HEIGHT);
-
- if (!baseHeight.isEmpty()) {
- rval.append(baseHeight + "Ag ");
- }
+ baseHeight += GraphicDataUtil.setupConverter(currFeature,
+ DMDAttributeIDs.BASE_HEIGHT.toString(),
+ 1, true);
+ rval.append(baseHeight+" ");
break;
case DEPTH:
// Depth
String depth = GraphicDataUtil
- .setupConverter(currFeature,
- DMDAttributeIDs.DEPTH
- .toString(),
- -1, false);
- if (!depth.isEmpty()) {
- depth = formatter
- .format(new Double(depth));
- }
-
- depth += GraphicDataUtil
- .getUnit(DMDAttributeIDs.DEPTH);
-
- if (!depth.isEmpty()) {
- rval.append(depth + " ");
- }
+ .setupConverter(currFeature,
+ DMDAttributeIDs.DEPTH
+ .toString(),
+ 1,true);
+ rval.append(depth + " ");
break;
case RANK:
// Rank
@@ -290,22 +268,17 @@ public class RadarDMDInterrogator extends RadarGraphicInterrogator implements
&& !ranks.isEmpty()) {
tiltNum = ranks.split(",").length - 1;
}
- String rank = ranks.split(",")[tiltNum]
- + currFeature
- .getValue(DMDAttributeIDs.STRENGTH_RANK_TYPE
- .toString());
- if (!rank.isEmpty()) {
- rval.append("r" + rank + " ");
- }
+ String rank = ranks.split(",")[tiltNum];
+ rval.append("r" + rank + " ");
break;
case MSI:
// MSI
- String msi = currFeature
- .getValue(DMDAttributeIDs.MSI
- .toString());
- if (!msi.isEmpty()) {
- rval.append(msi + "-msi ");
- }
+ String msi = GraphicDataUtil
+ .setupConverter(
+ currFeature,
+ DMDAttributeIDs.MSI.toString(),
+ 1, true);
+ rval.append(msi + " ");
break;
case RV:
// llrotv
@@ -314,14 +287,8 @@ public class RadarDMDInterrogator extends RadarGraphicInterrogator implements
currFeature,
DMDAttributeIDs.BASE_ROTATIONAL_VEL
.toString(),
- -1, false);
- if (llrotv != null && !llrotv.isEmpty()) {
- llrotv = formatter.format(Double
- .parseDouble(llrotv))
- + GraphicDataUtil
- .getUnit(DMDAttributeIDs.BASE_ROTATIONAL_VEL);
+ 1, true);
rval.append(llrotv + " ");
- }
break;
case G2G:
// llg2g
@@ -330,14 +297,8 @@ public class RadarDMDInterrogator extends RadarGraphicInterrogator implements
currFeature,
DMDAttributeIDs.BASE_GTG_VEL_DIFF
.toString(),
- -1, false);
- if (llg2g != null && !llg2g.isEmpty()) {
- llg2g = formatter.format(Double
- .parseDouble(llg2g))
- + GraphicDataUtil
- .getUnit(DMDAttributeIDs.BASE_GTG_VEL_DIFF);
- rval.append(llg2g + " ");
- }
+ 1, true);
+ rval.append(llg2g + " ");
break;
case MRV:
// mxrotv
@@ -346,14 +307,8 @@ public class RadarDMDInterrogator extends RadarGraphicInterrogator implements
currFeature,
DMDAttributeIDs.MAX_ROTATIONAL_VEL
.toString(),
- -1, false);
- if (mxrotv != null && !mxrotv.isEmpty()) {
- mxrotv = formatter.format(Double
- .parseDouble(mxrotv))
- + GraphicDataUtil
- .getUnit(DMDAttributeIDs.MAX_ROTATIONAL_VEL);
+ 1, true);
rval.append(mxrotv + " ");
- }
break;
case HMRV:
// htmxrv
@@ -362,12 +317,8 @@ public class RadarDMDInterrogator extends RadarGraphicInterrogator implements
currFeature,
DMDAttributeIDs.HEIGHT_MAX_ROTATIONAL_VEL
.toString(),
- -1, false);
- htmxrv += GraphicDataUtil
- .getUnit(DMDAttributeIDs.HEIGHT_MAX_ROTATIONAL_VEL);
- if (!htmxrv.equals("")) {
- rval.append(htmxrv + "Ag ");
- }
+ 1, true);
+ rval.append(htmxrv + " ");
break;
case LL_CONV:
// Low-Level Convergence
diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/AbstractRadarResource.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/AbstractRadarResource.java
index f6f103df20..990b6cc7df 100644
--- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/AbstractRadarResource.java
+++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/AbstractRadarResource.java
@@ -76,7 +76,8 @@ import com.vividsolutions.jts.geom.Coordinate;
* SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
- * Aug 3, 2010 mnash Initial creation
+ * Aug 03, 2010 mnash Initial creation
+ * MAR 05, 2013 15313 kshresth Added sampling for DMD
*
*
*
@@ -413,11 +414,14 @@ public class AbstractRadarResource extends
displayedData.append("@" + dataMap.get("Azimuth"));
}
- if (labels.contains(InspectLabels.ICAO)) {
- displayedData.append(' ').append(dataMap.get("ICAO"));
+ if (!dataMap.get("Mnemonic").equalsIgnoreCase("DMD"))
+ {
+ if (labels.contains(InspectLabels.ICAO)) {
+ displayedData.append(' ').append(dataMap.get("ICAO"));
+ }
}
- if (displayedData.toString().contains("null")) {
+ if (displayedData.toString().contains("null") || displayedData.toString().isEmpty()) {
displayedData.replace(0, displayedData.length(), "NO DATA");
}
diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/util/GraphicDataUtil.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/util/GraphicDataUtil.java
index 8a7564106d..5b3105e85a 100644
--- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/util/GraphicDataUtil.java
+++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/util/GraphicDataUtil.java
@@ -52,7 +52,7 @@ import com.vividsolutions.jts.geom.Envelope;
* of 2D_STRENGTH_RANK.
* Nov 09 2012 15586 Xiaochuan In dataRowFormat, set MSI maximum
* size to 5.
- *
+ * MAR 05, 2013 15313 kshresth Added sampling for DMD
*
*
* @author mnash
@@ -291,7 +291,7 @@ public class GraphicDataUtil {
}
public static Unit> getUnit(DMDAttributeIDs id) {
- return units.get(id.toString());
+ return units.get(id);
}
}
diff --git a/cave/com.raytheon.viz.ui/plugin.xml b/cave/com.raytheon.viz.ui/plugin.xml
index 0c7a1498c5..9d52907e56 100644
--- a/cave/com.raytheon.viz.ui/plugin.xml
+++ b/cave/com.raytheon.viz.ui/plugin.xml
@@ -654,7 +654,7 @@
point="com.raytheon.uf.viz.localization.localizationpath">
diff --git a/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/dialogs/colordialog/ColorUtil.java b/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/dialogs/colordialog/ColorUtil.java
index 670e80c4bb..05a5f02acc 100644
--- a/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/dialogs/colordialog/ColorUtil.java
+++ b/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/dialogs/colordialog/ColorUtil.java
@@ -53,6 +53,7 @@ import com.raytheon.uf.viz.core.exception.VizException;
* Jul 18, 2007 njensen Initial creation
* Aug 20, 2008 dglazesk Updated for the new ColorMap interface
* and for the JiBX to JaXB transition
+ * Mar 07, 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
*
@@ -166,14 +167,14 @@ public class ColorUtil {
File path = null;
IPathManager pm = PathManagerFactory.getPathManager();
if (aSiteContext) {
- path = pm.getFile(pm.getContext(LocalizationType.CAVE_STATIC,
+ path = pm.getFile(pm.getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.SITE), COLORMAPS_DIR + File.separator
+ filename);
checkDir(path.getParentFile());
} else {
- path = pm.getFile(pm.getContext(LocalizationType.CAVE_STATIC,
+ path = pm.getFile(pm.getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.USER), COLORMAPS_DIR + File.separator
+ filename);
checkDir(path.getParentFile());
@@ -205,13 +206,13 @@ public class ColorUtil {
File path = null;
IPathManager pm = PathManagerFactory.getPathManager();
if (aSiteContext) {
- path = pm.getFile(pm.getContext(LocalizationType.CAVE_STATIC,
+ path = pm.getFile(pm.getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.SITE), COLORMAPS_DIR + File.separator
+ filename);
return path.exists();
} else {
- path = pm.getFile(pm.getContext(LocalizationType.CAVE_STATIC,
+ path = pm.getFile(pm.getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.USER), COLORMAPS_DIR + File.separator
+ filename);
return path.exists();
@@ -258,10 +259,10 @@ public class ColorUtil {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext context = null;
if (aSiteContext) {
- context = pathMgr.getContext(LocalizationType.CAVE_STATIC,
+ context = pathMgr.getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.SITE);
} else {
- context = pathMgr.getContext(LocalizationType.CAVE_STATIC,
+ context = pathMgr.getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.USER);
}
// use / for standard localization of File.separator
@@ -293,7 +294,7 @@ public class ColorUtil {
}
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationFile lfile = pm.getLocalizationFile(pm.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
COLORMAPS_DIR + File.separator + filename);
File file = lfile.getFile();
diff --git a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/ModelFamilies.xml b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/ModelFamilies.xml
index dad9eee026..dd172ebf0b 100644
--- a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/ModelFamilies.xml
+++ b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/ModelFamilies.xml
@@ -64,8 +64,8 @@
-
+ menuText="RAP" id="rap" useReferenceTime="true">
+
@@ -120,8 +120,8 @@
-
+ menuText="RAP" id="rap" useReferenceTime="true">
+
@@ -176,8 +176,8 @@
-
+ menuText="RAP" id="rap" useReferenceTime="true">
+
@@ -232,8 +232,8 @@
-
+ menuText="RAP" id="rap" useReferenceTime="true">
+
@@ -280,8 +280,8 @@
-
-
+
+
@@ -327,8 +327,8 @@
-
-
+
+
@@ -374,8 +374,8 @@
-
-
+
+
@@ -421,8 +421,8 @@
-
-
+
+
@@ -468,8 +468,8 @@
-
-
+
+
@@ -515,8 +515,8 @@
-
-
+
+
@@ -570,8 +570,8 @@
-
+ menuText="RAP" id="rap" useReferenceTime="true">
+
@@ -626,8 +626,8 @@
-
+ menuText="RAP" id="rap" useReferenceTime="true">
+
@@ -682,8 +682,8 @@
-
+ menuText="RAP" id="rap" useReferenceTime="true">
+
@@ -738,8 +738,8 @@
-
+ menuText="RAP" id="rap" useReferenceTime="true">
+
@@ -794,8 +794,8 @@
-
+ menuText="RAP" id="rap" useReferenceTime="true">
+
@@ -850,8 +850,8 @@
-
+ menuText="RAP" id="rap" useReferenceTime="true">
+
@@ -906,8 +906,8 @@
-
+ menuText="RAP" id="rap" useReferenceTime="true">
+
diff --git a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFamilies.xml b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFamilies.xml
index bb291d2438..7a33e15b3c 100644
--- a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFamilies.xml
+++ b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFamilies.xml
@@ -94,8 +94,8 @@
-
+ menuText="RAP40" id="rap" useReferenceTime="true">
+
diff --git a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFourPanelFamilies.xml b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFourPanelFamilies.xml
index 0ff4a96526..9ef18556d1 100644
--- a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFourPanelFamilies.xml
+++ b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFourPanelFamilies.xml
@@ -66,8 +66,8 @@
-
+ menuText="RAP" id="rap4panel" useReferenceTime="true">
+
diff --git a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseStdEnvPackage.xml b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseStdEnvPackage.xml
index d6415decc9..1f42037ec5 100644
--- a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseStdEnvPackage.xml
+++ b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseStdEnvPackage.xml
@@ -31,8 +31,8 @@
-
+ menuText="RAP40" id="rap40stdenv" useReferenceTime="true">
+
diff --git a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseSurfaceFamilies.xml b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseSurfaceFamilies.xml
index 6952018a44..9a819801e3 100644
--- a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseSurfaceFamilies.xml
+++ b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseSurfaceFamilies.xml
@@ -60,8 +60,8 @@
-
+ menuText="RAP" id="rapsurface" useReferenceTime="true">
+
\ No newline at end of file
diff --git a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/index.xml b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/index.xml
index fa8502eb45..f84d6c1b63 100644
--- a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/index.xml
+++ b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/index.xml
@@ -28,6 +28,7 @@
+
diff --git a/deltaScripts/13.3.1/updateGfeLoc.sh b/deltaScripts/13.3.1/updateGfeLoc.sh
new file mode 100644
index 0000000000..0a2fd257a1
--- /dev/null
+++ b/deltaScripts/13.3.1/updateGfeLoc.sh
@@ -0,0 +1,128 @@
+#!/bin/sh
+#
+# name: updateGFELoc.sh
+# desc: Move localization files from cave_static to common_static for GFE ifpServerText
+#
+# CHANGELOG
+# 06-March-2010 - jzeng Initial creation
+
+#
+
+usage(){
+ echo " Default: "
+ echo " updateGfeLoc.sh "
+ echo " update all site and user level GFE;"
+ echo " Use updateGfeLoc.sh -s|--site to update site level GFE; "
+ echo " Use updateGfeLoc.sh -u|--user to update user level GFE;"
+ echo " Use updateGfeLoc.sh -c|--configured to update configured level GFE;"
+ echo " Use updateGfeLoc.sh -w|--workstation to update workstation level GFE;"
+ echo " Use updateGfeLoc.sh -a|--all to update all levels of GFE localization files;"
+ exit
+}
+
+updateGfeLoc(){
+ LOC_LEVEL=$@
+ LOCALIZATION_DICT=('gfe/userPython/gfeConfig
+ gfe/userPython/smartTools
+ gfe/userPython/procedures
+ gfe/userPython/textProducts
+ gfe/userPython/textUtilities
+ gfe/userPython/utilities
+ gfe/weGroups
+ gfe/combinations
+ colormaps
+ ')
+
+ for loc in $LOCALIZATION_DICT
+ do
+ commonDir=/awips2/edex/data/utility/common_static/${LOC_LEVEL}/${loc}
+ caveDir=/awips2/edex/data/utility/cave_static/${LOC_LEVEL}/${loc}
+ if [ ! -d $commonDir ]
+ then
+ mkdir -p $commonDir
+ fi
+ if [ -d ${caveDir} ]
+ then
+ cp -r $caveDir/* $commonDir
+ rm -rf ${caveDir}
+ fi
+ done
+}
+
+updateAll(){
+ dirPaths=`ls /awips2/edex/data/utility/cave_static`
+ for dirPath in $dirPaths
+ do
+ echo "Updating $dirPath"
+ levelPaths=`ls /awips2/edex/data/utility/cave_static/${dirPath}`
+ for level in $levelPaths
+ do
+ updateGfeLoc ${dirPath}/${levelPath}
+ done
+ done
+}
+
+updateSite(){
+ sitePaths=`ls /awips2/edex/data/utility/cave_static/site`
+ for site in $sitePaths
+ do
+ updateGfeLoc site/$site
+ done
+}
+
+updateUser(){
+ userPaths=`ls /awips2/edex/data/utility/cave_static/user`
+ for user in $userPaths
+ do
+ updateGfeLoc user/$user
+ done
+}
+
+updateConfigured(){
+ confPaths=`ls /awips2/edex/data/utility/cave_static/configured`
+ for conf in $confPaths
+ do
+ updateGfeLoc configured/$conf
+ done
+}
+
+updateWorkstation(){
+ wtPaths=`ls /awips2/edex/data/utility/cave_static/workstation`
+ for wt in $wtPaths
+ do
+ updateGfeLoc workstation/$wt
+ done
+}
+
+if [ $# == 0 ]
+then
+ echo "This script will relocate all site and user level GFE files from cave_static to common_static: "
+ updateAll
+else
+ for arg in $@
+ do
+ case $arg in
+ -s|--site)
+ updateSite
+ ;;
+ -u|--user)
+ updateUser
+ ;;
+ -c|--configured)
+ updateConfigured
+ ;;
+ -w|--workstation)
+ updateWorkstation
+ ;;
+ -a|--all)
+ updateAll
+ ;;
+ -h|--help)
+ echo "Usage:"
+ usage;;
+ *) echo "$arg is an invalid application!"
+ usage;;
+ esac
+ done
+fi
+
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/BV_Change1.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/BV_Change1.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/BV_Change1.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/BV_Change1.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/BV_Change2.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/BV_Change2.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/BV_Change2.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/BV_Change2.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Cloud.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Cloud.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Cloud.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Cloud.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/DEFAULT.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/DEFAULT.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/DEFAULT.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/DEFAULT.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Discrepancy.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Discrepancy.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Discrepancy.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Discrepancy.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Gridded Data.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Gridded Data.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Gridded Data.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Gridded Data.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Hazards.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Hazards.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Hazards.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Hazards.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Hi Range Enhanced.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Hi Range Enhanced.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Hi Range Enhanced.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Hi Range Enhanced.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Linear.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Linear.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Linear.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Linear.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Low Range Enhanced.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Low Range Enhanced.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Low Range Enhanced.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Low Range Enhanced.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Mid Range Enhanced.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Mid Range Enhanced.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Mid Range Enhanced.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Mid Range Enhanced.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/NHC.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/NHC.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/NHC.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/NHC.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Prob Precip.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Prob Precip.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Prob Precip.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Prob Precip.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/QPF.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/QPF.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/QPF.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/QPF.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/SLCWV.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/SLCWV.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/SLCWV.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/SLCWV.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKCloud_CATop_CAHeight.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKCloud_CATop_CAHeight.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKCloud_CATop_CAHeight.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKCloud_CATop_CAHeight.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKIR_DKCIRA_CA_CIIR_CADefault_CJ.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKIR_DKCIRA_CA_CIIR_CADefault_CJ.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKIR_DKCIRA_CA_CIIR_CADefault_CJ.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKIR_DKCIRA_CA_CIIR_CADefault_CJ.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKIR_DKFog.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKIR_DKFog.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKIR_DKFog.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKIR_DKFog.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKIR_DKIR_CPWV.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKIR_DKIR_CPWV.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKIR_DKIR_CPWV.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKIR_DKIR_CPWV.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKLifted_CAIndex.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKLifted_CAIndex.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKLifted_CAIndex.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKLifted_CAIndex.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKPrecip_CAWater.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKPrecip_CAWater.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKPrecip_CAWater.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKPrecip_CAWater.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKSkin_CATemp.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKSkin_CATemp.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKSkin_CATemp.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKSkin_CATemp.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKVIS_DKCA_CA_CILow_CALight_CAVis_CJ.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKVIS_DKCA_CA_CILow_CALight_CAVis_CJ.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKVIS_DKCA_CA_CILow_CALight_CAVis_CJ.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKVIS_DKCA_CA_CILow_CALight_CAVis_CJ.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKVIS_DKLinear.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKVIS_DKLinear.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKVIS_DKLinear.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKVIS_DKLinear.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKVIS_DKZA_CA_CIVis_CADefault_CJ.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKVIS_DKZA_CA_CIVis_CADefault_CJ.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKVIS_DKZA_CA_CIVis_CADefault_CJ.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKVIS_DKZA_CA_CIVis_CADefault_CJ.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKWV_DKGray_CAScale_CAWater_CAVapor.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKWV_DKGray_CAScale_CAWater_CAVapor.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKWV_DKGray_CAScale_CAWater_CAVapor.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKWV_DKGray_CAScale_CAWater_CAVapor.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKWV_DKNSSL_CAVAS_CA_CIWV_CAAlternate_CJ.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKWV_DKNSSL_CAVAS_CA_CIWV_CAAlternate_CJ.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKWV_DKNSSL_CAVAS_CA_CIWV_CAAlternate_CJ.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKWV_DKNSSL_CAVAS_CA_CIWV_CAAlternate_CJ.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKWV_DKSLC_CAWV.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKWV_DKSLC_CAWV.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Sat_DKWV_DKSLC_CAWV.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Sat_DKWV_DKSLC_CAWV.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Steps.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Steps.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Steps.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Steps.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/TempHaz.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/TempHaz.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/TempHaz.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/TempHaz.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/WCLHazards.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/WCLHazards.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/WCLHazards.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/WCLHazards.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/Warm To Cold.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Warm To Cold.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/Warm To Cold.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/Warm To Cold.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/WarmNoseTemp.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/WarmNoseTemp.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/WarmNoseTemp.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/WarmNoseTemp.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/WaterColor.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/WaterColor.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/WaterColor.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/WaterColor.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/WetBulbTemp.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/WetBulbTemp.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/WetBulbTemp.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/WetBulbTemp.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/YesNo.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/YesNo.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/YesNo.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/YesNo.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/ndfdMaxMinT.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/ndfdMaxMinT.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/ndfdMaxMinT.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/ndfdMaxMinT.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/ndfdMaxTall.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/ndfdMaxTall.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/ndfdMaxTall.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/ndfdMaxTall.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/ndfdMinTall.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/ndfdMinTall.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/ndfdMinTall.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/ndfdMinTall.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/ndfdPoP12.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/ndfdPoP12.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/ndfdPoP12.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/ndfdPoP12.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/GFE/ndfdPoP12all.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/ndfdPoP12all.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/GFE/ndfdPoP12all.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/GFE/ndfdPoP12all.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Grid/aviation_turbulence_index.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/aviation_turbulence_index.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Grid/aviation_turbulence_index.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/aviation_turbulence_index.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Grid/gridded data.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/gridded data.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Grid/gridded data.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/gridded data.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Grid/hirange enhanced.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/hirange enhanced.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Grid/hirange enhanced.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/hirange enhanced.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Grid/icing_severity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/icing_severity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Grid/icing_severity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/icing_severity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Grid/icing_sld.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/icing_sld.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Grid/icing_sld.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/icing_sld.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Grid/lowrange enhanced.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/lowrange enhanced.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Grid/lowrange enhanced.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/lowrange enhanced.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Grid/midrange enhanced.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/midrange enhanced.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Grid/midrange enhanced.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/midrange enhanced.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Grid/sat gridded data.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/sat gridded data.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Grid/sat gridded data.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/sat gridded data.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Grid/truncated gridded data.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/truncated gridded data.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Grid/truncated gridded data.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/truncated gridded data.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Grid/truncated warm to cold.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/truncated warm to cold.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Grid/truncated warm to cold.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/truncated warm to cold.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Grid/warm to cold.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/warm to cold.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Grid/warm to cold.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Grid/warm to cold.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/LAMP/CTSTM Best Category.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/LAMP/CTSTM Best Category.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/LAMP/CTSTM Best Category.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/LAMP/CTSTM Best Category.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/LAMP/Gridded Data.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/LAMP/Gridded Data.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/LAMP/Gridded Data.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/LAMP/Gridded Data.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/LAMP/QPF Best Category.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/LAMP/QPF Best Category.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/LAMP/QPF Best Category.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/LAMP/QPF Best Category.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/MDL/Fog Monitor Levels.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/MDL/Fog Monitor Levels.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/MDL/Fog Monitor Levels.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/MDL/Fog Monitor Levels.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/MDL/VIL Density.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/MDL/VIL Density.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/MDL/VIL Density.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/MDL/VIL Density.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/NCWF Convective Grid.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/NCWF Convective Grid.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/NCWF Convective Grid.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/NCWF Convective Grid.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Profiler/Wind Modes.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Profiler/Wind Modes.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Profiler/Wind Modes.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Profiler/Wind Modes.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Profiler/Wind Speed.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Profiler/Wind Speed.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Profiler/Wind Speed.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Profiler/Wind Speed.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/8 bit Refl.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/8 bit Refl.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/8 bit Refl.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/8 bit Refl.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/8 bit Vel.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/8 bit Vel.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/8 bit Vel.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/8 bit Vel.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/8 lvl Vel.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/8 lvl Vel.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/8 lvl Vel.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/8 lvl Vel.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/8-bit STP.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/8-bit STP.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/8-bit STP.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/8-bit STP.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/8-bit Vel.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/8-bit Vel.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/8-bit Vel.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/8-bit Vel.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/CWB Z - Reflectivity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/CWB Z - Reflectivity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/CWB Z - Reflectivity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/CWB Z - Reflectivity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/Clutter Filter Control.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Clutter Filter Control.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/Clutter Filter Control.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Clutter Filter Control.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/Digital VIL.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Digital VIL.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/Digital VIL.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Digital VIL.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/DualPol/Correlation Coeff.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/DualPol/Correlation Coeff.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/DualPol/Correlation Coeff.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/DualPol/Correlation Coeff.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/DualPol/Differential Refl.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/DualPol/Differential Refl.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/DualPol/Differential Refl.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/DualPol/Differential Refl.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/DualPol/Hydrometeor Class.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/DualPol/Hydrometeor Class.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/DualPol/Hydrometeor Class.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/DualPol/Hydrometeor Class.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/DualPol/Precip Accumulation.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/DualPol/Precip Accumulation.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/DualPol/Precip Accumulation.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/DualPol/Precip Accumulation.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/DualPol/Precip Rate.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/DualPol/Precip Rate.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/DualPol/Precip Rate.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/DualPol/Precip Rate.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/DualPol/Spec Differential Phase.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/DualPol/Spec Differential Phase.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/DualPol/Spec Differential Phase.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/DualPol/Spec Differential Phase.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/Enhanced Echo Tops.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Enhanced Echo Tops.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/Enhanced Echo Tops.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Enhanced Echo Tops.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/GSD/3 bit Vel.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/3 bit Vel.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/GSD/3 bit Vel.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/3 bit Vel.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/GSD/8 bit Refl.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/8 bit Refl.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/GSD/8 bit Refl.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/8 bit Refl.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/GSD/8 bit Vel.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/8 bit Vel.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/GSD/8 bit Vel.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/8 bit Vel.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/GSD/Layer Max Refl.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/Layer Max Refl.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/GSD/Layer Max Refl.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/Layer Max Refl.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/GSD/Packed (Z - V) - Reflectivity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/Packed (Z - V) - Reflectivity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/GSD/Packed (Z - V) - Reflectivity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/Packed (Z - V) - Reflectivity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/GSD/Packed (Z - V) - Velocity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/Packed (Z - V) - Velocity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/GSD/Packed (Z - V) - Velocity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/Packed (Z - V) - Velocity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/GSD/Spectrum Width.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/Spectrum Width.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/GSD/Spectrum Width.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/Spectrum Width.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/GSD/Storm Clear Reflectivity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/Storm Clear Reflectivity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/GSD/Storm Clear Reflectivity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/GSD/Storm Clear Reflectivity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/Hi-Res Ref (SGF).cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Hi-Res Ref (SGF).cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/Hi-Res Ref (SGF).cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Hi-Res Ref (SGF).cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/Hi-Res Vel (SGF).cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Hi-Res Vel (SGF).cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/Hi-Res Vel (SGF).cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Hi-Res Vel (SGF).cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/Layer Max Refl.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Layer Max Refl.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/Layer Max Refl.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Layer Max Refl.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/MDL/0-3Hr Radar-Based Categorical.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/MDL/0-3Hr Radar-Based Categorical.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/MDL/0-3Hr Radar-Based Categorical.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/MDL/0-3Hr Radar-Based Categorical.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/MDL/0-3Hr Radar-Based Probabilities.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/MDL/0-3Hr Radar-Based Probabilities.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/MDL/0-3Hr Radar-Based Probabilities.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/MDL/0-3Hr Radar-Based Probabilities.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/MDL/10 km Radar Coded Message.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/MDL/10 km Radar Coded Message.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/MDL/10 km Radar Coded Message.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/MDL/10 km Radar Coded Message.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/1, 3 Hr Precip Accumulation.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/1
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/1, 3 Hr Precip Accumulation.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/1
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/16 Level Composite Reflectivity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/16 Level Composite Reflectivity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/16 Level Composite Reflectivity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/16 Level Composite Reflectivity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/16 Level Reflectivity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/16 Level Reflectivity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/16 Level Reflectivity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/16 Level Reflectivity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/16 Level Velocity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/16 Level Velocity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/16 Level Velocity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/16 Level Velocity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/256 Level Reflectivity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/256 Level Reflectivity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/256 Level Reflectivity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/256 Level Reflectivity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/256 Level Velocity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/256 Level Velocity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/256 Level Velocity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/256 Level Velocity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/8 Level Reflectivity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/8 Level Reflectivity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/8 Level Reflectivity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/8 Level Reflectivity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/8 Level Velocity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/8 Level Velocity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/8 Level Velocity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/8 Level Velocity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/Combined Shear.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Combined Shear.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/Combined Shear.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Combined Shear.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/Digital VIL.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Digital VIL.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/Digital VIL.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Digital VIL.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/Echo Tops.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Echo Tops.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/Echo Tops.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Echo Tops.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/SRM Radial Velocity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/SRM Radial Velocity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/SRM Radial Velocity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/SRM Radial Velocity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/SWA - Shear.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/SWA - Shear.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/SWA - Shear.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/SWA - Shear.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/Spectrum Width.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Spectrum Width.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/Spectrum Width.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Spectrum Width.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/Storm Clear Refl.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Storm Clear Refl.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/Storm Clear Refl.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Storm Clear Refl.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/Storm Total Precip.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Storm Total Precip.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/Storm Total Precip.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Storm Total Precip.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/VAD Wind Profile.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/VAD Wind Profile.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/VAD Wind Profile.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/VAD Wind Profile.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/Velocity Azimuth Display.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Velocity Azimuth Display.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/Velocity Azimuth Display.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Velocity Azimuth Display.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/OSF/Vertically Integrated Liquid.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Vertically Integrated Liquid.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/OSF/Vertically Integrated Liquid.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/OSF/Vertically Integrated Liquid.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/PUP Severe Wx Prob.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/PUP Severe Wx Prob.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/PUP Severe Wx Prob.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/PUP Severe Wx Prob.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/Spectrum Width.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Spectrum Width.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/Spectrum Width.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Spectrum Width.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/Storm Clear Reflectivity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Storm Clear Reflectivity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/Storm Clear Reflectivity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Storm Clear Reflectivity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Radar/Storm Total Precip.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Storm Total Precip.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Radar/Storm Total Precip.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Radar/Storm Total Precip.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Cloud Amount Default.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Cloud Amount Default.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Cloud Amount Default.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Cloud Amount Default.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Cloud Top Height.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Cloud Top Height.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Cloud Top Height.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Cloud Top Height.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/IR/CIRA (IR Default).cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/IR/CIRA (IR Default).cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/IR/CIRA (IR Default).cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/IR/CIRA (IR Default).cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/IR/Fog.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/IR/Fog.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/IR/Fog.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/IR/Fog.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/IR/IR WV.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/IR/IR WV.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/IR/IR WV.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/IR/IR WV.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Lifted Index/Lifted Index - New CIMSS Table.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Lifted Index/Lifted Index - New CIMSS Table.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Lifted Index/Lifted Index - New CIMSS Table.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Lifted Index/Lifted Index - New CIMSS Table.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Lifted Index/Lifted Index Default.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Lifted Index/Lifted Index Default.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Lifted Index/Lifted Index Default.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Lifted Index/Lifted Index Default.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Low Cloud Base.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Low Cloud Base.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Low Cloud Base.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Low Cloud Base.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Precip Water/Blended Total Precip Water.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Precip Water/Blended Total Precip Water.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Precip Water/Blended Total Precip Water.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Precip Water/Blended Total Precip Water.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Precip Water/Percent of Normal TPW.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Precip Water/Percent of Normal TPW.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Precip Water/Percent of Normal TPW.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Precip Water/Percent of Normal TPW.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Precip Water/Precip Water - New CIMSS Table.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Precip Water/Precip Water - New CIMSS Table.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Precip Water/Precip Water - New CIMSS Table.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Precip Water/Precip Water - New CIMSS Table.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Precip Water/Precip Water - Polar.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Precip Water/Precip Water - Polar.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Precip Water/Precip Water - Polar.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Precip Water/Precip Water - Polar.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Precip Water/Precip Water Default.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Precip Water/Precip Water Default.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Precip Water/Precip Water Default.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Precip Water/Precip Water Default.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Rain Rate.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Rain Rate.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Rain Rate.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Rain Rate.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Skin Temp/Skin Temp - New CIMSS Table.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Skin Temp/Skin Temp - New CIMSS Table.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Skin Temp/Skin Temp - New CIMSS Table.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Skin Temp/Skin Temp - New CIMSS Table.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/Skin Temp/Skin Temp Default.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Skin Temp/Skin Temp Default.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/Skin Temp/Skin Temp Default.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/Skin Temp/Skin Temp Default.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/VIS/CA (Low Light Vis).cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/VIS/CA (Low Light Vis).cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/VIS/CA (Low Light Vis).cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/VIS/CA (Low Light Vis).cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/VIS/Linear.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/VIS/Linear.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/VIS/Linear.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/VIS/Linear.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/VIS/ZA (Vis Default).cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/VIS/ZA (Vis Default).cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/VIS/ZA (Vis Default).cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/VIS/ZA (Vis Default).cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/WV/Gray Scale Water Vapor.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/WV/Gray Scale Water Vapor.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/WV/Gray Scale Water Vapor.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/WV/Gray Scale Water Vapor.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/WV/NSSL VAS (WV Alternate).cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/WV/NSSL VAS (WV Alternate).cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/WV/NSSL VAS (WV Alternate).cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/WV/NSSL VAS (WV Alternate).cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/WV/RAMSDIS WV.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/WV/RAMSDIS WV.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/WV/RAMSDIS WV.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/WV/RAMSDIS WV.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/Sat/WV/SLC WV.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/WV/SLC WV.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/Sat/WV/SLC WV.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/Sat/WV/SLC WV.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/bathymetricTopo.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/bathymetricTopo.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/bathymetricTopo.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/bathymetricTopo.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/clouds.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/clouds.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/clouds.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/clouds.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/ffmp/diff.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/ffmp/diff.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/ffmp/diff.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/ffmp/diff.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/ffmp/qpe.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/ffmp/qpe.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/ffmp/qpe.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/ffmp/qpe.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/ffmp/qpe12.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/ffmp/qpe12.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/ffmp/qpe12.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/ffmp/qpe12.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/ffmp/qpe6.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/ffmp/qpe6.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/ffmp/qpe6.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/ffmp/qpe6.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/ffmp/rate.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/ffmp/rate.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/ffmp/rate.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/ffmp/rate.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/ffmp/ratio.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/ffmp/ratio.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/ffmp/ratio.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/ffmp/ratio.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/fog/fog.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/fog/fog.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/fog/fog.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/fog/fog.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/grid3d.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/grid3d.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/grid3d.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/grid3d.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/icing.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/icing.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/icing.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/icing.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/icing_sld.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/icing_sld.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/icing_sld.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/icing_sld.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/scan/SCANCWAThreatIndex.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/scan/SCANCWAThreatIndex.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/scan/SCANCWAThreatIndex.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/scan/SCANCWAThreatIndex.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/scan/VILDensity.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/scan/VILDensity.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/scan/VILDensity.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/scan/VILDensity.cmap
diff --git a/cave/build/static/common/cave/etc/colormaps/topo.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/topo.cmap
similarity index 100%
rename from cave/build/static/common/cave/etc/colormaps/topo.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/base/colormaps/topo.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/4bit_Z_OB3.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/4bit_Z_OB3.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/4bit_Z_OB3.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/4bit_Z_OB3.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/8 bit Refl-JL2.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/8 bit Refl-JL2.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/8 bit Refl-JL2.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/8 bit Refl-JL2.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/8bitVjgl.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/8bitVjgl.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/8bitVjgl.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/8bitVjgl.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/8bitZjgl.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/8bitZjgl.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/8bitZjgl.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/8bitZjgl.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/CIRA-IR-JLcool.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/CIRA-IR-JLcool.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/CIRA-IR-JLcool.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/CIRA-IR-JLcool.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/CIRA-IR-JLmod.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/CIRA-IR-JLmod.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/CIRA-IR-JLmod.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/CIRA-IR-JLmod.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/Hi-Res Ref (SGF)-ob3.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/Hi-Res Ref (SGF)-ob3.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/Hi-Res Ref (SGF)-ob3.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/Hi-Res Ref (SGF)-ob3.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/WVJL.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/WVJL.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/WVJL.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/WVJL.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/h5vortbrad.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/h5vortbrad.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/h5vortbrad.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/h5vortbrad.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/magtest.cmap b/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/magtest.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/magtest.cmap
rename to edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/magtest.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/edex_static/base/protectedFiles.txt b/edexOsgi/build.edex/esb/data/utility/edex_static/base/protectedFiles.txt
index c98c5486c8..3f16f2cbae 100644
--- a/edexOsgi/build.edex/esb/data/utility/edex_static/base/protectedFiles.txt
+++ b/edexOsgi/build.edex/esb/data/utility/edex_static/base/protectedFiles.txt
@@ -15,7 +15,7 @@ SITE:common_static/scan/SCANRunSiteConfig.xml
BASE:cave_static/derivedParameters/DerivedParameterInterface.py
# GFE protected files
-BASE:cave_static/gfe/userPython/textproducts/MultipleElementTable.py
+BASE:common_static/gfe/userPython/textproducts/MultipleElementTable.py
BASE:edex_static/textproducts/templates/product/AFD.py
BASE:edex_static/textproducts/templates/product/PFM.py
@@ -61,53 +61,53 @@ BASE:edex_static/textproducts/templates/utility/FireWxZones_EA_Site_MultiPil_Def
BASE:edex_static/textproducts/templates/utility/MarineZones_EA_Site_MultiPil_Definition.py
BASE:edex_static/textproducts/templates/utility/PublicZones_EA_Site_MultiPil_Definition.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/VTECMessageType.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/CombinedPhrases.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/CommonUtils.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/ConfigurableIssuance.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/ConfigVariables.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/DiscretePhrases.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/EditAreaUtils.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/FirePhrases.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/Header.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/Holidays.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/Interfaces.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/MarinePhrases.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/ModuleAccessor.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/PhraseBuilder.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/SAF_Overrides.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/FWS_Overrides.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/SampleAnalysis.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/ScalarPhrases.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/SimpleTableUtils.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/StringUtils.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/TableBuilder.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/TextRules.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/TextUtils.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/TimeDescriptor.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/TimeRangeUtils.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/UnitConvertor.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/VectorRelatedPhrases.py
-BASE:cave_static/gfe/userPython/textUtilities/regular/WxPhrases.py
+BASE:common_static/gfe/userPython/textUtilities/regular/VTECMessageType.py
+BASE:common_static/gfe/userPython/textUtilities/regular/CombinedPhrases.py
+BASE:common_static/gfe/userPython/textUtilities/regular/CommonUtils.py
+BASE:common_static/gfe/userPython/textUtilities/regular/ConfigurableIssuance.py
+BASE:common_static/gfe/userPython/textUtilities/regular/ConfigVariables.py
+BASE:common_static/gfe/userPython/textUtilities/regular/DiscretePhrases.py
+BASE:common_static/gfe/userPython/textUtilities/regular/EditAreaUtils.py
+BASE:common_static/gfe/userPython/textUtilities/regular/FirePhrases.py
+BASE:common_static/gfe/userPython/textUtilities/regular/Header.py
+BASE:common_static/gfe/userPython/textUtilities/regular/Holidays.py
+BASE:common_static/gfe/userPython/textUtilities/regular/Interfaces.py
+BASE:common_static/gfe/userPython/textUtilities/regular/MarinePhrases.py
+BASE:common_static/gfe/userPython/textUtilities/regular/ModuleAccessor.py
+BASE:common_static/gfe/userPython/textUtilities/regular/PhraseBuilder.py
+BASE:common_static/gfe/userPython/textUtilities/regular/SAF_Overrides.py
+BASE:common_static/gfe/userPython/textUtilities/regular/FWS_Overrides.py
+BASE:common_static/gfe/userPython/textUtilities/regular/SampleAnalysis.py
+BASE:common_static/gfe/userPython/textUtilities/regular/ScalarPhrases.py
+BASE:common_static/gfe/userPython/textUtilities/regular/SimpleTableUtils.py
+BASE:common_static/gfe/userPython/textUtilities/regular/StringUtils.py
+BASE:common_static/gfe/userPython/textUtilities/regular/TableBuilder.py
+BASE:common_static/gfe/userPython/textUtilities/regular/TextRules.py
+BASE:common_static/gfe/userPython/textUtilities/regular/TextUtils.py
+BASE:common_static/gfe/userPython/textUtilities/regular/TimeDescriptor.py
+BASE:common_static/gfe/userPython/textUtilities/regular/TimeRangeUtils.py
+BASE:common_static/gfe/userPython/textUtilities/regular/UnitConvertor.py
+BASE:common_static/gfe/userPython/textUtilities/regular/VectorRelatedPhrases.py
+BASE:common_static/gfe/userPython/textUtilities/regular/WxPhrases.py
-BASE:cave_static/gfe/userPython/utilities/ISC_Utility.py
-BASE:cave_static/gfe/userPython/utilities/SmartScript.py
-BASE:cave_static/gfe/userPython/utilities/HazardUtils.py
-BASE:cave_static/gfe/userPython/utilities/WxMethods.py
+BASE:common_static/gfe/userPython/utilities/ISC_Utility.py
+BASE:common_static/gfe/userPython/utilities/SmartScript.py
+BASE:common_static/gfe/userPython/utilities/HazardUtils.py
+BASE:common_static/gfe/userPython/utilities/WxMethods.py
# procedures
-BASE:cave_static/gfe/userPython/procedures/ISC_Discrepancies.py
-BASE:cave_static/gfe/userPython/procedures/PlotSPCWatches.py
-BASE:cave_static/gfe/userPython/procedures/PlotTPCEvents.py
-BASE:cave_static/gfe/userPython/procedures/HazardRecovery.py
-BASE:cave_static/gfe/userPython/procedures/SeparateHazards.py
-BASE:cave_static/gfe/userPython/procedures/ViewWCL.py
+BASE:common_static/gfe/userPython/procedures/ISC_Discrepancies.py
+BASE:common_static/gfe/userPython/procedures/PlotSPCWatches.py
+BASE:common_static/gfe/userPython/procedures/PlotTPCEvents.py
+BASE:common_static/gfe/userPython/procedures/HazardRecovery.py
+BASE:common_static/gfe/userPython/procedures/SeparateHazards.py
+BASE:common_static/gfe/userPython/procedures/ViewWCL.py
# smart tools
-BASE:cave_static/gfe/userPython/smartTools/AdjustValue_Down.py
-BASE:cave_static/gfe/userPython/smartTools/AdjustValue_Up.py
-BASE:cave_static/gfe/userPython/smartTools/Assign_Value.py
-BASE:cave_static/gfe/userPython/smartTools/Smooth.py
+BASE:common_static/gfe/userPython/smartTools/AdjustValue_Down.py
+BASE:common_static/gfe/userPython/smartTools/AdjustValue_Up.py
+BASE:common_static/gfe/userPython/smartTools/Assign_Value.py
+BASE:common_static/gfe/userPython/smartTools/Smooth.py
# smartInits
BASE:edex_static/smartInit/AKNAM40.py
@@ -159,7 +159,7 @@ BASE:edex_static/smartInit/RTMA.py
BASE:edex_static/smartInit/NamDNG5.py
#gfeConfig files
-BASE:cave_static/gfe/userPython/gfeConfig/gfeConfig.py
+BASE:common_static/gfe/userPython/gfeConfig/gfeConfig.py
# FFMP Files
SITE:common_static/purge/ffmpPurgeRules.xml
diff --git a/edexOsgi/com.raytheon.edex.common/src/com/raytheon/edex/utility/ProtectedFiles.java b/edexOsgi/com.raytheon.edex.common/src/com/raytheon/edex/utility/ProtectedFiles.java
index 59046214e7..930f9d04d5 100644
--- a/edexOsgi/com.raytheon.edex.common/src/com/raytheon/edex/utility/ProtectedFiles.java
+++ b/edexOsgi/com.raytheon.edex.common/src/com/raytheon/edex/utility/ProtectedFiles.java
@@ -49,6 +49,7 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 25, 2010 mschenke Initial creation
+ * Mar 07, 2013 15717 jzeng minor change for LEVEL_HEADER
*
*
*
@@ -74,7 +75,7 @@ public class ProtectedFiles {
private static final String LEVEL_HEADER = "# The layout of this file is a line that starts with a # is treated as a\n"
+ "# comment and any other line is treated as a protected base file in the \n"
+ "# format: localization_type/subpath/to/file\n"
- + "# A simple example would be: %s:cave_static/gfe/userPython/textProducts/AFD.py\n"
+ + "# A simple example would be: %s:common_static/gfe/userPython/textProducts/AFD.py\n"
+ "# Any entries in this file will only apply for users localized to the site\n";
private static ProtectedFiles base = new ProtectedFiles(PathManagerFactory
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/server/handler/SaveCombinationsFileHandler.java b/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/server/handler/SaveCombinationsFileHandler.java
index e93084ab1a..063df19300 100644
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/server/handler/SaveCombinationsFileHandler.java
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/server/handler/SaveCombinationsFileHandler.java
@@ -47,7 +47,9 @@ import com.raytheon.uf.edex.core.EDEXUtil;
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
- * May 16, 2011 dgilling Initial creation
+ * May 16,2011 dgilling Initial creation
+ * Mar 06,2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * for GFE localization files
*
*
*
@@ -73,7 +75,7 @@ public class SaveCombinationsFileHandler implements
SaveCombinationsFileRequest request) throws Exception {
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext localization = pm.getContextForSite(
- LocalizationType.CAVE_STATIC, request.getSiteID());
+ LocalizationType.COMMON_STATIC, request.getSiteID());
File localFile = pm.getFile(localization,
FileUtil.join(COMBO_FILE_DIR, request.getFileName()));
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/AreaDictionaryMaker.java b/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/AreaDictionaryMaker.java
index 125638bc4e..6b41354cf1 100644
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/AreaDictionaryMaker.java
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/AreaDictionaryMaker.java
@@ -48,8 +48,8 @@ import com.raytheon.uf.common.util.FileUtil;
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
- * May 4, 2011 wldougher Moved from MapManager
- *
+ * May 4, 2011 wldougher Moved from MapManager
+ * Mar 10 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
* @author wldougher
@@ -99,11 +99,11 @@ public class AreaDictionaryMaker {
scriptFile.getParent());
Map argMap = new HashMap();
- LocalizationContext caveStaticConfig = pathMgr.getContext(
- LocalizationContext.LocalizationType.CAVE_STATIC,
+ LocalizationContext commonStaticConfig = pathMgr.getContext(
+ LocalizationContext.LocalizationType.COMMON_STATIC,
LocalizationContext.LocalizationLevel.CONFIGURED);
- caveStaticConfig.setContextName(site);
- File outputDirFile = pathMgr.getLocalizationFile(caveStaticConfig,
+ commonStaticConfig.setContextName(site);
+ File outputDirFile = pathMgr.getLocalizationFile(commonStaticConfig,
FileUtil.join("gfe", "userPython", "textUtilities", "regular"))
.getFile();
outputDirFile.mkdir();
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/CombinationsFileMaker.java b/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/CombinationsFileMaker.java
index 2e35a544c0..6fd0708189 100644
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/CombinationsFileMaker.java
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/CombinationsFileMaker.java
@@ -48,9 +48,10 @@ import com.raytheon.uf.common.util.FileUtil;
*
* SOFTWARE HISTORY
*
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * May 4, 2011 wldougher Moved from MapManager
+ * Date Ticket# Engineer Description
+ * ------------ ---------- ----------- --------------------------
+ * May 4, 2011 wldougher Moved from MapManager
+ * Mar 6, 2013 15717 jzeng Changed CAVE_STATIC to COMMON_STATIC
*
*
*
@@ -101,15 +102,15 @@ public class CombinationsFileMaker {
String includePath = GfePyIncludeUtil.getCommonPythonIncludePath();
Map argMap = new HashMap();
- LocalizationContext caveStaticConfig = pathMgr.getContext(
- LocalizationContext.LocalizationType.CAVE_STATIC,
+ LocalizationContext commonStaticConfig = pathMgr.getContext(
+ LocalizationContext.LocalizationType.COMMON_STATIC,
LocalizationContext.LocalizationLevel.CONFIGURED);
- caveStaticConfig.setContextName(site);
+ commonStaticConfig.setContextName(site);
String definitionDir = pathMgr
- .getLocalizationFile(caveStaticConfig,
+ .getLocalizationFile(commonStaticConfig,
GfePyIncludeUtil.REGULAR).getFile().getPath();
- File outputDirFile = pathMgr.getLocalizationFile(caveStaticConfig,
+ File outputDirFile = pathMgr.getLocalizationFile(commonStaticConfig,
FileUtil.join("gfe", "combinations")).getFile();
outputDirFile.mkdir();
argMap.put("outputDir", outputDirFile.getPath());
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/Configurator.java b/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/Configurator.java
index 253143435d..744e1e7c7f 100644
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/Configurator.java
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/Configurator.java
@@ -64,6 +64,8 @@ import com.raytheon.uf.edex.database.cluster.ClusterTask;
* to create textProducts and textUtilities.
* Sep 07,2012 #1150 dgilling Fix isConfigured to check for textProducts
* and textUtilities dirs.
+ * Mar 04,2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * for GFE localization files
*
*
*
@@ -105,13 +107,13 @@ public class Configurator {
// destinationDirectory
IPathManager pathMgr = PathManagerFactory.getPathManager();
- LocalizationContext caveStaticConfig = pathMgr.getContext(
- LocalizationContext.LocalizationType.CAVE_STATIC,
+ LocalizationContext commonStaticConfig = pathMgr.getContext(
+ LocalizationContext.LocalizationType.COMMON_STATIC,
LocalizationContext.LocalizationLevel.CONFIGURED);
- caveStaticConfig.setContextName(siteID);
+ commonStaticConfig.setContextName(siteID);
try {
- destinationDirectory = pathMgr.getFile(caveStaticConfig,
+ destinationDirectory = pathMgr.getFile(commonStaticConfig,
FileUtil.join("gfe", "userPython")).getCanonicalPath();
} catch (IOException e) {
log.error("Unable to determine the destination directory", e);
diff --git a/cave/build/static/common/cave/etc/gfe/combinations/Combinations_ColorMap b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/combinations/Combinations_ColorMap
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/combinations/Combinations_ColorMap
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/combinations/Combinations_ColorMap
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/gfeConfig/EditTopo.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/gfeConfig/EditTopo.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/gfeConfig/EditTopo.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/gfeConfig/EditTopo.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/gfeConfig/gfeConfig.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/gfeConfig/gfeConfig.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/gfeConfig/gfeConfig.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/gfeConfig/gfeConfig.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/gfeConfig/imageTest1.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/gfeConfig/imageTest1.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/gfeConfig/imageTest1.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/gfeConfig/imageTest1.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/Align_Grids.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/Align_Grids.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/Align_Grids.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/Align_Grids.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerify.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/BOIVerify.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerify.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/BOIVerify.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifyAutoCalc.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/BOIVerifyAutoCalc.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifyAutoCalc.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/BOIVerifyAutoCalc.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifyBiasCorr.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/BOIVerifyBiasCorr.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifyBiasCorr.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/BOIVerifyBiasCorr.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifyInfo.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/BOIVerifyInfo.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifyInfo.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/BOIVerifyInfo.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifySave.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/BOIVerifySave.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifySave.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/BOIVerifySave.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifySumTemps.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/BOIVerifySumTemps.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifySumTemps.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/BOIVerifySumTemps.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/CRMTopoAvg.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/CRMTopoAvg.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/CRMTopoAvg.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/CRMTopoAvg.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/CheckTTdWind.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/CheckTTdWind.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/CheckTTdWind.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/CheckTTdWind.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/CheckTandTd.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/CheckTandTd.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/CheckTandTd.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/CheckTandTd.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/CheckWindGust.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/CheckWindGust.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/CheckWindGust.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/CheckWindGust.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/Collaborate_PoP_SnowAmt_QPF.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/Collaborate_PoP_SnowAmt_QPF.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/Collaborate_PoP_SnowAmt_QPF.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/Collaborate_PoP_SnowAmt_QPF.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/DiffFromClimo.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/DiffFromClimo.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/DiffFromClimo.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/DiffFromClimo.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/ERQCcheck.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/ERQCcheck.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/ERQCcheck.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/ERQCcheck.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/Extrapolate.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/Extrapolate.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/Extrapolate.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/Extrapolate.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/GenerateCyclone.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/GenerateCyclone.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/GenerateCyclone.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/GenerateCyclone.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/HazardRecovery.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/HazardRecovery.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/HazardRecovery.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/HazardRecovery.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/ISC_Discrepancies.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/ISC_Discrepancies.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/ISC_Discrepancies.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/ISC_Discrepancies.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/MakeHazard.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/MakeHazard.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/MakeHazard.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/MakeHazard.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/MergeHazards.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/MergeHazards.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/MergeHazards.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/MergeHazards.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/NDFD_QPF_Checks.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/NDFD_QPF_Checks.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/NDFD_QPF_Checks.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/NDFD_QPF_Checks.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/NDFDgridCheck.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/NDFDgridCheck.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/NDFDgridCheck.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/NDFDgridCheck.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/PWS_Procedure.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/PWS_Procedure.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/PWS_Procedure.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/PWS_Procedure.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/PlotSPCWatches.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/PlotSPCWatches.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/PlotSPCWatches.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/PlotSPCWatches.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/PlotTPCEvents.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/PlotTPCEvents.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/PlotTPCEvents.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/PlotTPCEvents.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/PopulateFromClimo.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/PopulateFromClimo.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/PopulateFromClimo.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/PopulateFromClimo.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/Populate_SkyProcedure.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/Populate_SkyProcedure.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/Populate_SkyProcedure.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/Populate_SkyProcedure.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/QPF_SnowAmt.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/QPF_SnowAmt.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/QPF_SnowAmt.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/QPF_SnowAmt.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/SeparateHazards.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/SeparateHazards.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/SeparateHazards.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/SeparateHazards.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/SnowAmtQPFPoPWxCheck.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/SnowAmtQPFPoPWxCheck.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/SnowAmtQPFPoPWxCheck.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/SnowAmtQPFPoPWxCheck.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/TCMWindTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/TCMWindTool.py
similarity index 97%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/TCMWindTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/TCMWindTool.py
index 4672b7593c..504da304cf 100644
--- a/cave/build/static/common/cave/etc/gfe/userPython/procedures/TCMWindTool.py
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/TCMWindTool.py
@@ -31,11 +31,6 @@
# Author: Tom LeFebvre
# Contributor: Pablo Santos
# ----------------------------------------------------------------------------
-# SOFTWARE HISTORY
-# Date Ticket# Engineer Description
-# ------------ ---------- ----------- --------------------------
-# 3/6/2013 15658 ryu Merge in change from AWIPS I DR 21414, which fixed
-# makeMaxWindGrid() for when center is outside domain.
# The MenuItems list defines the GFE menu item(s) under which the
# Procedure is to appear.
@@ -1341,16 +1336,52 @@ class Procedure (SmartScript.SmartScript):
startTime = interpFcstList[0]["validTime"]
endTime = startTime + (123 * 3600) # 123 hours later
+ fcstIndex = 0
+ while fcstIndex < len(interpFcstList)-1:
+ f1 = interpFcstList[fcstIndex]
+ f2 = interpFcstList[fcstIndex + 1]
+
+ f1Time = interpFcstList[fcstIndex]['validTime']
+ f2Time = interpFcstList[fcstIndex + 1]['validTime']
+
+ print "Interpolating from:", time.asctime(time.gmtime(f1Time)), \
+ "to", time.asctime(time.gmtime(f2Time))
+
+ lat1, lon1 = f1['centerLocation']
+ lat2, lon2 = f2['centerLocation']
+
+ x1, y1 = self.getGridCell(lat1, lon1)
+ x2, y2 = self.getGridCell(lat2, lon2)
+
+ if x1 is None or y1 is None or x2 is None or y2 is None:
+ fcstIndex += 1
+ continue
+
+ dx = abs(x2 - x1)
+ dy = abs(y2 - y1)
+
+ dmax = max(dx, dy)
+
+ newInterval = float(interval) / dmax
+
+ newFcstList = self.interpolateWindFcst(f1, f2, newInterval)
+
+ print "Created", len(newFcstList), "new wind forecasts."
+
+ for f in newFcstList:
+ mag, dir = self.makeRankine(f, latGrid, lonGrid, pieSlices, radiiFactor)
+
+ maxWindGrid = where(greater(mag, maxWindGrid), mag, maxWindGrid)
+
+ fcstIndex += 1
+
+ if f2["validTime"] >= endTime:
+ break
start = AbsTime.AbsTime(startTime)
end = AbsTime.AbsTime(endTime)
timeRange = TimeRange.TimeRange(start, end)
- # Used getGrids to calculate the maximum wind grid.
- #
- # Fetch the max of the wind grids just generated as this is very fast.
- maxWindGrid, maxDirGrid = self.getGrids("Fcst", "Wind", "SFC", timeRange, mode="Max")
-
maxWindGrid = self.smoothGrid(maxWindGrid, 3)
self.createGrid("Fcst", "TCMMaxWindComposite", "SCALAR", maxWindGrid, timeRange,
@@ -1454,7 +1485,7 @@ class Procedure (SmartScript.SmartScript):
# # Use this method to fetch a product from the text database
if productID == "preTCM":
- textProduct = self.getTextProductFromFile("/tmp/Isaac.txt")
+ textProduct = self.getTextProductFromFile("/tmp/Irene.txt")
decoder = TCMDecoder()
decoder.decodeTCMProduct(textProduct, self.dialogEyeDiameter)
fcstList = decoder.getFcstList()
@@ -1557,6 +1588,14 @@ class Procedure (SmartScript.SmartScript):
# get the lat, lon grids
latGrid, lonGrid = self.getLatLonGrids()
+ # interpolate through forecast period to very high resolution and make
+ # a composite maxWind grid from those wind grids
+ if maxwindswath is "Yes":
+ t1 = time.time()
+ self.makeMaxWindGrid(interpFcstList, interval, latGrid, lonGrid, pieSlices,
+ radiiFactor)
+ print time.time() - t1, "seconds to generate Max wind composite."
+
# make a grid for each interpolate forecast
gridCount = 0
for f in interpFcstList:
@@ -1582,14 +1621,6 @@ class Procedure (SmartScript.SmartScript):
print "TCMWindTool:", productID, "- Generated",gridCount, \
"out of", len(interpFcstList), "grids", time.asctime(time.gmtime(timeRange.startTime().unixTime()))
- # interpolate through forecast period to very high resolution and make
- # a composite maxWind grid from those wind grids
- if maxwindswath is "Yes":
- t1 = time.time()
- self.makeMaxWindGrid(interpFcstList, interval, latGrid, lonGrid, pieSlices,
- radiiFactor)
- print time.time() - t1, "seconds to generate Max wind composite."
-
if msg != "":
self.statusBarMsg(msg, "S")
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/ViewWCL.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/ViewWCL.py
similarity index 97%
rename from cave/build/static/common/cave/etc/gfe/userPython/procedures/ViewWCL.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/ViewWCL.py
index 91e6fed4b7..3c41def638 100644
--- a/cave/build/static/common/cave/etc/gfe/userPython/procedures/ViewWCL.py
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/procedures/ViewWCL.py
@@ -25,6 +25,12 @@
# ViewWCL
#
# Author: Matt Davis/ARX, Tom LeFebvre - Modified to fetch inventory
+# SOFTWARE HISTORY
+#
+# Date Ticket# Engineer Description
+# ------------ ---------- ----------- --------------------------
+# 03/07/13 15717 jzeng change CAVE_STATIC to COMMON_STATIC
+#
#
# ----------------------------------------------------------------------------
@@ -94,10 +100,10 @@ class Procedure (SmartScript.SmartScript):
# get the proper localization context
from com.raytheon.uf.common.localization import LocalizationContext
from com.raytheon.uf.common.localization import LocalizationContext_LocalizationType as LocalizationType
- CAVE_STATIC = LocalizationType.valueOf("CAVE_STATIC")
+ COMMON_STATIC = LocalizationType.valueOf("COMMON_STATIC")
from com.raytheon.uf.common.localization import LocalizationContext_LocalizationLevel as LocalizationLevel
SITE = LocalizationLevel.valueOf("SITE")
- ctx = pathManager.getContext(CAVE_STATIC, SITE)
+ ctx = pathManager.getContext(COMMON_STATIC, SITE)
# use localization to get the full path
wclName = os.path.join("gfe", "wcl")
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/Adjust.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Adjust.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/Adjust.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Adjust.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/AdjustValue_Down.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/AdjustValue_Down.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/AdjustValue_Down.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/AdjustValue_Down.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/AdjustValue_Up.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/AdjustValue_Up.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/AdjustValue_Up.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/AdjustValue_Up.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/Assign_Value.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Assign_Value.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/Assign_Value.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Assign_Value.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/CarSnowAmt.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/CarSnowAmt.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/CarSnowAmt.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/CarSnowAmt.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/CheckSkyWithPoP.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/CheckSkyWithPoP.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/CheckSkyWithPoP.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/CheckSkyWithPoP.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/CopyFromModel.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/CopyFromModel.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/CopyFromModel.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/CopyFromModel.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/Enhanced_WxTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Enhanced_WxTool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/Enhanced_WxTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Enhanced_WxTool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/EnufCloudForPoP.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/EnufCloudForPoP.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/EnufCloudForPoP.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/EnufCloudForPoP.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/HeatIndexTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/HeatIndexTool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/HeatIndexTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/HeatIndexTool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/LimitValues.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/LimitValues.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/LimitValues.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/LimitValues.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/MakeTmpGrid.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/MakeTmpGrid.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/MakeTmpGrid.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/MakeTmpGrid.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/MaxRH_Tool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/MaxRH_Tool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/MaxRH_Tool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/MaxRH_Tool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/MaxT_SmartTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/MaxT_SmartTool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/MaxT_SmartTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/MaxT_SmartTool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/MinRH_Tool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/MinRH_Tool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/MinRH_Tool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/MinRH_Tool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/MinT_SmartTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/MinT_SmartTool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/MinT_SmartTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/MinT_SmartTool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/ModelBlend.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/ModelBlend.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/ModelBlend.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/ModelBlend.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/MoveFeatureBySpeed.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/MoveFeatureBySpeed.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/MoveFeatureBySpeed.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/MoveFeatureBySpeed.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/Populate_SkyTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Populate_SkyTool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/Populate_SkyTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Populate_SkyTool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/QPF_SmartTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/QPF_SmartTool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/QPF_SmartTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/QPF_SmartTool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/RHTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/RHTool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/RHTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/RHTool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/RemoveWx.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/RemoveWx.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/RemoveWx.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/RemoveWx.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/Show_Evolution.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Show_Evolution.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/Show_Evolution.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Show_Evolution.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/Show_ISC_Area.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Show_ISC_Area.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/Show_ISC_Area.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Show_ISC_Area.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/Show_ISC_Grid.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Show_ISC_Grid.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/Show_ISC_Grid.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Show_ISC_Grid.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/Show_ISC_Highlights.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Show_ISC_Highlights.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/Show_ISC_Highlights.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Show_ISC_Highlights.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/Show_ISC_Info.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Show_ISC_Info.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/Show_ISC_Info.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Show_ISC_Info.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/Smooth.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Smooth.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/Smooth.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/Smooth.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/SnowAmt_SmartTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/SnowAmt_SmartTool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/SnowAmt_SmartTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/SnowAmt_SmartTool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/SnowAmt_fm_SnowRatio_and_QPF.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/SnowAmt_fm_SnowRatio_and_QPF.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/SnowAmt_fm_SnowRatio_and_QPF.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/SnowAmt_fm_SnowRatio_and_QPF.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/StormTotalQPF.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/StormTotalQPF.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/StormTotalQPF.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/StormTotalQPF.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/StormTotalQPF_ISC.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/StormTotalQPF_ISC.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/StormTotalQPF_ISC.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/StormTotalQPF_ISC.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/StormTotalSnow.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/StormTotalSnow.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/StormTotalSnow.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/StormTotalSnow.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/StormTotalSnow_ISC.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/StormTotalSnow_ISC.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/StormTotalSnow_ISC.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/StormTotalSnow_ISC.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/WindChillTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/WindChillTool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/WindChillTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/WindChillTool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/WindGustFromAlgorithm.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/WindGustFromAlgorithm.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/WindGustFromAlgorithm.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/WindGustFromAlgorithm.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/WindGust_Tool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/WindGust_Tool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/WindGust_Tool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/WindGust_Tool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/getGridsTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/getGridsTool.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/getGridsTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/getGridsTool.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/getMaxGrid.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/getMaxGrid.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/getMaxGrid.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/getMaxGrid.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/smartTools/getSumGrids.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/getSumGrids.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/smartTools/getSumGrids.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/smartTools/getSumGrids.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/ElementByPeriod.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/ElementByPeriod.py
new file mode 100644
index 0000000000..d3f3bb463a
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/ElementByPeriod.py
@@ -0,0 +1,86 @@
+##
+# 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.
+##
+########################################################################
+# ElementByPeriod
+#
+# Type: table
+# Edit Areas: solicited from user
+# To Run:
+# Products-->Generate Products
+# Choose Period (default is 3 hours per column) and Edit Area
+# Select OK
+#
+########################################################################
+## EXAMPLE OUTPUT
+##
+## Weather Element Table for BOU.
+##
+## Weather Element 12Z/9 15Z/9 18Z/9 21Z/9
+##
+## Sky (%) 74 72 70 68
+## Wind (mph) W 20 W 20 W 20 W 15
+## Temp 33 34 35 35
+## Precip (%) 60 60 81
+##
+########################################################################
+
+Definition = {
+
+ "type": "table",
+ "displayName": "TEST_Element By Period", # for Product Generation Menu
+
+ # Output file for product results
+ "outputFile": "./ElementByPeriod.txt", # default output file
+
+ "constantVariable": "EditArea",
+ "rowVariable": "WeatherElement",
+ "columnVariable": "TimePeriod",
+
+ "beginningText": "Weather Element Table for %EditArea. \n\n",
+ "endingText": "",
+
+ "defaultEditAreas": [("area1","Area 1")],
+ "runTimeEditAreas" : "yes", # if yes, ask user at run time
+ "defaultRanges": ["Today"],
+ "runTimeRanges" : "no", # if yes, ask user at run time
+
+ "elementList": [
+ ("Sky", "Sky (%)",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ("Wind","Wind (mph)",
+ "vectorRange",
+ "avgValue",
+ "Vector", 5, "ktToMph"),
+ ("T","Temp",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ("PoP", "Precip (%)",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ],
+
+ "timePeriod": 3,
+ "runTimePeriod": "yes", # If yes, ask user at run time for period
+
+ }
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/FirePeriodTable.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/FirePeriodTable.py
new file mode 100644
index 0000000000..6ebc296fde
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/FirePeriodTable.py
@@ -0,0 +1,110 @@
+##
+# 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.
+##
+########################################################################
+# FirePeriodTable
+#
+# Type: table
+# Edit Areas: solicited from user
+# Weather Elements: You must have these Weather elements defined in
+# your server: Sky, LAL, RelHum, MaxT, MinT, FreeWind,
+# Haines, TransWind, MixHgt(ft agl)
+# To Run:
+# Set GFE Time Range
+# Products-->Generate Products
+# Choose Edit Areas
+# Select OK
+#
+########################################################################
+## EXAMPLE OUTPUT (Scarce Data)
+
+## Fire Period Table for Feb 29 00 17:00:00 GMT - Mar 01 00 11:00:00 GMT.
+
+## Edit Area Sky (%) LAL RelHum (%) MaxT MinT FreeWind(mph) Haines TransWind(mph) MixHgt(ft agl)
+
+## COAdams 36-23 46 26
+## COArapahoe 34-24 46 26
+## COBoulder 31-52 34 18
+## COClearCreek 16-57 26 12
+## CODenver 37-40 43 25
+## CODouglas 24-47 40 21
+## COElbert 31-22 46 25
+
+
+
+########################################################################
+Definition = {
+
+ "type": "table",
+ "displayName": "TEST_Fire Period Table", # for Product Generation Menu
+
+ # Output file for product results
+ "outputFile": "./FirePeriodTable.txt", # default output file
+
+ "constantVariable": "TimePeriod",
+ "rowVariable": "EditArea",
+ "columnVariable": "WeatherElement",
+
+ "beginningText": "Fire Period Table for %TimePeriod. \n\n",
+ "endingText": "",
+
+ # Edit Areas
+ "defaultEditAreas" : [("area1","Area 1"),("area2","Area 2")],
+ "runTimeEditAreas": "yes",
+ "areaType" : "Edit Area", # E.g. City, County, Basin, etc.
+
+ # Time Ranges
+ "defaultRanges": ["Today"],
+ "runTimeRanges" : "no", # if yes, ask user at run time
+
+ "elementList": [
+ ("Sky", "Sky (%)",
+ "minMax",
+ "range2Value",
+ "Scalar", 1, None),
+ ("LAL","LAL",
+ "minMax",
+ "range2Value",
+ "Scalar",1,None),
+ ("MaxT","MaxT",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ("MinT","MinT",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ("FreeWind","FreeWind(mph)",
+ "vectorRange",
+ "range2Value",
+ "Vector", 1, "ktToMph"),
+ ("Haines","Haines",
+ "minMax",
+ "range2Value",
+ "Scalar",1,None),
+ ("TransWind","TransWind(mph)",
+ "vectorRange",
+ "range2Value",
+ "Vector", 1, "ktToMph"),
+ ("MixHgt", "MixHgt(ft agl)",
+ "minMax",
+ "range2Value",
+ "Scalar",10,None),
+ ],
+ }
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/LE_Test_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/LE_Test_Local.py
new file mode 100644
index 0000000000..1e21272516
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/LE_Test_Local.py
@@ -0,0 +1,842 @@
+##
+# 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.
+##
+# ----------------------------------------------------------------------------
+# This software is in the public domain, furnished "as is", without technical
+# support, and with no warranty, express or implied, as to its usefulness for
+# any purpose.
+#
+# Local_Effects_Test_Local
+# Local customizations for AreaFcst as Base class to test Local Effects
+#
+# Author: hansen
+# ----------------------------------------------------------------------------
+
+import AreaFcst
+import string
+import TextRules
+import types
+import copy
+
+class TextProduct(AreaFcst.TextProduct):
+ Definition = copy.deepcopy(AreaFcst.TextProduct.Definition)
+ Definition['displayName'] = "None"
+
+ # REQUIRED CONFIGURATION ITEMS
+ Definition['displayName'] = "TEST_LocalEffectsTest"
+ #Definition["outputFile"] = "/awips/GFESuite/products/TEXT/ZFP.txt"
+
+ # Header configuration items
+ #Definition["productName"] = "ZONE FORECAST PRODUCT" # name of product
+ #Definition["fullStationID"] = "Kxxx" # full station identifier (4letter)
+ #Definition["wmoID"] = "FOUS45" # WMO ID
+ #Definition["pil"] = "ZFPxxx" # product pil
+ #Definition["areaName"] = "STATENAME" # Name of state, such as "GEORGIA"
+ #Definition["wfoCity"] = "WfoCity" # Location of WFO - city name
+ #Definition["wfoState"] = "WfoState" # Location of WFO - state name
+
+ # OPTIONAL CONFIGURATION ITEMS
+ Definition["defaultEditAreas"] = [
+ ("area3", "Area 3"),
+ # ("area2", "Area 2"),
+ ]
+
+ Definition["windLE_list"] = 1
+ Definition["tempLE_list"] = 1
+ Definition["Period_1_version"] = 1
+ Definition["tempLE_method"] = 1
+
+ #Definition["directiveType"] = "C11"
+ #Definition["directiveType"] = "10-503" # Can be "C11"
+ #Definition["includeFloodingQuestion"] = 1 # Set to 1 to include flooding question
+
+ #Definition["includeMultipleElementTable"] = 1 # Will include a TempPoPTable
+ #Definition["cityDictionary"] = "CityDictionary" # For TempPoPTable
+
+ #Definition["areaDictionary"] = "AreaDictionary" # For product headers
+ #Definition["language"] = "english"
+
+ # Apply to C11 only:
+ #Definition["includeExtended"] = 1 # To include extended forecast
+ #Definition["extendedLabel"] = 1 # To include extended label
+ #Definition["includeEveningPeriod"] = 0 # To turn off evening period
+
+ #Definition["includeMultipleElementTable"] = 1 # Will include a MultipleElementTable
+ # Uncomment just one elementList below
+ #Definition["elementList"] = ["Temp", "PoP"] # Default
+ #Definition["elementList"] = ["Temp", "Humidity", "PoP"]
+ #Definition["singleValueFormat"] = 1 # Default is 0
+
+ # Sampling Performance
+ #Definition["sampleFromServer"] = 1 # If 1, sample directly from server
+ # Trouble-shooting items
+ #Definition["passLimit"] = 20 # Limit on passes allowed through
+ # Narrative Tree
+ #Definition["trace"] = 1 # Set to 1 to turn on trace through
+ # Narrative Tree for trouble-shooting
+ #Definition["debug"] = 1
+
+ def __init__(self):
+ AreaFcst.TextProduct.__init__(self)
+
+ # OPTIONAL OVERRIDES
+ #def DAY(self):
+ # return 6
+ #def NIGHT(self):
+ # return 18
+
+ # The thresholds and variables included here were selected because
+ # they are commonly overridden for your product.
+ # See the Text Product User Guide for other thresholds and variables
+ # that may be relevant to your product and for more information
+ # about the ones included here.
+
+ def phrase_descriptor_dict(self, tree, node):
+ # Descriptors for phrases
+ dict = TextRules.TextRules.phrase_descriptor_dict(self, tree, node)
+ # Uncomment this line for invoking areal or chance pop descriptor
+ #dict["PoP"] = self.areal_or_chance_pop_descriptor,
+ return dict
+
+ def pop_lower_threshold(self, tree, node):
+ # Pop values below this amount will not be reported
+ return 20
+
+ def pop_upper_threshold(self, tree, node):
+ # Pop values above this amount will not be reported
+ return 70
+
+ def pop_wx_lower_threshold(self, tree, node):
+ # Pop-related Wx will not be reported if Pop is below this threshold
+ return 20
+
+ def pop_sky_lower_threshold(self, tree, node):
+ # Sky condition will not be reported if Pop is above this threshold
+ return 60
+
+ def pop_snow_lower_threshold(self, tree, node):
+ # Snow accumulation will not be reported if Pop is below this threshold
+ return 60
+
+ def pop_snowLevel_upper_threshold(self, tree, node):
+ # Snow level will be reported if Pop is above this threshold
+ return 60
+
+ def snowLevel_maximum_phrase(self, tree, node):
+ # This returns the maximum snow level value to be reported and the
+ # the corresponding snow level phrase. It can be set up by
+ # edit area as follows:
+ # editAreaList = [
+ # ("area1", 8000, "above 8000 feet"),
+ # ("area2", 6000, "above 6000 feet"),
+ # # Don't mention snow level at all in area3:
+ # ("area3", 0, ""),
+ # ]
+ #maxElev = 0
+ #phrase = ""
+ #for area, elev, elevPhrase in editAreaList:
+ # if self.currentAreaContains(tree, [area]):
+ # if elev > maxElev:
+ # maxElev = elev
+ # phrase = elevPhrase
+ #return (maxElev, phrase)
+ return (8000, "above 8000 feet")
+
+ def null_nlValue_dict(self, tree, node):
+ # Threshold for reporting null values
+ # Units depend on the element and product
+ dict = TextRules.TextRules.null_nlValue_dict(self, tree, node)
+ dict["Wind"] = 5
+ return dict
+
+ def first_null_phrase_dict(self, tree, node):
+ # Phrase to use if values THROUGHOUT the period or
+ # in the first period are Null (i.e. below threshold OR NoWx)
+ # E.g. LIGHT WINDS. or LIGHT WINDS BECOMING N 5 MPH.
+ dict = TextRules.TextRules.first_null_phrase_dict(self, tree, node)
+ dict["Wind"] = "light winds"
+ return dict
+
+ def null_phrase_dict(self, tree, node):
+ # Phrase to use for null values in subPhrases other than the first
+ # Can be an empty string
+ # E.g. "NORTH WINDS 20 to 25 KNOTS BECOMING LIGHT"
+ dict = TextRules.TextRules.null_phrase_dict(self, tree, node)
+ dict["Wind"] = "light"
+ dict["Wx"] = ""
+ return dict
+
+ def increment_nlValue_dict(self, tree, node):
+ # Increment for rounding values
+ # Units depend on the product
+ dict = TextRules.TextRules.increment_nlValue_dict(self, tree, node)
+ dict["Wind"] = 5
+ return dict
+
+ def vector_mag_difference_dict(self, tree, node):
+ # Replaces WIND_THRESHOLD
+ # Magnitude difference. If the difference between magnitudes
+ # for the first and second half of a period is greater than this value,
+ # the different magnitudes will be noted in the phrase.
+ # Units can vary depending on the element
+ dict = TextRules.TextRules.vector_mag_difference_dict(self, tree, node)
+ dict["Wind"] = 10
+ return dict
+
+ def scalar_difference_nlValue_dict(self, tree, node):
+ # Scalar difference. If the difference between scalar values
+ # for 2 sub-periods is greater than this value,
+ # the different values will be noted in the phrase.
+ return {
+ "WindGust": 10, # knots or mph depending on product
+ "Period": 5, # seconds
+ "PoP": 10, # percentage
+ }
+
+ def lake_wind_areaNames(self, tree, node):
+ # Return list of edit area names for which the lake_wind_phrase
+ # should be generated
+ # If you want the phrase potentially generated for all zones, use:
+ # return ["ALL"]
+ return []
+
+ def useWindsForGusts_flag(self, tree, node):
+ # Turn this on if you want to use the maximum Wind
+ # for reporting Gusts if a WindGust grid is not found
+ return 0
+
+ def maximum_range_nlValue_dict(self, tree, node):
+ # Maximum range to be reported within a vector phrase
+ # e.g. 5 to 10 mph
+ # Units depend on the product
+ dict = TextRules.TextRules.maximum_range_nlValue_dict(self, tree, node)
+ #dict["MaxT"] = 15
+ #dict["MinT"] = 15
+ return dict
+
+ def minimum_range_nlValue_dict(self, tree, node):
+ # This threshold is the "smallest" min/max difference allowed between values reported.
+ # For example, if threshold is set to 5 for "MaxT", and the min value is 45
+ # and the max value is 46, the range will be adjusted to at least a 5 degree
+ # range e.g. 43-48. These are the values that are then submitted for phrasing
+ # such as:
+ # HIGHS IN THE MID 40S
+ dict = TextRules.TextRules.minimum_range_nlValue_dict(self, tree, node)
+ #dict["MaxT"] = 5
+ #dict["MinT"] = 5
+ return dict
+
+ def range_threshold_nlValue_dict(self, tree, node):
+ # Range for reporting temperature ranges in temp_range_phrase
+ # e.g HIGHS 80 TO 85
+ dict = TextRules.TextRules.range_threshold_nlValue_dict(self, tree, node)
+ dict["MaxT"] = 5
+ dict["MinT"] = 5
+ dict["MinRH"] = 5
+ dict["MaxRH"] = 5
+ dict["WindChill"] = 5
+ dict["HeatIndex"] = 5
+ return dict
+
+ def temp_trend_nlValue(self, tree, node):
+ # THRESHOLD FOR REPORTING TEMPERATURE TRENDS
+ return 20.0
+
+ def stdDev_dict(self, parmHisto, timeRange, componentName):
+ # This dictionary defines the low and high limit at which
+ # outliers will be removed when calculating stdDev stats.
+ # These tuples represent the (low, high) number of standard
+ # deviations. Any values falling outside this range will
+ # not be included in the calculated statistic.
+ return {
+ "LAL": (1.0, 1.0),
+ "MinRH": (1.0, 1.0),
+ "MaxRH": (1.0, 1.0),
+ "MinT": (1.0, 1.0),
+ "MaxT": (1.0, 1.0),
+ "Haines": (1.0, 1.0),
+ "PoP" : (1.0, 1.0),
+ "T" : (1.0, 1.0),
+ "Wind" : (1.0, 1.0),
+ }
+
+ def value_connector_dict(self, tree, node):
+ dict = TextRules.TextRules.value_connector_dict(self, tree, node)
+ dict["MaxT"] = " to "
+ dict["MinT"] = " to "
+ return dict
+
+ def windChillTemp_difference(self, tree, node):
+ # Difference between wind chill and temperature
+ # for reporting wind chill
+ return 5
+
+ def heatIndexTemp_difference(self, tree, node):
+ # Difference between heat index and temperature
+ # for reporting heat index
+ return 5
+
+
+ def Period_1(self):
+ exec "value = self.Period_1_version" + `self._Period_1_version` + "()"
+ return value
+
+ def Period_1_version1(self):
+ return {
+ "type": "component",
+ "methodList": [
+ self.consolidateSubPhrases,
+ self.assemblePhrases,
+ self.wordWrap,
+ ],
+ "analysisList": [
+ #("MinT", self.avg),
+ #("MaxT", self.avg),
+ ("MaxT", self.stdDevMinMax),
+ ("T", self.hourlyTemp),
+ ("T", self.minMax),
+ ("Sky", self.median, [3]),
+ ("Sky", self.binnedPercent, [6]),
+ ("PoP", self._PoP_analysisMethod("Period_1"), [3]),
+ ("PoP", self.binnedPercent, [3]),
+ ("SnowAmt", self.accumMinMax),
+ ("IceAccum", self.accumMinMax),
+ ("Wind", self.vectorMedianRange, [6]),
+ ("Wind", self.vectorMinMax, [6]),
+ ("WindGust", self.maximum, [6]),
+ ("Wx", self.rankedWx, [3]),
+ ],
+ "phraseList":[
+## self.skyPopWx_phrase,
+## (self.skyPopWx_phrase, self._wxLocalEffects_list()),
+## self.sky_phrase,
+## self.wind_summary,
+## self.reportTrends,
+## self.weather_phrase,
+## (self.weather_phrase, self._wxLE_list),
+
+## (self.weather_phrase,self._wxLocalEffects_list()),
+## (self.snow_phrase,self._snowAmtLocalEffects_list()),
+## (self.total_snow_phrase,self._totalSnowAmtLocalEffects_list()),
+
+ (self.highs_phrase, self._tempLocalEffects_list()),
+## (self.highs_phrase, self._tempLocalEffects_method),
+
+ (self.wind_withGusts_phrase, self._windLocalEffects_list()),
+
+## self.popMax_phrase,
+ ],
+## "additionalAreas": [
+## # Areas listed by weather element that will be
+## # intersected with the current area then
+## # sampled and analysed.
+## # E.g. used in local effects methods.
+## ("MaxT", ["area2", "area1"]),
+## ],
+ "intersectAreas": [
+ # Areas listed by weather element that will be
+ # intersected with the current area then
+ # sampled and analysed.
+ # E.g. used in local effects methods.
+ ("MaxT", ["AboveElev", "BelowElev"]),
+ ("Wind", ["AboveElev", "BelowElev"]),
+ ("WindGust", ["AboveElev", "BelowElev"]),
+ ("SnowAmt", ["AboveElev", "BelowElev"]),
+ ("Wx", ["AboveElev", "BelowElev"]),
+ ("PoP", ["AboveElev", "BelowElev"]),
+ ],
+ }
+
+ def TotalSnowSampling(self):
+ return {
+ "type": "component",
+ "methodList": [self.noWords],
+ "analysisList": [
+ ("SnowAmt", self.accumMinMax),
+ ],
+ "phraseList":[],
+ "intersectAreas": [
+ ("SnowAmt", ["AboveElev", "BelowElev"]),
+ ],
+ }
+
+ def _wxLE_list(self, tree, node):
+ leArea5 = self.LocalEffectArea("BelowElev", "")
+ leArea6 = self.LocalEffectArea("AboveElev", "along major rivers", intersectFlag=1)
+ return [self.LocalEffect([leArea5, leArea6],0, "...except ")]
+
+ def _tempLocalEffects_list(self):
+ exec "value = self._tempLocalEffects_list" + `self._tempLE_list` + "()"
+ return value
+
+ def _tempLocalEffects_list1(self):
+ leArea1 = self.LocalEffectArea("BelowElev", "")
+ leArea2 = self.LocalEffectArea("AboveElev", "in the mountains")
+ return [self.LocalEffect([leArea1, leArea2], 8, "...except ")]
+
+ def _windLocalEffects_list(self):
+ exec "value = self._windLocalEffects_list" + `self._windLE_list` + "()"
+ return value
+
+ def _windLocalEffects_list1(self):
+ leArea1 = self.LocalEffectArea("BelowElev", "")
+ leArea2 = self.LocalEffectArea("AboveElev", "in the mountains")
+ return [self.LocalEffect([leArea1, leArea2], 10, "...except ")]
+
+ def Period_2_3(self):
+ # No Lake Wind phrase
+ return {
+ "type": "component",
+ "methodList": [
+ self.consolidateSubPhrases,
+ self.assemblePhrases,
+ self.wordWrap,
+ ],
+ "intersectAreas": [
+ # Areas listed by weather element that will be
+ # intersected with the current area then
+ # sampled and analysed.
+ # E.g. used in local effects methods.
+ ("SnowAmt", ["AboveElev", "BelowElev"]),
+ ("Wx", ["AboveElev", "BelowElev"]),
+ ("PoP", ["AboveElev", "BelowElev"]),
+ ],
+ "analysisList": [
+ #("MinT", self.avg),
+ #("MaxT", self.avg),
+ ("MinT", self.stdDevMinMax),
+ ("MaxT", self.stdDevMinMax),
+ ("T", self.hourlyTemp),
+ ("T", self.minMax),
+ ("Sky", self.median, [6]),
+ ("PoP", self._PoP_analysisMethod("Period_2_3"), [6]),
+ ("PoP", self.binnedPercent, [6]),
+ ("SnowAmt", self.accumMinMax),
+ ("IceAccum", self.accumMinMax),
+ ("SnowLevel", self.avg),
+ ("Wind", self.vectorMedianRange, [6]),
+ ("Wind", self.vectorMinMax, [6]),
+ ("WindGust", self.maximum, [6]),
+ ("Wx", self.rankedWx, [6]),
+ ("WindChill", self.minMax),
+ ("HeatIndex", self.minMax),
+ ],
+ "phraseList":[
+ self.sky_phrase,
+ self.wind_summary,
+ self.reportTrends,
+ (self.weather_phrase,self._wxLocalEffects_list()),
+ #self.weather_phrase,
+ self.severeWeather_phrase,
+ (self.snow_phrase,self._snowAmtLocalEffects_list()),
+ #self.snow_phrase,
+ (self.total_snow_phrase,self._totalSnowAmtLocalEffects_list()),
+ self.snowLevel_phrase,
+ self.highs_phrase,
+ self.lows_phrase,
+ #self.highs_range_phrase,
+ #self.lows_range_phrase,
+ self.temp_trends,
+ self.wind_withGusts_phrase,
+# self.lake_wind_phrase,
+ self.popMax_phrase,
+ self.windChill_phrase,
+ self.heatIndex_phrase,
+ ],
+ }
+
+ def Period_4_5(self):
+ # Descriptive snow phrase
+ return {
+ "type": "component",
+ "methodList": [
+ self.consolidateSubPhrases,
+ self.assemblePhrases,
+ self.wordWrap,
+ ],
+ "analysisList": [
+ #("MinT", self.avg),
+ #("MaxT", self.avg),
+ ("MinT", self.stdDevMinMax),
+ ("MaxT", self.stdDevMinMax),
+ ("T", self.hourlyTemp),
+ ("T", self.minMax),
+ ("Sky", self.median, [6]),
+ ("PoP", self._PoP_analysisMethod("Period_4_5"), [6]),
+ ("PoP", self.binnedPercent, [6]),
+ ("SnowAmt", self.accumMinMax),
+ ("IceAccum", self.accumMinMax),
+ ("SnowLevel", self.avg),
+ ("Wind", self.vectorMedianRange, [6]),
+ ("Wind", self.vectorMinMax, [6]),
+ ("Wx", self.rankedWx, [6]),
+ ("WindChill", self.minMax),
+ ("HeatIndex", self.minMax),
+ ],
+ "phraseList":[
+ self.sky_phrase,
+ self.wind_summary,
+ self.reportTrends,
+ (self.weather_phrase,self._wxLocalEffects_list()),
+ #self.weather_phrase,
+ self.severeWeather_phrase,
+ self.snow_phrase,
+ self.total_snow_phrase,
+ self.snowLevel_phrase,
+ self.highs_phrase,
+ self.lows_phrase,
+ #self.highs_range_phrase,
+ #self.lows_range_phrase,
+ self.temp_trends,
+ self.wind_withGusts_phrase,
+ self.popMax_phrase,
+ self.windChill_phrase,
+ self.heatIndex_phrase,
+ ],
+ "intersectAreas": [
+ # Areas listed by weather element that will be
+ # intersected with the current area then
+ # sampled and analysed.
+ # E.g. used in local effects methods.
+ ("SnowAmt", ["AboveElev", "BelowElev"]),
+ ("Wx", ["AboveElev", "BelowElev"]),
+ ("PoP", ["AboveElev", "BelowElev"]),
+ ],
+ }
+
+ def _snowAmtLocalEffects_list(self):
+ leArea1 = self.LocalEffectArea("BelowElev", "")
+ leArea2 = self.LocalEffectArea("AboveElev", "above timberline")
+ return [self.LocalEffect([leArea1, leArea2], 2, "...except ")]
+
+ def _totalSnowAmtLocalEffects_list(self):
+ leArea1 = self.LocalEffectArea("BelowElev", "")
+ leArea2 = self.LocalEffectArea("AboveElev", "above timberline")
+ return [self.LocalEffect(
+ [leArea1, leArea2], self._checkTotalSnow, "...except ")]
+
+ def _checkTotalSnow(self, tree, node, localEffect, leArea1Label, leArea2Label):
+ totalSnow1 = self.getTotalSnow(tree, node, leArea1Label)
+ totalSnow2 = self.getTotalSnow(tree, node, leArea2Label)
+ if totalSnow1 is None or totalSnow2 is None:
+ return 0
+ if type(totalSnow1) is types.TupleType:
+ min,totalSnow1 = totalSnow1
+ if type(totalSnow2) is types.TupleType:
+ min,totalSnow2 = totalSnow2
+ if abs(totalSnow1 - totalSnow2) > 3:
+ return 1
+ return 0
+
+ def _wxLocalEffects_list(self):
+ leArea1 = self.LocalEffectArea("BelowElev", "")
+ leArea2 = self.LocalEffectArea("AboveElev", "above timberline")
+ return [self.LocalEffect([leArea1, leArea2], 10, "...except ")]
+
+ def _10_503_issuance_list(self, argDict):
+ seriesDefAM = [
+ ("Period_1", "period1"),
+## ("Period_2_3", 12), ("Period_2_3", 12), ("Period_4_5", 12), ("Period_4_5", 12),
+## ("Period_6_14", 12), ("Period_6_14", 12), ("Period_6_14", 12), ("Period_6_14", 12),
+## ("Period_6_14", 12), ("Period_6_14", 12), ("Period_6_14", 12), ("Period_6_14", 12),
+ ]
+ seriesDefPM = [
+ ("Period_1", "period1"),
+ ("Period_2_3", 12), ("Period_2_3", 12),
+ ("Period_4_5", 12), ("Period_4_5", 12),
+ ("Period_6_14", 12), ("Period_6_14", 12), ("Period_6_14", 12), ("Period_6_14", 12),
+ ("Period_6_14", 12), ("Period_6_14", 12), ("Period_6_14", 12), ("Period_6_14", 12),
+ ("Period_6_14", 12),
+ ]
+
+ return [
+ ("Morning", self.DAY(), self.NIGHT(), self.NIGHT(),
+ ".TODAY...", "early in the morning", "late in the afternoon",
+ 1, seriesDefAM),
+ ("Morning with Pre-1st Period", self.DAY()-2, self.NIGHT(), self.NIGHT(),
+ ".TODAY...", "early in the morning", "late in the afternoon",
+ 1, seriesDefAM),
+ ("Morning Update", "issuanceHour", self.NIGHT(), self.NIGHT(),
+ ".REST OF TODAY...", "early in the morning", "late in the afternoon",
+ 1, seriesDefAM),
+ ("Afternoon Update", "issuanceHour", self.NIGHT(), self.NIGHT(),
+ ".REST OF TODAY...", "early in the morning","late in the afternoon",
+ 1, seriesDefAM),
+ # End times are tomorrow:
+ ("Afternoon", self.NIGHT(), 24 + self.DAY(), 24 + self.DAY(),
+ ".TONIGHT...", "late in the night", "early in the evening",
+ 1, seriesDefPM),
+ ("Afternoon with Pre-1st Period", self.NIGHT()-2, 24 + self.DAY(), 24 + self.DAY(),
+ ".TONIGHT...", "late in the night", "early in the evening",
+ 1, seriesDefPM),
+ ("Evening Update", "issuanceHour", 24 + self.DAY(), 24 + self.DAY(),
+ ".REST OF TONIGHT...", "early in the morning","early in the evening",
+ 1, seriesDefPM),
+ # For the early morning update, this produces:
+ # REST OF TONIGHT:
+ # MONDAY
+ # MONDAY NIGHT
+ ("Early Morning Update", "issuanceHour", self.DAY(), self.DAY(),
+ ".REST OF TONIGHT...", "early in the morning","late in the afternoon",
+ 0, seriesDefPM),
+ # Alternative
+ # For the early morning update, this produces:
+ # EARLY THIS MORNING:
+ # TODAY
+ # TONIGHT
+ #("Evening Update", "issuanceHour", 24 + self.DAY(), 24 + self.DAY(),
+ # ".REST OF TONIGHT...", "late in the night", "early in the evening",
+ # 1, seriesDefPM),
+ #("Early Morning Update", "issuanceHour", self.DAY(), self.DAY(),
+ # ".EARLY THIS MORNING...", "early in the morning", "late in the afternoon",
+ # 1, seriesDefPM),
+ ]
+
+## def checkThreshold(self, tree, node, triggerMethod, leArea1, leArea2):
+## # Return 1 if the difference between leArea1 and leArea2 stats is
+## # greater than the threshold
+## # Handles stats that are a min/max or a singleValue
+## leArea1Label = self.getLeAreaLabel(tree, node, leArea1)
+## leArea2Label = self.getLeAreaLabel(tree, node, leArea2)
+## if type(triggerMethod) is types.MethodType:
+## flag = triggerMethod(tree, node, node.get("localEffect"), leArea1Label, leArea2Label)
+## else:
+## first = node.getAncestor("firstElement")
+## element = first.name
+## dataType = first.dataType
+## if dataType == self.WEATHER():
+## mergeMethod = "Average"
+## else:
+## mergeMethod = "MinMax"
+## timeRange = node.getTimeRange()
+## area1Stats = tree.stats.get(element, timeRange, leArea1Label,
+## mergeMethod=mergeMethod)
+## area2Stats = tree.stats.get(element, timeRange, leArea2Label,
+## mergeMethod=mergeMethod)
+## print "\nLocal effects", element, timeRange
+## print leArea1Label, area1Stats
+## print leArea2Label, area2Stats
+## if area1Stats is None or area2Stats is None:
+## return 0
+## flag = self.checkLocalEffectDifference(
+## tree, node, dataType, triggerMethod, area1Stats, area2Stats,
+## leArea1Label, leArea2Label)
+## print "returning", flag
+## return flag
+
+
+
+###################################################
+#### TEST OVERRIDE SECTION
+
+ # EXCEPT VS OTHERWISE WORDING:
+
+ def _windLocalEffects_list2(self):
+ leArea1 = self.LocalEffectArea("BelowElev", "", "in the valleys")
+ leArea2 = self.LocalEffectArea("AboveElev", "in the mountains")
+ return [self.LocalEffect([leArea2, leArea1], 10, "...otherwise ")]
+
+ # USING A METHOD TO SPECIFY LOCAL EFFECT AREAS:
+
+ def _tempLocalEffects_list2(self):
+ return [self.LocalEffect(self._getTempLeAreas, 8, "...except ")]
+
+ def _getTempLeAreas(self, tree, node):
+ leArea1 = self.LocalEffectArea("BelowElev", "")
+ leArea2 = self.LocalEffectArea("AboveElev", "in the mountains")
+ return [leArea1, leArea2]
+
+ # LOCAL EFFECT AREAS THAT DO NOT INTERSECT THE CURRENT AREA
+
+ def Period_1_version2(self):
+ return {
+ "type": "component",
+ "methodList": [
+ self.consolidateSubPhrases,
+ self.assemblePhrases,
+ self.wordWrap,
+ ],
+ "analysisList": [
+ #("MinT", self.avg),
+ #("MaxT", self.avg),
+ ("MaxT", self.stdDevMinMax),
+ ("T", self.hourlyTemp),
+ ("T", self.minMax),
+ ("Sky", self.median, [3]),
+ ("Sky", self.binnedPercent, [6]),
+ ("PoP", self._PoP_analysisMethod("Period_1"), [3]),
+ ("PoP", self.binnedPercent, [3]),
+ ("SnowAmt", self.minMax),
+ ("IceAmt", self.minMax),
+ ("Wind", self.vectorMedianRange, [6]),
+ ("Wind", self.vectorMinMax, [6]),
+ ("WindGust", self.maximum, [6]),
+ ("Wx", self.rankedWx, [3]),
+ ],
+ "phraseList":[
+## self.skyPopWx_phrase,
+## (self.skyPopWx_phrase, self._wxLocalEffects_list()),
+## self.sky_phrase,
+## self.wind_summary,
+## self.reportTrends,
+## self.weather_phrase,
+## (self.weather_phrase,self._wxLocalEffects_list()),
+## self.severeWeather_phrase,
+##
+## (self.snow_phrase,self._snowAmtLocalEffects_list()),
+## (self.total_snow_phrase,self._totalSnowAmtLocalEffects_list()),
+
+## (self.highs_phrase, self._tempLocalEffects_list()),
+ (self.highs_phrase, self._tempLocalEffects_method),
+
+## (self.wind_withGusts_phrase, self._windLocalEffects_list()),
+
+## self.popMax_phrase,
+ ],
+ "additionalAreas": [
+ # Areas listed by weather element that will be
+ # intersected with the current area then
+ # sampled and analysed.
+ # E.g. used in local effects methods.
+ ("MaxT", ["area2", "area1"]),
+ ],
+ "intersectAreas": [
+ # Areas listed by weather element that will be
+ # intersected with the current area then
+ # sampled and analysed.
+ # E.g. used in local effects methods.
+ ("MaxT", ["AboveElev", "BelowElev"]),
+ ("Wind", ["AboveElev", "BelowElev"]),
+ ("WindGust", ["AboveElev", "BelowElev"]),
+ ("SnowAmt", ["AboveElev", "BelowElev"]),
+ ("Wx", ["AboveElev", "BelowElev"]),
+ ("PoP", ["AboveElev", "BelowElev"]),
+ ],
+ }
+
+ def _tempLocalEffects_method(self, tree, node):
+ exec "value = self._tempLocalEffects_method" + `self._tempLE_method` + "(tree, node)"
+ return value
+
+ def _tempLocalEffects_method1(self, tree, node):
+ if self.currentAreaContains(tree, ["area3"]):
+ leArea1 = self.LocalEffectArea(
+ "__Current__","",intersectFlag=0)
+ leArea2 = self.LocalEffectArea("area1",
+ "in the rush valley", intersectFlag=0)
+ leArea3 = self.LocalEffectArea(
+ "area2", "in the benches",intersectFlag=0)
+ return [
+ self.LocalEffect([leArea1,leArea2],5,"...except "),
+ self.LocalEffect([leArea1,leArea3],5,"...except "),
+ ]
+ else:
+ return []
+
+ def _tempLocalEffects_method2(self, tree, node):
+ if self.currentAreaContains(tree, ["area3"]):
+ leArea1 = self.LocalEffectArea(
+ "__Current__","in the city",intersectFlag=0)
+ leArea2 = self.LocalEffectArea("area1",
+ "in the rush valley", intersectFlag=0)
+ leArea3 = self.LocalEffectArea(
+ "area2", "in the benches",intersectFlag=0)
+ return [self.LocalEffect([leArea1,leArea2, leArea3],5,"...and ")]
+ #return [
+ # self.LocalEffect([leArea1,leArea2],5,"...except "),
+ # self.LocalEffect([leArea1,leArea3],5,"...except "),
+ # ]
+ else:
+ return []
+
+
+ def Period_1_version3(self):
+ return {
+ "type": "component",
+ "methodList": [
+ self.consolidateSubPhrases,
+ self.assemblePhrases,
+ self.wordWrap,
+ ],
+ "analysisList": [
+ ("Sky", self.median, [3]),
+ ("PoP", self._PoP_analysisMethod("Period_1"), [3]),
+ ("PoP", self.binnedPercent, [3]),
+ ("Wx", self.rankedWx, [3]),
+ ],
+ "phraseList":[
+ (self.sky_phrase, self._skyLocalEffects_list()),
+ (self.skyPopWx_phrase, self._skyPopWxLocalEffects_list()),
+ (self.weather_phrase,self._wxLocalEffects_list()),
+ (self.popMax_phrase, self._popLocalEffects_list()),
+ ],
+ "additionalAreas": [
+ # Areas listed by weather element that will be
+ # intersected with the current area then
+ # sampled and analysed.
+ # E.g. used in local effects methods.
+ ("Sky", ["area2", "area1"]),
+ ("Wx", ["area2", "area1"]),
+ ("PoP", ["area2", "area1"]),
+ ],
+ }
+
+ def _skyLocalEffects_list(self):
+ leArea1 = self.LocalEffectArea(
+ "__Current__","in the city",intersectFlag=0)
+ leArea2 = self.LocalEffectArea(
+ "area1","in the rush valley", intersectFlag=0)
+ leArea3 = self.LocalEffectArea(
+ "area2", "in the benches",intersectFlag=0)
+ return [
+ self.LocalEffect([leArea1, leArea2, leArea3], self.checkSkyDifference,"..."),
+ ]
+
+ def _wxLocalEffects_list(self):
+ leArea1 = self.LocalEffectArea(
+ "__Current__","in the city",intersectFlag=0)
+ leArea2 = self.LocalEffectArea(
+ "area1","in the rush valley", intersectFlag=0)
+ leArea3 = self.LocalEffectArea(
+ "area2", "in the benches",intersectFlag=0)
+ return [
+ self.LocalEffect([leArea1, leArea2, leArea3], 0, "..."),
+ ]
+
+ def _popLocalEffects_list(self):
+ leArea1 = self.LocalEffectArea(
+ "__Current__","in the city",intersectFlag=0)
+ leArea2 = self.LocalEffectArea(
+ "area1","in the rush valley", intersectFlag=0)
+ leArea3 = self.LocalEffectArea(
+ "area2", "in the benches",intersectFlag=0)
+ return [
+ self.LocalEffect([leArea1, leArea2, leArea3], 20, "..."),
+ ]
+
+ def _skyPopWxLocalEffects_list(self):
+ leArea1 = self.LocalEffectArea(
+ "__Current__","in the city",intersectFlag=0)
+ leArea2 = self.LocalEffectArea(
+ "area1","in the rush valley", intersectFlag=0)
+ leArea3 = self.LocalEffectArea(
+ "area2", "in the benches",intersectFlag=0)
+ return [
+ self.LocalEffect([leArea1, leArea2, leArea3], self.checkSkyWxDifference, "..."),
+ ]
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MarineSnapshotTable.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MarineSnapshotTable.py
new file mode 100644
index 0000000000..aac0606577
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MarineSnapshotTable.py
@@ -0,0 +1,83 @@
+##
+# 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.
+##
+#######################################################################
+# Table Definition
+#
+########################################################################
+## EXAMPLE OUTPUT (Scarce Data)
+
+## MarineSnapshotTable for Feb 29 00 17:00:00 GMT - Mar 01 00 11:00:00 GMT.
+
+## Edit Area Wind (kt) Waves (ft) Swells (ft)
+
+## COAdams W 10
+## COArapahoe W 10
+## COBoulder W 5
+## COClearCreek W 5
+## CODenver W 5
+## CODouglas W 5
+## COElbert W 10
+
+
+MarineSnapshotTable = {
+
+ "type": "table",
+ "displayName": "TEST_Marine Snapshot Table", # for Product Generation Menu
+
+ # Output file for product results
+ "outputFile": "./MarineSnapshotTable.txt", # default output file
+
+ "constantVariable": "TimePeriod",
+ "rowVariable": "EditArea",
+ "columnVariable": "WeatherElement",
+
+ "beginningText": "MarineSnapshotTable for %TimePeriod. \n\n",
+ "endingText": "",
+
+ "defaultEditAreas": [("area1", "Area 1"),
+ ("area2", "Area 2"),
+ ],
+ "runTimeEditAreas" : "yes", # if yes, ask user at run time
+ "areaType" : "Edit Area", # E.g. City, County, Basin, etc.
+
+ "defaultRanges": [("Today"),
+ ("Tonight"),
+ ("Tomorrow"),
+ ],
+ # If runTimeRanges is yes, ask user to choose from defaults
+ # at run time.
+ "runTimeRanges" : "yes",
+
+ "elementList": [
+ ("Wind", "Wind (kt)",
+ "vectorRange",
+ "avgValue",
+ "Vector", 5, None),
+ ("WaveHeight","Waves (ft)",
+ "minMax",
+ "range2Value",
+ "Scalar", 1, None),
+ ("Swell","Swells (ft)",
+ "vectorAvg",
+ "singleValue",
+ "Vector", 1, None),
+ ],
+
+ }
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockGridData.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockGridData.py
new file mode 100644
index 0000000000..b02f4847e6
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockGridData.py
@@ -0,0 +1,36 @@
+##
+# 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.
+##
+##
+# This is a class meant to act as a placeholder for a Java
+# IGridData object in unit testing of HazardUtils.py.
+# It has a single field, slice, and a single method, getSlice(),
+# which returns whatever was set for the slice in the constructor
+# or through direct manipulation of the slice field.
+class MockGridData(object):
+ "Crippled substitute for IGridData java class."
+
+ def __init__(self, slice=None):
+ "Constructor"
+ self.slice = slice
+
+ def getGridSlice(self):
+ "Return the slice field."
+ return self.slice
+
\ No newline at end of file
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockGridInfo.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockGridInfo.py
new file mode 100644
index 0000000000..f33205af83
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockGridInfo.py
@@ -0,0 +1,25 @@
+##
+# 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.
+##
+class MockGridInfo(object):
+ def __init__(self):
+ self.parm = None
+
+ def getParm(self):
+ return self.parm
\ No newline at end of file
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockHazardUtils.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockHazardUtils.py
new file mode 100644
index 0000000000..56290f0452
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockHazardUtils.py
@@ -0,0 +1,189 @@
+##
+# 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.
+##
+import types
+from HazardUtils import HazardUtils
+import MockParm
+
+##
+# This class is intended to allow HazardUtils to be tested.
+# It does this by overriding SmartScript methods used by HazardUtils with
+# methods that return dummy objects.
+class MockHazardUtils(HazardUtils):
+
+ def __init__(self, dbss, eaMgr, mdMode=None, toolType="numeric"):
+ ""
+ HazardUtils.__init__(self, dbss, eaMgr, mdMode=None, toolType="numeric")
+ self.discreteKeys = {}
+ self.grids = {}
+ self.gridInfo = {}
+ self.log = None
+ self.parms = {}
+
+ ##
+ # Override of SmartScript.getGridInfo() to bypass use of
+ # the parm manager. This just returns whatever has been set
+ # for self.gridinfo[element], or throws an exception if
+ # self.gridinfo[element] does not exist..
+ def getGridInfo(self, model, element, level, timeRange,
+ mostRecentModel=0):
+ ""
+ if self.gridInfo.has_key(element):
+ return self.gridInfo[element]
+ raise RuntimeError, "getGridInfo: No Weather Element "+exprName
+
+ ##
+ # Override of SmartScript.getGrids() to bypass use of the
+ # parm manager. This just returns whatever has been set
+ # in self.grids for element (since model and level
+ # are usually "Fcst" and "SFC").
+ # Added the ability to return grids based on element and timerange
+ # for testing of _consecutiveIdenticalGrids().
+ def getGrids(self, model, element, level, timeRange,
+ mode="TimeWtAverage",
+ noDataError=1, mostRecentModel=0,
+ cache=1):
+ start = timeRange.getStart().getTime()
+ if self.grids.has_key((element, start)):
+ return self.grids[(element, start)]
+ return self.grids[element]
+
+ ##
+ # Override of SmartScript.getParm() to bypass use of the
+ # parm manager. This just returns whatever has been set
+ # in self.parms for element (since model and level
+ # are usually "Fcst" and "SFC").
+ def getParm(self, model, element, level, timeRange=None, mostRecent=0):
+ if element in self.parms:
+ return self.parms[element]
+ return None
+
+ ##
+ # Override of SmartScript.getGridShape() to bypass use of the
+ # parm manager.
+ def getGridShape(self):
+ return (145, 145)
+
+ ##
+ # Override of SmartScript.createGrid() to bypass use of the
+ # parm manager. This method writes all its non-default arguments
+ # to the log and creates a Python MockParm for the element if it
+ # is not in self.parms.
+ def createGrid(self, model, element, elementType, numericGrid, timeRange,
+ descriptiveName=None, timeConstraints=None,
+ precision=None, minAllowedValue=None,
+ maxAllowedValue=None, units=None, rateParm=0,
+ discreteKeys=None, discreteOverlap=None,
+ discreteAuxDataLength=None, defaultColorTable=None):
+ if self.log is not None:
+ self.log.write("createGrid(): ")
+ self.__dumpParms(model=model, element=element, elementType=elementType,
+ numericGrid=numericGrid, timeRange=timeRange,
+ descriptiveName=descriptiveName, timeConstraints=timeConstraints,
+ precision=precision, minAllowedValue=minAllowedValue,
+ maxAllowedValue=maxAllowedValue, units=units, rateParm=rateParm,
+ discreteKeys=discreteKeys, discreteOverlap=discreteOverlap,
+ discreteAuxDataLength=discreteAuxDataLength,
+ defaultColorTable=defaultColorTable)
+ # HazardUtils.addHazard() calls _removeOldGrids(element), and
+ # isn't smart enough to skip the call if element is a temp hazard
+ # that it just created. _removeOldGrids() raises an exception if it
+ # can't obtain the parm, so we need to add it to self.parms.
+ if not element in self.parms:
+ self.parms[element] = MockParm.MockParm(element, self.log)
+
+ ##
+ # Dump names and values of all parameters to the log.
+ # Arguments whose value is None are not dumped; string argvalues are single-quoted.
+ # The parms are written as a long string with spaces for separators.
+ def __dumpParms(self, **kwargs):
+ if self.log is not None:
+ sep = ""
+ for argName in sorted(kwargs.keys()):
+ argVal = kwargs[argName]
+ if argVal is not None:
+ self.log.write(sep)
+ self.log.write(argName)
+ self.log.write("=")
+ if isinstance(argVal,types.StringType):
+ self.log.write("'")
+ self.log.write(argVal)
+ self.log.write("'")
+ elif isinstance(argVal,types.TupleType):
+ self.log.write("(")
+ self.__dumpArgs(*argVal)
+ self.log.write(")")
+ elif "shape" in dir(argVal):
+ # Assume it's a numpy array
+ typeName = str(type(argVal))
+ self.log.write(typeName)
+ self.log.write(argVal.shape)
+ else:
+ self.log.write(str(argVal))
+ sep = " "
+
+ ##
+ # Dump values of sequences
+ def __dumpArgs(self, *args):
+ if self.log is not None:
+ sep = ""
+ for arg in args:
+ self.log.write(sep)
+ if isinstance(arg, types.StringType):
+ self.log.write("'")
+ self.log.write(arg)
+ self.log.write("'")
+ elif isinstance(arg, types.TupleType):
+ self.log.write("(")
+ self.__dumpArgs(*arg)
+ self.log.write(")")
+ elif "shape" in dir(arg):
+ # Assume it's a numpy array
+ typeName = str(type(arg))
+ self.log.write(typeName)
+ self.log.write(arg.shape)
+ else:
+ self.log.write(arg)
+ sep = ", "
+
+ def getDiscreteKeys(self, element):
+ if element in self.discreteKeys:
+ return self.discreteKeys[element]
+ return None
+
+ # Override for SmartScript.loadedParms.
+ # Returns a list of 3-tuples, where each tuple[0] is the
+ # key of an entry in self.parms and tuple[1] and [2] are
+ # always 'SFC' and 'Fcst' (because this mock object doesn't
+ # keep track of level or model).
+ def loadedParms(self):
+ lenp = len(self.parms)
+ ans = zip( self.parms.keys(), ['SFC'] * lenp, ['Fcst'] * lenp)
+ return ans
+
+ def statusBarMsg(self, message, status, category="GFE"):
+ if message is None:
+ raise RuntimeError, "no message"
+ elif status is None:
+ raise RuntimeError, "no status"
+ elif not status in ['A', 'R', 'U', 'S']:
+ raise RuntimeError, "bad status value: " + status
+ if self.log is not None:
+ self.log.write("statusBarMsg(message='%s', status='%s', category='%s')\n"
+ % (message, status, category))
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockParm.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockParm.py
new file mode 100644
index 0000000000..157f4ad0f0
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockParm.py
@@ -0,0 +1,82 @@
+##
+# 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.
+##
+import sys
+import numpy as np
+import MockGridData
+import MockSlice
+import TimeRange
+from com.raytheon.uf.common.time import TimeRange as TR
+
+##
+# A Python stand-in for a Java Parm, for unit testing.
+class MockParm(object):
+
+ ##
+ # Constructor.
+ # @param id: ID of this Parm, so we can tell if the right one is being used.
+ # @type id: string
+ # @param outObj: place to log events
+ # @type outObj: file-like
+ def __init__(self, id, outObj=sys.stdout):
+ self.id = id
+ self.outObj = outObj
+ self.gridInventory = []
+ self.lockedTRs = []
+
+ ##
+ # Stub substitute for the deleteTR() method of Java Parm interface.
+ # This method writes a string containing timeRange and self.id to
+ # self.outObj.
+ # @param timeRange: The time range of grids to delete from this parm.
+ # @type timeRange: com.raytheon.uf.common.time.TimeRange
+ def deleteTR(self, timeRange):
+ if isinstance(timeRange, TimeRange.TimeRange):
+ raise TypeError, "timeRange is python wrapper object, not proper Java object"
+ if not timeRange.isValid():
+ raise RuntimeError, "Java time range is invalid"
+
+ self.outObj.write("parm(" + self.id + "):deleteTR(" + repr(timeRange) + ")\n")
+ self.outObj.flush()
+
+ def getGridInventory(self, timeRange):
+ if isinstance(timeRange, TimeRange.TimeRange):
+ raise TypeError, "timeRange is python wrapper object, not proper Java object"
+ if not timeRange.isValid():
+ raise RuntimeError, "Java time range is invalid"
+
+ return self.gridInventory
+
+ def startParmEdit(self, dateList):
+ rtnGrids = []
+ for idx in range(len(dateList)):
+ date = dateList[idx]
+ tr = TR(date, 1000L)
+ for lockedTR in self.lockedTRs:
+ if lockedTR.overlaps(tr):
+ rte = RuntimeError("com.raytheon.viz.gfe.GFEOperationFailedException: locked timerange: " + str(tr));
+ raise rte
+ self.lockedTRs.append(tr)
+ slice = MockSlice.MockSlice(tr)
+ data = MockGridData.MockGridData(slice)
+ rtnGrids.append(data)
+ return rtnGrids
+
+ def endParmEdit(self):
+ self.lockedTRs = []
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockSlice.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockSlice.py
new file mode 100644
index 0000000000..e89af9ee71
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockSlice.py
@@ -0,0 +1,31 @@
+##
+# 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.
+##
+##
+# This is a class meant to act as a placeholder for a Java
+# IGridSlice object in unit testing of HazardUtils.py.
+# It has a single field, validTime, and a single method, getValidTime(),
+# which returns whatever was set for the slice in the constructor
+# or through direct manipulation of the slice field.
+class MockSlice(object):
+ def __init__(self, validTime=None):
+ self.validTime = validTime
+
+ def getValidTime(self):
+ return self.validTime
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/PeriodByElement.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/PeriodByElement.py
new file mode 100644
index 0000000000..e6c587d9f6
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/PeriodByElement.py
@@ -0,0 +1,157 @@
+##
+# 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.
+##
+########################################################################
+# PeriodByElement
+#
+# Type: table
+# Edit Areas: solicited from user
+# To Run:
+# Products-->Generate Products
+# Choose Period (default is 3 hours per column), Edit Area(s),
+# and Time Range(s)
+# Select OK
+#
+########################################################################
+## EXAMPLE OUTPUT
+
+## Period By Element Table.
+##
+## Today
+##
+## Area 1 for Today
+##
+## Time Period Sky (%) Wind (mph) Temp Precip (%)
+##
+## 06Z/17 79 NE 10 48
+## 09Z/17 0
+## 12Z/17 97 SE 5 58
+## 15Z/17 20
+##
+##
+## Area 2 for Today
+##
+## Time Period Sky (%) Wind (mph) Temp Precip (%)
+##
+## 06Z/17 92 NE 5 50
+## 09Z/17 22
+## 12Z/17 100 E 5 57
+## 15Z/17 43
+##
+##
+##
+##
+## Tonight
+##
+## Area 1 for Tonight
+##
+## Time Period Sky (%) Wind (mph) Temp Precip (%)
+##
+## 18Z/17 100 SE 10 59
+## 21Z/17 33
+## 00Z/18 100 SE 5 51
+## 03Z/18 27
+##
+##
+## Area 2 for Tonight
+##
+## Time Period Sky (%) Wind (mph) Temp Precip (%)
+##
+## 18Z/17 99 SE 10 58
+## 21Z/17 43
+## 00Z/18 94 S 5 50
+## 03Z/18 3
+##
+##
+##
+##
+## Tomorrow
+##
+## Area 1 for Tomorrow
+##
+## Time Period Sky (%) Wind (mph) Temp Precip (%)
+##
+## 06Z/18 86 S 5 46
+## 09Z/18 53
+## 12Z/18 53
+## 15Z/18 53
+##
+##
+## Area 2 for Tomorrow
+##
+## Time Period Sky (%) Wind (mph) Temp Precip (%)
+##
+## 06Z/18 68 SW 5 45
+## 09Z/18 29
+## 12Z/18 29
+## 15Z/18 29
+##
+########################################################################
+Definition = {
+
+ "type": "table",
+ "displayName": "TEST_Period By Element Table", # for Product Generation Menu
+
+ # Output file for product results
+ "outputFile": "./PeriodByElement.txt", # default output file
+
+ "constantVariable": "EditArea",
+ "rowVariable": "TimePeriod",
+ "columnVariable": "WeatherElement",
+
+ "beginningText": "Period By Element Table. \n\n",
+ "endingText": "\n\n",
+ "editAreaLoopBegText": "%EditArea for %TimeRange \n\n",
+ "editAreaLoopEndText": "\n\n",
+ "timeRangeLoopBegText": "%TimeRange \n\n",
+ "timeRangeLoopEndText": "\n\n",
+ "outerLoop": "TimeRange",
+
+ # Edit Areas
+ "defaultEditAreas" : [("area1","Area 1"),("area2","Area 2")],
+ "runTimeEditAreas": "yes",
+
+ # Time Ranges
+ "defaultRanges":["Today","Tonight","Tomorrow"],
+ "runTimeRanges": "yes",
+
+ "elementList": [
+ ("Sky", "Sky (%)",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ("Wind","Wind (mph)",
+ "vectorRange",
+ "avgValue",
+ "Vector", 5, "ktToMph"),
+ ("T","Temp",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ("PoP", "Precip (%)",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ],
+
+ "timePeriod": 3,
+ "runTimePeriod": "yes", # If yes, ask user at run time for period
+ "periodLabelFormat" : ("LT", "", "%HZ/%d", ""),
+
+ }
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/PeriodTable.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/PeriodTable.py
new file mode 100644
index 0000000000..dc46c5f733
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/PeriodTable.py
@@ -0,0 +1,107 @@
+##
+# 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.
+##
+########################################################################
+# PeriodTable
+#
+# Type: table
+# Edit Areas: solicited from user
+# To Run:
+# Set GFE Time Range
+# Products-->Generate Products
+# Choose Edit Areas
+# Select OK
+#
+########################################################################
+## EXAMPLE OUTPUT
+
+## Period Table for Feb 29 00 17:00:00 GMT - Mar 01 00 07:00:00 GMT.
+
+## Edit Area Sky (%) Wind (mph) Max Temp Min Temp Precip (%)
+
+## COAdams 10 NW 10 53 38 0
+## COArapahoe 10 NW 10 53 38 0
+## COBoulder 5-30 NW 10 46 34 0
+## CODenver 5-20 NW 10 54 39 0
+## CODouglas 5-20 NW 10 52 36 0
+
+########################################################################
+Definition = {
+
+ ## General Set-Up
+ "type": "table",
+ "displayName": "TEST_Period Table", # for Product Generation Menu
+ "outputFile": "./PeriodTable.txt", # default output file
+
+ ## Table Layout
+ "constantVariable": "TimePeriod",
+ "rowVariable": "EditArea",
+ "columnVariable": "WeatherElement",
+
+ "beginningText": "Period Table for %TimePeriod. \n\n",
+ "endingText": "",
+
+ "defaultEditAreas": [("area1", "Area 1"),
+ ("area2", "Area 2"),
+ ],
+ ## Edit Areas
+ "runTimeEditAreas" : "yes", # if yes, ask user at run time
+ "areaType" : "Edit Area", # E.g. City, County, Basin, etc.
+
+ "defaultRanges": [("Today"),
+ ("Tonight"),
+ ("Tomorrow"),
+ ],
+ # If runTimeRanges is yes, ask user to choose from defaults
+ # at run time.
+ "runTimeRanges" : "yes",
+
+ ## Weather Elements
+ # Name , Label , Analysis Method , ReportAs Method ,
+ # DataType , Rounding , Conversion
+
+ "elementList": [
+ ("Sky", "Sky (%)",
+ "minMax",
+ "range2Value",
+ "Scalar", 5, None),
+
+ ("Wind","Wind (mph)",
+ "vectorRange",
+ "avgValue",
+ "Vector", 5, "ktToMph"),
+
+ ("MaxT","Max Temp",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+
+ ("MinT","Min Temp",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+
+ ("PoP", "Precip (%)",
+ "avg",
+ "singleValue",
+ "Scalar", 5, None),
+ ],
+
+
+ }
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/QPFTable.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/QPFTable.py
new file mode 100644
index 0000000000..ac64a89cc6
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/QPFTable.py
@@ -0,0 +1,81 @@
+##
+# 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.
+##
+########################################################################
+# QPFTable
+#
+# Type: table
+# Edit Areas: solicited from user
+# To Run:
+# Set GFE Time Range
+# Products-->Generate Products
+# Choose Edit Areas
+# Select OK
+#
+########################################################################
+## EXAMPLE OUTPUT
+
+## Experimental QPF Table
+##
+## Today:
+##
+## Edit Area QPF
+##
+## COBoulder 0.31
+## COClearCreek 0.33
+## CODenver 0.29
+## CODouglas 0.28
+## COElbert 0.38
+
+
+
+########################################################################
+Definition = {
+
+ "type": "table",
+ "displayName": "TEST_QPF Table", # for Product Generation Menu
+
+ # Output file for product results
+ "outputFile": "./QPFTable.txt", # default output file
+
+ "constantVariable": "TimePeriod",
+ "rowVariable": "EditArea",
+ "columnVariable": "WeatherElement",
+
+ "beginningText": "Experimental QPF Table \n\n",
+ "endingText": "",
+ "timeRangeLoopBegText": "%TimeRange:\n",
+
+ # Edit Areas
+ "defaultEditAreas" : [("area1","Area 1"),("area2","Area 2")],
+ "runTimeEditAreas": "yes",
+ "areaType" : "Edit Area", # E.g. City, County, Basin, etc.
+
+ # Time Ranges
+ "defaultRanges": ["Today"],
+ "runTimeRanges" : "no", # if yes, ask user at run time
+
+ "elementList": [
+ ("QPF", "QPF",
+ "accumSum",
+ "singleValue",
+ "Scalar", .01, None),
+ ],
+
+ }
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/RDFcst.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/RDFcst.py
new file mode 100644
index 0000000000..5427cababb
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/RDFcst.py
@@ -0,0 +1,205 @@
+##
+# 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.
+##
+########################################################################
+# RDFcst
+#
+########################################################################
+## EXAMPLE OUTPUT:
+##
+## 24 Hour Tabular Forecast for Boulder for 12 AM MST Mar 21 TO 12 PM MST Mar 21.
+##
+## Weather Element 12 AM 3 AM 6 AM 9 AM
+##
+## Temperature 30 28 29
+## Dew Point 25 23 25
+## Wind (mph) NW 4 NW 5 NW 6
+## Sky Cover(%) MOSTLY MOSTLY MOSTLY
+## CLOUDY CLOUDY CLOUDY
+## Rainfall Amount(in.) 0.00 0.00 0.00 0.00
+## Weather RAIN RAIN
+## Snowfall(in.) 0 0 0 0
+##
+## This forecast was generated from a gridded database.
+
+
+# Forecast Definition
+RDFcst = {
+
+ ## General Set-Up
+
+ "type": "table",
+ "displayName": "RDFcst", # for Product Generation Menu
+
+ # Output file for product results
+ "outputFile": "/home/ifp/release/products/TEXT/RDFcst.txt", # default output file
+ "runTimeOutputFile": "no", # If yes, ask user at run time
+
+ # Language
+ "language": "english", # default
+ "runTimeLanguage": "no", # If yes, ask user at run time
+
+ # Line Length for resulting Product
+ "lineLength": 79, # default
+ "runTimeLineLength": "no", # If yes, ask user at run time
+
+ # Text to preceed and follow the text product.
+ # Remember to add spacing lines backslash n.
+ # The variables: %TimePeriod, %EditArea, and %WeatherElement
+ # can be included to be filled in with constant variables.
+ # For phrase and combo, only %EditArea and %TimePeriod
+ # can be filled in.
+ "timePeriodMethod": "localTRLabel", ## localRangeLabel
+ "editAreaLoopBegText": "24 Hour Tabular Forecast for %EditArea for %TimePeriod. \n\n",
+ "editAreaLoopEndText": "\n",
+ "endingText": "\nThis forecast was generated from a gridded database.\n\n\n",
+
+ ## Table Layout
+ # A table is a combination of three variables:
+ # edit areas, weather elements, and time periods
+ # One of these variables is held constant,
+ # one is assigned to rows and the other to columns.
+
+ "constantVariable": "EditArea", ## "TimePeriod",
+ "rowVariable": "WeatherElement", ## "EditArea",
+ "columnVariable": "TimePeriod", ## "WeatherElement",
+ "columnJustification":"Right",
+
+ ## Edit Areas
+ # If the edit area is the constant variable, specify
+ # one area and whether to ask user at run time.
+ # runTimeEditArea can be a list of areas and/or edit area
+ # groups (groups will be expanded into areas) from which
+ # the user will be able to choose.
+ "defaultEditAreas": [
+ ("area1", "Area1"),
+ ("area2", "Area2"),
+ ("area3", "Area3"),
+ ("area4", "Area4")],
+ "runTimeEditAreas": "yes",
+ "areaType" : "Edit Area", # E.g. City, County, Basin, etc.
+
+ # Time Ranges
+ "defaultRanges": ["Today"],
+ "runTimeRanges" : "no", # if yes, ask user at run time
+
+ ## Weather Elements
+ # elementList: List of Weather Element tuples:
+ # Weather Element Name
+ # Weather Element Label
+ # If you want the label to appear on multiple lines,
+ # use vertical bars as separators e.g. Maximum|Temperature
+ # Analysis method -- Method to produce statistics from the data
+ # ReportAs Method -- Method to format the analyzed value(s)
+ # DataType: Scalar or Vector or Weather
+ # Rounding increment e.g. 5 = round final value to
+ # nearest multiple of 5
+ # Conversion method
+ # e.g. "mphToKt" converts from mph to knots
+ #
+ # If the weather element is the constant variable, only one
+ # should be given.
+
+ # Name , Label , Analysis Method , ReportAs Method ,
+ # DataType , Rounding , Conversion
+
+ "elementList": [
+ ("T","Temperature",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ("Td","Dew Point",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ("RH","Relative Humidity(%)",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ("WindChill","Wind Chill(F)",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ("Wind","Wind (mph)",
+ "vectorRange",
+ "avgValue",
+ "Vector", 1, "ktToMph"),
+ ("Sky","Sky Cover(%)",
+ "avg",
+ "cloudCover",
+ "Scalar", 5, None),
+ ("QPF","Rainfall Amount(in.)",
+ "avg",
+ "singleValue",
+ "Scalar", .01, None),
+ ("Wx","Weather ",
+ "dominantWx",
+ "short_weather_phrase",
+ "Scalar", 1, None),
+ ("SnowAmt","Snowfall(in.)",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ("PoP", "Precip (%)",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ],
+
+ ## Time Period (If rows or columns vary with TimePeriod
+ # timePeriod: This is the interval in hours for sampling the data
+ # e.g. every 3 hours.
+ # (Can be floating point e.g. 1.5 hour TimePeriods)
+ "timePeriod": 3,
+ # timeSpan: This is the amount of data to sample at each
+ # interval.
+ # If you want the data analyzed (e.g averaged) over the
+ # entire period, the timeSpan should be set to "timePeriod".
+ # If you only want data for the beginning of each timePeriod,
+ # the timeSpan should be set to number of hours over which
+ # to analyze the data e.g. 1 hour
+ "timeSpan": 1,
+ "runTimePeriod": "no", # If yes, ask user at run time for period
+ # Method to label periods given a time range
+ # periodLabel -- GMT time hourZ/day e.g. 15Z/4
+ # localTimeLabel -- local time e.g. 6 AM
+ # localRangeLabel -- local time range e.g. 6AM-9AM
+ "periodLabelMethod": "localTimeLabel",
+
+ ## User-supplied Methods
+ # loopMethod: Method to be called for each row.
+ # Such a method might keep ongoing statistics about table data.
+ # Arguments: (rowLabel, rowEntries, userDict, argDict)
+ # Returns: nothing
+ # "rowEntries" is a list of (colValue, value) tuples
+ # describing the entries in this row.
+ # "userDict" is a dictionary set up for user-defined
+ # callback methods so they can keep ongoing data as
+ # the table is being produced.
+ # It is not modified by the TextFormatter code.
+ "loopMethod": None,
+
+ # endMethod: Method to be called after table is complete.
+ # Arguments: (table, userDict, argDict)
+ # Returns: table (could be modified)
+ # The table can be modified to report summary statistics
+ # gathered in userDict.
+ #
+ "endMethod": None,
+ }
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/RecreationFcst.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/RecreationFcst.py
new file mode 100644
index 0000000000..06d9fd1b65
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/RecreationFcst.py
@@ -0,0 +1,568 @@
+##
+# 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.
+##
+########################################################################
+# RecreationFcst
+#
+# This product creates a combination of text phrases for consecutive
+# time periods for a list of edit areas.
+#
+# Type: smart
+# Local product:
+# RecreationFcst_Local.py (type: smart)
+# Associated Utility files:
+# Combinations
+# To customize this product for your site:
+# Set up the Combinations file with Edit Areas and labels.
+# Set up RecreationFcst_Local to override variables, definitions, thresholds, and methods
+#
+# Component Product Definitions included as methods in this file:
+# RecreationPhrases
+# Extended
+# Extended Label
+##
+##########################################################################
+# Example Output:
+## Recreation Statement
+
+## Area 1
+
+## .TODAY...
+## DEW POINTS... IN THE UPPER TEENS.
+## MINIMUM HUMIDITY... 18.0 PERCENT.
+## WIND CHILL... 35.0 BECOMING 24.0 IN THE NIGHT..
+## WIND... WEST WINDS 25 TO 35 MPH.
+## PRECIPITATION... DRY.
+## LIGHTENING... 2.
+
+## .WEDNESDAY...
+## DEW POINTS... IN THE MID TEENS.
+## MINIMUM HUMIDITY... 20.0 PERCENT.
+## WIND CHILL... 36.0 BECOMING 36.0 IN THE NIGHT..
+## WIND... WEST WINDS 25 TO 35 MPH.
+## PRECIPITATION... WIDESPREAD RAIN AND SNOW.
+## LIGHTENING... 2.
+
+
+## .THURSDAY...
+## VERY WINDY. SUNNY. WIDESPREAD SNOW. LOWS IN THE UPPER 30S. HIGHS IN THE MID
+## 40S.
+## .FRIDAY...
+## SUNNY AND DRY. LOWS AROUND 40. HIGHS IN THE LOWER 40S.
+
+## Area 2
+
+## .TODAY...
+## DEW POINTS... IN THE UPPER TEENS.
+## MINIMUM HUMIDITY... 18.0 PERCENT.
+## WIND CHILL... 35.0 BECOMING 24.0 IN THE NIGHT..
+## WIND... WEST WINDS 25 TO 35 MPH.
+## PRECIPITATION... DRY.
+## LIGHTENING... 2.
+
+## .WEDNESDAY...
+## DEW POINTS... IN THE MID TEENS.
+## MINIMUM HUMIDITY... 20.0 PERCENT.
+## WIND CHILL... 36.0 BECOMING 36.0 IN THE NIGHT..
+## WIND... WEST WINDS 25 TO 35 MPH.
+## PRECIPITATION... WIDESPREAD RAIN AND SNOW.
+## LIGHTENING... 2.
+
+
+## .THURSDAY...
+## VERY WINDY. SUNNY. WIDESPREAD SNOW. LOWS IN THE UPPER 30S. HIGHS IN THE MID
+## 40S.
+## .FRIDAY...
+## SUNNY AND DRY. LOWS AROUND 40. HIGHS IN THE LOWER 40S.
+
+import TextRules
+import SampleAnalysis
+import ForecastNarrative
+import time, string, types
+
+
+class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
+ VariableList = [
+ (("Product Title","title"), "Recreation Statement", "alphaNumeric"),
+ (("Choose Starting Time Range:", "timeRangeName"), "Tomorrow", "radio",
+ ["Today", "Tomorrow"]),
+ (("Number of days:", "numPeriods"), 2, "radio", [2, 3]),
+ # Comment out the following line if you do not want to include Extended as an option:
+ (("Extended", "extended"), "With Extended", "radio", ["Without Extended","With Extended"]),
+ ]
+ Definition = {
+ "type": "smart",
+ "displayName": "None",
+ # Name of map background for creating Combinations
+ #"mapNameForCombinations": "Zones_",
+
+ ## Edit Areas
+ "defaultEditAreas" : [
+ ("area1","Area 1"),
+ ("area2","Area 2"),
+ ("area3","Area 3"),
+ ],
+
+ # Product-specific variables: Can be overridden in the Local file
+ "extendedLabel": 1,
+ "lineLimit": 45,
+ "trace":0,
+ }
+
+ def __init__(self):
+ TextRules.TextRules.__init__(self)
+ SampleAnalysis.SampleAnalysis.__init__(self)
+
+ def generateForecast(self, argDict):
+ # Generate Text Phrases for a list of edit areas
+
+ # Get variables
+ error = self._getVariables(argDict)
+ if error is not None:
+ return error
+
+ # Get the areaList -- derived from defaultEditAreas and
+ # may be solicited at run-time from user if desired
+ self._areaList = self.getAreaList(argDict)
+ if len(self._areaList) == 0:
+ return "WARNING -- No Edit Areas Specified to Generate Product."
+
+ # Determine time ranges
+ error = self._determineTimeRanges(argDict)
+ if error is not None:
+ return error
+
+ # Sample the data
+ error = self._sampleData(argDict)
+ if error is not None:
+ return error
+
+ # Initialize the output string
+ fcst = ""
+ fcst = self._preProcessProduct(fcst, argDict)
+
+ # Generate the product for each edit area in the list
+ for editArea, areaLabel in self._areaList:
+ fcst = self._preProcessArea(fcst, editArea, areaLabel, argDict)
+ fcst = self._makeProduct(fcst, editArea, areaLabel, argDict)
+ fcst = self._postProcessArea(fcst, editArea, areaLabel, argDict)
+
+ fcst = self._postProcessProduct(fcst, argDict)
+ return fcst
+
+ def _getVariables(self, argDict):
+ # Make argDict accessible
+ self.__argDict = argDict
+
+ # Get Definition variables
+ self._definition = argDict["forecastDef"]
+ for key in self._definition.keys():
+ exec "self._" + key + "= self._definition[key]"
+
+ # Get VariableList and _issuance_list variables
+ varDict = argDict["varDict"]
+ for key in varDict.keys():
+ if type(key) is types.TupleType:
+ label, variable = key
+ exec "self._" + variable + "= varDict[key]"
+
+ self._language = argDict["language"]
+ return None
+
+ def _determineTimeRanges(self, argDict):
+ # Set up the Narrative Definition and initial Time Range
+ self._timeRange, self._narrativeDef = self._createNarrativeDef(argDict)
+ self._definition["narrativeDef"] = self._narrativeDef
+ self._definition["methodList"] = [self.assembleChildWords]
+ return None
+
+ def _sampleData(self, argDict):
+ # Sample and analyze the data for the narrative
+ # This data will be available in argDict["narrativeData"] for text rules
+ self._narrativeProcessor = ForecastNarrative.ForecastNarrative()
+ error = self._narrativeProcessor.getNarrativeData(
+ argDict, self._definition, self._timeRange, self._areaList, None)
+ if error is not None:
+ return error
+ return None
+
+ def _preProcessProduct(self, fcst, argDict):
+ return fcst
+
+ def _preProcessArea(self, fcst, editArea, areaLabel, argDict):
+ return fcst
+
+ def _makeProduct(self, fcst, editArea, areaLabel, argDict):
+ # Generate Narrative Forecast for Edit Area
+ fcst = fcst + self._narrativeProcessor.generateForecast(
+ argDict, editArea, areaLabel)
+ return fcst
+
+ def _postProcessArea(self, fcst, editArea, areaLabel, argDict):
+ return fcst
+
+ def _postProcessProduct(self, fcst, argDict):
+ return string.upper(fcst)
+
+ ########################################################################
+ # PRODUCT-SPECIFIC METHODS
+ ########################################################################
+
+ def _createNarrativeDef(self, argDict):
+ # Determine the start time for the product and a Narrative Definition
+
+ timeRange = self.getTimeRange(self._timeRangeName, argDict)
+
+ if self._numPeriods == 2:
+ recPhrases = [24, 24]
+ else:
+ recPhrases = [24,24,24]
+ extendeds = [24, 24]
+
+ # Create the NarrativeDef
+ narrativeDef = []
+ for recPhrase in recPhrases:
+ narrativeDef.append(("RecreationPhrases",recPhrase))
+ if self._extended == "With Extended":
+ if self._extendedLabel == 1:
+ narrativeDef.append(("ExtendedLabel",0))
+ for extended in extendeds:
+ narrativeDef.append(("Extended", extended))
+ return timeRange, narrativeDef
+
+ def _td_phrase(self):
+ return {
+ "setUpMethod": self._td_setUp,
+ "wordMethod": self._td_words,
+ "phraseMethods": [self.assembleSubPhrases,
+ self.postProcessPhrase],
+ }
+ def _td_setUp(self, tree, node):
+ td = self.ElementInfo("Td", "List")
+ elementInfoList = [td]
+ self.subPhraseSetUp(tree, node, elementInfoList, self.scalarConnector)
+ node.set("descriptor", "")
+ node.set("indentLabel", "DEW POINTS... ")
+ return self.DONE()
+
+ def _td_words(self, tree, node):
+ statDict = node.getStatDict()
+ stats = self.getStats(statDict,"Td")
+ if stats is None:
+ return self.setWords(node, "")
+ words = self.getTempPhrase(tree, node, stats,"Td")
+ return self.setWords(node, words)
+
+ def _rh_phrase(self):
+ return {
+ "setUpMethod": self._rh_setUp,
+ "wordMethod": self._rh_words,
+ "phraseMethods": [self.assembleSubPhrases,
+ self.postProcessPhrase],
+ }
+ def _rh_setUp(self, tree, node):
+ rh = self.ElementInfo("RH", "List")
+ elementInfoList = [rh]
+ self.subPhraseSetUp(tree, node, elementInfoList, self.scalarConnector)
+ node.set("descriptor", "")
+ node.set("indentLabel", "MINIMUM HUMIDITY... ")
+ return self.DONE()
+
+ def _rh_words(self, tree, node):
+ statDict = node.getStatDict()
+ stats = self.getStats(statDict,"RH")
+ if stats is None:
+ return self.setWords(node, "")
+ min, max = stats
+ ten = int(min / 10) * 10
+ digit = min % 10
+ if digit <= 3:
+ RH1 = ten
+ if digit > 3 or digit <= 9:
+ RH1 = ten + 5
+ RH2 = RH1 + 10
+ words = `RH1` + " TO " + `RH2` + " PERCENT"
+ return self.setWords(node, words)
+
+ def _windChill_heatIndex_compoundPhrase(self):
+ return {
+ "phraseList": [
+ self.windChill_phrase,
+ self.heatIndex_phrase,
+ ],
+ "phraseMethods": [
+ self.assembleSentences,
+ self._windChill_heatIndex_finishUp,
+ ],
+ }
+ def _windChill_heatIndex_finishUp(self, tree, node):
+ words = node.get("words")
+ if words is None:
+ return
+ if words == "":
+ words = "NOT A FACTOR"
+ node.set("descriptor", "")
+ statsWC = tree.stats.get("WindChill", node.getTimeRange(),
+ node.getAreaLabel(), mergeMethod="Min")
+ if statsWC is not None and \
+ statsWC < self.windChill_threshold(tree, node):
+ node.set("indentLabel", "WIND CHILL... ")
+ else:
+ statsHI = tree.stats.get("HeatIndex", node.getTimeRange(),
+ node.getAreaLabel(), mergeMethod="Max")
+ if statsHI is not None and \
+ statsHI > self.heatIndex_threshold(tree, node):
+ node.set("indentLabel", "HEAT INDEX... ")
+ else:
+ node.set("indentLabel", "")
+ words = ""
+ node.set("compound", 1)
+ return self.setWords(node, words)
+
+ def _wind_phrase(self):
+ return {
+ "setUpMethod": self._wind_setUp,
+ "wordMethod": self._wind_words,
+ "phraseMethods": [self.assembleSubPhrases,
+ self.postProcessPhrase],
+ }
+ def _wind_setUp(self, tree, node):
+ wind = self.ElementInfo("Wind", "List")
+ elementInfoList = [wind]
+ self.subPhraseSetUp(tree, node, elementInfoList, self.scalarConnector)
+ node.set("descriptor", "")
+ node.set("indentLabel", "WIND... ")
+ return self.DONE()
+
+ def _wind_words(self, tree, node):
+ statDict = node.getStatDict()
+ stats = self.getStats(statDict,"Wind")
+ if stats is None:
+ return self.setWords(node, "")
+ elementInfo = node.getAncestor("firstElement")
+ if elementInfo is None:
+ return self.setWords(node, "")
+ words = self.simple_vector_phrase(tree, node, elementInfo)
+ if words == "null":
+ return self.setWords(node, "null")
+ maxWind, dir = self.getValue(stats, "Max", self.VECTOR())
+ chopphrase = ""
+ if maxWind >= 26.1:
+ chopphrase = "HEAVY CHOP EXPECTED ON AREA RIVERS AND LAKES"
+ elif maxWind >= 21.7:
+ chopphrase = "MODERATE CHOP EXPECTED ON AREA RIVERS AND LAKES"
+ elif maxWind >= 17.4:
+ chopphrase = "LIGHT CHOP EXPECTED ON AREA RIVERS AND LAKES"
+ if chopphrase != "":
+ words = words + ". " + chopphrase
+ return self.setWords(node, words)
+
+ def _wx_phrase(self):
+ return {
+ "setUpMethod": self._wx_setUp,
+ "wordMethod": self._wx_words,
+ "phraseMethods": [self.assembleSubPhrases,
+ self.postProcessPhrase],
+ }
+ def _wx_setUp(self, tree, node):
+ wx = self.ElementInfo("Wx", "List")
+ qpf = self.ElementInfo("QPF", "MinMax")
+ elementInfoList = [wx]
+ self.subPhraseSetUp(tree, node, elementInfoList, self.scalarConnector)
+ node.set("descriptor", "")
+ node.set("indentLabel", "PRECIPITATION... ")
+ return self.DONE()
+
+ def _wx_words(self, tree, node):
+ statDict = node.getStatDict()
+ stats = self.getStats(statDict,"Wx")
+ if stats is None:
+ return self.setWords(node, "")
+ self.weather_words(tree, node)
+ WXwords = node.get("words")
+ statsQ = self.getStats(statDict, "QPF")
+ if statsQ is None:
+ words = WXwords
+ else:
+ QPFrange0 = str(round(statsQ[0],2))
+ QPFrange1 = str(round(statsQ[1],2))
+ #print QPFrange1
+ if ((QPFrange0 == "0.0" and QPFrange1 == "0.0") or (string.find(WXwords, "dry") != -1)):
+ #print "Found dry weather"
+ QPFwords = "\n"
+ words = WXwords
+ elif (QPFrange0 == "0.0"):
+ QPFwords = "AMOUNTS UP TO " + QPFrange1 + " OF AN INCH"
+ words = WXwords + ". " + QPFwords
+ else:
+ QPFwords = "AMOUNTS BETWEEN " + QPFrange0 + " AND " + QPFrange1 + " OF AN INCH"
+ words = WXwords + ". " + QPFwords
+ return self.setWords(node, words)
+
+ def _ltng_phrase(self):
+ return {
+ "setUpMethod": self._ltng_setUp,
+ "wordMethod": self._ltng_words,
+ "phraseMethods": [self.assembleSubPhrases,
+ self.postProcessPhrase],
+ }
+ def _ltng_setUp(self, tree, node):
+ wx = self.ElementInfo("Wx", "List")
+ elementInfoList = [wx]
+ self.subPhraseSetUp(tree, node, elementInfoList, self.scalarConnector)
+ node.set("descriptor", "")
+ node.set("indentLabel", "LIGHTNING... ")
+ return self.DONE()
+
+ def _ltng_words(self, tree, node):
+ statDict = node.getStatDict()
+ stats = self.getStats(statDict,"Wx")
+ if stats is None:
+ return self.setWords(node, "NONE.")
+ words = ""
+ for subkey, rank in stats:
+ wxType = subkey.wxType()
+ if wxType == "T":
+ cov = subkey.coverage()
+ if cov in ["Num", "Wide", "Ocnl", "Brf", "Frq", "Pds", "Inter", "Lkly", "Def"]:
+ words = "LIKELY"
+ elif cov in ["Sct", "Chc"] and words not in ["LIKELY"]:
+ words = "SCATTERED"
+ elif cov in ["Iso", "SChc"] and words not in ["LIKELY", "SCATTERED"]:
+ words = "ISOLATED"
+ elif words not in ["LIKELY", "SCATTERED", "ISOLATED"]:
+ words = "POSSIBLE"
+ elif words not in ["LIKELY", "SCATTERED", "ISOLATED", "POSSIBLE"]:
+ words = "NONE"
+ #print words
+ return self.setWords(node, words)
+
+ ########################################################################
+ # OVERRIDING THRESHOLDS AND VARIABLES
+ ########################################################################
+
+ # SampleAnalysis overrides
+ def temporalCoverage_percentage(self, parmHisto, timeRange, componentName):
+ return 15.0
+
+ def temporalCoverage_dict(self, parmHisto, timeRange, componentName):
+ return {
+ "LAL": 0,
+ "MinRH": 0,
+ "MaxRH": 0,
+ "MinT": 10,
+ "MaxT": 10,
+ "Haines": 0,
+ "PoP" : 50,
+ }
+
+ # TextRules overrides
+ def pop_wx_lower_threshold(self, tree, node):
+ # Pop-related Wx will not be reported if Pop is below this threshold
+ return 20
+
+ def phrase_descriptor_dict(self, tree, node):
+ # Descriptors for phrases
+ dict = TextRules.TextRules.phrase_descriptor_dict(self, tree, node)
+ dict["DEW POINTS... "] = "DEW POINTS.........."
+ dict["MINIMUM HUMIDITY... "] = "MINIMUM HUMIDITY...."
+ dict["WIND CHILL... "] = "WIND CHILL.........."
+ dict["HEAT INDEX... "] = "HEAT INDEX.........."
+ dict["WIND... "] = "WIND................"
+ dict["PRECIPITATION... "] = "PRECIPITATION......."
+ dict["LIGHTNING... "] = "LIGHTNING..........."
+ dict["HeatIndex"] = ""
+ dict["WindChill"] = ""
+ return dict
+
+
+ ########################################################################
+ # OVERRIDING METHODS
+ ########################################################################
+
+ ########################################################################
+ # COMPONENT PRODUCT DEFINITIONS
+ ########################################################################
+
+ def RecreationPhrases(self):
+ return {
+ "type": "component",
+ "methodList": [
+ self.assembleIndentedPhrases,
+ ],
+ "analysisList": [
+ ("Td", self.avg),
+ ("RH", self.minMax),
+ ("T", self.minMax),
+ ("WindChill", self.minMax, [12]),
+ ("HeatIndex", self.minMax, [12]),
+ ("Wind", self.vectorMinMax),
+ ("Wx", self.rankedWx),
+ ("QPF", self.accumMinMax),
+ ("PoP", self.binnedPercent),
+ ],
+ "phraseList":[
+ self._td_phrase,
+ self._rh_phrase,
+ self._windChill_heatIndex_compoundPhrase,
+ self._wind_phrase,
+ self._wx_phrase,
+ self._ltng_phrase,
+ ],
+ }
+
+ def ExtendedLabel(self):
+ return {
+ "type": "component",
+ "methodList": [self.setLabel],
+ "analysisList": [],
+ "phraseList":[],
+ }
+ def setLabel(self, tree, component):
+ component.set("words", "\n.EXTENDED...\n")
+ return self.DONE()
+
+ def Extended(self):
+ return {
+ "type": "component",
+ "methodList": [
+ self.orderPhrases,
+ self.assemblePhrases,
+ self.wordWrap,
+ ],
+ "analysisList": [
+ ("MinT", self.avg),
+ ("MaxT", self.avg),
+ ("T", self.hourlyTemp),
+ ("Sky", self.minMax),
+ ("Wind", self.vectorMinMax),
+ ("Wx", self.rankedWx),
+ ("PoP", self.binnedPercent),
+ ],
+ "phraseList":[
+ self.reportTrends,
+ self.wind_summary,
+ self.sky_phrase,
+ self.weather_phrase,
+ self.lows_phrase,
+ self.highs_phrase,
+ self.temp_trends,
+ ],
+ }
+
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/RecreationFcst_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/RecreationFcst_Local.py
new file mode 100644
index 0000000000..bab6c4c3af
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/RecreationFcst_Local.py
@@ -0,0 +1,39 @@
+##
+# 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.
+##
+# ----------------------------------------------------------------------------
+# This software is in the public domain, furnished "as is", without technical
+# support, and with no warranty, express or implied, as to its usefulness for
+# any purpose.
+#
+# RecreationFcst_Local
+# Local customizations for RecreationFcst as Base class
+#
+# Author:
+# ----------------------------------------------------------------------------
+
+import RecreationFcst
+import string, copy
+
+class TextProduct(RecreationFcst.TextProduct):
+ Definition = copy.deepcopy(RecreationFcst.TextProduct.Definition)
+ Definition['displayName'] = "None"
+ Definition['displayName'] = "TEST_RecreationFcst"
+ def __init__(self):
+ RecreationFcst.TextProduct.__init__(self)
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/SmartElementTable.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/SmartElementTable.py
new file mode 100644
index 0000000000..bef58df5b8
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/SmartElementTable.py
@@ -0,0 +1,310 @@
+##
+# 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.
+##
+#-------------------------------------------------------------------------
+# Description: This product creates a Smart Element Table.
+# The possible elements are Temperature (MaxT, MinT), Humidity (MinRH, MaxRH), and PoP
+#-------------------------------------------------------------------------
+# Copying:
+# This software is in the public domain, furnished "as is", without technical
+# support, and with no warranty, express or implied, as to its usefulness for
+# any purpose.
+#-------------------------------------------------------------------------
+# Standard and Local file names and Locations:
+# MultipleElementTableTable, MultipleElementTable_Local, MultipleElementTable_Aux_Local
+#-------------------------------------------------------------------------
+# User Configurable Variables:
+#-------------------------------------------------------------------------
+# Weather Elements Needed:
+#-------------------------------------------------------------------------
+# Edit Areas Needed:
+#-------------------------------------------------------------------------
+# Associated Utilities Files e.g. Combinations file:
+#-------------------------------------------------------------------------
+# Component Products:
+#-------------------------------------------------------------------------
+# Programmers and Support including product team leader's email:
+#-------------------------------------------------------------------------
+# Development tasks that are identified and in progress:
+#-------------------------------------------------------------------------
+# Additional Information:
+#-------------------------------------------------------------------------
+
+import TextRules
+import SampleAnalysis
+import string, time, types
+
+class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
+ VariableList = [
+ ("Forecast Product" , "Morning", "radio",
+ ["Morning","Afternoon"]),
+ ]
+ Definition = {
+ "type": "smart",
+ "displayName": "None",
+ "outputFile": "/awips/GFESuite/products/TEXT/SmartElementTable.txt",
+ "defaultEditAreas": [
+ ("area1","AREA 1"),
+ ("area2","AREA 2"),
+ ("area3","AREA 3"),
+ ],
+ # Product-specific variables
+ "regionList" : [
+ ("/33",["AREA 1","AREA 2"]),
+ ("/19",["AREA 3"])
+ ],
+ # Possible elements are:
+ # "Temp" -- lists MaxT for daytime, MinT for nighttime
+ # "PoP"
+ # "Humidity" -- lists MinRH for daytime, MaxRH for nighttime
+ "elementList" : ["Temp", "PoP"],
+ # If set to 1, only one value for each element is listed
+ "includeTitle": 1,
+ "introLetters": ".<",
+ }
+
+ def __init__(self):
+ TextRules.TextRules.__init__(self)
+ SampleAnalysis.SampleAnalysis.__init__(self)
+
+ def generateForecast(self, argDict):
+ # Generate formatted product for a list of edit areas
+
+ # Get variables from varDict and Definition
+ self._getVariables(argDict)
+
+ # Get the areaList -- derived from defaultEditAreas and
+ # may be solicited at run-time from the user if desired
+ self._areaList = self.getAreaList(argDict)
+
+ # Determine time ranges for which the data will be sampled
+ self._determineTimeRanges(argDict)
+
+ # Sample the data
+ self._sampleData(argDict)
+
+ # Initialize the output string
+ fcst = ""
+ fcst = self._preProcessProduct(fcst, argDict)
+
+ # Generate the product for each edit area in the list
+ for editArea, areaLabel in self._areaList:
+ fcst = self._preProcessArea(fcst, editArea, areaLabel, argDict)
+ fcst = self._makeProduct(fcst, editArea, areaLabel, argDict)
+ fcst = self._postProcessArea(fcst, editArea, areaLabel, argDict)
+
+ fcst = self._postProcessProduct(fcst, argDict)
+ return fcst
+
+ def _getVariables(self, argDict):
+ # Determine whether Morning or Afternoon product type
+ varDict = argDict["varDict"]
+ self._productType = varDict["Forecast Product"]
+
+ # Make argDict accessible
+ self.__argDict = argDict
+
+ # Set up any other product-specific variables from the Definition
+ self._definition = argDict["forecastDef"]
+ for key in self._definition.keys():
+ exec "self._" + key + "= self._definition[key]"
+
+ self._currentRegion = None
+
+ # The analysisList tells which weather elements and statistics
+ # are desired for the product.
+ self._analysisList = self._getAnalysisList()
+
+ def _determineTimeRanges(self, argDict):
+ # Determine time ranges for product
+ # Sets up self._timeRangeList
+
+ if self._productType == "Morning":
+ timeRange = self.getTimeRange("Today", argDict)
+ numPeriods = 3
+ else:
+ timeRange = self.getTimeRange("Tonight", argDict)
+ numPeriods = 4
+
+ self._timeRangeList = self.getPeriods(timeRange, 12, 12, numPeriods)
+ return
+
+ def _sampleData(self, argDict):
+ # Sample the data
+ self._sampler = self.getSampler(argDict,
+ (self._analysisList, self._timeRangeList, self._areaList))
+ return
+
+ def _preProcessProduct(self, fcst, argDict):
+ # Set up format spacing and title line spacing
+
+ numElements = len(self._elementList)
+ if numElements > 2:
+ self._spaceStr = ""
+ else:
+ self._spaceStr = " "
+ if self._includeTitle == 0:
+ return fcst
+
+ self._titles = self._titleDict()
+ if numElements > 2:
+ if self._productType == "Morning":
+ self._headingLen = 15
+ else:
+ self._headingLen = 19
+ else:
+ if self._productType == "Morning":
+ self._headingLen = 21
+ else:
+ self._headingLen = 28
+
+ # Create title line
+ title = self._introLetters + " "
+ index = 0
+ for element in self._elementList:
+ title = title + string.center(
+ self._titles[element], self._headingLen)
+ if index < len(self._elementList)-1:
+ title = title + "/"
+ index += 1
+ return fcst + title + "\n"
+
+ def _preProcessArea(self, fcst, editArea, areaLabel, argDict):
+ # If we are in a new region, add region header
+ for region, areaList in self._regionList:
+ if areaLabel in areaList:
+ break
+ if region != self._currentRegion:
+ if self._currentRegion is not None:
+ # End the Region
+ fcst = fcst + "\n$$\n\n"
+ self._currentRegion = region
+ fcst = fcst + region
+
+ return fcst + "\n" + string.ljust(areaLabel, 10)
+
+ def _makeProduct(self, fcst, editArea, areaLabel, argDict):
+ # Get the Statistics
+ statList = self.getStatList(self._sampler, self._analysisList,
+ self._timeRangeList, editArea)
+
+ numElements = len(self._elementList)
+ index = 0
+ for element in self._elementList:
+ exec "fcst = fcst + self._get" + element + \
+ "Values(statList, argDict)"
+ if index < numElements-1:
+ fcst = fcst + " /"
+ index += 1
+
+ return fcst
+
+ def _postProcessArea(self, fcst, editArea, areaLabel, argDict):
+ return fcst
+
+ def _postProcessProduct(self, fcst, argDict):
+ fcst = fcst + "\n"
+ return fcst
+
+ ########################################################################
+ # PRODUCT-SPECIFIC METHODS
+ ########################################################################
+
+ def _getAnalysisList(self):
+ return [
+ ("MinT", self.avg),
+ ("MaxT", self.avg),
+ ("MinRH", self.avg),
+ ("MaxRH", self.avg),
+ ("PoP", self.stdDevMaxAvg),
+ ]
+
+ def _titleDict(self):
+ return {
+ "Temp": "TEMPERATURE",
+ "PoP": "PRECIPITATION",
+ "Humidity":"HUMIDITY",
+ }
+
+ def _getTempValues(self, statList, argDict):
+ # Return a string of Temperature values given statList
+ stats1 = statList[0]
+ if self._productType == "Morning":
+ stats2 = statList[1]
+ stats3 = statList[2]
+ t1 = self.getScalarVal(stats1["MaxT"])
+ t2 = self.getScalarVal(stats2["MinT"])
+ t3 = self.getScalarVal(stats3["MaxT"])
+ str = " " + t1+ self._spaceStr +t2+ self._spaceStr +t3
+ return str
+ else:
+ stats2 = statList[1]
+ stats3 = statList[2]
+ stats4 = statList[3]
+ t1 = self.getScalarVal(stats1["MinT"])
+ t2 = self.getScalarVal(stats2["MaxT"])
+ t3 = self.getScalarVal(stats3["MinT"])
+ t4 = self.getScalarVal(stats4["MaxT"])
+ str = " " +t1+ self._spaceStr +t2+ self._spaceStr +t3+ \
+ self._spaceStr+t4
+ return str
+
+ def _getHumidityValues(self, statList, argDict):
+ # Return a string of Humidity values given statList
+ stats1 = statList[0]
+ if self._productType == "Morning":
+ stats2 = statList[1]
+ stats3 = statList[2]
+ t1 = self.getScalarVal(stats1["MinRH"])
+ t2 = self.getScalarVal(stats2["MaxRH"])
+ t3 = self.getScalarVal(stats3["MinRH"])
+ return " " +t1+ self._spaceStr +t2+ self._spaceStr+t3
+ else:
+ stats2 = statList[1]
+ stats3 = statList[2]
+ stats4 = statList[3]
+ t1 = self.getScalarVal(stats1["MaxRH"])
+ t2 = self.getScalarVal(stats2["MinRH"])
+ t3 = self.getScalarVal(stats3["MaxRH"])
+ t4 = self.getScalarVal(stats4["MinRH"])
+ return " " +t1+ self._spaceStr +t2+ self._spaceStr +t3+ self._spaceStr +t4
+
+ def _getPoPValues(self, statList, argDict):
+ # Return a string of PoP values in the statList
+ pop = []
+ popStr = ""
+ index = 0
+ for stats in statList:
+ val = self._getPoPValue(stats)
+ if index < len(statList)-1:
+ popStr = popStr + val + self._spaceStr
+ else:
+ popStr = popStr + val
+ index += 1
+ popStr = popStr + " "
+ return popStr
+
+ def _getPoPValue(self, stats):
+ pop = self.getStats(stats,"PoP")
+ if pop is None:
+ val = " "
+ else:
+ max = self.round(pop, "Nearest", 10)
+ val = self.getScalarVal(max)
+ return val
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/SmartElementTable_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/SmartElementTable_Local.py
new file mode 100644
index 0000000000..d5b1f302e1
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/SmartElementTable_Local.py
@@ -0,0 +1,59 @@
+##
+# 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.
+##
+########################################################################
+# SmartElementTable_Local
+#
+# Type: smart
+# Local product:
+# SmartElementTable_Local(type: smart)
+# To customize this product for your site:
+# Set up SmartElementTable_Local (see template below)
+# to override variables, definitions, thresholds, and methods
+##
+##########################################################################
+import SmartElementTable
+import string, time, re, os, types, copy
+
+class TextProduct(SmartElementTable.TextProduct):
+ Definition = copy.deepcopy(SmartElementTable.TextProduct.Definition)
+
+ Definition["displayName"] = "TEST_SmartElementTable"
+ #Definition["outputFile"] = "/awips/GFESuite/products/TEXT/SmartElementTable.txt"
+ #Definition["defaultEditAreas"] = [
+ # ("area1","AREA 1"),
+ # ("area2","AREA 2"),
+ # ("area3","AREA 3"),
+ # ]
+ #Definition["regionList"] = [
+ # ("/33",["AREA 1","AREA 2"]),
+ # ("/19",["AREA 3"])
+ # ]
+
+ #Definition["elementList"] = ["Temp", "PoP"] # Default
+ #Definition["elementList"] = ["Temp", "Humidity"]
+ #Definition["elementList"] = ["Temp", "Humidity", "PoP"]
+ #Definition["elementList"] = ["Temp", "PoP", "Humidity"]
+ #Definition["elementList"] = ["PoP", "Humidity", "Temp"]
+ #Definition["introLetters"] = ".<"
+
+ def __init__(self):
+ SmartElementTable.TextProduct.__init__(self)
+
+
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/SurfaceTemp.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/SurfaceTemp.py
new file mode 100644
index 0000000000..1324daf34b
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/SurfaceTemp.py
@@ -0,0 +1,82 @@
+##
+# 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.
+##
+########################################################################
+# SurfaceTemp
+#
+# Type: table
+# Edit Areas: solicited from user
+# To Run:
+# Products-->Generate Products
+# Choose Edit Areas and Period (default is every 3 hours)
+# Select OK
+#
+########################################################################
+## EXAMPLE OUTPUT
+
+## Experimental Surface Temperature Guidance Product
+
+## Edit Area 12Z/29 18Z/29 0Z/1 6Z/1 12Z/1 18Z/1 0Z/2
+
+## COAdams 39 39 39 39 39 39 39
+## COArapahoe 39 39 39 39 39 39 39
+## COBoulder 28 28 28 28 28 28 28
+## COClearCreek 21 21 21 21 21 21 21
+## CODenver 37 37 37 37 37 37 37
+## CODouglas 34 34 34 34 34 34 34
+## COElbert 39 39 39 39 39 39 39
+
+
+
+########################################################################
+Definition = {
+
+ "type": "table",
+ "displayName": "TEST_Surface Temperature Table", # for Product Generation Menu
+
+ # Output file for product results
+ "outputFile": "./SurfaceTemp.txt", # default output file
+
+ "constantVariable": "WeatherElement",
+ "rowVariable": "EditArea",
+ "columnVariable": "TimePeriod",
+
+ "beginningText": "Experimental Surface Temperature Guidance Product \n\n",
+ "endingText": "",
+
+ # Edit Areas
+ "defaultEditAreas" : [("area1","Area 1"),("area2","Area 2")],
+ "runTimeEditAreas": "yes",
+ "areaType" : "Edit Area", # E.g. City, County, Basin, etc.
+
+ # Time Ranges
+ "defaultRanges":["Today"],
+ "runTimeRanges": "no",
+
+ "elementList": [
+ ("T","Temp",
+ "avg",
+ "singleValue",
+ "Scalar", 1, None),
+ ],
+
+
+ "timePeriod": 3,
+ "runTimePeriod": "yes", # If yes, ask user at run time for period
+ }
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/TestAbsTime.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/TestAbsTime.py
new file mode 100644
index 0000000000..bfb8ff998e
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/TestAbsTime.py
@@ -0,0 +1,29 @@
+##
+# 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.
+##
+from AbsTime import current
+from AbsTime import AbsTime
+from TimeRange import TimeRange
+
+def testAbsTimeZero():
+ start = AbsTime(0)
+ end = current()
+ timeRange = TimeRange(start, end)
+ javaTR = timeRange.toJavaObj()
+ return javaTR
\ No newline at end of file
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/TestHazardUtils.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/TestHazardUtils.py
new file mode 100644
index 0000000000..374246e201
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/TestHazardUtils.py
@@ -0,0 +1,39 @@
+##
+# 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.
+##
+import MockHazardUtils
+import MockGridData
+import MockSlice
+import MockParm
+from com.raytheon.uf.common.time import TimeRange as TR
+import numpy as np
+from StringIO import StringIO
+
+jtr = None
+msl = None
+mgi = None
+hazardUtils = None
+
+def printvars():
+ print "jtr = ", jtr
+ print "msl = ", msl
+ print "mgi = ", mgi
+ print "hazardUtils = ", hazardUtils
+ if hazardUtils is not None:
+ print "hazardUtils.gridInfo = ", hazardUtils.gridInfo
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/TestSmartScript.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/TestSmartScript.py
new file mode 100644
index 0000000000..a047c4c67a
--- /dev/null
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/TestSmartScript.py
@@ -0,0 +1,56 @@
+##
+# 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.
+##
+##
+# This is a helper script for use by TestSmartScript.java.
+# It is meant to be run from within Jepp.
+# It creates a DataManager and uses it to create a SmartScript.
+import numpy as np
+import SmartScript
+
+
+# Create a numpy array of floats for the scalar test
+scalarGrid = np.array(range(16), dtype=np.float32).reshape((4,4))
+
+# Create a "discrete grid" tuple for the discrete test
+idxA = np.array(range(4), dtype='int8') * np.ones((4,4), dtype='int8')
+idxKL = ["", "one", "two", "three"]
+discreteGrid = (idxA, idxKL)
+
+from com.raytheon.uf.common.dataplugin.gfe.grid import Grid2DByte
+from com.raytheon.viz.gfe.ui.runtimeui import TestSmartScript
+
+numpyByteArray = np.ones((3,3), dtype=np.byte)
+dimx = 3
+dimy = 3
+
+def testGetGridShape():
+ valueExpected = (145, 145)
+ valueObtained = smartScript.getGridShape()
+ if not valueExpected==valueObtained:
+ print "valueObtained =", valueObtained
+ return (valueExpected==valueObtained)
+
+def testGetGridInfo(model, element, level, timeRange, mostRecentModel=0):
+ rtnInfo = smartScript.getGridInfo(model, element, level, timeRange, mostRecentModel)
+ if rtnInfo is not None:
+ gridTime = rtnInfo[0].gridTime()
+ if gridTime is None:
+ raise RuntimeError, "gridTime is None"
+ return True
\ No newline at end of file
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textProducts/MultipleElementTable.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textProducts/MultipleElementTable.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textProducts/MultipleElementTable.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textProducts/MultipleElementTable.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textProducts/MultipleElementTable_Aux_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textProducts/MultipleElementTable_Aux_Local.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textProducts/MultipleElementTable_Aux_Local.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textProducts/MultipleElementTable_Aux_Local.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textProducts/MultipleElementTable_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textProducts/MultipleElementTable_Local.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textProducts/MultipleElementTable_Local.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textProducts/MultipleElementTable_Local.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/Analysis.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/Analysis.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/Analysis.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/Analysis.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/ForecastNarrative.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/ForecastNarrative.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/ForecastNarrative.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/ForecastNarrative.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/ForecastTable.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/ForecastTable.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/ForecastTable.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/ForecastTable.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/FormatterRunner.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/FormatterRunner.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/FormatterRunner.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/FormatterRunner.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/HazardsTable.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/HazardsTable.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/HazardsTable.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/HazardsTable.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/TextFormatter.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/TextFormatter.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/TextFormatter.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/TextFormatter.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/offsetTime.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/offsetTime.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/headline/offsetTime.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/headline/offsetTime.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/CallToActions.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/CallToActions.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/CallToActions.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/CallToActions.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/CityDictionary.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/CityDictionary.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/CityDictionary.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/CityDictionary.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/CombinedPhrases.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/CombinedPhrases.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/CombinedPhrases.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/CombinedPhrases.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/CommonUtils.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/CommonUtils.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/CommonUtils.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/CommonUtils.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/ConfigVariables.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/ConfigVariables.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/ConfigVariables.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/ConfigVariables.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/ConfigurableIssuance.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/ConfigurableIssuance.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/ConfigurableIssuance.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/ConfigurableIssuance.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/DiscretePhrases.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/DiscretePhrases.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/DiscretePhrases.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/DiscretePhrases.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/EditAreaUtils.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/EditAreaUtils.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/EditAreaUtils.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/EditAreaUtils.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/FWS_Overrides.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/FWS_Overrides.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/FWS_Overrides.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/FWS_Overrides.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/FirePhrases.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/FirePhrases.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/FirePhrases.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/FirePhrases.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Header.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Header.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Header.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Header.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Holidays.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Holidays.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Holidays.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Holidays.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Interfaces.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Interfaces.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Interfaces.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Interfaces.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/MarinePhrases.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/MarinePhrases.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/MarinePhrases.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/MarinePhrases.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/ModuleAccessor.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/ModuleAccessor.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/ModuleAccessor.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/ModuleAccessor.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Patch_Overrides.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Patch_Overrides.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Patch_Overrides.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Patch_Overrides.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/PeriodByArea.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/PeriodByArea.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/PeriodByArea.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/PeriodByArea.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/PhraseBuilder.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/PhraseBuilder.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/PhraseBuilder.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/PhraseBuilder.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Phrase_Test_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Phrase_Test_Local.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Phrase_Test_Local.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Phrase_Test_Local.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/SAF_Overrides.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/SAF_Overrides.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/SAF_Overrides.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/SAF_Overrides.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/SampleAnalysis.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/SampleAnalysis.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/SampleAnalysis.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/SampleAnalysis.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/ScalarPhrases.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/ScalarPhrases.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/ScalarPhrases.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/ScalarPhrases.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/SimpleTableUtils.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/SimpleTableUtils.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/SimpleTableUtils.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/SimpleTableUtils.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/SiteCFG.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/SiteCFG.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/SiteCFG.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/SiteCFG.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/SiteInfo.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/SiteInfo.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/SiteInfo.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/SiteInfo.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/StringUtils.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/StringUtils.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/StringUtils.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/StringUtils.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/SurfAreaDictionary.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/SurfAreaDictionary.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/SurfAreaDictionary.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/SurfAreaDictionary.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/TableBuilder.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/TableBuilder.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/TableBuilder.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/TableBuilder.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/TextRules.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/TextRules.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/TextRules.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/TextRules.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/TextUtils.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/TextUtils.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/TextUtils.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/TextUtils.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/TimeDescriptor.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/TimeDescriptor.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/TimeDescriptor.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/TimeDescriptor.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/TimeRangeUtils.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/TimeRangeUtils.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/TimeRangeUtils.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/TimeRangeUtils.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Translator.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Translator.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Translator.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Translator.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Utility.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Utility.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/Utility.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/Utility.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/VTECMessageType.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/VTECMessageType.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/VTECMessageType.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/VTECMessageType.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/VarDictGroker.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/VarDictGroker.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/VarDictGroker.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/VarDictGroker.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/VectorRelatedPhrases.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/VectorRelatedPhrases.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/VectorRelatedPhrases.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/VectorRelatedPhrases.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/WeatherSubKey.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/WeatherSubKey.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/WeatherSubKey.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/WeatherSubKey.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/WxDefinition.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/WxDefinition.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/WxDefinition.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/WxDefinition.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/WxPhrases.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/WxPhrases.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/textUtilities/regular/WxPhrases.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/textUtilities/regular/WxPhrases.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/AppDialog.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/AppDialog.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/AppDialog.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/AppDialog.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/BOIVerifyConfig.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/BOIVerifyConfig.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/BOIVerifyConfig.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/BOIVerifyConfig.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/BOIVerifyUtility.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/BOIVerifyUtility.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/BOIVerifyUtility.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/BOIVerifyUtility.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/CombinationsInterface.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/CombinationsInterface.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/CombinationsInterface.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/CombinationsInterface.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/Exceptions.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/Exceptions.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/Exceptions.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/Exceptions.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/GridInfo.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/GridInfo.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/GridInfo.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/GridInfo.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/HazardUtils.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/HazardUtils.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/HazardUtils.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/HazardUtils.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/ISC_Utility.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ISC_Utility.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/ISC_Utility.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ISC_Utility.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/ISC_Utility_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ISC_Utility_Local.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/ISC_Utility_Local.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ISC_Utility_Local.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/IToolInterface.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/IToolInterface.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/IToolInterface.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/IToolInterface.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/MakeHazardConfig.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/MakeHazardConfig.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/MakeHazardConfig.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/MakeHazardConfig.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/MessageBox.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/MessageBox.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/MessageBox.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/MessageBox.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/ProcedureInterface.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ProcedureInterface.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/ProcedureInterface.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ProcedureInterface.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/ProcessVariableList.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ProcessVariableList.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/ProcessVariableList.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ProcessVariableList.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/ProductParser.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ProductParser.py
similarity index 97%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/ProductParser.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ProductParser.py
index d15deaa24a..0cea29c727 100644
--- a/cave/build/static/common/cave/etc/gfe/userPython/utilities/ProductParser.py
+++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ProductParser.py
@@ -2,19 +2,19 @@
##
# 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.
##
@@ -119,7 +119,7 @@ nnn = r'(?:[A-Z]{2}[ZC])?\d{3}'
purge = r'(?P\d{6})-'
ugc = r'\n(?P' + r'[A-Z]{2}[Z|C](?:(?:\d{3})|(?:ALL))' + r'(?:[->]\n?' + nnn + \
r')*-\n?' + purge + el + r')'
-cityh = r'(?<=-\n(?!.*-\n))(?P(?:.*\n))'
+cityh = r'-\n(?P(?:\s*\n)*(?:INCLUDING THE (?:CITIES|CITY) OF...)?)'
body = r'(?P(?:^.*\n)*?)'
#body = r'.*'
@@ -192,20 +192,20 @@ class ProductParser:
#l = headline_re.finditer(str)
l = single_head_re.finditer(str)
for m in l:
- if m is not None:
+ if m is not None:
#print 'phl m = ', m
newstart = start + m.start()
m = headline_re.match(m.group(0))
if m is not None:
hdlns.append(self.dumpMatch(m, newstart))
-
+
#print 'hdlns = ', hdlns
rval['headInfo'] = hdlns
def dumpMatch(self, m, offset=0, rval=None):
if rval is None:
rval = {}
-
+
#print 'dumpmatch m = ', m.groupdict()
for k in m.groupdict().keys():
if m.start(k) != -1 and m.start(k) != m.end(k):
@@ -234,7 +234,7 @@ class ProductParser:
segs = []
l = ugch_re.finditer(self._str)
-
+
for m in l:
if m is not None:
m1 = cityh_re.search(self._str, m.end())
@@ -250,7 +250,7 @@ class ProductParser:
else:
continue
m4 = head_re.search(self._str, m.end(), m3.end())
-
+
d = self.dumpMatch(m)
d = self.dumpMatch(m2, rval=d)
d = self.dumpMatch(m3, rval=d)
@@ -266,7 +266,7 @@ class ProductParser:
else:
d['city'] = (self.tkc(m2.start()),
self.tkc(m2.start()))
-
+
if m4 is not None:
#print 'm4 = ', m4.group()
d = self.dumpMatch(m4, rval=d)
@@ -284,7 +284,7 @@ class ProductParser:
rval['frames'] = frames
return rval
-
+
def parseFromJava(self, text):
self._str = text
self._ci = None
@@ -295,13 +295,13 @@ class ProductParser:
lc.append(count)
count += l
self._totals = lc
-
+
#print 'text START ----------------------'
#print text
#print 'text END ------------------------'
-
+
result = self.parse()
-
+
#print 'result = ', result
-
+
return JUtil.pyDictToJavaMap(result)
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/SmartScript.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/SmartScript.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartToolInterface.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/SmartToolInterface.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartToolInterface.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/SmartToolInterface.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/StartupDialog.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/StartupDialog.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/StartupDialog.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/StartupDialog.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/TkDefaults.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/TkDefaults.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/TkDefaults.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/TkDefaults.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/WxMethods.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/WxMethods.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/WxMethods.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/WxMethods.py
diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/ZoneCombinerConfig.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ZoneCombinerConfig.py
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/userPython/utilities/ZoneCombinerConfig.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/utilities/ZoneCombinerConfig.py
diff --git a/cave/build/static/common/cave/etc/gfe/weGroups/EditTopo.xml b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/weGroups/EditTopo.xml
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/weGroups/EditTopo.xml
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/weGroups/EditTopo.xml
diff --git a/cave/build/static/common/cave/etc/gfe/weGroups/FireWx.xml b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/weGroups/FireWx.xml
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/weGroups/FireWx.xml
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/weGroups/FireWx.xml
diff --git a/cave/build/static/common/cave/etc/gfe/weGroups/Hazards.xml b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/weGroups/Hazards.xml
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/weGroups/Hazards.xml
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/weGroups/Hazards.xml
diff --git a/cave/build/static/common/cave/etc/gfe/weGroups/Marine.xml b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/weGroups/Marine.xml
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/weGroups/Marine.xml
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/weGroups/Marine.xml
diff --git a/cave/build/static/common/cave/etc/gfe/weGroups/Public.xml b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/weGroups/Public.xml
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/weGroups/Public.xml
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/weGroups/Public.xml
diff --git a/cave/build/static/common/cave/etc/gfe/weGroups/Temps.xml b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/weGroups/Temps.xml
similarity index 100%
rename from cave/build/static/common/cave/etc/gfe/weGroups/Temps.xml
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/weGroups/Temps.xml
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/CompletePopulate.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/CompletePopulate.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/CompletePopulate.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/CompletePopulate.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/ExProc1.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/ExProc1.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/ExProc1.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/ExProc1.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/ExProc2.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/ExProc2.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/ExProc2.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/ExProc2.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/Interpolate_Procedure.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/Interpolate_Procedure.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/Interpolate_Procedure.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/Interpolate_Procedure.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/ProcedureCmds.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/ProcedureCmds.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/ProcedureCmds.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/ProcedureCmds.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS1.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS1.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS1.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS1.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS2.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS2.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS2.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS2.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS4.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS4.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS4.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS4.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS5.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS5.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS5.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS5.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS6.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS6.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS6.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS6.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS7.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS7.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS7.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS7.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS8.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS8.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS8.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS8.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExTool1.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExTool1.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExTool1.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExTool1.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExTool2.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExTool2.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExTool2.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExTool2.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExTool3.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExTool3.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExTool3.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExTool3.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExUtil1.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExUtil1.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExUtil1.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExUtil1.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/HrsOfSunTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/HrsOfSunTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/HrsOfSunTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/HrsOfSunTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/InvBurnOffTempTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/InvBurnOffTempTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/InvBurnOffTempTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/InvBurnOffTempTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/MaxRHTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/MaxRHTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/MaxRHTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/MaxRHTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/MinRHTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/MinRHTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/MinRHTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/MinRHTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/MixHgt_Init.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/MixHgt_Init.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/MixHgt_Init.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/MixHgt_Init.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/Period2Tool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/Period2Tool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/Period2Tool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/Period2Tool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/PeriodTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/PeriodTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/PeriodTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/PeriodTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/RHtrendTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/RHtrendTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/RHtrendTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/RHtrendTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/Swell2Tool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/Swell2Tool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/Swell2Tool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/Swell2Tool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/SwellTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/SwellTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/SwellTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/SwellTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/TtrendTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/TtrendTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/TtrendTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/TtrendTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WaveHeightTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WaveHeightTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WaveHeightTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WaveHeightTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WetflagTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WetflagTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WetflagTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WetflagTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WindGustTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WindGustTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WindGustTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WindGustTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WindWaveHgtTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WindWaveHgtTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WindWaveHgtTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WindWaveHgtTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/MultipleElementTable_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/MultipleElementTable_Local.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/MultipleElementTable_Local.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/MultipleElementTable_Local.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/RDFcst.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/RDFcst.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/RDFcst.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/RDFcst.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable_Local.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable_Local.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable_Local.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/tp008_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/tp008_Local.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/tp008_Local.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/tp008_Local.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/utilities/Common.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/utilities/Common.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/utilities/Common.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/utilities/Common.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/utilities/MyDialog.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/utilities/MyDialog.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/utilities/MyDialog.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/utilities/MyDialog.py
diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.gfe/src/com/raytheon/uf/common/dataplugin/gfe/python/GfePyIncludeUtil.java b/edexOsgi/com.raytheon.uf.common.dataplugin.gfe/src/com/raytheon/uf/common/dataplugin/gfe/python/GfePyIncludeUtil.java
index 697a3f3566..0ffe4a7d84 100644
--- a/edexOsgi/com.raytheon.uf.common.dataplugin.gfe/src/com/raytheon/uf/common/dataplugin/gfe/python/GfePyIncludeUtil.java
+++ b/edexOsgi/com.raytheon.uf.common.dataplugin.gfe/src/com/raytheon/uf/common/dataplugin/gfe/python/GfePyIncludeUtil.java
@@ -40,6 +40,8 @@ import com.raytheon.uf.common.util.FileUtil;
* ------------ ---------- ----------- --------------------------
* Oct 9, 2008 njensen Initial creation
* Sep 18, 2012 #1091 randerso added base directory to getGfeConfigIncludePath
+ * Mar 06 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * for GFE localization files
*
*
* @author njensen
@@ -208,14 +210,14 @@ public class GfePyIncludeUtil {
public static String getProceduresIncludePath(boolean includeUser) {
String baseDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE),
PROCEDURES);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE),
PROCEDURES);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
PROCEDURES);
return PyUtil.buildJepIncludePath(userDir, siteDir, baseDir);
} else {
@@ -229,15 +231,15 @@ public class GfePyIncludeUtil {
public static String getTextUtilitiesIncludePath(boolean includeUser) {
String baseDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE), REGULAR);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE), REGULAR);
String configDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.CONFIGURED),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.CONFIGURED),
REGULAR);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE), REGULAR);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE), REGULAR);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
REGULAR);
return PyUtil.buildJepIncludePath(userDir, siteDir, configDir,
baseDir);
@@ -252,17 +254,17 @@ public class GfePyIncludeUtil {
public static String getTextProductsIncludePath(boolean includeUser) {
String baseDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE),
TEXT_PRODUCTS);
String configDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.CONFIGURED),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.CONFIGURED),
TEXT_PRODUCTS);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE),
TEXT_PRODUCTS);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
TEXT_PRODUCTS);
return PyUtil.buildJepIncludePath(userDir, siteDir, configDir,
baseDir);
@@ -277,14 +279,14 @@ public class GfePyIncludeUtil {
public static String getSmartToolsIncludePath(boolean includeUser) {
String baseDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE),
SMART_TOOLS);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE),
SMART_TOOLS);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
SMART_TOOLS);
return PyUtil.buildJepIncludePath(userDir, siteDir, baseDir);
} else {
@@ -298,14 +300,14 @@ public class GfePyIncludeUtil {
public static String getUtilitiesIncludePath(boolean includeUser) {
String baseDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE),
UTILITIES);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE),
UTILITIES);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
UTILITIES);
return PyUtil.buildJepIncludePath(userDir, siteDir, baseDir);
} else {
@@ -327,12 +329,12 @@ public class GfePyIncludeUtil {
public static String getConfigIncludePath(boolean includeUser) {
String baseDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.BASE), CONFIG);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.BASE), CONFIG);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE), CONFIG);
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE), CONFIG);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
CONFIG);
return PyUtil.buildJepIncludePath(userDir, siteDir, baseDir);
} else {
@@ -356,7 +358,7 @@ public class GfePyIncludeUtil {
}
public static String getTextProductsTemplatesIncludePath() {
- return getPath(PATH_MANAGER.getContext(LocalizationType.CAVE_STATIC,
+ return getPath(PATH_MANAGER.getContext(LocalizationType.COMMON_STATIC,
LocalizationLevel.BASE), TEXT_PRODUCTS);
}
@@ -366,14 +368,14 @@ public class GfePyIncludeUtil {
public static String getCombinationsIncludePath(boolean includeUser) {
String configDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.CONFIGURED),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.CONFIGURED),
COMBINATIONS);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.SITE),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.SITE),
COMBINATIONS);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
+ LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
COMBINATIONS);
return PyUtil.buildJepIncludePath(userDir, siteDir, configDir);
} else {
diff --git a/edexOsgi/com.raytheon.uf.edex.plugin.nwsauth/utility/common_static/base/roles/userRoles.xml b/edexOsgi/com.raytheon.uf.edex.plugin.nwsauth/utility/common_static/base/roles/userRoles.xml
index 61c231cbea..94076a7aa4 100644
--- a/edexOsgi/com.raytheon.uf.edex.plugin.nwsauth/utility/common_static/base/roles/userRoles.xml
+++ b/edexOsgi/com.raytheon.uf.edex.plugin.nwsauth/utility/common_static/base/roles/userRoles.xml
@@ -5,7 +5,7 @@
-
+
@@ -93,7 +93,7 @@
com.raytheon.localization.site/common_static/purge
- com.raytheon.localization.site/cave_static/colormaps
+ com.raytheon.localization.site/common_static/colormaps
com.raytheon.localization.site/cave_static/ffmp
com.raytheon.localization.site/cave_static/fog
com.raytheon.localization.site/common_static/fog
diff --git a/edexOsgi/com.raytheon.uf.edex.plugin.nwsauth/utility/edex_static/base/roles/userRoles.xml b/edexOsgi/com.raytheon.uf.edex.plugin.nwsauth/utility/edex_static/base/roles/userRoles.xml
index c4a9488fad..b2ed46352f 100644
--- a/edexOsgi/com.raytheon.uf.edex.plugin.nwsauth/utility/edex_static/base/roles/userRoles.xml
+++ b/edexOsgi/com.raytheon.uf.edex.plugin.nwsauth/utility/edex_static/base/roles/userRoles.xml
@@ -10,7 +10,7 @@
-
+
diff --git a/edexOsgi/com.raytheon.uf.edex.plugin.qc/src/com/raytheon/uf/edex/plugin/qc/QCScanner.java b/edexOsgi/com.raytheon.uf.edex.plugin.qc/src/com/raytheon/uf/edex/plugin/qc/QCScanner.java
index a9e8cb558f..c71b17ac57 100644
--- a/edexOsgi/com.raytheon.uf.edex.plugin.qc/src/com/raytheon/uf/edex/plugin/qc/QCScanner.java
+++ b/edexOsgi/com.raytheon.uf.edex.plugin.qc/src/com/raytheon/uf/edex/plugin/qc/QCScanner.java
@@ -160,10 +160,13 @@ public class QCScanner {
String[] idVariablesNames = nc
.findGlobalAttribute("idVariables")
.getStringValue().split(",");
+ String[] timeVariableNames = nc
+ .findGlobalAttribute("timeVariables")
+ .getStringValue().split(",");
Variable[] idVariables = new Variable[idVariablesNames.length];
for (int i = 0; i < idVariables.length; ++i)
idVariables[i] = nc.findVariable(idVariablesNames[i]);
- Variable vObsTime = nc.findVariable("observationTime");
+ Variable vObsTime = nc.findVariable(timeVariableNames[0]);
double vObsTimeFillValue = vObsTime.findAttribute("_FillValue").getNumericValue().doubleValue();
Double vObsTimeMissingValue = null;
Attribute a = vObsTime.findAttribute("missing_value");
diff --git a/edexOsgi/com.raytheon.uf.edex.plugin.qc/utility/edex_static/base/python/qcScanner.py b/edexOsgi/com.raytheon.uf.edex.plugin.qc/utility/edex_static/base/python/qcScanner.py
deleted file mode 100644
index ac12287c7e..0000000000
--- a/edexOsgi/com.raytheon.uf.edex.plugin.qc/utility/edex_static/base/python/qcScanner.py
+++ /dev/null
@@ -1,183 +0,0 @@
-##
-# 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.
-##
-
-import glob
-import os
-import os.path
-import sys
-import time
-
-import pupynere as netcdf
-
-from java.lang import Integer
-from java.util import ArrayList
-from java.util import Date
-from com.raytheon.uf.edex.database.query import DatabaseQuery
-from com.raytheon.uf.common.dataplugin.qc import QCRecord
-from com.raytheon.uf.common.pointdata.spatial import SurfaceObsLocation
-from com.raytheon.uf.common.time import DataTime
-from com.raytheon.uf.edex.database.plugin import PluginFactory
-
-import logging, UFStatusHandler
-
-_logger = logging.getLogger("QCScanner")
-_logger.addHandler(UFStatusHandler.UFStatusHandler("com.raytheon.uf.edex.plugin.qc", "QCScanner", level=logging.INFO))
-_logger.setLevel(logging.INFO)
-
-
-# TODO: use jep.jarray
-
-class NcSet(object):
- def __init__(self, path, qcType):
- self.path = path
- self.lastModTime = None
- self.qcType = qcType
- max_index = qcDao.getMaxRecordIndex(os.path.basename(path))
- if max_index >= 0:
- self.lastRecordCount = max_index + 1
- else:
- self.lastRecordCount = None
-
- def incrementalScan(self, max_records = None):
- try:
- last_mod_time = os.stat(self.path).st_mtime
- except Exception, e:
- _logger.error("%s: %s", self.path, e)
- return
- if last_mod_time == self.lastModTime:
- return
- self.lastModTime = last_mod_time
- try:
- f = netcdf.NetCDFFile(self.path, 'r')
- except Exception, e:
- _logger.error("%s: %s", self.path, e, exc_info=True)
- return
-
- # TODO: find last record ~
- # select ncSet, max(ncIndex) from qc group by ncNet;
-
- try :
- n_records = f.variables['prevRecord'].shape[0]
- if self.lastRecordCount is None or n_records > self.lastRecordCount:
- i = self.lastRecordCount is not None and self.lastRecordCount or 0
- if max_records is not None:
- record_limit = min(i + max_records, n_records)
- else:
- record_limit = n_records
- fn = os.path.basename(self.path)
- idVariables = []
- for idVar in f.__getattribute__('idVariables').split(','):
- idVariables.append(f.variables[str(idVar)])
- timeVariables = f.__getattribute__('timeVariables').split(',')
- vObsTime = f.variables[str(timeVariables[0])]
- vObsTimeFillValue = vObsTime.__getattribute__("_FillValue")
- try :
- vObsTimeMissingValue = vObsTime.__getattribute__("missing_value")
- except AttributeError:
- vObsTimeMissingValue = vObsTimeFillValue
- vLat = f.variables['latitude']
- vLon = f.variables['longitude']
- vElev = f.variables['elevation']
- results = []
- _logger.debug("adding %d records from %s", record_limit - i, self.path)
- while i < record_limit:
- rec = QCRecord()
- rec.setPluginName("qc")
- if not vObsTime[i] == vObsTimeFillValue and not vObsTime[i] == vObsTimeMissingValue:
- rec.setDataTime(DataTime(Date(int(vObsTime[i] * 1000))))
- loc = SurfaceObsLocation()
- loc.assignLocation(float(vLat[i]), float(vLon[i]))
- loc.setElevation(Integer(int(vElev[i])))
- stationId = []
- for idVar in idVariables:
- stationId.append(''.join(idVar[i]).strip().strip('\0'))
- loc.setStationId(''.join(stationId))
- rec.setLocation(loc)
-
- rec.setNcSet(fn)
- rec.setNcIndex(i)
- rec.setQcType(self.qcType)
-
- rec.constructDataURI()
- results.append(rec)
-
- i += 1
-
- self.lastRecordCount = record_limit
- return results
- finally:
- f.close()
-
-class QCScanner(object):
- def __init__(self, dir, qcType):
- self.directory = dir
- self.qcType = qcType
- self.ncSets = { }
-
- def incrementalScan(self, max_records = None):
- currentNcSets = self.findNcSetsNow()
- newSets = [ ]
- delSets = [ ]
- for ncSet in currentNcSets:
- if not self.ncSets.get(ncSet):
- newSets.append(ncSet)
- for ncSet in self.ncSets.keys():
- if ncSet not in currentNcSets:
- delSets.append(ncSet)
- if len(delSets):
- for ncSet in delSets:
- del self.ncSets[ncSet]
- if len(newSets):
- for ncSet in newSets:
- self.ncSets[ncSet] = NcSet(os.path.join(self.directory, ncSet), self.qcType)
- ncSets = self.ncSets.keys()
- ncSets.sort()
-
- results = None
- for ncSet in ncSets:
- partial = self.ncSets[ncSet].incrementalScan(max_records)
- if partial is not None:
- if max_records is not None:
- max_records -= len(partial)
- if results is None:
- results = ArrayList(len(partial))
- for rec in partial:
- results.add(rec)
-
- if results is None:
- results = ArrayList()
- return results
-
- def findNcSetsNow(self):
- paths = glob.glob(self.directory + '/[0-9]*_[0-9]*')
- return [ os.path.basename(x) for x in paths ]
-
-scanner = None
-qcDao = None
-
-def init(directory, qcType):
- global scanner, qcDao
- scanner = QCScanner(directory, qcType)
- qcDao = PluginFactory.getInstance().getPluginDao("qc");
-
-def scan(max_records = None):
- sys.stdout.flush()
- if scanner is not None:
- return scanner.incrementalScan(max_records)
diff --git a/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/ifpservertext/ifpServerText.py b/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/ifpservertext/ifpServerText.py
index 75c9ce4c2d..e7c29b591f 100644
--- a/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/ifpservertext/ifpServerText.py
+++ b/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/ifpservertext/ifpServerText.py
@@ -23,7 +23,7 @@ import sys, os, pwd, string, getopt, logging
import numpy
from dynamicserialize.dstypes.com.raytheon.uf.common.auth.resp import SuccessfulExecution
-from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import GetSingletonDbIdsRequest
+from dynamicserialize.dstypes.com.raytheon.uf.common.site.requests import GetSingletonDbIdsRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import GetSiteTimeZoneInfoRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import GridLocRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.localization import LocalizationContext
@@ -50,6 +50,10 @@ from ufpy import ThriftClient
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 12/17/10 dgilling Initial Creation.
+# 03/06/13 15717 jzeng change CAVE_STATIC to COMMON_STATIC
+# Change CAVE_STATIC to COMMON_STATIC
+# for GFE localization files
+# Change the package of requests
#
#
#
@@ -106,19 +110,19 @@ class ifpServerText:
"ISCUtility": ".py"
}
- LOCALIZATION_DICT = {"Config": ("CAVE_STATIC", "gfe/userPython/gfeConfig"),
+ LOCALIZATION_DICT = {"Config": ("COMMON_STATIC", "gfe/userPython/gfeConfig"),
"EditArea": ("COMMON_STATIC", "gfe/editAreas"),
"EditAreaGroup": ("COMMON_STATIC", "gfe/editAreaGroups"),
"SampleSet": ("COMMON_STATIC", "gfe/sampleSets"),
- "ColorTable": ("CAVE_STATIC", "colormaps/GFE"),
- "WeatherElementGroup": ("CAVE_STATIC", "gfe/weGroups"),
+ "ColorTable": ("COMMON_STATIC", "colormaps/GFE"),
+ "WeatherElementGroup": ("COMMON_STATIC", "gfe/weGroups"),
"SelectTR": ("COMMON_STATIC", "gfe/text/selecttr"),
- "Tool": ("CAVE_STATIC", "gfe/userPython/smartTools"),
- "Procedure": ("CAVE_STATIC", "gfe/userPython/procedures"),
- "TextProduct": ("CAVE_STATIC", "gfe/userPython/textProducts"),
- "TextUtility": ("CAVE_STATIC", "gfe/userPython/textUtilities/regular"),
- "Utility": ("CAVE_STATIC", "gfe/userPython/utilities"),
- "Combinations": ("CAVE_STATIC", "gfe/combinations"),
+ "Tool": ("COMMON_STATIC", "gfe/userPython/smartTools"),
+ "Procedure": ("COMMON_STATIC", "gfe/userPython/procedures"),
+ "TextProduct": ("COMMON_STATIC", "gfe/userPython/textProducts"),
+ "TextUtility": ("COMMON_STATIC", "gfe/userPython/textUtilities/regular"),
+ "Utility": ("COMMON_STATIC", "gfe/userPython/utilities"),
+ "Combinations": ("COMMON_STATIC", "gfe/combinations"),
"ISCUtility": ("COMMON_STATIC", "isc/utilities")
}
diff --git a/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/movegfedata/moveGFEData.py b/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/movegfedata/moveGFEData.py
index debfc99652..d3b203a307 100644
--- a/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/movegfedata/moveGFEData.py
+++ b/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/movegfedata/moveGFEData.py
@@ -49,7 +49,7 @@ from ufpy import UsageArgumentParser
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 12/17/10 dgilling Initial Creation.
-#
+# 03/08/13 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
#
#
@@ -65,20 +65,20 @@ CopyOnly = False
Action = " move "
BUFFER_SIZE = 512 * 1024
-LOCALIZATION_DICT = {"GFECONFIG": ("CAVE_STATIC", "gfe/userPython/gfeConfig"),
+LOCALIZATION_DICT = {"GFECONFIG": ("COMMON_STATIC", "gfe/userPython/gfeConfig"),
"EditArea": ("COMMON_STATIC", "gfe/editAreas"),
"EditAreaGroup": ("COMMON_STATIC", "gfe/editAreaGroups"),
"SampleSet": ("COMMON_STATIC", "gfe/sampleSets"),
- "ColorTable": ("CAVE_STATIC", "colormaps/GFE"),
+ "ColorTable": ("COMMON_STATIC", "colormaps/GFE"),
"BUNDLE": ("COMMON_STATIC", "gfe/weGroups"),
"SELECTTR": ("COMMON_STATIC", "gfe/text/selecttr"),
- "Tool": ("CAVE_STATIC", "gfe/userPython/smartTools"),
- "Procedure": ("CAVE_STATIC", "gfe/userPython/procedures"),
- "TextProduct": ("CAVE_STATIC", "gfe/userPython/textProducts"),
- "TextUtility": ("CAVE_STATIC", "gfe/userPython/textUtilities/regular"),
- "Utility": ("CAVE_STATIC", "gfe/userPython/utilities"),
- "COMBODATA": ("CAVE_STATIC", "gfe/comboData"),
- "COMBINATIONS": ("CAVE_STATIC", "gfe/combinations")}
+ "Tool": ("COMMON_STATIC", "gfe/userPython/smartTools"),
+ "Procedure": ("COMMON_STATIC", "gfe/userPython/procedures"),
+ "TextProduct": ("COMMON_STATIC", "gfe/userPython/textProducts"),
+ "TextUtility": ("COMMON_STATIC", "gfe/userPython/textUtilities/regular"),
+ "Utility": ("COMMON_STATIC", "gfe/userPython/utilities"),
+ "COMBODATA": ("COMMON_STATIC", "gfe/comboData"),
+ "COMBINATIONS": ("COMMON_STATIC", "gfe/combinations")}
LOCALIZATION_LEVELS = ["BASE", "CONFIGURED", "SITE", "USER"]
diff --git a/rpms/build/i386/build.sh b/rpms/build/i386/build.sh
index e25d5dbc9f..cc02bd8903 100644
--- a/rpms/build/i386/build.sh
+++ b/rpms/build/i386/build.sh
@@ -341,6 +341,16 @@ if [ "${1}" = "-viz" ]; then
exit 0
fi
+if [ "${1}" = "-custom" ]; then
+ buildRPM "awips2-pypies"
+ if [ $? -ne 0 ]; then
+ exit 1
+ fi
+
+ exit 0
+fi
+
+
if [ "${1}" = "-edex" ]; then
buildRPM "awips2"
buildRPM "awips2-cli"