Issue #1913 Fixed GFE level translation

Change-Id: I2e59228991243d4178c73721d169f695d6581b8a

Former-commit-id: 2bec2b18e5 [formerly fdb69afb73] [formerly 75f802d348] [formerly 666263beb4 [formerly 75f802d348 [formerly ed32dc366aae2fa64c02c9f32202aafb95845765]]]
Former-commit-id: 666263beb4
Former-commit-id: 7067e9788ce1bab06c42fc0b779ae18cb293e3a8 [formerly 214738a19e]
Former-commit-id: c21f5438be
This commit is contained in:
Ron Anderson 2013-04-18 11:42:07 -05:00
parent ca24226a6f
commit 2d4a498ef7
39 changed files with 816 additions and 1730 deletions

View file

@ -24,6 +24,7 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.NavigableSet;
import java.util.Set;
import java.util.TreeSet;
import javax.measure.unit.Unit;
@ -34,6 +35,7 @@ import com.raytheon.uf.common.dataplugin.level.CompareType;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.LevelFactory;
import com.raytheon.uf.common.dataplugin.level.MasterLevel;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
/**
@ -57,8 +59,8 @@ public class LevelUtilities {
static {
try {
hPa = (Unit<?>) UnitFormat.getUCUMInstance().parseProductUnit(
"hPa", new ParsePosition(0));
hPa = UnitFormat.getUCUMInstance().parseProductUnit("hPa",
new ParsePosition(0));
} catch (Exception e) {
// this is bad
}
@ -122,7 +124,15 @@ public class LevelUtilities {
};
Map<String, NavigableSet<Level>> masterLevelToOrderedSet = new HashMap<String, NavigableSet<Level>>();
for (Level level : LevelMappingFactory.getInstance().getAllLevels()) {
Set<Level> allLevels;
try {
allLevels = LevelMappingFactory.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getAllLevels();
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
}
for (Level level : allLevels) {
NavigableSet<Level> levels = masterLevelToOrderedSet.get(level
.getMasterLevel().getName());
if (levels == null) {

View file

@ -15,11 +15,12 @@ Require-Bundle: org.eclipse.core.runtime,
com.raytheon.viz.core;bundle-version="1.12.1174",
com.raytheon.viz.core.graphing;bundle-version="1.12.1174",
com.raytheon.uf.viz.xy.timeseries;bundle-version="1.12.1174",
javax.measure;bundle-version="1.0.0"
javax.measure;bundle-version="1.0.0",
com.raytheon.uf.common.dataplugin.level;bundle-version="1.12.1174",
com.raytheon.uf.common.comm;bundle-version="1.12.1174"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: com.raytheon.uf.common.dataplugin,
com.raytheon.uf.common.dataplugin.grid,
com.raytheon.uf.common.dataplugin.level,
com.raytheon.uf.common.dataplugin.radar,
com.raytheon.uf.common.dataplugin.radar.util,
com.raytheon.uf.common.dataquery.requests,

View file

@ -35,6 +35,8 @@ import org.opengis.referencing.crs.CoordinateReferenceSystem;
import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapping;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
import com.raytheon.uf.common.geospatial.MapUtil;
@ -44,8 +46,6 @@ import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.TimeRange;
import com.raytheon.uf.viz.core.datastructure.DataCubeContainer;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelMapping;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.viz.core.level.LevelUtilities;
import com.raytheon.uf.viz.core.rsc.DisplayType;
import com.raytheon.uf.viz.core.style.level.SingleLevel;
@ -238,6 +238,7 @@ public class PointDataTimeSeriesAdapter extends
return loadDataOAInternal(recordsToLoad);
}
@Override
public SingleLevel getLevel() {
SingleLevel level = new SingleLevel("SURFACE");
level.setValue(0.0);
@ -246,7 +247,8 @@ public class PointDataTimeSeriesAdapter extends
return level;
}
try {
LevelMapping mapping = LevelMappingFactory.getInstance()
LevelMapping mapping = LevelMappingFactory.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getLevelMappingForKey(resourceData.getLevelKey());
for (Level l : mapping.getLevels()) {
if (LevelUtilities.isPressureLevel(l)) {
@ -260,7 +262,7 @@ public class PointDataTimeSeriesAdapter extends
}
}
}
} catch (VizException e) {
} catch (Exception e) {
// return the default
}
return level;

View file

@ -35,6 +35,7 @@ import java.util.concurrent.BlockingQueue;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.derivparam.tree.AbstractNode;
import com.raytheon.uf.common.derivparam.tree.DataTree;
@ -47,7 +48,6 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.viz.core.level.LevelUtilities;
import com.raytheon.uf.viz.derivparam.data.AbstractRequestableData;
import com.raytheon.uf.viz.derivparam.data.FloatRequestableData;
@ -137,27 +137,36 @@ public abstract class AbstractInventory implements DerivParamUpdateListener {
*/
@Override
public boolean equals(Object obj) {
if (this == obj)
if (this == obj) {
return true;
if (obj == null)
}
if (obj == null) {
return false;
if (getClass() != obj.getClass())
}
if (getClass() != obj.getClass()) {
return false;
}
StackEntry other = (StackEntry) obj;
if (!getOuterType().equals(other.getOuterType()))
if (!getOuterType().equals(other.getOuterType())) {
return false;
if (level != other.level)
}
if (level != other.level) {
return false;
}
if (source == null) {
if (other.source != null)
if (other.source != null) {
return false;
} else if (!source.equals(other.source))
}
} else if (!source.equals(other.source)) {
return false;
}
if (parameter == null) {
if (other.parameter != null)
if (other.parameter != null) {
return false;
} else if (!parameter.equals(other.parameter))
}
} else if (!parameter.equals(other.parameter)) {
return false;
}
return true;
}
@ -474,8 +483,10 @@ public abstract class AbstractInventory implements DerivParamUpdateListener {
protected Collection<Level> getAllLevels() {
if (allLevels == null) {
try {
return LevelMappingFactory.getInstance().getAllLevels();
} catch (VizCommunicationException e) {
return LevelMappingFactory.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getAllLevels();
} catch (CommunicationException e) {
// TODO recover from this.
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(),
e);
@ -1094,7 +1105,13 @@ public abstract class AbstractInventory implements DerivParamUpdateListener {
// because it is valid for all requests
} else if (type == LevelType.LevelMapping) {
LevelNode target = null;
for (Level fieldLevel : field.getLevelMapping().getLevels()) {
List<Level> levels;
try {
levels = field.getLevelMapping().getLevels();
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
}
for (Level fieldLevel : levels) {
target = resolveNode(fieldSourceNode, fieldParamAbbrev,
fieldLevel, stack, nodata);
if (target != null) {

View file

@ -27,11 +27,11 @@ import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapping;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.serialization.ISerializableObject;
import com.raytheon.uf.common.serialization.adapters.UnitAdapter;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.level.LevelMapping;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
/**
* Metadata about a derived parameter field.
@ -131,7 +131,8 @@ public class DerivParamField implements ISerializableObject, IDerivParamField {
public boolean setLevel(String level) throws VizCommunicationException {
levelType = LevelType.parseLevel(level);
if (levelType == LevelType.LevelMapping) {
levelMapping = LevelMappingFactory.getInstance()
levelMapping = LevelMappingFactory.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getLevelMappingForKey(level);
if (levelMapping == null) {
levelType = null;

View file

@ -34,11 +34,11 @@ import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.LevelFactory;
import com.raytheon.uf.common.dataplugin.level.MasterLevel;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapper;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapping;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.util.mapping.Mapper;
import com.raytheon.uf.common.util.mapping.MultipleMappingException;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.level.LevelMapping;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
/**
* Generates the valid levels for a derived parameter script based on it
@ -74,7 +74,8 @@ public class ValidLevelGenerator {
private Set<MasterLevel> masterLevelsHandled;
public ValidLevelGenerator() {
lmf = LevelMappingFactory.getInstance();
lmf = LevelMappingFactory
.getInstance(LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE);
lf = LevelFactory.getInstance();
lm = LevelMapper.getInstance();
}
@ -84,61 +85,65 @@ public class ValidLevelGenerator {
masterLevels = new HashMap<MasterLevel, Set<Level>>();
validLevels = new HashSet<Level>();
masterLevelsHandled = new HashSet<MasterLevel>();
if (validLevelsString != null && validLevelsString.length() > 0) {
String[] levelTokenArray = validLevelsString.split(",");
List<String> tokensToProcess = new ArrayList<String>(
levelTokenArray.length);
try {
if (validLevelsString != null && validLevelsString.length() > 0) {
String[] levelTokenArray = validLevelsString.split(",");
List<String> tokensToProcess = new ArrayList<String>(
levelTokenArray.length);
for (String token : levelTokenArray) {
tokensToProcess.add(token);
}
// generate initial list
Iterator<String> iter = tokensToProcess.iterator();
while (iter.hasNext()) {
String token = iter.next();
if (token.charAt(0) == '!') {
token = token.substring(1);
for (String token : levelTokenArray) {
tokensToProcess.add(token);
}
// See if this is a group.
Map<MasterLevel, Set<Level>> tmp = lmf
.getLevelMapForGroup(token);
if (tmp != null) {
masterLevels = tmp;
iter.remove();
break;
}
}
// generate initial list
Iterator<String> iter = tokensToProcess.iterator();
if (masterLevels.size() == 0 && tokensToProcess.size() > 0) {
for (Level l : lmf.getAllLevels()) {
MasterLevel ml = l.getMasterLevel();
Set<Level> levels = masterLevels.get(ml);
if (levels == null) {
levels = new HashSet<Level>();
masterLevels.put(ml, levels);
while (iter.hasNext()) {
String token = iter.next();
if (token.charAt(0) == '!') {
token = token.substring(1);
}
// See if this is a group.
Map<MasterLevel, Set<Level>> tmp = lmf
.getLevelMapForGroup(token);
levels.add(l);
}
}
if (tokensToProcess.size() > 0) {
for (String token : tokensToProcess) {
try {
processLevelToken(token);
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
if (tmp != null) {
masterLevels = tmp;
iter.remove();
break;
}
}
} else {
for (Set<Level> levels : masterLevels.values()) {
validLevels.addAll(levels);
if (masterLevels.size() == 0 && tokensToProcess.size() > 0) {
for (Level l : lmf.getAllLevels()) {
MasterLevel ml = l.getMasterLevel();
Set<Level> levels = masterLevels.get(ml);
if (levels == null) {
levels = new HashSet<Level>();
masterLevels.put(ml, levels);
}
levels.add(l);
}
}
if (tokensToProcess.size() > 0) {
for (String token : tokensToProcess) {
try {
processLevelToken(token);
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
}
}
} else {
for (Set<Level> levels : masterLevels.values()) {
validLevels.addAll(levels);
}
}
}
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
}
return validLevels;

View file

@ -23,12 +23,12 @@ Require-Bundle: org.eclipse.ui,
com.raytheon.viz.grid;bundle-version="1.11.17",
com.raytheon.viz.core.contours;bundle-version="1.11.17",
com.raytheon.uf.viz.sounding;bundle-version="1.11.17",
com.raytheon.uf.common.dataplugin.bufrua;bundle-version="1.11.17"
com.raytheon.uf.common.dataplugin.bufrua;bundle-version="1.11.17",
com.raytheon.uf.common.dataplugin.level;bundle-version="1.12.1174"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Export-Package: com.raytheon.uf.viz.objectiveanalysis.rsc
Import-Package: com.raytheon.uf.common.comm,
com.raytheon.uf.common.dataplugin.level,
com.raytheon.uf.common.dataplugin.radar,
com.raytheon.uf.common.gridcoverage,
com.raytheon.uf.viz.derivparam.library,

View file

@ -32,10 +32,10 @@ import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.LevelFactory;
import com.raytheon.uf.common.dataplugin.level.MasterLevel;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
import com.raytheon.uf.viz.core.rsc.LoadProperties;
@ -196,29 +196,30 @@ public class OAResourceData extends AbstractRequestableResourceData {
DataTime[] times = super.getAvailableTimes();
if (this.levelKey.equals(ALL_TILTS)) {
LevelFactory factory = LevelFactory.getInstance();
MasterLevel ml;
try {
ml = factory.getMasterLevel("TILT");
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
}
Set<Level> allLevels = LevelMappingFactory.getInstance()
.getAllLevels();
List<Level> levels = new ArrayList<Level>();
for (Level l : allLevels) {
if (l.getMasterLevel().equals(ml)) {
levels.add(l);
}
}
List<DataTime> timesWithLevels = new ArrayList<DataTime>();
for (int i = 0; i < times.length; ++i) {
for (int j = 0; j < levels.size(); ++j) {
DataTime time = times[i].clone();
time.setLevelValue(levels.get(j).getLevelonevalue());
if (time.isSpatial()) {
timesWithLevels.add(time);
try {
MasterLevel ml = factory.getMasterLevel("TILT");
Set<Level> allLevels = LevelMappingFactory.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getAllLevels();
List<Level> levels = new ArrayList<Level>();
for (Level l : allLevels) {
if (l.getMasterLevel().equals(ml)) {
levels.add(l);
}
}
for (int i = 0; i < times.length; ++i) {
for (int j = 0; j < levels.size(); ++j) {
DataTime time = times[i].clone();
time.setLevelValue(levels.get(j).getLevelonevalue());
if (time.isSpatial()) {
timesWithLevels.add(time);
}
}
}
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
}
return timesWithLevels
.toArray(new DataTime[timesWithLevels.size()]);

View file

@ -25,7 +25,8 @@ Require-Bundle: org.eclipse.ui,
com.raytheon.uf.viz.points;bundle-version="1.0.0",
com.raytheon.uf.common.gridcoverage,
org.apache.commons.beanutils;bundle-version="1.8.3",
com.raytheon.uf.common.dataplugin.grid;bundle-version="1.0.0"
com.raytheon.uf.common.dataplugin.grid;bundle-version="1.0.0",
com.raytheon.uf.common.dataplugin.level;bundle-version="1.12.1174"
Bundle-ActivationPolicy: lazy
Export-Package: com.raytheon.viz.grid,
com.raytheon.viz.grid.inv,
@ -36,7 +37,6 @@ Export-Package: com.raytheon.viz.grid,
Import-Package: com.raytheon.edex.scriptfactory,
com.raytheon.uf.common.colormap,
com.raytheon.uf.common.comm,
com.raytheon.uf.common.dataplugin.level,
com.raytheon.uf.common.derivparam.tree,
com.raytheon.uf.common.localization,
com.raytheon.uf.common.message,

View file

@ -42,15 +42,14 @@ import com.raytheon.uf.common.dataplugin.grid.dataset.DatasetInfoLookup;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.LevelFactory;
import com.raytheon.uf.common.dataplugin.level.MasterLevel;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.datastructure.DataCubeContainer;
import com.raytheon.uf.viz.core.drawables.ResourcePair;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.viz.core.rsc.DisplayType;
import com.raytheon.uf.viz.core.rsc.ResourceProperties;
import com.raytheon.uf.viz.core.rsc.ResourceType;
@ -195,8 +194,11 @@ public class GridProductBrowserDataDefinition extends
params = Arrays.asList(value);
} else if (key.equals(GridInventory.MASTER_LEVEL_QUERY)) {
if (levels == null) {
levels = new ArrayList<Level>(LevelMappingFactory
.getInstance().getAllLevels());
levels = new ArrayList<Level>(
LevelMappingFactory
.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getAllLevels());
}
Iterator<Level> iter = levels.iterator();
while (iter.hasNext()) {
@ -209,8 +211,11 @@ public class GridProductBrowserDataDefinition extends
} else if (key.equals(GridInventory.LEVEL_ONE_QUERY)) {
double doubleValue = Double.parseDouble(value);
if (levels == null) {
levels = new ArrayList<Level>(LevelMappingFactory
.getInstance().getAllLevels());
levels = new ArrayList<Level>(
LevelMappingFactory
.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getAllLevels());
}
Iterator<Level> iter = levels.iterator();
while (iter.hasNext()) {
@ -221,8 +226,11 @@ public class GridProductBrowserDataDefinition extends
} else if (key.equals(GridInventory.LEVEL_TWO_QUERY)) {
double doubleValue = Double.parseDouble(value);
if (levels == null) {
levels = new ArrayList<Level>(LevelMappingFactory
.getInstance().getAllLevels());
levels = new ArrayList<Level>(
LevelMappingFactory
.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getAllLevels());
}
Iterator<Level> iter = levels.iterator();
while (iter.hasNext()) {
@ -280,9 +288,6 @@ public class GridProductBrowserDataDefinition extends
return returnQueue.toArray(new String[0]);
}
}
} catch (VizCommunicationException e) {
statusHandler.handle(Priority.ERROR, "Unable to query data for "
+ productName, e);
} catch (CommunicationException e) {
statusHandler.handle(Priority.ERROR, "Unable to query data for "
+ productName, e);

View file

@ -19,11 +19,11 @@
**/
package com.raytheon.viz.grid.rsc;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapping;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.level.LevelMapping;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.viz.core.rsc.AbstractNameGenerator;
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
@ -144,13 +144,14 @@ public class GridNameGenerator extends AbstractNameGenerator {
private String lookupPlane(Level level) {
try {
LevelMapping mapping = LevelMappingFactory.getInstance()
LevelMapping mapping = LevelMappingFactory.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getLevelMappingForLevel(level);
if (mapping == null) {
return level.getMasterLevel().getName();
}
return mapping.getDisplayName();
} catch (VizCommunicationException e) {
} catch (CommunicationException e) {
return level.getMasterLevel().getName();
}

View file

@ -18,7 +18,8 @@ Require-Bundle: org.apache.batik,
com.raytheon.uf.viz.localization;bundle-version="1.12.1174",
org.jep;bundle-version="1.0.0",
com.raytheon.uf.common.python;bundle-version="1.12.1161",
com.raytheon.uf.common.pointdata;bundle-version="1.12.1174"
com.raytheon.uf.common.pointdata;bundle-version="1.12.1174",
com.raytheon.uf.common.dataplugin.level;bundle-version="1.12.1174"
Bundle-ActivationPolicy: lazy
Export-Package: com.raytheon.viz.pointdata,
com.raytheon.viz.pointdata.drawables,
@ -28,7 +29,6 @@ Export-Package: com.raytheon.viz.pointdata,
Import-Package: com.raytheon.edex.meteoLib,
com.raytheon.uf.common.comm,
com.raytheon.uf.common.dataplugin.grid,
com.raytheon.uf.common.dataplugin.level,
com.raytheon.uf.common.derivparam.tree,
com.raytheon.uf.common.message.response,
com.raytheon.uf.common.pointdata,

View file

@ -18,6 +18,7 @@ import java.util.concurrent.LinkedBlockingQueue;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.LevelFactory;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.localization.IPathManager;
import com.raytheon.uf.common.localization.LocalizationContext;
@ -29,9 +30,7 @@ import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.BinOffset;
import com.raytheon.uf.viz.core.datastructure.DataCubeContainer;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.viz.core.map.MapDescriptor;
import com.raytheon.uf.viz.core.rsc.LoadProperties;
import com.raytheon.uf.viz.core.rsc.ResourceType;
@ -281,14 +280,15 @@ public class PlotModelDataDefinition extends
try {
Level level = LevelFactory.getInstance().getLevel(
Long.parseLong(levelid));
validLevels.add(LevelMappingFactory.getInstance()
.getLevelMappingForLevel(level).getDisplayName());
validLevels
.add(LevelMappingFactory
.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getLevelMappingForLevel(level)
.getDisplayName());
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(),
e);
} catch (VizCommunicationException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(),
e);
}
}
return validLevels.toArray(new String[0]);

View file

@ -28,7 +28,9 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.derivparam.tree.DataTree;
import com.raytheon.uf.common.derivparam.tree.LevelNode;
@ -40,9 +42,7 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.viz.core.RecordFactory;
import com.raytheon.uf.viz.core.catalog.CatalogQuery;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.viz.derivparam.data.AbstractRequestableData;
import com.raytheon.uf.viz.derivparam.inv.AbstractInventory;
import com.raytheon.uf.viz.derivparam.library.DerivParamDesc;
@ -278,9 +278,11 @@ public abstract class AbstractPointDataInventory extends AbstractInventory {
public static Level getStationLevel() {
try {
return LevelMappingFactory.getInstance()
return LevelMappingFactory
.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getLevelMappingForKey("Station").getLevels().get(0);
} catch (VizCommunicationException e) {
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
return null;
}

View file

@ -25,8 +25,10 @@ import java.util.Collection;
import java.util.List;
import java.util.Map;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.TimeQueryRequest;
import com.raytheon.uf.common.dataquery.requests.TimeQueryRequestSet;
@ -45,8 +47,8 @@ import com.raytheon.uf.viz.core.comm.Loader;
import com.raytheon.uf.viz.core.datastructure.CubeUtil;
import com.raytheon.uf.viz.core.datastructure.IDataCubeAdapter;
import com.raytheon.uf.viz.core.datastructure.VizDataCubeException;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.viz.core.requests.ThriftClient;
import com.raytheon.uf.viz.derivparam.data.AbstractRequestableData;
import com.raytheon.uf.viz.derivparam.inv.AvailabilityContainer;
@ -143,8 +145,15 @@ public class PointDataCubeAdapter implements IDataCubeAdapter {
source += type;
}
List<Level> levels = LevelMappingFactory.getInstance()
.getLevelMappingForKey(levelKey).getLevels();
List<Level> levels;
try {
levels = LevelMappingFactory
.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getLevelMappingForKey(levelKey).getLevels();
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
}
List<AbstractRequestableNode> nodes = inventory.getNodes(source,
Arrays.asList(parameters), levels);
PointMetadataContainer pmc = new PointMetadataContainer(queryParams,

View file

@ -31,7 +31,9 @@ Require-Bundle: org.eclipse.ui,
com.raytheon.uf.viz.d2d.nsharp;bundle-version="1.0.0",
gov.noaa.nws.ncep.ui.nsharp;bundle-version="1.0.0",
com.raytheon.uf.common.message;bundle-version="1.12.1174",
com.raytheon.viz.core.graphing;bundle-version="1.12.1174"
com.raytheon.viz.core.graphing;bundle-version="1.12.1174",
com.raytheon.uf.common.dataplugin.level;bundle-version="1.12.1174",
com.raytheon.uf.common.comm;bundle-version="1.12.1174"
Bundle-ActivationPolicy: lazy
Export-Package: com.raytheon.viz.volumebrowser,
com.raytheon.viz.volumebrowser.catalog,
@ -41,7 +43,6 @@ Export-Package: com.raytheon.viz.volumebrowser,
Import-Package: com.raytheon.uf.common.comm,
com.raytheon.uf.common.dataplugin.grid,
com.raytheon.uf.common.dataplugin.grid.dataset,
com.raytheon.uf.common.dataplugin.level,
com.raytheon.uf.common.gridcoverage,
com.raytheon.uf.common.menus.xml,
com.raytheon.uf.viz.core.maps.display,

View file

@ -29,15 +29,16 @@ import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapping;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.drawables.ResourcePair;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.level.LevelMapping;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.viz.core.level.LevelUtilities;
import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
import com.raytheon.uf.viz.core.rsc.DisplayType;
@ -373,12 +374,13 @@ public abstract class AbstractDataCatalog implements IDataCatalog {
}
} else {
try {
LevelMappingFactory lmf = LevelMappingFactory.getInstance();
LevelMappingFactory lmf = LevelMappingFactory
.getInstance(LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE);
LevelMapping lm = lmf.getLevelMappingForKey(planesKey);
if (lm != null) {
levels = lm.getLevels();
}
} catch (VizCommunicationException e) {
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(),
e);
}

View file

@ -38,13 +38,13 @@ import org.eclipse.core.runtime.jobs.Job;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.LevelFactory;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapping;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.datastructure.DataCubeContainer;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.level.LevelMapping;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.viz.core.level.LevelUtilities;
import com.raytheon.uf.viz.derivparam.inv.AbstractInventory;
import com.raytheon.viz.volumebrowser.vbui.DataListsProdTableComp.DataSelection;
@ -184,16 +184,13 @@ public abstract class AbstractInventoryDataCatalog extends AbstractDataCatalog {
}
request.addAvailablePlane("spatial-"
+ level.getMasterLevel().getName());
try {
LevelMapping lm = LevelMappingFactory.getInstance()
.getLevelMappingForLevel(level);
LevelMapping lm = LevelMappingFactory
.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getLevelMappingForLevel(level);
if (lm != null) {
request.addAvailablePlane(lm.getKey());
}
} catch (VizCommunicationException e) {
statusHandler.handle(Priority.PROBLEM,
e.getLocalizedMessage(), e);
if (lm != null) {
request.addAvailablePlane(lm.getKey());
}
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM,
@ -255,6 +252,7 @@ public abstract class AbstractInventoryDataCatalog extends AbstractDataCatalog {
return result;
}
@Override
public List<String> getSupportedSources() {
return getSupportedSourcesInternal();
}
@ -280,7 +278,8 @@ public abstract class AbstractInventoryDataCatalog extends AbstractDataCatalog {
if (selectedPlanes == null || selectedPlanes.length == 0) {
return null;
}
LevelMappingFactory lmf = LevelMappingFactory.getInstance();
LevelMappingFactory lmf = LevelMappingFactory
.getInstance(LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE);
for (String plane : selectedPlanes) {
Collection<Level> levels = Collections.emptyList();
if (plane.startsWith("spatial-")) {
@ -297,7 +296,7 @@ public abstract class AbstractInventoryDataCatalog extends AbstractDataCatalog {
if (lm != null) {
try {
levels = lm.getLevels();
} catch (VizCommunicationException e) {
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM,
e.getLocalizedMessage(), e);
}

View file

@ -35,8 +35,10 @@ import org.geotools.geometry.Envelope2D;
import org.geotools.geometry.jts.ReferencedEnvelope;
import org.opengis.referencing.operation.MathTransform;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.grid.GridConstants;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
import com.raytheon.uf.common.geospatial.MapUtil;
@ -47,7 +49,6 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.drawables.ResourcePair;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.viz.core.level.LevelUtilities;
import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
import com.raytheon.uf.viz.core.rsc.DisplayType;
@ -182,11 +183,12 @@ public class GridDataCatalog extends AbstractInventoryDataCatalog {
// Get all possible levels for the selected levels
List<Level> selectedLevels = Collections.emptyList();
try {
LevelMappingFactory lmf = LevelMappingFactory.getInstance();
LevelMappingFactory lmf = LevelMappingFactory
.getInstance(LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE);
selectedLevels = new ArrayList<Level>(lmf
.getLevelMappingForKey(
catalogEntry.selectedPlanesKey).getLevels());
} catch (VizCommunicationException e) {
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM,
e.getLocalizedMessage(), e);
}
@ -422,8 +424,8 @@ public class GridDataCatalog extends AbstractInventoryDataCatalog {
.getCoordinateReferenceSystem());
Envelope2D env = gridGeom.getEnvelope2D();
for (String letter : pointLetters) {
Coordinate c = PointsDataManager.getInstance()
.getCoordinate(letter);
Coordinate c = PointsDataManager.getInstance()
.getCoordinate(letter);
DirectPosition2D dp = new DirectPosition2D(c.x, c.y);
llToCRS.transform(dp, dp);
if (env.contains(dp.x, dp.y)) {
@ -508,8 +510,8 @@ public class GridDataCatalog extends AbstractInventoryDataCatalog {
.getTransformFromLatLon(gridGeom
.getCoordinateReferenceSystem());
Envelope2D env = gridGeom.getEnvelope2D();
for (String letter : pdm.getPointNames()) {
Coordinate c = pdm.getCoordinate(letter);
for (String letter : pdm.getPointNames()) {
Coordinate c = pdm.getCoordinate(letter);
DirectPosition2D dp = new DirectPosition2D(c.x, c.y);
llToCRS.transform(dp, dp);
if (env.contains(dp.x, dp.y)) {

View file

@ -32,7 +32,9 @@ import java.util.Set;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
import com.raytheon.uf.common.pointdata.spatial.SurfaceObsLocation;
@ -41,9 +43,7 @@ import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.BinOffset;
import com.raytheon.uf.viz.core.catalog.DbQuery;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
import com.raytheon.uf.viz.core.rsc.ResourceType;
import com.raytheon.uf.viz.d2d.nsharp.rsc.BufruaNSharpResourceData;
@ -390,9 +390,11 @@ public class PointDataCatalog extends AbstractInventoryDataCatalog {
@Override
protected Collection<? extends Level> get3DLevels() {
try {
return LevelMappingFactory.getInstance()
return LevelMappingFactory
.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getLevelMappingForKey("Station").getLevels();
} catch (VizCommunicationException e) {
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
return Collections.emptyList();
}

View file

@ -28,8 +28,8 @@ import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import com.raytheon.uf.viz.core.level.LevelMapping;
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapping;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.viz.volumebrowser.vbui.MenuItemManager;
import com.raytheon.viz.volumebrowser.xml.MenuContribution;
@ -93,7 +93,8 @@ public class MenuContributionItem extends ContributionItem {
item.setData(this);
if (menuContribution.xml.textLookup.equals("LevelMapping")) {
LevelMapping mapping = LevelMappingFactory.getInstance()
LevelMapping mapping = LevelMappingFactory.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getLevelMappingForKey(menuContribution.xml.key);
if (mapping != null) {
menuContribution.xml.menuText = mapping.getDisplayName();

View file

@ -29,7 +29,8 @@ Require-Bundle: com.raytheon.uf.common.dataplugin.gfe;bundle-version="1.12.1174"
com.google.guava;bundle-version="1.0.0",
com.raytheon.uf.common.util;bundle-version="1.12.1174",
org.apache.commons.lang;bundle-version="2.3.0",
com.raytheon.uf.common.python.concurrent;bundle-version="1.0.0"
com.raytheon.uf.common.python.concurrent;bundle-version="1.0.0",
com.raytheon.uf.common.dataplugin.level;bundle-version="1.12.1174"
Export-Package: com.raytheon.edex.plugin.gfe,
com.raytheon.edex.plugin.gfe.config,
com.raytheon.edex.plugin.gfe.db.dao,
@ -53,7 +54,6 @@ Import-Package: com.raytheon.edex.db.dao,
com.raytheon.uf.common.activetable,
com.raytheon.uf.common.comm,
com.raytheon.uf.common.dataplugin,
com.raytheon.uf.common.dataplugin.level,
com.raytheon.uf.common.dataplugin.persist,
com.raytheon.uf.common.dataplugin.warning,
com.raytheon.uf.common.datastorage,

View file

@ -44,7 +44,6 @@ import com.raytheon.edex.plugin.gfe.paraminfo.GridParamInfo;
import com.raytheon.edex.plugin.gfe.paraminfo.GridParamInfoLookup;
import com.raytheon.edex.plugin.gfe.paraminfo.ParameterInfo;
import com.raytheon.edex.plugin.gfe.server.GridParmManager;
import com.raytheon.edex.plugin.gfe.util.GridTranslator;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.PluginException;
import com.raytheon.uf.common.dataplugin.gfe.GridDataHistory;
@ -65,7 +64,8 @@ import com.raytheon.uf.common.dataplugin.gfe.slice.VectorGridSlice;
import com.raytheon.uf.common.dataplugin.grid.GridPathProvider;
import com.raytheon.uf.common.dataplugin.grid.GridRecord;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.LevelFactory;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapping;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.datastorage.DataStoreFactory;
import com.raytheon.uf.common.datastorage.IDataStore;
import com.raytheon.uf.common.datastorage.Request;
@ -104,6 +104,7 @@ import com.raytheon.uf.edex.database.DataAccessLayerException;
* 03/19/2013 #1774 randerso Fix accumulative grid time ranges
* 04/04/2013 #1774 randerso Moved wind component checking to GfeIngestNotificaionFilter
* 04/04/2013 #1787 randerso Move the D2D to GFE translation logic out of GFED2DDao
* 04/17/2013 #1913 randerso Added GFE level mapping to replace GridTranslator
*
* </pre>
*
@ -196,6 +197,8 @@ public class D2DGridDatabase extends VGridDatabase {
private static final Pattern parmHrPattern = Pattern
.compile("(\\D+)\\d+hr");
private static final String GFE_LEVEL_MAPPING_FILE = "grid/gfeLevelMappingFile.xml";
private final IPerformanceStatusHandler perfLog = PerformanceStatus
.getHandler("GFE:");
@ -1178,27 +1181,33 @@ public class D2DGridDatabase extends VGridDatabase {
// no-op
}
public D2DParm getD2DParm(String d2dParmName, Level level) {
public D2DParm getD2DParm(String d2dParmName, Level d2dLevel) {
String gfeParmName = getGfeParmName(d2dParmName);
String levelName = GridTranslator.getShortLevelName(level
.getMasterLevel().getName(), level.getLevelonevalue(), level
.getLeveltwovalue());
String gfeLevel = getGFELevel(d2dLevel);
if (gfeLevel == null) {
statusHandler.warn("No GFE level found for D2D model: "
+ d2dModelName + " D2D parm: " + d2dParmName
+ " D2D level:" + d2dLevel + " GFE model: "
+ dbId.getModelName() + " GFE parm: " + gfeParmName
+ ". Check gfeLevelMapping and parameterInfo files.");
return null;
}
D2DParm parm = d2dParms.get(compositeName(gfeParmName, levelName));
D2DParm parm = d2dParms.get(compositeName(gfeParmName, gfeLevel));
if (parm == null) {
// try to find one with duration (XXXnnhr)
Matcher matcher = parmHrPattern.matcher(d2dParmName);
if (matcher.find()) {
String abbrev = matcher.group(1);
gfeParmName = getGfeParmName(abbrev);
parm = d2dParms.get(compositeName(gfeParmName, levelName));
parm = d2dParms.get(compositeName(gfeParmName, gfeLevel));
}
}
if (parm == null) {
statusHandler.warn("No gridParameterInfo found for "
+ compositeName(gfeParmName, levelName) + ":"
+ compositeName(gfeParmName, gfeLevel) + ":"
+ dbId.getModelId() + ". Check parameterInfo file.");
}
@ -1244,32 +1253,36 @@ public class D2DGridDatabase extends VGridDatabase {
}
private static Level getD2DLevel(String gfeLevel) {
String levelName = GridTranslator.getLevelName(gfeLevel);
double[] levelValues = GridTranslator.getLevelValue(gfeLevel);
boolean levelOnePresent = (levelValues[0] != Level
.getInvalidLevelValue());
boolean levelTwoPresent = (levelValues[1] != Level
.getInvalidLevelValue());
Level level = null;
// to have a level 2, must have a level one
List<Level> levels;
try {
if (levelOnePresent && levelTwoPresent) {
level = LevelFactory.getInstance().getLevel(levelName,
levelValues[0], levelValues[1]);
} else if (levelOnePresent) {
level = LevelFactory.getInstance().getLevel(levelName,
levelValues[0]);
} else {
level = LevelFactory.getInstance().getLevel(levelName, 0.0);
}
levels = LevelMappingFactory.getInstance(GFE_LEVEL_MAPPING_FILE)
.getLevelMappingForKey(gfeLevel).getLevels();
} catch (CommunicationException e) {
statusHandler.error(e.getLocalizedMessage(), e);
levels = Collections.emptyList();
}
if (level == null) {
statusHandler.warn(gfeLevel + " does not map to a D2D level");
Level level = null;
if (levels.isEmpty()) {
statusHandler.warn("No D2D level found for: " + gfeLevel);
} else {
level = levels.get(0);
}
return level;
}
private static String getGFELevel(Level d2dLevel) {
LevelMapping levelMapping;
try {
levelMapping = LevelMappingFactory.getInstance(
GFE_LEVEL_MAPPING_FILE).getLevelMappingForLevel(d2dLevel);
} catch (CommunicationException e) {
levelMapping = null;
}
String gfeLevel = null;
if (levelMapping != null) {
gfeLevel = levelMapping.getKey();
}
return gfeLevel;
}
}

View file

@ -1,251 +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.
**/
package com.raytheon.edex.plugin.gfe.util;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.LevelFactory;
/**
* Singleton that assists with grid data
*
* <pre>
* SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 5, 2008 njensen Initial creation
* Aug 22, 2008 1502 dglazesk Changed to JAXB unmarshalling
* Dec 06, 2012 1394 rjpeter Attend static compiled patterns.
* </pre>
*
* @author njensen
* @version 1.0
*/
public class GridTranslator {
private static final List<String> NEEDS_ZERO = Arrays.asList("BLD", "WBZ");
private static final Pattern ANY_NUMBER = Pattern.compile("[0-9]");
private static final Pattern NOT_NUMBER = Pattern.compile("[^0-9]");
private GridTranslator() {
}
public static String getLevelName(String shorthand) {
return ANY_NUMBER.matcher(shorthand).replaceAll("");
}
public static double[] getLevelValue(String shorthand) {
String levelString = NOT_NUMBER.matcher(shorthand).replaceAll("");
int length = levelString.length();
double[] retVal = new double[2];
retVal[0] = Level.getInvalidLevelValue();
retVal[1] = Level.getInvalidLevelValue();
switch (length) {
case 0:
retVal[0] = 0.0;
break;
case 1:
case 2:
retVal[0] = Double.parseDouble(levelString);
break;
case 3:
if (levelString.charAt(0) != '0') {
retVal[0] = Double.parseDouble(levelString);
} else {
retVal[1] = Double.parseDouble(levelString);
if (levelString.charAt(0) == '0') {
retVal[0] = 0.0;
}
}
break;
case 4:
if (levelString.charAt(0) == '0') {
retVal[0] = 0.0;
retVal[1] = Double.parseDouble(levelString);
} else if (levelString.charAt(0) == '1') {
retVal[0] = Double.parseDouble(levelString);
} else {
retVal[0] = Double.parseDouble(levelString.substring(0, 2));
retVal[1] = Double.parseDouble(levelString.substring(2, 4));
}
break;
case 5:
retVal[0] = Double.parseDouble(levelString.substring(0, 2));
retVal[1] = Double.parseDouble(levelString.substring(2, 5));
break;
case 6:
retVal[0] = Double.parseDouble(levelString.substring(0, 3));
retVal[1] = Double.parseDouble(levelString.substring(3, 6));
break;
case 7:
retVal[0] = Double.parseDouble(levelString.substring(0, 4));
retVal[1] = Double.parseDouble(levelString.substring(4, 7));
break;
case 8:
retVal[0] = Double.parseDouble(levelString.substring(0, 4));
retVal[1] = Double.parseDouble(levelString.substring(4, 8));
break;
default:
break;
}
return retVal;
}
/**
* Formats short level name in GFE format
*
* @param name
* @param levelOne
* @param levelTwo
* @return short level name
*/
public static String getShortLevelName(String name, double levelOne,
double levelTwo) {
StringBuilder tmp = new StringBuilder();
if (name == null) {
tmp.append(LevelFactory.UNKNOWN_LEVEL);
} else {
tmp.append(name);
if ((levelOne != Level.getInvalidLevelValue())
&& ((levelOne != 0)
|| (levelTwo != Level.getInvalidLevelValue()) || NEEDS_ZERO
.contains(name))) {
tmp.append(String.valueOf(Math.round(levelOne)));
}
if (levelTwo != Level.getInvalidLevelValue()) {
tmp.append(String.valueOf(Math.round(levelTwo)));
}
}
return tmp.toString();
}
public static void main(String[] args) {
double[] testLevelsBL = { 0, 30, 60, 90, 120, 150, 180, -999999 };
double[] testLevelsMB = { 1100, 1050, 1000, 950, 900, 850, 800, 750,
700, 650, 600, 550, 500, 450, 400, 350, 300, 250, 200, 150,
100, -999999 };
String levelName;
String level;
double[] levels;
double l1, l2;
levelName = "BL";
for (int i = 0; i < testLevelsBL.length; i++) {
l1 = testLevelsBL[i];
for (int j = i + 1; j < testLevelsBL.length; j++) {
l2 = testLevelsBL[j];
level = GridTranslator.getShortLevelName(levelName, l1, l2);
levels = GridTranslator.getLevelValue(level);
System.out.println(levelName
+ " "
+ l1
+ " "
+ l2
+ ": "
+ level
+ " "
+ Arrays.toString(levels)
+ ((l1 == levels[0]) && (l2 == levels[1]) ? " passed"
: " failed"));
}
}
levelName = "MB";
for (int i = 0; i < testLevelsMB.length; i++) {
l1 = testLevelsMB[i];
for (int j = i + 1; j < testLevelsMB.length; j++) {
l2 = testLevelsMB[j];
level = GridTranslator.getShortLevelName(levelName, l1, l2);
levels = GridTranslator.getLevelValue(level);
System.out.println(levelName
+ " "
+ l1
+ " "
+ l2
+ ": "
+ level
+ " "
+ Arrays.toString(levels)
+ ((l1 == levels[0]) && (l2 == levels[1]) ? " passed"
: " failed"));
}
}
levelName = "SFC";
l1 = 0;
l2 = -999999;
level = GridTranslator.getShortLevelName(levelName, l1, l2);
levels = GridTranslator.getLevelValue(level);
System.out.println(levelName
+ " "
+ l1
+ " "
+ l2
+ ": "
+ level
+ " "
+ Arrays.toString(levels)
+ ((l1 == levels[0]) && (l2 == levels[1]) ? " passed"
: " failed"));
levelName = "BLD";
l1 = 0;
l2 = -999999;
level = GridTranslator.getShortLevelName(levelName, l1, l2);
levels = GridTranslator.getLevelValue(level);
System.out.println(levelName
+ " "
+ l1
+ " "
+ l2
+ ": "
+ level
+ " "
+ Arrays.toString(levels)
+ ((l1 == levels[0]) && (l2 == levels[1]) ? " passed"
: " failed"));
levelName = "WBZ";
l1 = 0;
l2 = -999999;
level = GridTranslator.getShortLevelName(levelName, l1, l2);
levels = GridTranslator.getLevelValue(level);
System.out.println(levelName
+ " "
+ l1
+ " "
+ l2
+ ": "
+ level
+ " "
+ Arrays.toString(levels)
+ ((l1 == levels[0]) && (l2 == levels[1]) ? " passed"
: " failed"));
}
}

View file

@ -0,0 +1,462 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<LevelMappings>
<Level key="BL030">
<DatabaseLevel levelName="BL" levelOneValue="0.0" levelTwoValue="30.0" unit="hPa"/>
</Level>
<Level key="BL0180">
<DatabaseLevel levelName="BL" levelOneValue="0.0" levelTwoValue="180.0" unit="hPa"/>
</Level>
<Level key="BL0255">
<DatabaseLevel levelName="BL" levelOneValue="0.0" levelTwoValue="255.0" unit="hPa"/>
</Level>
<Level key="BL3060">
<DatabaseLevel levelName="BL" levelOneValue="30.0" levelTwoValue="60.0" unit="hPa"/>
</Level>
<Level key="BL6090">
<DatabaseLevel levelName="BL" levelOneValue="60.0" levelTwoValue="90.0" unit="hPa"/>
</Level>
<Level key="BL90120">
<DatabaseLevel levelName="BL" levelOneValue="90.0" levelTwoValue="120.0" unit="hPa"/>
</Level>
<Level key="BL120150">
<DatabaseLevel levelName="BL" levelOneValue="120.0" levelTwoValue="150.0" unit="hPa"/>
</Level>
<Level key="BL150180">
<DatabaseLevel levelName="BL" levelOneValue="150.0" levelTwoValue="180.0" unit="hPa"/>
</Level>
<Level key="BLD0">
<DatabaseLevel levelName="BLD" levelOneValue="0.0"/>
</Level>
<Level key="BLS">
<DatabaseLevel levelName="BLS" levelOneValue="0.0" unit="m"/>
</Level>
<Level key="BLS1">
<DatabaseLevel levelName="BLS" levelOneValue="1.0" unit="m"/>
</Level>
<Level key="BLS2">
<DatabaseLevel levelName="BLS" levelOneValue="2.0" unit="m"/>
</Level>
<Level key="BLS3">
<DatabaseLevel levelName="BLS" levelOneValue="3.0" unit="m"/>
</Level>
<Level key="CBL">
<DatabaseLevel levelName="CBL" levelOneValue="0.0"/>
</Level>
<Level key="CCTL">
<DatabaseLevel levelName="CCTL" levelOneValue="0.0"/>
</Level>
<Level key="CLG">
<DatabaseLevel levelName="CLG" levelOneValue="0.0"/>
</Level>
<Level key="CTL">
<DatabaseLevel levelName="CTL" levelOneValue="0.0"/>
</Level>
<Level key="Dflt">
<DatabaseLevel levelName="Dflt" levelOneValue="0.0"/>
</Level>
<Level key="EA">
<DatabaseLevel levelName="EA" levelOneValue="0.0"/>
</Level>
<Level key="EL">
<DatabaseLevel levelName="EL" levelOneValue="0.0"/>
</Level>
<Level key="FH10">
<DatabaseLevel levelName="FH" levelOneValue="10.0" unit="m"/>
</Level>
<Level key="FH304">
<DatabaseLevel levelName="FH" levelOneValue="304.0" unit="m"/>
</Level>
<Level key="FH305">
<DatabaseLevel levelName="FH" levelOneValue="305.0" unit="m"/>
</Level>
<Level key="FH609">
<DatabaseLevel levelName="FH" levelOneValue="609.0" unit="m"/>
</Level>
<Level key="FH610">
<DatabaseLevel levelName="FH" levelOneValue="610.0" unit="m"/>
</Level>
<Level key="FH914">
<DatabaseLevel levelName="FH" levelOneValue="914.0" unit="m"/>
</Level>
<Level key="FH1219">
<DatabaseLevel levelName="FH" levelOneValue="1219.0" unit="m"/>
</Level>
<Level key="FH1500">
<DatabaseLevel levelName="FH" levelOneValue="1500.0" unit="m"/>
</Level>
<Level key="FH1524">
<DatabaseLevel levelName="FH" levelOneValue="1524.0" unit="m"/>
</Level>
<Level key="FH1828">
<DatabaseLevel levelName="FH" levelOneValue="1828.0" unit="m"/>
</Level>
<Level key="FH1829">
<DatabaseLevel levelName="FH" levelOneValue="1829.0" unit="m"/>
</Level>
<Level key="FH2133">
<DatabaseLevel levelName="FH" levelOneValue="2133.0" unit="m"/>
</Level>
<Level key="FH2134">
<DatabaseLevel levelName="FH" levelOneValue="2134.0" unit="m"/>
</Level>
<Level key="FH2438">
<DatabaseLevel levelName="FH" levelOneValue="2438.0" unit="m"/>
</Level>
<Level key="FH2743">
<DatabaseLevel levelName="FH" levelOneValue="2743.0" unit="m"/>
</Level>
<Level key="FH3048">
<DatabaseLevel levelName="FH" levelOneValue="3048.0" unit="m"/>
</Level>
<Level key="FH3352">
<DatabaseLevel levelName="FH" levelOneValue="3352.0" unit="m"/>
</Level>
<Level key="FH3353">
<DatabaseLevel levelName="FH" levelOneValue="3353.0" unit="m"/>
</Level>
<Level key="FH3657">
<DatabaseLevel levelName="FH" levelOneValue="3657.0" unit="m"/>
</Level>
<Level key="FH3658">
<DatabaseLevel levelName="FH" levelOneValue="3658.0" unit="m"/>
</Level>
<Level key="FH3962">
<DatabaseLevel levelName="FH" levelOneValue="3962.0" unit="m"/>
</Level>
<Level key="FH4267">
<DatabaseLevel levelName="FH" levelOneValue="4267.0" unit="m"/>
</Level>
<Level key="FH4572">
<DatabaseLevel levelName="FH" levelOneValue="4572.0" unit="m"/>
</Level>
<Level key="FH4876">
<DatabaseLevel levelName="FH" levelOneValue="4876.0" unit="m"/>
</Level>
<Level key="FH4877">
<DatabaseLevel levelName="FH" levelOneValue="4877.0" unit="m"/>
</Level>
<Level key="FH5181">
<DatabaseLevel levelName="FH" levelOneValue="5181.0" unit="m"/>
</Level>
<Level key="FH5182">
<DatabaseLevel levelName="FH" levelOneValue="5182.0" unit="m"/>
</Level>
<Level key="FH5486">
<DatabaseLevel levelName="FH" levelOneValue="5486.0" unit="m"/>
</Level>
<Level key="FH5791">
<DatabaseLevel levelName="FH" levelOneValue="5791.0" unit="m"/>
</Level>
<Level key="FH6400">
<DatabaseLevel levelName="FH" levelOneValue="6400.0" unit="m"/>
</Level>
<Level key="FH6096">
<DatabaseLevel levelName="FH" levelOneValue="6096.0" unit="m"/>
</Level>
<Level key="FH6401">
<DatabaseLevel levelName="FH" levelOneValue="6401.0" unit="m"/>
</Level>
<Level key="FH6705">
<DatabaseLevel levelName="FH" levelOneValue="6705.0" unit="m"/>
</Level>
<Level key="FH6706">
<DatabaseLevel levelName="FH" levelOneValue="6706.0" unit="m"/>
</Level>
<Level key="FH7010">
<DatabaseLevel levelName="FH" levelOneValue="7010.0" unit="m"/>
</Level>
<Level key="FH7315">
<DatabaseLevel levelName="FH" levelOneValue="7315.0" unit="m"/>
</Level>
<Level key="FH7620">
<DatabaseLevel levelName="FH" levelOneValue="7620.0" unit="m"/>
</Level>
<Level key="FH7924">
<DatabaseLevel levelName="FH" levelOneValue="7924.0" unit="m"/>
</Level>
<Level key="FH7925">
<DatabaseLevel levelName="FH" levelOneValue="7925.0" unit="m"/>
</Level>
<Level key="FH8229">
<DatabaseLevel levelName="FH" levelOneValue="8229.0" unit="m"/>
</Level>
<Level key="FH8230">
<DatabaseLevel levelName="FH" levelOneValue="8230.0" unit="m"/>
</Level>
<Level key="FH8534">
<DatabaseLevel levelName="FH" levelOneValue="8534.0" unit="m"/>
</Level>
<Level key="FH8839">
<DatabaseLevel levelName="FH" levelOneValue="8839.0" unit="m"/>
</Level>
<Level key="FH9144">
<DatabaseLevel levelName="FH" levelOneValue="9144.0" unit="m"/>
</Level>
<Level key="FH9448">
<DatabaseLevel levelName="FH" levelOneValue="9448.0" unit="m"/>
</Level>
<Level key="FH9753">
<DatabaseLevel levelName="FH" levelOneValue="9753.0" unit="m"/>
</Level>
<Level key="FH10058">
<DatabaseLevel levelName="FH" levelOneValue="10058.0" unit="m"/>
</Level>
<Level key="FH10363">
<DatabaseLevel levelName="FH" levelOneValue="10363.0" unit="m"/>
</Level>
<Level key="FH10668">
<DatabaseLevel levelName="FH" levelOneValue="10668.0" unit="m"/>
</Level>
<Level key="FH10972">
<DatabaseLevel levelName="FH" levelOneValue="10972.0" unit="m"/>
</Level>
<Level key="FH11277">
<DatabaseLevel levelName="FH" levelOneValue="11227.0" unit="m"/>
</Level>
<Level key="FH11582">
<DatabaseLevel levelName="FH" levelOneValue="11582.0" unit="m"/>
</Level>
<Level key="FH11887">
<DatabaseLevel levelName="FH" levelOneValue="11887.0" unit="m"/>
</Level>
<Level key="FH12192">
<DatabaseLevel levelName="FH" levelOneValue="12192.0" unit="m"/>
</Level>
<Level key="FH12496">
<DatabaseLevel levelName="FH" levelOneValue="12496.0" unit="m"/>
</Level>
<Level key="FH12801">
<DatabaseLevel levelName="FH" levelOneValue="12801.0" unit="m"/>
</Level>
<Level key="FH13106">
<DatabaseLevel levelName="FH" levelOneValue="13106.0" unit="m"/>
</Level>
<Level key="FH13411">
<DatabaseLevel levelName="FH" levelOneValue="13411.0" unit="m"/>
</Level>
<Level key="FH13716">
<DatabaseLevel levelName="FH" levelOneValue="13716.0" unit="m"/>
</Level>
<Level key="FHAG2">
<DatabaseLevel levelName="FHAG" levelOneValue="2.0" unit="m"/>
</Level>
<Level key="FHAG10">
<DatabaseLevel levelName="FHAG" levelOneValue="10.0" unit="m"/>
</Level>
<Level key="FHAG1000">
<DatabaseLevel levelName="FHAG" levelOneValue="1000.0" unit="m"/>
</Level>
<Level key="FHAG4000">
<DatabaseLevel levelName="FHAG" levelOneValue="4000.0" unit="m"/>
</Level>
<Level key="FHAG030">
<DatabaseLevel levelName="FHAG" levelOneValue="0.0" levelTwoValue="30.0" unit="m"/>
</Level>
<Level key="FHAG3000">
<DatabaseLevel levelName="FHAG" levelOneValue="0.0" levelTwoValue="3000.0" unit="m"/>
</Level>
<Level key="FHAG6000">
<DatabaseLevel levelName="FHAG" levelOneValue="0.0" levelTwoValue="6000.0" unit="m"/>
</Level>
<Level key="FRZ">
<DatabaseLevel levelName="FRZ" levelOneValue="0.0"/>
</Level>
<Level key="HCBL">
<DatabaseLevel levelName="HCBL" levelOneValue="0.0"/>
</Level>
<Level key="HYB1">
<DatabaseLevel levelName="HYB" levelOneValue="1.0"/>
</Level>
<Level key="LCBL">
<DatabaseLevel levelName="LCBL" levelOneValue="0.0"/>
</Level>
<Level key="LCL">
<DatabaseLevel levelName="LCL" levelOneValue="0.0"/>
</Level>
<Level key="MAXW">
<DatabaseLevel levelName="MAXW" levelOneValue="0.0"/>
</Level>
<Level key="MB50">
<DatabaseLevel levelName="MB" levelOneValue="50.0" unit="hPa"/>
</Level>
<Level key="MB100">
<DatabaseLevel levelName="MB" levelOneValue="100.0" unit="hPa"/>
</Level>
<Level key="MB125">
<DatabaseLevel levelName="MB" levelOneValue="125.0" unit="hPa"/>
</Level>
<Level key="MB150">
<DatabaseLevel levelName="MB" levelOneValue="150.0" unit="hPa"/>
</Level>
<Level key="MB175">
<DatabaseLevel levelName="MB" levelOneValue="175.0" unit="hPa"/>
</Level>
<Level key="MB200">
<DatabaseLevel levelName="MB" levelOneValue="200.0" unit="hPa"/>
</Level>
<Level key="MB225">
<DatabaseLevel levelName="MB" levelOneValue="225.0" unit="hPa"/>
</Level>
<Level key="MB250">
<DatabaseLevel levelName="MB" levelOneValue="250.0" unit="hPa"/>
</Level>
<Level key="MB275">
<DatabaseLevel levelName="MB" levelOneValue="275.0" unit="hPa"/>
</Level>
<Level key="MB300">
<DatabaseLevel levelName="MB" levelOneValue="300.0" unit="hPa"/>
</Level>
<Level key="MB325">
<DatabaseLevel levelName="MB" levelOneValue="325.0" unit="hPa"/>
</Level>
<Level key="MB350">
<DatabaseLevel levelName="MB" levelOneValue="350.0" unit="hPa"/>
</Level>
<Level key="MB375">
<DatabaseLevel levelName="MB" levelOneValue="375.0" unit="hPa"/>
</Level>
<Level key="MB400">
<DatabaseLevel levelName="MB" levelOneValue="400.0" unit="hPa"/>
</Level>
<Level key="MB425">
<DatabaseLevel levelName="MB" levelOneValue="425.0" unit="hPa"/>
</Level>
<Level key="MB450">
<DatabaseLevel levelName="MB" levelOneValue="450.0" unit="hPa"/>
</Level>
<Level key="MB475">
<DatabaseLevel levelName="MB" levelOneValue="475.0" unit="hPa"/>
</Level>
<Level key="MB500">
<DatabaseLevel levelName="MB" levelOneValue="500.0" unit="hPa"/>
</Level>
<Level key="MB525">
<DatabaseLevel levelName="MB" levelOneValue="525.0" unit="hPa"/>
</Level>
<Level key="MB550">
<DatabaseLevel levelName="MB" levelOneValue="550.0" unit="hPa"/>
</Level>
<Level key="MB575">
<DatabaseLevel levelName="MB" levelOneValue="575.0" unit="hPa"/>
</Level>
<Level key="MB600">
<DatabaseLevel levelName="MB" levelOneValue="600.0" unit="hPa"/>
</Level>
<Level key="MB625">
<DatabaseLevel levelName="MB" levelOneValue="625.0" unit="hPa"/>
</Level>
<Level key="MB650">
<DatabaseLevel levelName="MB" levelOneValue="650.0" unit="hPa"/>
</Level>
<Level key="MB675">
<DatabaseLevel levelName="MB" levelOneValue="675.0" unit="hPa"/>
</Level>
<Level key="MB700">
<DatabaseLevel levelName="MB" levelOneValue="700.0" unit="hPa"/>
</Level>
<Level key="MB725">
<DatabaseLevel levelName="MB" levelOneValue="725.0" unit="hPa"/>
</Level>
<Level key="MB750">
<DatabaseLevel levelName="MB" levelOneValue="750.0" unit="hPa"/>
</Level>
<Level key="MB775">
<DatabaseLevel levelName="MB" levelOneValue="775.0" unit="hPa"/>
</Level>
<Level key="MB800">
<DatabaseLevel levelName="MB" levelOneValue="800.0" unit="hPa"/>
</Level>
<Level key="MB825">
<DatabaseLevel levelName="MB" levelOneValue="825.0" unit="hPa"/>
</Level>
<Level key="MB850">
<DatabaseLevel levelName="MB" levelOneValue="850.0" unit="hPa"/>
</Level>
<Level key="MB875">
<DatabaseLevel levelName="MB" levelOneValue="875.0" unit="hPa"/>
</Level>
<Level key="MB900">
<DatabaseLevel levelName="MB" levelOneValue="900.0" unit="hPa"/>
</Level>
<Level key="MB925">
<DatabaseLevel levelName="MB" levelOneValue="925.0" unit="hPa"/>
</Level>
<Level key="MB950">
<DatabaseLevel levelName="MB" levelOneValue="950.0" unit="hPa"/>
</Level>
<Level key="MB975">
<DatabaseLevel levelName="MB" levelOneValue="975.0" unit="hPa"/>
</Level>
<Level key="MB1000">
<DatabaseLevel levelName="MB" levelOneValue="1000.0" unit="hPa"/>
</Level>
<Level key="MB1025">
<DatabaseLevel levelName="MB" levelOneValue="1025.0" unit="hPa"/>
</Level>
<Level key="MB1050">
<DatabaseLevel levelName="MB" levelOneValue="1050.0" unit="hPa"/>
</Level>
<Level key="MB1100">
<DatabaseLevel levelName="MB" levelOneValue="1100.0" unit="hPa"/>
</Level>
<Level key="MB50100">
<DatabaseLevel levelName="MB" levelOneValue="1000.0" levelTwoValue="500.0" unit="hPa"/>
</Level>
<Level key="MB0500">
<DatabaseLevel levelName="MB" levelOneValue="1000.0" levelTwoValue="500.0" unit="hPa"/>
</Level>
<Level key="MCBL">
<DatabaseLevel levelName="MCBL" levelOneValue="0.0"/>
</Level>
<Level key="MSL">
<DatabaseLevel levelName="MSL" levelOneValue="0.0"/>
</Level>
<Level key="OSEQD1">
<DatabaseLevel levelName="OSEQD" levelOneValue="1.0"/>
</Level>
<Level key="OSEQD2">
<DatabaseLevel levelName="OSEQD" levelOneValue="2.0"/>
</Level>
<Level key="PV5">
<DatabaseLevel levelName="PV" levelOneValue="0.5" unit="K * m^2/kg*s * 1000000"/>
</Level>
<Level key="PV10">
<DatabaseLevel levelName="PV" levelOneValue="1.0" unit="K * m^2/kg*s * 1000000"/>
</Level>
<Level key="PV15">
<DatabaseLevel levelName="PV" levelOneValue="1.5" unit="K * m^2/kg*s * 1000000"/>
</Level>
<Level key="PV20">
<DatabaseLevel levelName="PV" levelOneValue="2.0" unit="K * m^2/kg*s * 1000000"/>
</Level>
<Level key="SFC">
<DatabaseLevel levelName="SFC" levelOneValue="0.0"/>
</Level>
<Level key="SIG0100">
<DatabaseLevel levelName="SIG" levelOneValue="0.0" levelTwoValue="1.0"/>
</Level>
<Level key="SIG9823">
<DatabaseLevel levelName="SIG" levelOneValue="0.23" levelTwoValue="0.98"/>
</Level>
<Level key="SIG33100">
<DatabaseLevel levelName="SIG" levelOneValue="0.33" levelTwoValue="1.0"/>
</Level>
<Level key="SIG44100">
<DatabaseLevel levelName="SIG" levelOneValue="0.44" levelTwoValue="1.0"/>
</Level>
<Level key="SIG47100">
<DatabaseLevel levelName="SIG" levelOneValue="0.47" levelTwoValue="1.0"/>
</Level>
<Level key="SIG8498">
<DatabaseLevel levelName="SIG" levelOneValue="0.84" levelTwoValue="0.98"/>
</Level>
<Level key="TROP">
<DatabaseLevel levelName="TROP" levelOneValue="0.0"/>
</Level>
<Level key="TW0">
<DatabaseLevel levelName="TW0" levelOneValue="0.0"/>
</Level>
<Level key="WBZ0">
<DatabaseLevel levelName="WBZ" levelOneValue="0.0"/>
</Level>
</LevelMappings>

View file

@ -1,4 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
REVISION HISTORY
Date Ticket# Engineer Description
04/17/2013 #1913 randerso Corrected level for SLI
-->
<gridParamInfo xmlns:ns2="group">
<valtimeMINUSreftime>
<fcst>0</fcst>
@ -445,9 +451,9 @@
<valid_range>20.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>MB 0&gt;500</levelsDesc>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>MB0500</level>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">

View file

@ -1,4 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
REVISION HISTORY
Date Ticket# Engineer Description
04/17/2013 #1913 randerso Corrected level for SLI
-->
<gridParamInfo xmlns:ns2="group">
<valtimeMINUSreftime>
<fcst>0</fcst>
@ -445,9 +451,9 @@
<valid_range>20.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>MB 0&gt;500</levelsDesc>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>MB0500</level>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">

View file

@ -1,4 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
REVISION HISTORY
Date Ticket# Engineer Description
04/17/2013 #1913 randerso Corrected level for SLI
-->
<gridParamInfo xmlns:ns2="group">
<valtimeMINUSreftime>
<fcst>0</fcst>
@ -275,9 +281,9 @@
<valid_range>20.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>MB 0&gt;500</levelsDesc>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>MB0500</level>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">

View file

@ -1,4 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
REVISION HISTORY
Date Ticket# Engineer Description
04/17/2013 #1913 randerso Corrected level for SLI
-->
<gridParamInfo xmlns:ns2="group">
<valtimeMINUSreftime>
<fcst>0</fcst>
@ -445,9 +451,9 @@
<valid_range>20.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>MB 0&gt;500</levelsDesc>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>MB0500</level>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">

View file

@ -1,6 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Mar 20, 2013 #1774 randerso Fixed wx definition
REVISION HISTORY
Date Ticket# Engineer Description
03/20/2013 #1774 randerso Fixed wx definition
04/17/2013 #1913 randerso Corrected wx units
-->
<gridParamInfo xmlns:ns2="group">
<valtimeMINUSreftime>
@ -129,7 +133,7 @@
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>wx</short_name>
<long_name>Weather</long_name>
<units/>
<units>wx</units>
<udunits/>
<uiname>Weather</uiname>
<valid_range>0.0</valid_range>

View file

@ -1,358 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<gridParamInfo xmlns:ns2="group">
<valtimeMINUSreftime>
<fcst>0</fcst>
<fcst>21600</fcst>
<fcst>43200</fcst>
<fcst>64800</fcst>
<fcst>86400</fcst>
<fcst>108000</fcst>
<fcst>129600</fcst>
<fcst>151200</fcst>
<fcst>172800</fcst>
</valtimeMINUSreftime>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>vw</short_name>
<long_name>v wind component</long_name>
<units>m/s</units>
<udunits>meter/sec</udunits>
<uiname>vWind</uiname>
<valid_range>-150.0</valid_range>
<valid_range>150.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>21</n3D>
<levelsDesc>SIG 9823 MB 1000-50 by 50 FH 1829 2743 3658 TROP</levelsDesc>
<levels>
<level>SIG9823</level>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
<level>FH1829</level>
<level>FH2743</level>
<level>FH3658</level>
<level>TROP</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>staticSpacing</short_name>
<long_name>Grid spacing</long_name>
<units>meters</units>
<fillValue>-99999.0</fillValue>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>tp</short_name>
<long_name>total precipitation</long_name>
<units>mm</units>
<udunits>millimeter</udunits>
<uiname>totPrecip</uiname>
<valid_range>0.0</valid_range>
<valid_range>1000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>av</short_name>
<long_name>absolute vorticity</long_name>
<units>/s</units>
<udunits>1/second</udunits>
<uiname>absVort</uiname>
<valid_range>-0.00999999977648</valid_range>
<valid_range>0.00999999977648</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>4</n3D>
<levelsDesc>MB 850 700 500 250</levelsDesc>
<levels>
<level>MB850</level>
<level>MB700</level>
<level>MB500</level>
<level>MB250</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>gh</short_name>
<long_name>Geopotential height</long_name>
<units>m</units>
<udunits>meters</udunits>
<uiname>geoPotHt</uiname>
<valid_range>-2000.0</valid_range>
<valid_range>20000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>20</n3D>
<levelsDesc>MB 1000-50 by 50</levelsDesc>
<levels>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>pw</short_name>
<long_name>precipitable water</long_name>
<units>mm</units>
<udunits>millimeter</udunits>
<uiname>precipH2O</uiname>
<valid_range>0.0</valid_range>
<valid_range>300.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SIG 0&gt;100</levelsDesc>
<levels>
<level>SIG0100</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>bli</short_name>
<long_name>Best lifted index</long_name>
<units>K</units>
<udunits>degree_Kelvin</udunits>
<uiname>bestLftInd</uiname>
<valid_range>-20.0</valid_range>
<valid_range>50.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SIG 84&gt;98</levelsDesc>
<levels>
<level>SIG8498</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>staticCoriolis</short_name>
<long_name>Coriolis parameter</long_name>
<units>/s</units>
<fillValue>-99999.0</fillValue>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>rh</short_name>
<long_name>Relative Humidity</long_name>
<units>%</units>
<udunits>percent</udunits>
<uiname>rh</uiname>
<valid_range>0.0</valid_range>
<valid_range>100.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>21</n3D>
<levelsDesc>SIG 9823 MB 1000-50 by 50 SIG 47&gt;100</levelsDesc>
<levels>
<level>SIG9823</level>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
<level>SIG47100</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>sli</short_name>
<long_name>Surface lifted index</long_name>
<units>K</units>
<udunits>degree_Kelvin</udunits>
<uiname>LftInd</uiname>
<valid_range>-20.0</valid_range>
<valid_range>20.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>MB 50&gt;100</levelsDesc>
<levels>
<level>MB50100</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>snd</short_name>
<long_name>snow depth</long_name>
<units>m</units>
<udunits>meters</udunits>
<uiname>snowDepth</uiname>
<valid_range>0.0</valid_range>
<valid_range>100.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>staticTopo</short_name>
<long_name>Topography</long_name>
<units>meters</units>
<fillValue>-99999.0</fillValue>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>pmsl</short_name>
<long_name>pressure at mean sea level</long_name>
<units>Pa</units>
<udunits>pascal</udunits>
<uiname>PMSL</uiname>
<valid_range>80000.0</valid_range>
<valid_range>110000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>MSL</levelsDesc>
<levels>
<level>MSL</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>uw</short_name>
<long_name>u wind component</long_name>
<units>m/s</units>
<udunits>meter/sec</udunits>
<uiname>uWind</uiname>
<valid_range>-150.0</valid_range>
<valid_range>150.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>21</n3D>
<levelsDesc>SIG 9823 MB 1000-50 by 50 FH 1829 2743 3658 TROP</levelsDesc>
<levels>
<level>SIG9823</level>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
<level>FH1829</level>
<level>FH2743</level>
<level>FH3658</level>
<level>TROP</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>st</short_name>
<long_name>soil temperature</long_name>
<units>K</units>
<udunits>degree_Kelvin</udunits>
<uiname>soilT</uiname>
<valid_range>0.0</valid_range>
<valid_range>1000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>BLS</levelsDesc>
<levels>
<level>BLS</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>p</short_name>
<long_name>pressure</long_name>
<units>Pa</units>
<udunits>pascal</udunits>
<uiname>atmP</uiname>
<valid_range>0.0</valid_range>
<valid_range>110000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>1</n3D>
<levelsDesc>SFC TROP</levelsDesc>
<levels>
<level>SFC</level>
<level>TROP</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>t</short_name>
<long_name>Temperature</long_name>
<units>K</units>
<udunits>degree_Kelvin</udunits>
<uiname>T</uiname>
<valid_range>180.0</valid_range>
<valid_range>330.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>21</n3D>
<levelsDesc>SIG 9823 MB 1000-50 by 50 FH 1829 2743 3658 TROP</levelsDesc>
<levels>
<level>SIG9823</level>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
<level>FH1829</level>
<level>FH2743</level>
<level>FH3658</level>
<level>TROP</level>
</levels>
</gridParameterInfo>
</gridParamInfo>

View file

@ -1,396 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<gridParamInfo xmlns:ns2="group">
<valtimeMINUSreftime>
<fcst>0</fcst>
<fcst>21600</fcst>
<fcst>43200</fcst>
<fcst>64800</fcst>
<fcst>86400</fcst>
<fcst>108000</fcst>
<fcst>129600</fcst>
<fcst>151200</fcst>
<fcst>172800</fcst>
</valtimeMINUSreftime>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>pvv</short_name>
<long_name>Pressure vertical velocity</long_name>
<units>Pa/s</units>
<udunits>pascal/second</udunits>
<uiname>Pvv</uiname>
<valid_range>-2.5</valid_range>
<valid_range>2.5</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>9</n3D>
<levelsDesc>MB 850 700 500 400 300 250 200 150 100</levelsDesc>
<levels>
<level>MB850</level>
<level>MB700</level>
<level>MB500</level>
<level>MB400</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>vw</short_name>
<long_name>v wind component</long_name>
<units>m/s</units>
<udunits>meter/sec</udunits>
<uiname>vWind</uiname>
<valid_range>-150.0</valid_range>
<valid_range>150.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>21</n3D>
<levelsDesc>SIG 9823 MB 1000-50 by 50 FH 1829 2743 3658 TROP</levelsDesc>
<levels>
<level>SIG9823</level>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
<level>FH1829</level>
<level>FH2743</level>
<level>FH3658</level>
<level>TROP</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>staticSpacing</short_name>
<long_name>Grid spacing</long_name>
<units>meters</units>
<fillValue>-99999.0</fillValue>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>tp</short_name>
<long_name>total precipitation</long_name>
<units>mm</units>
<udunits>millimeter</udunits>
<uiname>totPrecip</uiname>
<valid_range>0.0</valid_range>
<valid_range>1000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>av</short_name>
<long_name>absolute vorticity</long_name>
<units>/s</units>
<udunits>1/second</udunits>
<uiname>absVort</uiname>
<valid_range>-0.00999999977648</valid_range>
<valid_range>0.00999999977648</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>4</n3D>
<levelsDesc>MB 850 700 500 250</levelsDesc>
<levels>
<level>MB850</level>
<level>MB700</level>
<level>MB500</level>
<level>MB250</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>cp</short_name>
<long_name>convective precipitation</long_name>
<units>mm</units>
<udunits>millimeter</udunits>
<uiname>convPrecip</uiname>
<valid_range>0.0</valid_range>
<valid_range>1000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>gh</short_name>
<long_name>Geopotential height</long_name>
<units>m</units>
<udunits>meters</udunits>
<uiname>geoPotHt</uiname>
<valid_range>-2000.0</valid_range>
<valid_range>20000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>20</n3D>
<levelsDesc>MB 1000-50 by 50</levelsDesc>
<levels>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>pw</short_name>
<long_name>precipitable water</long_name>
<units>mm</units>
<udunits>millimeter</udunits>
<uiname>precipH2O</uiname>
<valid_range>0.0</valid_range>
<valid_range>300.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SIG 0&gt;100</levelsDesc>
<levels>
<level>SIG0100</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>bli</short_name>
<long_name>Best lifted index</long_name>
<units>K</units>
<udunits>degree_Kelvin</udunits>
<uiname>bestLftInd</uiname>
<valid_range>-20.0</valid_range>
<valid_range>50.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SIG 84&gt;98</levelsDesc>
<levels>
<level>SIG8498</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>staticCoriolis</short_name>
<long_name>Coriolis parameter</long_name>
<units>/s</units>
<fillValue>-99999.0</fillValue>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>rh</short_name>
<long_name>Relative Humidity</long_name>
<units>%</units>
<udunits>percent</udunits>
<uiname>rh</uiname>
<valid_range>0.0</valid_range>
<valid_range>100.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>21</n3D>
<levelsDesc>SIG 9823 MB 1000-50 by 50 SIG 47&gt;100</levelsDesc>
<levels>
<level>SIG9823</level>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
<level>SIG47100</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>sli</short_name>
<long_name>Surface lifted index</long_name>
<units>K</units>
<udunits>degree_Kelvin</udunits>
<uiname>LftInd</uiname>
<valid_range>-20.0</valid_range>
<valid_range>20.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>MB 50&gt;100</levelsDesc>
<levels>
<level>MB50100</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>snd</short_name>
<long_name>snow depth</long_name>
<units>m</units>
<udunits>meters</udunits>
<uiname>snowDepth</uiname>
<valid_range>0.0</valid_range>
<valid_range>100.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>staticTopo</short_name>
<long_name>Topography</long_name>
<units>meters</units>
<fillValue>-99999.0</fillValue>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>pmsl</short_name>
<long_name>pressure at mean sea level</long_name>
<units>Pa</units>
<udunits>pascal</udunits>
<uiname>PMSL</uiname>
<valid_range>80000.0</valid_range>
<valid_range>110000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>MSL</levelsDesc>
<levels>
<level>MSL</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>uw</short_name>
<long_name>u wind component</long_name>
<units>m/s</units>
<udunits>meter/sec</udunits>
<uiname>uWind</uiname>
<valid_range>-150.0</valid_range>
<valid_range>150.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>21</n3D>
<levelsDesc>SIG 9823 MB 1000-50 by 50 FH 1829 2743 3658 TROP</levelsDesc>
<levels>
<level>SIG9823</level>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
<level>FH1829</level>
<level>FH2743</level>
<level>FH3658</level>
<level>TROP</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>st</short_name>
<long_name>soil temperature</long_name>
<units>K</units>
<udunits>degree_Kelvin</udunits>
<uiname>soilT</uiname>
<valid_range>0.0</valid_range>
<valid_range>1000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>BLS</levelsDesc>
<levels>
<level>BLS</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>p</short_name>
<long_name>pressure</long_name>
<units>Pa</units>
<udunits>pascal</udunits>
<uiname>atmP</uiname>
<valid_range>0.0</valid_range>
<valid_range>110000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>1</n3D>
<levelsDesc>SFC TROP</levelsDesc>
<levels>
<level>SFC</level>
<level>TROP</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>t</short_name>
<long_name>Temperature</long_name>
<units>K</units>
<udunits>degree_Kelvin</udunits>
<uiname>T</uiname>
<valid_range>180.0</valid_range>
<valid_range>330.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>21</n3D>
<levelsDesc>SIG 9823 MB 1000-50 by 50 FH 1829 2743 3658 TROP</levelsDesc>
<levels>
<level>SIG9823</level>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
<level>FH1829</level>
<level>FH2743</level>
<level>FH3658</level>
<level>TROP</level>
</levels>
</gridParameterInfo>
</gridParamInfo>

View file

@ -1,396 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<gridParamInfo xmlns:ns2="group">
<valtimeMINUSreftime>
<fcst>0</fcst>
<fcst>21600</fcst>
<fcst>43200</fcst>
<fcst>64800</fcst>
<fcst>86400</fcst>
<fcst>108000</fcst>
<fcst>129600</fcst>
<fcst>151200</fcst>
<fcst>172800</fcst>
</valtimeMINUSreftime>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>pvv</short_name>
<long_name>Pressure vertical velocity</long_name>
<units>Pa/s</units>
<udunits>pascal/second</udunits>
<uiname>Pvv</uiname>
<valid_range>-2.5</valid_range>
<valid_range>2.5</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>9</n3D>
<levelsDesc>MB 850 700 500 400 300 250 200 150 100</levelsDesc>
<levels>
<level>MB850</level>
<level>MB700</level>
<level>MB500</level>
<level>MB400</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>vw</short_name>
<long_name>v wind component</long_name>
<units>m/s</units>
<udunits>meter/sec</udunits>
<uiname>vWind</uiname>
<valid_range>-150.0</valid_range>
<valid_range>150.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>21</n3D>
<levelsDesc>SIG 9823 MB 1000-50 by 50 FH 1829 2743 3658 TROP</levelsDesc>
<levels>
<level>SIG9823</level>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
<level>FH1829</level>
<level>FH2743</level>
<level>FH3658</level>
<level>TROP</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>staticSpacing</short_name>
<long_name>Grid spacing</long_name>
<units>meters</units>
<fillValue>-99999.0</fillValue>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>tp</short_name>
<long_name>total precipitation</long_name>
<units>mm</units>
<udunits>millimeter</udunits>
<uiname>totPrecip</uiname>
<valid_range>0.0</valid_range>
<valid_range>1000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>av</short_name>
<long_name>absolute vorticity</long_name>
<units>/s</units>
<udunits>1/second</udunits>
<uiname>absVort</uiname>
<valid_range>-0.00999999977648</valid_range>
<valid_range>0.00999999977648</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>4</n3D>
<levelsDesc>MB 850 700 500 250</levelsDesc>
<levels>
<level>MB850</level>
<level>MB700</level>
<level>MB500</level>
<level>MB250</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>cp</short_name>
<long_name>convective precipitation</long_name>
<units>mm</units>
<udunits>millimeter</udunits>
<uiname>convPrecip</uiname>
<valid_range>0.0</valid_range>
<valid_range>1000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>gh</short_name>
<long_name>Geopotential height</long_name>
<units>m</units>
<udunits>meters</udunits>
<uiname>geoPotHt</uiname>
<valid_range>-2000.0</valid_range>
<valid_range>20000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>20</n3D>
<levelsDesc>MB 1000-50 by 50</levelsDesc>
<levels>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>pw</short_name>
<long_name>precipitable water</long_name>
<units>mm</units>
<udunits>millimeter</udunits>
<uiname>precipH2O</uiname>
<valid_range>0.0</valid_range>
<valid_range>300.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SIG 0&gt;100</levelsDesc>
<levels>
<level>SIG0100</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>bli</short_name>
<long_name>Best lifted index</long_name>
<units>K</units>
<udunits>degree_Kelvin</udunits>
<uiname>bestLftInd</uiname>
<valid_range>-20.0</valid_range>
<valid_range>50.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SIG 84&gt;98</levelsDesc>
<levels>
<level>SIG8498</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>staticCoriolis</short_name>
<long_name>Coriolis parameter</long_name>
<units>/s</units>
<fillValue>-99999.0</fillValue>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>rh</short_name>
<long_name>Relative Humidity</long_name>
<units>%</units>
<udunits>percent</udunits>
<uiname>rh</uiname>
<valid_range>0.0</valid_range>
<valid_range>100.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>21</n3D>
<levelsDesc>SIG 9823 MB 1000-50 by 50 SIG 47&gt;100</levelsDesc>
<levels>
<level>SIG9823</level>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
<level>SIG47100</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>sli</short_name>
<long_name>Surface lifted index</long_name>
<units>K</units>
<udunits>degree_Kelvin</udunits>
<uiname>LftInd</uiname>
<valid_range>-20.0</valid_range>
<valid_range>20.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>MB 50&gt;100</levelsDesc>
<levels>
<level>MB50100</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>snd</short_name>
<long_name>snow depth</long_name>
<units>m</units>
<udunits>meters</udunits>
<uiname>snowDepth</uiname>
<valid_range>0.0</valid_range>
<valid_range>100.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>staticTopo</short_name>
<long_name>Topography</long_name>
<units>meters</units>
<fillValue>-99999.0</fillValue>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>pmsl</short_name>
<long_name>pressure at mean sea level</long_name>
<units>Pa</units>
<udunits>pascal</udunits>
<uiname>PMSL</uiname>
<valid_range>80000.0</valid_range>
<valid_range>110000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>MSL</levelsDesc>
<levels>
<level>MSL</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>uw</short_name>
<long_name>u wind component</long_name>
<units>m/s</units>
<udunits>meter/sec</udunits>
<uiname>uWind</uiname>
<valid_range>-150.0</valid_range>
<valid_range>150.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>21</n3D>
<levelsDesc>SIG 9823 MB 1000-50 by 50 FH 1829 2743 3658 TROP</levelsDesc>
<levels>
<level>SIG9823</level>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
<level>FH1829</level>
<level>FH2743</level>
<level>FH3658</level>
<level>TROP</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>st</short_name>
<long_name>soil temperature</long_name>
<units>K</units>
<udunits>degree_Kelvin</udunits>
<uiname>soilT</uiname>
<valid_range>0.0</valid_range>
<valid_range>1000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>BLS</levelsDesc>
<levels>
<level>BLS</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>p</short_name>
<long_name>pressure</long_name>
<units>Pa</units>
<udunits>pascal</udunits>
<uiname>atmP</uiname>
<valid_range>0.0</valid_range>
<valid_range>110000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>1</n3D>
<levelsDesc>SFC TROP</levelsDesc>
<levels>
<level>SFC</level>
<level>TROP</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>t</short_name>
<long_name>Temperature</long_name>
<units>K</units>
<udunits>degree_Kelvin</udunits>
<uiname>T</uiname>
<valid_range>180.0</valid_range>
<valid_range>330.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>21</n3D>
<levelsDesc>SIG 9823 MB 1000-50 by 50 FH 1829 2743 3658 TROP</levelsDesc>
<levels>
<level>SIG9823</level>
<level>MB1000</level>
<level>MB950</level>
<level>MB900</level>
<level>MB850</level>
<level>MB800</level>
<level>MB750</level>
<level>MB700</level>
<level>MB650</level>
<level>MB600</level>
<level>MB550</level>
<level>MB500</level>
<level>MB450</level>
<level>MB400</level>
<level>MB350</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
<level>MB50</level>
<level>FH1829</level>
<level>FH2743</level>
<level>FH3658</level>
<level>TROP</level>
</levels>
</gridParameterInfo>
</gridParamInfo>

View file

@ -1,84 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<gridParamInfo xmlns:ns2="group">
<valtimeMINUSreftime>
<fcst>21600</fcst>
<fcst>43200</fcst>
<fcst>64800</fcst>
<fcst>86400</fcst>
<fcst>108000</fcst>
<fcst>129600</fcst>
<fcst>151200</fcst>
<fcst>172800</fcst>
</valtimeMINUSreftime>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>staticTopo</short_name>
<long_name>Topography</long_name>
<units>meters</units>
<fillValue>-99999.0</fillValue>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>pvv</short_name>
<long_name>Pressure vertical velocity</long_name>
<units>Pa/s</units>
<udunits>pascal/second</udunits>
<uiname>Pvv</uiname>
<valid_range>-2.5</valid_range>
<valid_range>2.5</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>9</n3D>
<levelsDesc>MB 850 700 500 400 300 250 200 150 100</levelsDesc>
<levels>
<level>MB850</level>
<level>MB700</level>
<level>MB500</level>
<level>MB400</level>
<level>MB300</level>
<level>MB250</level>
<level>MB200</level>
<level>MB150</level>
<level>MB100</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>tp</short_name>
<long_name>total precipitation</long_name>
<units>mm</units>
<udunits>millimeter</udunits>
<uiname>totPrecip</uiname>
<valid_range>0.0</valid_range>
<valid_range>1000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>staticCoriolis</short_name>
<long_name>Coriolis parameter</long_name>
<units>/s</units>
<fillValue>-99999.0</fillValue>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>staticSpacing</short_name>
<long_name>Grid spacing</long_name>
<units>meters</units>
<fillValue>-99999.0</fillValue>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>cp</short_name>
<long_name>convective precipitation</long_name>
<units>mm</units>
<udunits>millimeter</udunits>
<uiname>convPrecip</uiname>
<valid_range>0.0</valid_range>
<valid_range>1000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>SFC</level>
</levels>
</gridParameterInfo>
</gridParamInfo>

View file

@ -1,4 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
REVISION HISTORY
Date Ticket# Engineer Description
04/17/2013 #1913 randerso Corrected level for SLI
-->
<gridParamInfo xmlns:ns2="group">
<valtimeMINUSreftime>
<fcst>0</fcst>
@ -457,9 +463,9 @@
<valid_range>20.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>SFC</levelsDesc>
<levelsDesc>MB 0&gt;500</levelsDesc>
<levels>
<level>SFC</level>
<level>MB0500</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">

View file

@ -17,7 +17,7 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.core.level;
package com.raytheon.uf.common.dataplugin.level.mapping;
import java.util.ArrayList;
import java.util.List;
@ -33,7 +33,6 @@ import com.raytheon.uf.common.dataplugin.level.LevelFactory;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
/**
* Class defines a database level
@ -46,6 +45,8 @@ import com.raytheon.uf.viz.core.exception.VizCommunicationException;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 11/16/2008 #3576 rjpeter Initial version
* 04/17/2013 #1913 randerso Moved to common
*
* </pre>
*
* @author rjpeter
@ -59,16 +60,16 @@ public class DatabaseLevelMapping {
.getHandler(DatabaseLevelMapping.class);
@XmlAttribute
private String levelName = null;
@XmlAttribute
private String levelOneValue = null;
private String unit = null;
@XmlAttribute
private String levelTwoValue = null;
@XmlAttribute
private String unit = null;
private String levelOneValue = null;
@XmlAttribute
private String levelName = null;
public String getLevelName() {
return levelName;
@ -102,7 +103,7 @@ public class DatabaseLevelMapping {
this.unit = unit;
}
public List<Level> getLevels() throws VizCommunicationException {
public List<Level> getLevels() throws CommunicationException {
String[] levelOneValues = new String[0];
String[] levelTwoValues = new String[0];
@ -145,16 +146,11 @@ public class DatabaseLevelMapping {
}
// handle any aliasing etc
try {
Level level = LevelFactory.getInstance().getLevel(levelName,
lvl1, lvl2, unit);
if (level != null) {
rval.add(level);
}
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
Level level = LevelFactory.getInstance().getLevel(levelName, lvl1,
lvl2, unit);
if (level != null) {
rval.add(level);
}
}
return rval;

View file

@ -18,7 +18,7 @@
* further licensing information.
**/
package com.raytheon.uf.viz.core.level;
package com.raytheon.uf.common.dataplugin.level.mapping;
import java.util.ArrayList;
import java.util.List;
@ -29,9 +29,9 @@ import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.serialization.ISerializableObject;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
/**
* Class defines a mapping from a display level to one or more database levels.
@ -46,6 +46,7 @@ import com.raytheon.uf.viz.core.exception.VizCommunicationException;
* 11/01/2007 #518 S.Manoj Initial version
* 11/16/2009 #3120 rjpeter Modifed to better integrate with level framework.
* 11/21/2009 #3576 rjpeter Added group
* 04/17/2013 #1913 randerso Moved to common
*
* &#064;author smanoj
* @version 1.0
@ -119,7 +120,7 @@ public class LevelMapping implements ISerializableObject {
this.databaseLevels = databaseLevels;
}
public List<Level> getLevels() throws VizCommunicationException {
public List<Level> getLevels() throws CommunicationException {
if (levelList == null) {
List<Level> levelList = new ArrayList<Level>();
for (DatabaseLevelMapping mapping : databaseLevels) {

View file

@ -17,7 +17,7 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.core.level;
package com.raytheon.uf.common.dataplugin.level.mapping;
import java.io.File;
import java.util.Collection;
@ -29,13 +29,13 @@ import java.util.Set;
import javax.xml.bind.JAXB;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.MasterLevel;
import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
/**
* Factory for getting level mappings
@ -49,15 +49,19 @@ import com.raytheon.uf.viz.core.exception.VizCommunicationException;
* ------------ ---------- ----------- --------------------------
* 11/16/2009 #3120 rjpeter Initial version
* 11/21/2009 #3576 rjpeter Added group capability
* 04/17/2013 #1913 randerso Moved to common
*
* &#064;author rjpeter
* @version 1.0
*/
public class LevelMappingFactory {
// TODO: this should move somewhere else
public static final String VOLUMEBROWSER_LEVEL_MAPPING_FILE = "volumebrowser/LevelMappingFile.xml";
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(LevelMappingFactory.class);
private static LevelMappingFactory instance = null;
private static Map<String, LevelMappingFactory> instanceMap = new HashMap<String, LevelMappingFactory>();
private Map<String, LevelMapping> keyToLevelMappings = new HashMap<String, LevelMapping>();
@ -69,16 +73,17 @@ public class LevelMappingFactory {
private Map<String, Map<MasterLevel, Set<Level>>> groupToMasterLevels = new HashMap<String, Map<MasterLevel, Set<Level>>>();
public synchronized static LevelMappingFactory getInstance() {
public synchronized static LevelMappingFactory getInstance(String filePath) {
LevelMappingFactory instance = instanceMap.get(filePath);
if (instance == null) {
instance = new LevelMappingFactory();
instance = new LevelMappingFactory(filePath);
instanceMap.put(filePath, instance);
}
return instance;
}
private LevelMappingFactory() {
File path = PathManagerFactory.getPathManager().getStaticFile(
"volumebrowser/LevelMappingFile.xml");
private LevelMappingFactory(String filePath) {
File path = PathManagerFactory.getPathManager().getStaticFile(filePath);
LevelMappingFile levelMapFile = null;
long start = System.currentTimeMillis();
try {
@ -115,7 +120,7 @@ public class LevelMappingFactory {
}
public LevelMapping getLevelMappingForLevel(Level level)
throws VizCommunicationException {
throws CommunicationException {
if (!levelToLevelMappingsInitialized) {
initializeLevelToLevelMappings();
}
@ -126,7 +131,7 @@ public class LevelMappingFactory {
return keyToLevelMappings.values();
}
public Set<Level> getAllLevels() throws VizCommunicationException {
public Set<Level> getAllLevels() throws CommunicationException {
if (!levelToLevelMappingsInitialized) {
initializeLevelToLevelMappings();
}
@ -134,15 +139,14 @@ public class LevelMappingFactory {
}
public Map<MasterLevel, Set<Level>> getLevelMapForGroup(String group)
throws VizCommunicationException {
throws CommunicationException {
if (!groupToMasterLevelsInitialized) {
initializeGroupToMasterLevels();
}
return groupToMasterLevels.get(group);
}
private void initializeLevelToLevelMappings()
throws VizCommunicationException {
private void initializeLevelToLevelMappings() throws CommunicationException {
for (LevelMapping mapping : keyToLevelMappings.values()) {
String group = mapping.getGroup();
@ -165,8 +169,7 @@ public class LevelMappingFactory {
levelToLevelMappingsInitialized = true;
}
private void initializeGroupToMasterLevels()
throws VizCommunicationException {
private void initializeGroupToMasterLevels() throws CommunicationException {
for (LevelMapping mapping : keyToLevelMappings.values()) {
String group = mapping.getGroup();
Map<MasterLevel, Set<Level>> masterLevels = null;

View file

@ -18,7 +18,7 @@
* further licensing information.
**/
package com.raytheon.uf.viz.core.level;
package com.raytheon.uf.common.dataplugin.level.mapping;
import java.util.ArrayList;
import java.util.List;
@ -44,6 +44,7 @@ import com.raytheon.uf.common.serialization.ISerializableObject;
* ------------ ---------- ----------- --------------------------
* 11/01/2007 #518 S.Manoj Initial version
* 11/16/2009 #3120 rjpeter Refactored to use factory and level mapping.
* 04/17/2013 #1913 randerso Moved to common
*
* @author smanoj
* @version 1.0
@ -56,7 +57,7 @@ public class LevelMappingFile implements ISerializableObject {
STANDARD, COMPOSITE, BINARY, XSECT, TSECT, VRTGPH, DIAGRAM, ALL, SURFACE
};
@XmlElements( { @XmlElement(name = "Level", type = LevelMapping.class) })
@XmlElements({ @XmlElement(name = "Level", type = LevelMapping.class) })
private List<LevelMapping> levelMappingFile;
public List<LevelMapping> getLevelMappingFile() {