{
}
public static void main(String[] args) {
- MosaicInfoDict dict = MosaicInfoDict.getInstance(args[0]);
+ File f = new File( args[0]);
+ MosaicInfoDict dict = MosaicInfoDict.getInstance( f );
}
}
\ No newline at end of file
diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/src/gov/noaa/nws/ncep/edex/plugin/ncgrib/GridLookupFileName.java b/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/src/gov/noaa/nws/ncep/edex/plugin/ncgrib/GridLookupFileName.java
index 5041ffc517..567d9f9eda 100644
--- a/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/src/gov/noaa/nws/ncep/edex/plugin/ncgrib/GridLookupFileName.java
+++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/src/gov/noaa/nws/ncep/edex/plugin/ncgrib/GridLookupFileName.java
@@ -4,17 +4,13 @@ import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
-// TODO this logic could probably be included in the ncgribFileNameProcessor rather than in a singleton
public class GridLookupFileName {
/** The singleton instance of GridLookupFileName **/
private static GridLookupFileName instance;
- // TODO modelname needs to be infered from filename since the file name
- // processing happens before decode.
private String[] modelNames = { "cmce", "gefs", "gww", "naefsBC",
"naefsUS", "naefsAK", "sref" };
- // TODO this should be read from a configureable xml file, not hardcoded
private String[] template = {
"cmc_gep.*|cmce;cmc_gec.*|cmcec;cmc_geavg.*|cmceMean;cmc_gespr.*|cmceSpread",
"gec00.*bc.*|gefscBC;gec00.*anl|gefscAnal;gec00.*[0-9]|gefsc;gep.*anl|gefsAnal;gep.*bc.*|gefsBC;geavg.*bc.*|gefsMeanBC;gespr.*bc.*|gefsSpreadBC;gespr.*|gefsSpread",
@@ -40,9 +36,6 @@ public class GridLookupFileName {
}
private void initModels() {
- // TODO instead of just building this map, all parsing should be
- // happening here and regexes should be built into Pattern object so
- // that we aren'y constantly reprocessing regexes
for (int i = 0; i < modelNames.length; i++) {
models.put(modelNames[i].toUpperCase(), template[i]);
}
@@ -51,24 +44,18 @@ public class GridLookupFileName {
public String getModelName(String filename) {
String modelname = null;
- // this was commented out because file name processing should happen
- // before decode so there is no pre-existing model name.
// if (model.equalsIgnoreCase("gww") && gridId.equalsIgnoreCase("229"))
// {
// return modelname;
// }
//
// String template = models.get(model.toUpperCase());
- // since we don't know the model name, we must process all templates.
for (String template : this.template) {
- // TODO do not split this for every filename, split in init
String[] tokens = template.split(";");
// System.out.println ( " CMC ensemble " + "!!!\n");
for (String token : tokens) {
- // TODO do not split this for every filename, split in init
String[] alias = token.split("\\|");
- // TODO compile and reuse patterns.
if (Pattern.matches(alias[0], filename)) {
modelname = alias[1];
@@ -81,9 +68,6 @@ public class GridLookupFileName {
break;
}
}
- if (modelname != null) {
- break;
- }
}
return modelname;
}
diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/src/gov/noaa/nws/ncep/edex/plugin/ncgrib/NcgribFileNameProcessor.java b/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/src/gov/noaa/nws/ncep/edex/plugin/ncgrib/NcgribFileNameProcessor.java
index b09c909c21..84ae8e4065 100644
--- a/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/src/gov/noaa/nws/ncep/edex/plugin/ncgrib/NcgribFileNameProcessor.java
+++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/src/gov/noaa/nws/ncep/edex/plugin/ncgrib/NcgribFileNameProcessor.java
@@ -27,11 +27,9 @@ import org.apache.camel.Processor;
/**
*
- * Based off a file name for a grib file, determine the modelName, secondaryId,
- * and ensembleId. It is ok not to set any headers because the decoder can find
- * the modelName and ensembleId. Those fields should only be set if the filename
- * has information beyond what is in the actual grib file.The grib decoder will
- * not set a secondary id so if it isn't set here it will be null.
+ * Processor for ncep grib files, this processor has lots of hard coded
+ * assumptions about file naming that need to be more generic based off ncep
+ * file names.
*
*
*
@@ -48,25 +46,20 @@ import org.apache.camel.Processor;
*/
public class NcgribFileNameProcessor implements Processor {
- // TODO does this actually match all ensemble patterns?
// grab all known ensemble ids
private static final Pattern ENSEMBLE_ID_PATTERN = Pattern
.compile("^(p|n|ctl)\\d{0,2}$");
- // TODO merge this pattern in with the patterns in GridLookupFileName
// anything that ends in nest is assumed to be a nested grid identifier
private static final Pattern FIREWXNEST_ID_PATTERN = Pattern
.compile("^firewxnest$");
- // TODO merge this pattern in with the patterns in GridLookupFileName
// anything that ends in nest is assumed to be a nested grid identifier
private static final Pattern NEST_ID_PATTERN = Pattern.compile("^.*nest$");
- // TODO merge this pattern in with the patterns in GridLookupFileName
// SREF gets special handling, does this apply to other models?
private static final Pattern SREF_PATTERN = Pattern.compile("^sref_.*$");
- // TODO merge this pattern in with the patterns in GridLookupFileName
// This is the least generic pattern ever, are there any constraints on
// event names, who knows?
private static final Pattern HURRICANE_PATTERN = Pattern
@@ -108,13 +101,14 @@ public class NcgribFileNameProcessor implements Processor {
}
}
}
- datasetid = GridLookupFileName.getInstance().getModelName(flName);
+ // datasetid = GridLookupFileName.getInstance().getModelName(flName);
if (datasetid != null) {
exchange.getIn().setHeader("datasetid", datasetid);
}
+ else {
+ datasetid = GridLookupFileName.getInstance().getModelName(flName);
+ }
if (secondaryid == null) {
- // TODO does everything really need secondaryid or should this only
- // be set for events?
secondaryid = nameTokens[0];
}
exchange.getIn().setHeader("secondaryid", secondaryid);
diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpPaletteWindow.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpPaletteWindow.java
index 798d98be86..aa3eae0a32 100644
--- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpPaletteWindow.java
+++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpPaletteWindow.java
@@ -101,7 +101,7 @@ DisposeListener, IPartListener{
private static NsharpConstants.SPCGraph leftGraph = NsharpConstants.SPCGraph.EBS;
private static NsharpConstants.SPCGraph rightGraph = NsharpConstants.SPCGraph.STP;
private boolean spcGpCreated = false;
- public static NsharpPaletteWindow getInstance() {
+ public static NsharpPaletteWindow getInstance() {
if( VizPerspectiveListener.getCurrentPerspectiveManager()!= null){
if(VizPerspectiveListener.getCurrentPerspectiveManager().getPerspectiveId().equals(D2D5Pane.ID_PERSPECTIVE))
return d2dInstance;
@@ -279,7 +279,7 @@ DisposeListener, IPartListener{
if(rsc!= null && rsc.getSpcGraphsPaneRsc()!=null) {
rsc.getSpcGraphsPaneRsc().setGraphs(leftGraph, rightGraph);
}
-
+
}
public void setAndOpenMb(String msg) {
if (mb != null) {
@@ -312,12 +312,12 @@ DisposeListener, IPartListener{
NsharpConfigStore configStore = configMgr.retrieveNsharpConfigStoreFromFs();
NsharpGraphProperty graphConfigProperty = configStore.getGraphProperty();
paneConfigurationName = graphConfigProperty.getPaneConfigurationName();
- try {
- NsharpGridInventory.getInstance().initInventory(false);
+ /*try {
+ // NsharpGridInventory.getInstance().initInventory(false);
} catch (VizException e) {
// TODO Auto-generated catch block
e.printStackTrace();
- }
+ }*/
}
@@ -1048,7 +1048,7 @@ DisposeListener, IPartListener{
}
}
} );
-
+
if(paneConfigurationName.equals(NsharpConstants.PANE_SPCWS_CFG_STR))
createSPCGp();
@@ -1082,7 +1082,7 @@ DisposeListener, IPartListener{
}
else{
effBulkShearBtn.setEnabled( false );
- }
+ }
effBulkShearBtn.addListener( SWT.MouseUp, new Listener() {
public void handleEvent(Event event) {
if(leftGraph != NsharpConstants.SPCGraph.EBS && rightGraph != NsharpConstants.SPCGraph.EBS){
diff --git a/ncep/gov.noaa.nws.ncep.viz.gempak.nativelib.linux32/libgpk_logs.so b/ncep/gov.noaa.nws.ncep.viz.gempak.nativelib.linux32/libgpk_logs.so
index d379a58498..1e6a5abd68 100644
Binary files a/ncep/gov.noaa.nws.ncep.viz.gempak.nativelib.linux32/libgpk_logs.so and b/ncep/gov.noaa.nws.ncep.viz.gempak.nativelib.linux32/libgpk_logs.so differ
diff --git a/ncep/gov.noaa.nws.ncep.viz.gempak.nativelib.linux32/libgpk_nologs.so b/ncep/gov.noaa.nws.ncep.viz.gempak.nativelib.linux32/libgpk_nologs.so
index 85c1026e85..62ec770343 100644
Binary files a/ncep/gov.noaa.nws.ncep.viz.gempak.nativelib.linux32/libgpk_nologs.so and b/ncep/gov.noaa.nws.ncep.viz.gempak.nativelib.linux32/libgpk_nologs.so differ
diff --git a/ncep/gov.noaa.nws.ncep.viz.gempak.nativelib.linux64/libgempak.so b/ncep/gov.noaa.nws.ncep.viz.gempak.nativelib.linux64/libgempak.so
index d0ec988cdd..29fd1fec9b 100644
Binary files a/ncep/gov.noaa.nws.ncep.viz.gempak.nativelib.linux64/libgempak.so and b/ncep/gov.noaa.nws.ncep.viz.gempak.nativelib.linux64/libgempak.so differ
diff --git a/ncep/gov.noaa.nws.ncep.viz.gempak/META-INF/MANIFEST.MF b/ncep/gov.noaa.nws.ncep.viz.gempak/META-INF/MANIFEST.MF
index c1a4d09cea..7af40520d6 100644
--- a/ncep/gov.noaa.nws.ncep.viz.gempak/META-INF/MANIFEST.MF
+++ b/ncep/gov.noaa.nws.ncep.viz.gempak/META-INF/MANIFEST.MF
@@ -4,6 +4,8 @@ Bundle-Name: Gempak Plug-in
Bundle-SymbolicName: gov.noaa.nws.ncep.viz.gempak;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: gov.noaa.nws.ncep.viz.gempak.Activator
+Eclipse-BuddyPolicy: registered, ext, global
+Eclipse-RegisterBuddy: com.raytheon.uf.common.serialization
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
com.raytheon.viz.core;bundle-version="1.12.1142",
@@ -13,6 +15,8 @@ Require-Bundle: org.eclipse.ui,
com.raytheon.viz.alerts,
com.raytheon.uf.common.dataplugin.grid;bundle-version="1.0.0",
com.raytheon.uf.common.gridcoverage;bundle-version="1.0.0",
+ com.raytheon.uf.common.parameter;bundle-version="1.0.0",
+ com.raytheon.uf.common.dataplugin.level;bundle-version="1.12.1174",
com.sun.jna,
org.geotools;bundle-version="2.6.4",
org.apache.log4j;bundle-version="1.0.0"
@@ -21,6 +25,10 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: gov.noaa.nws.ncep.viz.gempak,
gov.noaa.nws.ncep.viz.gempak.grid.jna,
gov.noaa.nws.ncep.viz.gempak.grid.inv,
+ gov.noaa.nws.ncep.viz.gempak.grid.mapper,
+ gov.noaa.nws.ncep.viz.gempak.grid.units,
gov.noaa.nws.ncep.viz.gempak.util
Import-Package: com.raytheon.uf.common.derivparam.tree,
- gov.noaa.nws.ncep.edex.common.ncinventory
+ gov.noaa.nws.ncep.edex.common.ncinventory,
+ gov.noaa.nws.ncep.common.log.logger,
+ com.raytheon.uf.common.serialization
diff --git a/ncep/gov.noaa.nws.ncep.viz.gempak/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject b/ncep/gov.noaa.nws.ncep.viz.gempak/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject
new file mode 100644
index 0000000000..180598c631
--- /dev/null
+++ b/ncep/gov.noaa.nws.ncep.viz.gempak/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject
@@ -0,0 +1,4 @@
+gov.noaa.nws.ncep.viz.gempak.grid.units.GempakGridParmInfo
+gov.noaa.nws.ncep.viz.gempak.grid.units.GempakGridParmInfoSet
+gov.noaa.nws.ncep.viz.gempak.grid.units.GempakGridVcrdInfo
+gov.noaa.nws.ncep.viz.gempak.grid.units.GempakGridVcrdInfoSet
\ No newline at end of file
diff --git a/ncep/gov.noaa.nws.ncep.viz.rsc.ncgrid/localization/ncep/GempakGridUnits/gempakGridParmeterUnits.xml b/ncep/gov.noaa.nws.ncep.viz.gempak/localization/ncep/GempakGridUnits/gempakGridParmeterUnits.xml
similarity index 100%
rename from ncep/gov.noaa.nws.ncep.viz.rsc.ncgrid/localization/ncep/GempakGridUnits/gempakGridParmeterUnits.xml
rename to ncep/gov.noaa.nws.ncep.viz.gempak/localization/ncep/GempakGridUnits/gempakGridParmeterUnits.xml
diff --git a/ncep/gov.noaa.nws.ncep.viz.rsc.ncgrid/localization/ncep/GempakGridUnits/gempakGridVcrdUnits.xml b/ncep/gov.noaa.nws.ncep.viz.gempak/localization/ncep/GempakGridUnits/gempakGridVcrdUnits.xml
similarity index 99%
rename from ncep/gov.noaa.nws.ncep.viz.rsc.ncgrid/localization/ncep/GempakGridUnits/gempakGridVcrdUnits.xml
rename to ncep/gov.noaa.nws.ncep.viz.gempak/localization/ncep/GempakGridUnits/gempakGridVcrdUnits.xml
index c7b132e2c6..720727064d 100644
--- a/ncep/gov.noaa.nws.ncep.viz.rsc.ncgrid/localization/ncep/GempakGridUnits/gempakGridVcrdUnits.xml
+++ b/ncep/gov.noaa.nws.ncep.viz.gempak/localization/ncep/GempakGridUnits/gempakGridVcrdUnits.xml
@@ -98,7 +98,7 @@
Pressure difference layer
- hPa
+ Pa
PDLY
-2
diff --git a/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/mapper/GridMapper.java b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/mapper/GridMapper.java
new file mode 100644
index 0000000000..d70f73f32f
--- /dev/null
+++ b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/mapper/GridMapper.java
@@ -0,0 +1,20 @@
+package gov.noaa.nws.ncep.viz.gempak.grid.mapper;
+
+import com.raytheon.uf.common.dataplugin.grid.mapping.DatasetIdMapper;
+import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapper;
+import com.raytheon.uf.common.parameter.mapping.ParameterMapper;
+
+public class GridMapper {
+ public GridMapper () {
+ }
+
+ public static void GridMapperInit () {
+ initlize ();
+ }
+
+ private static void initlize () {
+ DatasetIdMapper.getInstance();
+ LevelMapper.getInstance();
+ ParameterMapper.getInstance();
+ }
+}
diff --git a/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridParmInfo.java b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridParmInfo.java
new file mode 100644
index 0000000000..1dce2c118f
--- /dev/null
+++ b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridParmInfo.java
@@ -0,0 +1,55 @@
+package gov.noaa.nws.ncep.viz.gempak.grid.units;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+
+import com.raytheon.uf.common.serialization.ISerializableObject;
+
+@XmlAccessorType(XmlAccessType.NONE)
+public class GempakGridParmInfo implements ISerializableObject{
+ @XmlElement
+ private String name;
+
+ @XmlElement
+ private String units;
+
+ @XmlElement
+ private String gnam;
+
+ @XmlElement
+ private int scale;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getUnits() {
+ return units;
+ }
+
+ public void setUnits(String units) {
+ this.units = units;
+ }
+
+ public String getGnam() {
+ return gnam;
+ }
+
+ public void setGnam(String gnam) {
+ this.gnam = gnam;
+ }
+
+ public int getScale() {
+ return scale;
+ }
+
+ public void setScale(int scale) {
+ this.scale = scale;
+ }
+}
+
diff --git a/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridParmInfoLookup.java b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridParmInfoLookup.java
new file mode 100644
index 0000000000..2a75f8721f
--- /dev/null
+++ b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridParmInfoLookup.java
@@ -0,0 +1,117 @@
+package gov.noaa.nws.ncep.viz.gempak.grid.units;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import com.raytheon.uf.common.localization.FileUpdatedMessage;
+import com.raytheon.uf.common.localization.ILocalizationFileObserver;
+import com.raytheon.uf.common.localization.IPathManager;
+import com.raytheon.uf.common.localization.LocalizationContext;
+import com.raytheon.uf.common.localization.LocalizationFile;
+import com.raytheon.uf.common.localization.PathManagerFactory;
+import com.raytheon.uf.common.localization.FileUpdatedMessage.FileChangeType;
+import com.raytheon.uf.common.serialization.SerializationUtil;
+
+import gov.noaa.nws.ncep.common.log.logger.NcepLogger;
+import gov.noaa.nws.ncep.common.log.logger.NcepLoggerManager;
+import gov.noaa.nws.ncep.viz.localization.NcPathManager;
+
+public class GempakGridParmInfoLookup implements ILocalizationFileObserver {
+ public static final String GRID_GEMPAK_PARM_FILE = "ncep"+File.separator +
+ "GempakGridUnits" + File.separator +
+ "gempakGridParmeterUnits.xml";
+ /** The logger */
+ private static NcepLogger logger = NcepLoggerManager.getNcepLogger(GempakGridParmInfoLookup.class);
+
+ /** The singleton instance of GridLookupFileName **/
+ private static GempakGridParmInfoLookup instance;
+
+ private final Map parmInfo;
+
+ public static GempakGridParmInfoLookup getInstance () {
+ if (instance == null) {
+ instance = new GempakGridParmInfoLookup ();
+ }
+ return instance;
+ }
+
+ private GempakGridParmInfoLookup () {
+ parmInfo = new HashMap ();
+ try {
+ initParmInfo ();
+ }catch (IOException e) {
+ logger.error("Unable to initialize gempak parameter information list!", e);
+ }
+ }
+
+ private void initParmInfo () throws IOException {
+
+// logger.info("Initial Gempak Parameter information===");
+ File gempakParmInfo =
+ NcPathManager.getInstance().getStaticFile(GRID_GEMPAK_PARM_FILE);
+
+ GempakGridParmInfoSet parmInfoList = null;
+ try {
+ if ( gempakParmInfo.exists()) {
+ parmInfoList = (GempakGridParmInfoSet) SerializationUtil
+ .jaxbUnmarshalFromXmlFile(gempakParmInfo.getPath());
+ } else {
+ ArrayList emptyList = new ArrayList();
+ parmInfoList = new GempakGridParmInfoSet();
+ parmInfoList.setParmeterinfo(emptyList);
+ }
+ for (GempakGridParmInfo parm : parmInfoList.getParmeterinfo()) {
+ parmInfo.put(parm.getGnam(), parm);
+ }
+ } catch (Exception e) {
+ throw new IOException ("Unable to unmarshal ncep gempak parm info file");
+ }
+
+ }
+
+ public String getParmUnit ( String parm ) {
+
+ String units = null;
+ GempakGridParmInfo pInfo = parmInfo.get(parm);
+ if ( pInfo != null ) {
+ units = pInfo.getUnits();
+ }
+ return units;
+ }
+
+ public int getParmScale ( String parm ) {
+
+ int scale = 0;
+ GempakGridParmInfo pInfo = parmInfo.get(parm);
+ if ( pInfo != null ) {
+ scale = pInfo.getScale();
+ }
+ return scale;
+ }
+
+ public void display () {
+ int cnt = 1;
+ logger.info ("Size of parm table:" + parmInfo.size());
+ for (GempakGridParmInfo parm: parmInfo.values() ) {
+ logger.info("No." + cnt + " name:" + parm.getName() + " gname:" + parm.getGnam() + " units:" + parm.getUnits() + " scale:" + parm.getScale());
+ cnt ++;
+ }
+ }
+ @Override
+ public void fileUpdated( FileUpdatedMessage fumsg) {
+ String fName = fumsg.getFileName();
+ LocalizationFile lFile;
+ logger.info("======fileUpdated:" + fumsg.getChangeType());
+ // if the file had been deleted
+ if( fumsg.getChangeType() == FileChangeType.DELETED ) {
+
+ }
+ else {
+
+ }
+ }
+}
+
diff --git a/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridParmInfoSet.java b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridParmInfoSet.java
new file mode 100644
index 0000000000..00a5cacc39
--- /dev/null
+++ b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridParmInfoSet.java
@@ -0,0 +1,29 @@
+package gov.noaa.nws.ncep.viz.gempak.grid.units;
+
+import java.util.ArrayList;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import com.raytheon.uf.common.serialization.ISerializableObject;
+
+@XmlRootElement(name = "gempakGridParmUnitSet")
+@XmlAccessorType(XmlAccessType.NONE)
+public class GempakGridParmInfoSet implements ISerializableObject{
+ /**
+ * List of parameter for/from the XML.
+ */
+ @XmlElements( { @XmlElement(name = "parmeterinfo", type = GempakGridParmInfo.class) })
+ private ArrayList parmeterinfo;
+
+ public ArrayList getParmeterinfo() {
+ return parmeterinfo;
+ }
+
+ public void setParmeterinfo(ArrayList parmeterinfo) {
+ this.parmeterinfo = parmeterinfo;
+ }
+}
diff --git a/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridVcrdInfo.java b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridVcrdInfo.java
new file mode 100644
index 0000000000..3de4aaf5bc
--- /dev/null
+++ b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridVcrdInfo.java
@@ -0,0 +1,55 @@
+package gov.noaa.nws.ncep.viz.gempak.grid.units;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+
+import com.raytheon.uf.common.serialization.ISerializableObject;
+
+@XmlAccessorType(XmlAccessType.NONE)
+public class GempakGridVcrdInfo implements ISerializableObject{
+ @XmlElement
+ private String name;
+
+ @XmlElement
+ private String units;
+
+ @XmlElement
+ private String gnam;
+
+ @XmlElement
+ private int scale;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getUnits() {
+ return units;
+ }
+
+ public void setUnits(String units) {
+ this.units = units;
+ }
+
+ public String getGnam() {
+ return gnam;
+ }
+
+ public void setGnam(String gnam) {
+ this.gnam = gnam;
+ }
+
+ public int getScale() {
+ return scale;
+ }
+
+ public void setScale(int scale) {
+ this.scale = scale;
+ }
+}
+
diff --git a/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridVcrdInfoLookup.java b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridVcrdInfoLookup.java
new file mode 100644
index 0000000000..543053878d
--- /dev/null
+++ b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridVcrdInfoLookup.java
@@ -0,0 +1,95 @@
+package gov.noaa.nws.ncep.viz.gempak.grid.units;
+
+import gov.noaa.nws.ncep.common.log.logger.NcepLogger;
+import gov.noaa.nws.ncep.common.log.logger.NcepLoggerManager;
+import gov.noaa.nws.ncep.viz.localization.NcPathManager;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import com.raytheon.uf.common.serialization.SerializationUtil;
+
+public class GempakGridVcrdInfoLookup {
+ public static final String GRID_GEMPAK_VCORD_FILE = "ncep"+File.separator +
+ "GempakGridUnits" + File.separator +
+ "gempakGridVcrdUnits.xml";
+ /** The logger */
+ private static NcepLogger logger = NcepLoggerManager.getNcepLogger(GempakGridVcrdInfoLookup.class);
+ /** The singleton instance of GridLookupFileName **/
+ private static GempakGridVcrdInfoLookup instance;
+
+ private final Map vcrdInfo;
+
+ public static GempakGridVcrdInfoLookup getInstance () {
+ if (instance == null) {
+ instance = new GempakGridVcrdInfoLookup ();
+ }
+ return instance;
+ }
+
+ private GempakGridVcrdInfoLookup () {
+ vcrdInfo = new HashMap ();
+ try {
+ initVcordInfo ();
+ }catch (IOException e) {
+ logger.error("Unable to initialize gempak vcord information list!", e);
+ }
+ }
+
+ private void initVcordInfo () throws IOException {
+
+// logger.info("Initial Gempak VCORD information===");
+ File gempakVcrdInfo =
+ NcPathManager.getInstance().getStaticFile(GRID_GEMPAK_VCORD_FILE);
+
+ GempakGridVcrdInfoSet vcrdInfoList = null;
+ try {
+ if ( gempakVcrdInfo.exists()) {
+ vcrdInfoList = (GempakGridVcrdInfoSet) SerializationUtil
+ .jaxbUnmarshalFromXmlFile(gempakVcrdInfo.getPath());
+ } else {
+ ArrayList emptyList = new ArrayList();
+ vcrdInfoList = new GempakGridVcrdInfoSet();
+ vcrdInfoList.setVcordinfo(emptyList);
+ }
+ for (GempakGridVcrdInfo vcrd : vcrdInfoList.getVcordinfo()) {
+ vcrdInfo.put(vcrd.getGnam(), vcrd);
+ }
+ } catch (Exception e) {
+ throw new IOException ("Unable to unmarshal ncep gempak vcrd info file");
+ }
+ }
+
+ public String getVcrdUnit ( String parm ) {
+
+ String units = null;
+ GempakGridVcrdInfo pInfo = vcrdInfo.get(parm);
+ if ( pInfo != null ) {
+ units = pInfo.getUnits();
+ }
+ return units;
+ }
+
+ public int getParmScale ( String parm ) {
+
+ int scale = 0;
+ GempakGridVcrdInfo pInfo = vcrdInfo.get(parm);
+ if ( pInfo != null ) {
+ scale = pInfo.getScale();
+ }
+ return scale;
+ }
+
+ public void display () {
+ int cnt = 1;
+ logger.info ("Size of vcrd table:" + vcrdInfo.size());
+ for (GempakGridVcrdInfo parm: vcrdInfo.values() ) {
+ logger.info("No." + cnt + " name:" + parm.getName() + " gname:" + parm.getGnam() + " units:" + parm.getUnits() + " scale:" + parm.getScale());
+ cnt ++;
+ }
+ }
+}
+
diff --git a/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridVcrdInfoSet.java b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridVcrdInfoSet.java
new file mode 100644
index 0000000000..4f619de220
--- /dev/null
+++ b/ncep/gov.noaa.nws.ncep.viz.gempak/src/gov/noaa/nws/ncep/viz/gempak/grid/units/GempakGridVcrdInfoSet.java
@@ -0,0 +1,30 @@
+package gov.noaa.nws.ncep.viz.gempak.grid.units;
+
+import java.util.ArrayList;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import com.raytheon.uf.common.serialization.ISerializableObject;
+
+@XmlRootElement(name = "gempakGridVcordUnitSet")
+@XmlAccessorType(XmlAccessType.NONE)
+public class GempakGridVcrdInfoSet implements ISerializableObject{
+ /**
+ * List of vcord for/from the XML.
+ */
+ @XmlElements( { @XmlElement(name = "vcordinfo", type = GempakGridVcrdInfo.class) })
+ private ArrayList vcordinfo;
+
+ public ArrayList getVcordinfo() {
+ return vcordinfo;
+ }
+
+ public void setVcordinfo(ArrayList vcordinfo) {
+ this.vcordinfo = vcordinfo;
+ }
+}
+
diff --git a/ncep/gov.noaa.nws.ncep.viz.resources/src/gov/noaa/nws/ncep/viz/resources/manager/ResourceDefinition.java b/ncep/gov.noaa.nws.ncep.viz.resources/src/gov/noaa/nws/ncep/viz/resources/manager/ResourceDefinition.java
index b68d016b39..8a49e930b0 100644
--- a/ncep/gov.noaa.nws.ncep.viz.resources/src/gov/noaa/nws/ncep/viz/resources/manager/ResourceDefinition.java
+++ b/ncep/gov.noaa.nws.ncep.viz.resources/src/gov/noaa/nws/ncep/viz/resources/manager/ResourceDefinition.java
@@ -79,8 +79,8 @@ import gov.noaa.nws.ncep.edex.common.ncinventory.NcInventoryRequestMsg;
* 09/05/12 #860 Greg Hull Add this to the URICatalog for storing the latest time.
* 09/13/12 #860 Greg Hull set default for inventoryEnabled to false.
* 11/2012 #885 T. Lee Set unmapped satellite projection resolution to "native"
- * 01/02/2013 X. Guo Added codes to get Extpoint constraint name
- *
+ * 01/2013 Greg Hull Don't create wildcard inventory constraints
+ *
*
*
* @author ghull
@@ -111,7 +111,7 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
// must match the name in an extention point which defines the java class
// that implementes the resource.
@XmlElement
- private String rscImplementation;
+ private String rscImplementation;
// the name of a column in the DB used to generated dynamic Resources.
// (Note: this must be defined as a parameter for the resource implementation.)
@@ -166,13 +166,13 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
// Default to disnabled so it must be explicitly enabled.
@XmlElement
private Boolean inventoryEnabled = false;
-
+
private String inventoryAlias = null;
// the names of the parameters which are stored in the inventory for this RD;
//
private ArrayList inventoryParamNames = new ArrayList();
-
+
// a map from the resource Constraints to a cache of the availableTimes and the
@@ -245,7 +245,7 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
rscImplementation = rscDefn.rscImplementation;
setLocalizationFile( rscDefn.getLocalizationFile() );
-
+
inventoryAlias = null;
availTimesCache = new HashMap