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 bbaabb251f..f5a631fd56 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,7 +52,6 @@ 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
*
*
*
@@ -97,7 +96,7 @@ public class GfeClient extends AbstractCAVEComponent {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext baseContext = pathMgr.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
+ LocalizationType.CAVE_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 e8a335303c..5015cb67da 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,8 +55,6 @@ 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
*
*
*
@@ -90,7 +88,7 @@ public class PythonPreferenceStore implements IPreferenceStore,
public void loadConfiguration(String configName) {
IPathManager pathMgr = PathManagerFactory.getPathManager();
String utilityDir = pathMgr.getFile(
- pathMgr.getContext(LocalizationType.COMMON_STATIC,
+ pathMgr.getContext(LocalizationType.CAVE_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 3046424a32..867f7c4780 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,8 +63,7 @@ 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
@@ -97,7 +96,7 @@ public class WEGroupManager implements IWEGroupManager,
IPathManager pathManager = PathManagerFactory.getPathManager();
weGroupDir = pathManager.getLocalizationFile(pathManager.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.BASE),
WEGROUP_DIR);
weGroupDir.addFileUpdatedObserver(this);
@@ -134,7 +133,7 @@ public class WEGroupManager implements IWEGroupManager,
IPathManager pathManager = PathManagerFactory.getPathManager();
LocalizationContext[] contexts = pathManager
- .getLocalSearchHierarchy(LocalizationType.COMMON_STATIC);
+ .getLocalSearchHierarchy(LocalizationType.CAVE_STATIC);
LocalizationFile[] files = pathManager.listFiles(contexts, WEGROUP_DIR,
new String[] { ".xml" }, false, true);
@@ -363,7 +362,7 @@ public class WEGroupManager implements IWEGroupManager,
IPathManager pm = PathManagerFactory.getPathManager();
- LocalizationContext lc = pm.getContext(LocalizationType.COMMON_STATIC,
+ LocalizationContext lc = pm.getContext(LocalizationType.CAVE_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 4c15f91c56..578f9792e5 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,13 +37,7 @@ import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.util.FileUtil;
/**
- * 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
+ * @author wldougher
*
*/
public abstract class AbstractScriptCatalog {
@@ -78,11 +72,11 @@ public abstract class AbstractScriptCatalog {
this.pathManager = pathManager;
LocalizationContext userCtx = pathManager.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
LocalizationContext siteCtx = pathManager.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.SITE);
LocalizationContext baseCtx = pathManager.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
+ LocalizationType.CAVE_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 d8cd05f5b9..885b065b5e 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.
- * Mar 10, 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * Oct 30, 2012 1298 rferrel Code cleanup for non-blocking dialog.
+ *
*
*
* @author randerso
@@ -380,7 +380,7 @@ public class GFEConfigDialog extends CaveJFACEDialog {
private void saveLastConfig() {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext context = pathMgr.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
+ LocalizationType.CAVE_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.COMMON_STATIC, LocalizationLevel.USER);
+ LocalizationType.CAVE_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/StoreTransmitDlg.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/StoreTransmitDlg.java
index d764d43ecd..98174d46bc 100755
--- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/StoreTransmitDlg.java
+++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/StoreTransmitDlg.java
@@ -65,7 +65,6 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
* 28May2010 2187 cjeanbap Added StdTextProductFactory
* functionality.
* 09 NOV 2012 1298 rferrel Changes for non-blocking dialog.
- * 08Mar2013 15564 mgamazaychikov Set the awipsWanPil based on productText data
*
*
* @author lvenable
@@ -388,15 +387,7 @@ public class StoreTransmitDlg extends CaveSWTDialog implements
} else {
req = new OUPRequest();
OfficialUserProduct oup = new OfficialUserProduct();
- /*
- * DR15564 - set the awipsWanPil based on productText data
- */
- String[] splitLines = productText.split("\n");
- String[] firstLine = splitLines[0].split(" ");
- String[] secondLine = splitLines[1].split(" ");
- String cccc = firstLine[1];
- String productNnnidXxxid = secondLine[0];
- String awipsWanPil = cccc + productNnnidXxxid;
+ String awipsWanPil = productIdTF.getText();
oup.setAwipsWanPil(awipsWanPil);
oup.setProductText(productText);
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 0d645e0267..e9e9614d0f 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.COMMON_STATIC, LocalizationLevel.BASE);
+ LocalizationType.CAVE_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.COMMON_STATIC, LocalizationLevel.USER);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
LocalizationFile userFile = pm.getLocalizationFile(userContext,
searchName);
if (AccessMgr.verifyDelete(userFile.getName(),
- LocalizationType.COMMON_STATIC, false)) {
+ LocalizationType.CAVE_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.COMMON_STATIC, level);
+ LocalizationType.CAVE_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 88db289345..9b48fff6f2 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,7 +46,6 @@ 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
@@ -67,7 +66,7 @@ public class ProcedureController extends BaseGfePyController {
super(filePath, anIncludePath, classLoader, dataManager, "Procedure");
LocalizationContext baseCtx = PathManagerFactory.getPathManager()
- .getContext(LocalizationType.COMMON_STATIC,
+ .getContext(LocalizationType.CAVE_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 669b5c31d3..34d4ad86a8 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,8 +39,6 @@ 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
*
*
*
@@ -53,7 +51,7 @@ public class ProcedureFactory {
private static ProcedureController buildInstance(DataManager dataMgr,
boolean ui) throws JepException {
LocalizationContext baseCtx = PathManagerFactory.getPathManager()
- .getContext(LocalizationType.COMMON_STATIC,
+ .getContext(LocalizationType.CAVE_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 9262c6b247..1064fca3c3 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,8 +53,7 @@ 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
@@ -75,7 +74,7 @@ public class SmartToolEdit {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext tx = pathMgr.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
File templateFile = PathManagerFactory.getPathManager().getFile(tx,
SmartToolConstants.TEMPLATES_DIR);
@@ -94,7 +93,7 @@ public class SmartToolEdit {
template = Velocity.getTemplate("smartTool.vm");
LocalizationContext cx = pathMgr.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
localizationFile = PathManagerFactory.getPathManager()
.getLocalizationFile(
cx,
@@ -138,7 +137,7 @@ public class SmartToolEdit {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext tx = pathMgr.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
File templateFile = pathMgr.getFile(tx,
SmartToolConstants.TEMPLATES_DIR);
@@ -156,7 +155,7 @@ public class SmartToolEdit {
template = Velocity.getTemplate("utility.vm");
LocalizationContext cx = pathMgr.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
+ LocalizationType.CAVE_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 8c8774bf17..62815667f9 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,7 +46,6 @@ 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
*
*
*
@@ -67,7 +66,7 @@ public class TextFileUtil {
file = PATH_MGR.getStaticLocalizationFile(name);
if (file == null) {
LocalizationContext ctx = PATH_MGR.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
file = PATH_MGR.getLocalizationFile(ctx, name);
}
}
@@ -82,7 +81,7 @@ public class TextFileUtil {
if (name != null) {
LocalizationContext ctx = PATH_MGR.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
+ LocalizationType.CAVE_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/script/SmartToolController.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/smarttool/script/SmartToolController.java
index aa55d9639a..4c81b4319a 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,7 +69,6 @@ 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
@@ -103,7 +102,7 @@ public class SmartToolController extends BaseGfePyController {
super(filePath, anIncludePath, classLoader, dataManager, "Tool");
LocalizationContext baseCtx = PathManagerFactory.getPathManager()
- .getContext(LocalizationType.COMMON_STATIC,
+ .getContext(LocalizationType.CAVE_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 6a31da338c..9214cfbdb5 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,12 +35,11 @@ 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
- * Mar 06,2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
- * for GFE localization files
+ * 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
+ *
*
*
* @author njensen
@@ -51,7 +50,7 @@ public class SmartToolFactory {
private static String getScriptPath() {
LocalizationContext baseCtx = PathManagerFactory.getPathManager()
- .getContext(LocalizationType.COMMON_STATIC,
+ .getContext(LocalizationType.CAVE_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 bfd9288283..d359ff50a8 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,7 +28,6 @@
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
*6/12/2008 mnash Initial creation
- *03/07/2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
*
*
*
@@ -102,7 +101,7 @@ public class CombinationsFileGenerator {
ifpc.makeRequest(req);
IPathManager pm = PathManagerFactory.getPathManager();
- LocalizationContext ctx = pm.getContext(LocalizationType.COMMON_STATIC,
+ LocalizationContext ctx = pm.getContext(LocalizationType.CAVE_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 99216e0d8a..cb47b506c8 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,7 +61,6 @@ 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
@@ -140,7 +139,7 @@ public class CombinationsFileUtil {
String s = FileUtil.mangle(id) + ".xml";
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationFile lf = pm.getLocalizationFile(pm.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE), FileUtil
+ LocalizationType.CAVE_STATIC, LocalizationLevel.SITE), FileUtil
.join(SAVED_COMBO_DIR, s));
return lf;
}
@@ -206,7 +205,7 @@ public class CombinationsFileUtil {
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext baseContext = pm.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
+ LocalizationType.CAVE_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 cb67e9521a..5ca964a2fe 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,7 +41,6 @@ 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
@@ -73,7 +72,7 @@ public class TextFmtParserUtil {
if (python == null) {
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext baseContext = pm.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
+ LocalizationType.CAVE_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 2b7fc834dd..7a39b63590 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,7 +59,6 @@ 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
*
*
*
@@ -101,11 +100,11 @@ public class TextProductManager {
private void init() throws VizException, JepException {
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext configContext = pm.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.CONFIGURED);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.CONFIGURED);
LocalizationContext siteContext = pm.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.SITE);
LocalizationContext userContext = pm.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
+ LocalizationType.CAVE_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 c485bef886..5e49fe6f2c 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,14 +35,6 @@ 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
*
*/
@@ -86,7 +78,7 @@ public class TextProductCatalog extends AbstractScriptCatalog {
getScriptTypePathPrefix() + File.separator + "configured",
getExtensions(), false, true);
LocalizationFile[] userProducts = pathManager.listFiles(pathManager
- .getContext(LocalizationType.COMMON_STATIC,
+ .getContext(LocalizationType.CAVE_STATIC,
LocalizationLevel.USER), getScriptTypePathPrefix(),
getExtensions(), false, true);
@@ -139,7 +131,7 @@ public class TextProductCatalog extends AbstractScriptCatalog {
path = getScriptTypePathPrefix() + File.separator + scriptName;
result = pathManager.getLocalizationFile(pathManager.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER), path);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER), path);
if (result != null && !result.exists()) {
result = null;
}
@@ -148,7 +140,7 @@ public class TextProductCatalog extends AbstractScriptCatalog {
path = GfePyIncludeUtil.TEXT_PRODUCTS + File.separator + scriptName;
result = pathManager
.getLocalizationFile(pathManager.getContext(
- LocalizationType.COMMON_STATIC,
+ LocalizationType.CAVE_STATIC,
LocalizationLevel.SITE), path);
}
if (result != null && !result.exists()) {
@@ -158,7 +150,7 @@ public class TextProductCatalog extends AbstractScriptCatalog {
if (result == null) {
path = GfePyIncludeUtil.TEXT_PRODUCTS + File.separator + scriptName;
result = pathManager.getLocalizationFile(
- pathManager.getContext(LocalizationType.COMMON_STATIC,
+ pathManager.getContext(LocalizationType.CAVE_STATIC,
LocalizationLevel.CONFIGURED), path);
}
if (result != null && !result.exists()) {
@@ -197,9 +189,9 @@ public class TextProductCatalog extends AbstractScriptCatalog {
this.pathManager = pathManager;
LocalizationContext userCtx = pathManager.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
LocalizationContext siteCtx = pathManager.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
+ LocalizationType.CAVE_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 7ee1c7fdb4..9202c7f002 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,8 +39,6 @@ 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
*
*
*
@@ -100,7 +98,7 @@ public class TextProductCatalogue {
// Retrieve the current set of Utilities from the Base
LocalizationContext baseContext = pathMgr.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
LocalizationFile[] baseUtilitiesFiles = pathMgr.listFiles(baseContext,
TextProductUtils.UTILITIES_PATH,
@@ -108,7 +106,7 @@ public class TextProductCatalogue {
// Retrieve the current set of Utilities from the Site
LocalizationContext siteContext = pathMgr.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.SITE);
LocalizationFile[] siteUtilitiesFiles = pathMgr.listFiles(siteContext,
TextProductUtils.UTILITIES_PATH,
@@ -140,7 +138,7 @@ public class TextProductCatalogue {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext siteContext = pathMgr.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
+ LocalizationType.CAVE_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 ab76488171..f0d4a332cc 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,12 +51,11 @@ import com.raytheon.viz.gfe.PythonUtil;
* Utilities for text products
*
*
-S * SOFTWARE HISTORY
+ * SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
- * Sep 23,2008 askripsky Initial creation
- * Mar 06,2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
- * for GFE localization files
+ * Sept 23, 2008 askripsky Initial creation
+ *
*
*
* @author askripsky
@@ -187,7 +186,7 @@ public class TextProductUtils {
// Get context for the Site
LocalizationContext cx = pathMgr.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.SITE);
// Build the path to the new file
String path = (type.equals(PRODUCT) ? PRODUCTS_PATH : UTILITIES_PATH)
@@ -245,7 +244,7 @@ public class TextProductUtils {
// Get path to template file
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext tx = pathMgr.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
+ LocalizationType.CAVE_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 618508f2b4..6ac9b27001 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,7 +41,6 @@ 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
*
*
*
@@ -77,7 +76,7 @@ public class TextProductDeleteAction extends Action {
@Override
public void run() {
if (AccessMgr.verifyDelete(util.scripted(scriptName),
- LocalizationType.COMMON_STATIC, false)) {
+ LocalizationType.CAVE_STATIC, false)) {
try {
// Delete the script
util.delete(scriptName, LocalizationLevel.USER);
diff --git a/cave/com.raytheon.viz.ui/plugin.xml b/cave/com.raytheon.viz.ui/plugin.xml
index 9d52907e56..0c7a1498c5 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 05a5f02acc..670e80c4bb 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,7 +53,6 @@ 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
*
*
*
@@ -167,14 +166,14 @@ public class ColorUtil {
File path = null;
IPathManager pm = PathManagerFactory.getPathManager();
if (aSiteContext) {
- path = pm.getFile(pm.getContext(LocalizationType.COMMON_STATIC,
+ path = pm.getFile(pm.getContext(LocalizationType.CAVE_STATIC,
LocalizationLevel.SITE), COLORMAPS_DIR + File.separator
+ filename);
checkDir(path.getParentFile());
} else {
- path = pm.getFile(pm.getContext(LocalizationType.COMMON_STATIC,
+ path = pm.getFile(pm.getContext(LocalizationType.CAVE_STATIC,
LocalizationLevel.USER), COLORMAPS_DIR + File.separator
+ filename);
checkDir(path.getParentFile());
@@ -206,13 +205,13 @@ public class ColorUtil {
File path = null;
IPathManager pm = PathManagerFactory.getPathManager();
if (aSiteContext) {
- path = pm.getFile(pm.getContext(LocalizationType.COMMON_STATIC,
+ path = pm.getFile(pm.getContext(LocalizationType.CAVE_STATIC,
LocalizationLevel.SITE), COLORMAPS_DIR + File.separator
+ filename);
return path.exists();
} else {
- path = pm.getFile(pm.getContext(LocalizationType.COMMON_STATIC,
+ path = pm.getFile(pm.getContext(LocalizationType.CAVE_STATIC,
LocalizationLevel.USER), COLORMAPS_DIR + File.separator
+ filename);
return path.exists();
@@ -259,10 +258,10 @@ public class ColorUtil {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext context = null;
if (aSiteContext) {
- context = pathMgr.getContext(LocalizationType.COMMON_STATIC,
+ context = pathMgr.getContext(LocalizationType.CAVE_STATIC,
LocalizationLevel.SITE);
} else {
- context = pathMgr.getContext(LocalizationType.COMMON_STATIC,
+ context = pathMgr.getContext(LocalizationType.CAVE_STATIC,
LocalizationLevel.USER);
}
// use / for standard localization of File.separator
@@ -294,7 +293,7 @@ public class ColorUtil {
}
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationFile lfile = pm.getLocalizationFile(pm.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
COLORMAPS_DIR + File.separator + filename);
File file = lfile.getFile();
diff --git a/deltaScripts/13.3.1/updateGfeLoc.sh b/deltaScripts/13.3.1/updateGfeLoc.sh
deleted file mode 100644
index 0a2fd257a1..0000000000
--- a/deltaScripts/13.3.1/updateGfeLoc.sh
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/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/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/4bit_Z_OB3.cmap b/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/4bit_Z_OB3.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/4bit_Z_OB3.cmap
rename to edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/4bit_Z_OB3.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/8 bit Refl-JL2.cmap b/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/8 bit Refl-JL2.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/8 bit Refl-JL2.cmap
rename to edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/8 bit Refl-JL2.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/8bitVjgl.cmap b/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/8bitVjgl.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/8bitVjgl.cmap
rename to edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/8bitVjgl.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/8bitZjgl.cmap b/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/8bitZjgl.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/8bitZjgl.cmap
rename to edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/8bitZjgl.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/CIRA-IR-JLcool.cmap b/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/CIRA-IR-JLcool.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/CIRA-IR-JLcool.cmap
rename to edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/CIRA-IR-JLcool.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/CIRA-IR-JLmod.cmap b/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/CIRA-IR-JLmod.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/CIRA-IR-JLmod.cmap
rename to edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/CIRA-IR-JLmod.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/Hi-Res Ref (SGF)-ob3.cmap b/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/Hi-Res Ref (SGF)-ob3.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/Hi-Res Ref (SGF)-ob3.cmap
rename to edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/Hi-Res Ref (SGF)-ob3.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/WVJL.cmap b/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/WVJL.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/WVJL.cmap
rename to edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/WVJL.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/h5vortbrad.cmap b/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/h5vortbrad.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/h5vortbrad.cmap
rename to edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/h5vortbrad.cmap
diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/magtest.cmap b/edexOsgi/build.edex/esb/data/utility/cave_static/user/fxa/colormaps/magtest.cmap
similarity index 100%
rename from edexOsgi/build.edex/esb/data/utility/common_static/user/fxa/colormaps/magtest.cmap
rename to edexOsgi/build.edex/esb/data/utility/cave_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 3f16f2cbae..c98c5486c8 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:common_static/gfe/userPython/textproducts/MultipleElementTable.py
+BASE:cave_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: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/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/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
+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
# procedures
-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
+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
# smart tools
-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
+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
# 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:common_static/gfe/userPython/gfeConfig/gfeConfig.py
+BASE:cave_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 930f9d04d5..59046214e7 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,7 +49,6 @@ 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
*
*
*
@@ -75,7 +74,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:common_static/gfe/userPython/textProducts/AFD.py\n"
+ + "# A simple example would be: %s:cave_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 063df19300..e93084ab1a 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,9 +47,7 @@ import com.raytheon.uf.edex.core.EDEXUtil;
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
- * May 16,2011 dgilling Initial creation
- * Mar 06,2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
- * for GFE localization files
+ * May 16, 2011 dgilling Initial creation
*
*
*
@@ -75,7 +73,7 @@ public class SaveCombinationsFileHandler implements
SaveCombinationsFileRequest request) throws Exception {
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext localization = pm.getContextForSite(
- LocalizationType.COMMON_STATIC, request.getSiteID());
+ LocalizationType.CAVE_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 6b41354cf1..125638bc4e 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
- * Mar 10 2013 15717 jzeng Change CAVE_STATIC to COMMON_STATIC
+ * May 4, 2011 wldougher Moved from MapManager
+ *
*
*
* @author wldougher
@@ -99,11 +99,11 @@ public class AreaDictionaryMaker {
scriptFile.getParent());
Map argMap = new HashMap();
- LocalizationContext commonStaticConfig = pathMgr.getContext(
- LocalizationContext.LocalizationType.COMMON_STATIC,
+ LocalizationContext caveStaticConfig = pathMgr.getContext(
+ LocalizationContext.LocalizationType.CAVE_STATIC,
LocalizationContext.LocalizationLevel.CONFIGURED);
- commonStaticConfig.setContextName(site);
- File outputDirFile = pathMgr.getLocalizationFile(commonStaticConfig,
+ caveStaticConfig.setContextName(site);
+ File outputDirFile = pathMgr.getLocalizationFile(caveStaticConfig,
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 6fd0708189..2e35a544c0 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,10 +48,9 @@ import com.raytheon.uf.common.util.FileUtil;
*
* SOFTWARE HISTORY
*
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * May 4, 2011 wldougher Moved from MapManager
- * Mar 6, 2013 15717 jzeng Changed CAVE_STATIC to COMMON_STATIC
+ * Date Ticket# Engineer Description
+ * ------------ ---------- ----------- --------------------------
+ * May 4, 2011 wldougher Moved from MapManager
*
*
*
@@ -102,15 +101,15 @@ public class CombinationsFileMaker {
String includePath = GfePyIncludeUtil.getCommonPythonIncludePath();
Map argMap = new HashMap();
- LocalizationContext commonStaticConfig = pathMgr.getContext(
- LocalizationContext.LocalizationType.COMMON_STATIC,
+ LocalizationContext caveStaticConfig = pathMgr.getContext(
+ LocalizationContext.LocalizationType.CAVE_STATIC,
LocalizationContext.LocalizationLevel.CONFIGURED);
- commonStaticConfig.setContextName(site);
+ caveStaticConfig.setContextName(site);
String definitionDir = pathMgr
- .getLocalizationFile(commonStaticConfig,
+ .getLocalizationFile(caveStaticConfig,
GfePyIncludeUtil.REGULAR).getFile().getPath();
- File outputDirFile = pathMgr.getLocalizationFile(commonStaticConfig,
+ File outputDirFile = pathMgr.getLocalizationFile(caveStaticConfig,
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 744e1e7c7f..253143435d 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,8 +64,6 @@ 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
*
*
*
@@ -107,13 +105,13 @@ public class Configurator {
// destinationDirectory
IPathManager pathMgr = PathManagerFactory.getPathManager();
- LocalizationContext commonStaticConfig = pathMgr.getContext(
- LocalizationContext.LocalizationType.COMMON_STATIC,
+ LocalizationContext caveStaticConfig = pathMgr.getContext(
+ LocalizationContext.LocalizationType.CAVE_STATIC,
LocalizationContext.LocalizationLevel.CONFIGURED);
- commonStaticConfig.setContextName(siteID);
+ caveStaticConfig.setContextName(siteID);
try {
- destinationDirectory = pathMgr.getFile(commonStaticConfig,
+ destinationDirectory = pathMgr.getFile(caveStaticConfig,
FileUtil.join("gfe", "userPython")).getCanonicalPath();
} catch (IOException e) {
log.error("Unable to determine the destination directory", e);
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/CompletePopulate.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/CompletePopulate.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/CompletePopulate.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/CompletePopulate.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/ExProc1.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/ExProc1.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/ExProc1.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/ExProc1.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/ExProc2.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/ExProc2.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/ExProc2.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/ExProc2.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/Interpolate_Procedure.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/Interpolate_Procedure.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/Interpolate_Procedure.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/Interpolate_Procedure.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/ProcedureCmds.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/ProcedureCmds.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/procedures/ProcedureCmds.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/procedures/ProcedureCmds.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS1.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS1.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS1.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS1.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS2.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS2.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS2.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS2.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS4.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS4.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS4.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS4.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS5.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS5.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS5.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS5.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS6.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS6.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS6.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS6.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS7.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS7.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS7.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS7.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS8.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS8.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExSS8.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExSS8.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExTool1.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExTool1.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExTool1.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExTool1.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExTool2.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExTool2.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExTool2.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExTool2.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExTool3.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExTool3.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExTool3.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExTool3.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExUtil1.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExUtil1.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/ExUtil1.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/ExUtil1.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/HrsOfSunTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/HrsOfSunTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/HrsOfSunTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/HrsOfSunTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/InvBurnOffTempTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/InvBurnOffTempTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/InvBurnOffTempTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/InvBurnOffTempTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/MaxRHTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/MaxRHTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/MaxRHTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/MaxRHTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/MinRHTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/MinRHTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/MinRHTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/MinRHTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/MixHgt_Init.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/MixHgt_Init.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/MixHgt_Init.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/MixHgt_Init.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/Period2Tool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/Period2Tool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/Period2Tool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/Period2Tool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/PeriodTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/PeriodTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/PeriodTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/PeriodTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/RHtrendTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/RHtrendTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/RHtrendTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/RHtrendTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/Swell2Tool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/Swell2Tool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/Swell2Tool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/Swell2Tool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/SwellTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/SwellTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/SwellTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/SwellTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/TtrendTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/TtrendTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/TtrendTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/TtrendTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WaveHeightTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WaveHeightTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WaveHeightTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WaveHeightTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WetflagTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WetflagTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WetflagTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WetflagTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WindGustTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WindGustTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WindGustTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WindGustTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WindWaveHgtTool.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WindWaveHgtTool.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/smartTools/WindWaveHgtTool.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/smartTools/WindWaveHgtTool.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/MultipleElementTable_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/MultipleElementTable_Local.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/MultipleElementTable_Local.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/MultipleElementTable_Local.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/RDFcst.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/RDFcst.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/RDFcst.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/RDFcst.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable_Local.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable_Local.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/SmartElementTable_Local.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/tp008_Local.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/tp008_Local.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/textProducts/tp008_Local.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/textProducts/tp008_Local.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/utilities/Common.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/utilities/Common.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/utilities/Common.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/utilities/Common.py
diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/utilities/MyDialog.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/utilities/MyDialog.py
similarity index 100%
rename from edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/user/GFETEST/gfe/userPython/utilities/MyDialog.py
rename to edexOsgi/com.raytheon.edex.plugin.gfe/utility/cave_static/user/GFETEST/gfe/userPython/utilities/MyDialog.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
deleted file mode 100644
index d3f3bb463a..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/ElementByPeriod.py
+++ /dev/null
@@ -1,86 +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.
-##
-########################################################################
-# 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
deleted file mode 100644
index 6ebc296fde..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/FirePeriodTable.py
+++ /dev/null
@@ -1,110 +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.
-##
-########################################################################
-# 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
deleted file mode 100644
index 1e21272516..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/LE_Test_Local.py
+++ /dev/null
@@ -1,842 +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.
-##
-# ----------------------------------------------------------------------------
-# 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
deleted file mode 100644
index aac0606577..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MarineSnapshotTable.py
+++ /dev/null
@@ -1,83 +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.
-##
-#######################################################################
-# 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
deleted file mode 100644
index b02f4847e6..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockGridData.py
+++ /dev/null
@@ -1,36 +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.
-##
-##
-# 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
deleted file mode 100644
index f33205af83..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockGridInfo.py
+++ /dev/null
@@ -1,25 +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.
-##
-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
deleted file mode 100644
index 56290f0452..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockHazardUtils.py
+++ /dev/null
@@ -1,189 +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 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
deleted file mode 100644
index 157f4ad0f0..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockParm.py
+++ /dev/null
@@ -1,82 +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 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
deleted file mode 100644
index e89af9ee71..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/MockSlice.py
+++ /dev/null
@@ -1,31 +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.
-##
-##
-# 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
deleted file mode 100644
index e6c587d9f6..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/PeriodByElement.py
+++ /dev/null
@@ -1,157 +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.
-##
-########################################################################
-# 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
deleted file mode 100644
index dc46c5f733..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/PeriodTable.py
+++ /dev/null
@@ -1,107 +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.
-##
-########################################################################
-# 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
deleted file mode 100644
index ac64a89cc6..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/QPFTable.py
+++ /dev/null
@@ -1,81 +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.
-##
-########################################################################
-# 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
deleted file mode 100644
index 5427cababb..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/RDFcst.py
+++ /dev/null
@@ -1,205 +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.
-##
-########################################################################
-# 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
deleted file mode 100644
index 06d9fd1b65..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/RecreationFcst.py
+++ /dev/null
@@ -1,568 +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.
-##
-########################################################################
-# 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
deleted file mode 100644
index bab6c4c3af..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/RecreationFcst_Local.py
+++ /dev/null
@@ -1,39 +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.
-##
-# ----------------------------------------------------------------------------
-# 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
deleted file mode 100644
index bef58df5b8..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/SmartElementTable.py
+++ /dev/null
@@ -1,310 +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.
-##
-#-------------------------------------------------------------------------
-# 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
deleted file mode 100644
index d5b1f302e1..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/SmartElementTable_Local.py
+++ /dev/null
@@ -1,59 +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.
-##
-########################################################################
-# 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
deleted file mode 100644
index 1324daf34b..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/SurfaceTemp.py
+++ /dev/null
@@ -1,82 +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.
-##
-########################################################################
-# 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
deleted file mode 100644
index bfb8ff998e..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/TestAbsTime.py
+++ /dev/null
@@ -1,29 +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.
-##
-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
deleted file mode 100644
index 374246e201..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/TestHazardUtils.py
+++ /dev/null
@@ -1,39 +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 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
deleted file mode 100644
index a047c4c67a..0000000000
--- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/gfe/userPython/tests/TestSmartScript.py
+++ /dev/null
@@ -1,56 +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.
-##
-##
-# 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/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 0ffe4a7d84..697a3f3566 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,8 +40,6 @@ 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
@@ -210,14 +208,14 @@ public class GfePyIncludeUtil {
public static String getProceduresIncludePath(boolean includeUser) {
String baseDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.BASE),
PROCEDURES);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.SITE),
PROCEDURES);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
PROCEDURES);
return PyUtil.buildJepIncludePath(userDir, siteDir, baseDir);
} else {
@@ -231,15 +229,15 @@ public class GfePyIncludeUtil {
public static String getTextUtilitiesIncludePath(boolean includeUser) {
String baseDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE), REGULAR);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.BASE), REGULAR);
String configDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.CONFIGURED),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.CONFIGURED),
REGULAR);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE), REGULAR);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.SITE), REGULAR);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
REGULAR);
return PyUtil.buildJepIncludePath(userDir, siteDir, configDir,
baseDir);
@@ -254,17 +252,17 @@ public class GfePyIncludeUtil {
public static String getTextProductsIncludePath(boolean includeUser) {
String baseDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.BASE),
TEXT_PRODUCTS);
String configDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.CONFIGURED),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.CONFIGURED),
TEXT_PRODUCTS);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.SITE),
TEXT_PRODUCTS);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
TEXT_PRODUCTS);
return PyUtil.buildJepIncludePath(userDir, siteDir, configDir,
baseDir);
@@ -279,14 +277,14 @@ public class GfePyIncludeUtil {
public static String getSmartToolsIncludePath(boolean includeUser) {
String baseDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.BASE),
SMART_TOOLS);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.SITE),
SMART_TOOLS);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
SMART_TOOLS);
return PyUtil.buildJepIncludePath(userDir, siteDir, baseDir);
} else {
@@ -300,14 +298,14 @@ public class GfePyIncludeUtil {
public static String getUtilitiesIncludePath(boolean includeUser) {
String baseDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.BASE),
UTILITIES);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.SITE),
UTILITIES);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
UTILITIES);
return PyUtil.buildJepIncludePath(userDir, siteDir, baseDir);
} else {
@@ -329,12 +327,12 @@ public class GfePyIncludeUtil {
public static String getConfigIncludePath(boolean includeUser) {
String baseDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.BASE), CONFIG);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.BASE), CONFIG);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE), CONFIG);
+ LocalizationType.CAVE_STATIC, LocalizationLevel.SITE), CONFIG);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
CONFIG);
return PyUtil.buildJepIncludePath(userDir, siteDir, baseDir);
} else {
@@ -358,7 +356,7 @@ public class GfePyIncludeUtil {
}
public static String getTextProductsTemplatesIncludePath() {
- return getPath(PATH_MANAGER.getContext(LocalizationType.COMMON_STATIC,
+ return getPath(PATH_MANAGER.getContext(LocalizationType.CAVE_STATIC,
LocalizationLevel.BASE), TEXT_PRODUCTS);
}
@@ -368,14 +366,14 @@ public class GfePyIncludeUtil {
public static String getCombinationsIncludePath(boolean includeUser) {
String configDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.CONFIGURED),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.CONFIGURED),
COMBINATIONS);
String siteDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.SITE),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.SITE),
COMBINATIONS);
if (includeUser) {
String userDir = getPath(PATH_MANAGER.getContext(
- LocalizationType.COMMON_STATIC, LocalizationLevel.USER),
+ LocalizationType.CAVE_STATIC, LocalizationLevel.USER),
COMBINATIONS);
return PyUtil.buildJepIncludePath(userDir, siteDir, configDir);
} else {
diff --git a/edexOsgi/com.raytheon.uf.edex.dissemination/src/com/raytheon/uf/edex/dissemination/ModifyProduct.java b/edexOsgi/com.raytheon.uf.edex.dissemination/src/com/raytheon/uf/edex/dissemination/ModifyProduct.java
index fbf0fba128..a6fa5407dc 100644
--- a/edexOsgi/com.raytheon.uf.edex.dissemination/src/com/raytheon/uf/edex/dissemination/ModifyProduct.java
+++ b/edexOsgi/com.raytheon.uf.edex.dissemination/src/com/raytheon/uf/edex/dissemination/ModifyProduct.java
@@ -41,7 +41,6 @@ import com.raytheon.uf.edex.dissemination.transmitted.TransmittedProductList;
* ------------ ---------- ----------- --------------------------
* Nov 13, 2009 njensen Initial creation
* 08/20/2012 DR 15340 D. Friedman Fix BBB problems
- * 03/08/2013 15564 mgamazaychikov Trimmed extra spaces in afosId
*
*
*
@@ -72,7 +71,7 @@ public class ModifyProduct {
List list = dao.lookupAfosId(ttaaii, cccc).getIdList();
String productId = null;
for (AfosToAwips ata : list) {
- String afosId = ata.getAfosid().trim();
+ String afosId = ata.getAfosid();
String awipsId = afosId.substring(3);
if (awipsId.equals(productAwipsId)) {
productId = afosId;
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 94076a7aa4..61c231cbea 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/common_static/colormaps
+ com.raytheon.localization.site/cave_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 b2ed46352f..c4a9488fad 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/utility/edex_static/base/python/qcScanner.py b/edexOsgi/com.raytheon.uf.edex.plugin.qc/utility/edex_static/base/python/qcScanner.py
new file mode 100644
index 0000000000..ac12287c7e
--- /dev/null
+++ b/edexOsgi/com.raytheon.uf.edex.plugin.qc/utility/edex_static/base/python/qcScanner.py
@@ -0,0 +1,183 @@
+##
+# 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 e7c29b591f..75c9ce4c2d 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.site.requests import GetSingletonDbIdsRequest
+from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request 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,10 +50,6 @@ 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
#
#
#
@@ -110,19 +106,19 @@ class ifpServerText:
"ISCUtility": ".py"
}
- LOCALIZATION_DICT = {"Config": ("COMMON_STATIC", "gfe/userPython/gfeConfig"),
+ LOCALIZATION_DICT = {"Config": ("CAVE_STATIC", "gfe/userPython/gfeConfig"),
"EditArea": ("COMMON_STATIC", "gfe/editAreas"),
"EditAreaGroup": ("COMMON_STATIC", "gfe/editAreaGroups"),
"SampleSet": ("COMMON_STATIC", "gfe/sampleSets"),
- "ColorTable": ("COMMON_STATIC", "colormaps/GFE"),
- "WeatherElementGroup": ("COMMON_STATIC", "gfe/weGroups"),
+ "ColorTable": ("CAVE_STATIC", "colormaps/GFE"),
+ "WeatherElementGroup": ("CAVE_STATIC", "gfe/weGroups"),
"SelectTR": ("COMMON_STATIC", "gfe/text/selecttr"),
- "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"),
+ "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"),
"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 d3b203a307..debfc99652 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": ("COMMON_STATIC", "gfe/userPython/gfeConfig"),
+LOCALIZATION_DICT = {"GFECONFIG": ("CAVE_STATIC", "gfe/userPython/gfeConfig"),
"EditArea": ("COMMON_STATIC", "gfe/editAreas"),
"EditAreaGroup": ("COMMON_STATIC", "gfe/editAreaGroups"),
"SampleSet": ("COMMON_STATIC", "gfe/sampleSets"),
- "ColorTable": ("COMMON_STATIC", "colormaps/GFE"),
+ "ColorTable": ("CAVE_STATIC", "colormaps/GFE"),
"BUNDLE": ("COMMON_STATIC", "gfe/weGroups"),
"SELECTTR": ("COMMON_STATIC", "gfe/text/selecttr"),
- "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")}
+ "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")}
LOCALIZATION_LEVELS = ["BASE", "CONFIGURED", "SITE", "USER"]
diff --git a/rpms/awips2.core/Installer.ldm/component.spec b/rpms/awips2.core/Installer.ldm/component.spec
index 55e6302ebe..84f924b9f7 100644
--- a/rpms/awips2.core/Installer.ldm/component.spec
+++ b/rpms/awips2.core/Installer.ldm/component.spec
@@ -5,7 +5,7 @@
Name: awips2-ldm
Summary: AWIPS II LDM Distribution
Version: 6.8.1
-Release: 31
+Release: 32
Group: AWIPSII
BuildRoot: /tmp
URL: N/A
diff --git a/rpms/build/i386/build.sh b/rpms/build/i386/build.sh
index cc02bd8903..e25d5dbc9f 100644
--- a/rpms/build/i386/build.sh
+++ b/rpms/build/i386/build.sh
@@ -341,16 +341,6 @@ 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"