Merge tag 'OB_15.1.1-12' into omaha_15.1.1

15.1.1-12


Former-commit-id: 8ab4f18b0d [formerly 31ae0154fe4ad36aefb84f0210ce72172a31a9c2]
Former-commit-id: 090c3102f8
This commit is contained in:
Steve Harris 2015-05-19 17:00:31 -05:00
commit a137d0e065
61 changed files with 1502 additions and 606 deletions

View file

@ -23,6 +23,8 @@ export DB_PORT=5432
# setup connection to qpid
export BROKER_ADDR=localhost
export BROKER_PORT=5672
export BROKER_HTTP=8180
# setup hdf5 connection if pypies is enabled
export PYPIES_SERVER=http://localhost:9582
@ -32,9 +34,9 @@ export PYPIES_SERVER=http://localhost:9582
export HTTP_PORT=9581
export HTTP_SERVER_PATH=/services
export HTTP_SERVER=http://localhost:${HTTP_PORT}${HTTP_SERVER_PATH}
export JMS_SERVER=tcp://${BROKER_ADDR}:5672
export JMS_SERVER=tcp://${BROKER_ADDR}:${BROKER_PORT}
export JMS_VIRTUALHOST=edex
export JMS_CONNECTIONS_URL=http://${BROKER_ADDR}:8180/api/v2/connection/${JMS_VIRTUALHOST}
export JMS_CONNECTIONS_URL=http://${BROKER_ADDR}:${BROKER_HTTP}/api/v2/connection/${JMS_VIRTUALHOST}
export RADAR_SERVER=tcp://localhost:8813
# set the AWIPS II shared directory

View file

@ -14,7 +14,7 @@
<!-- specify the connection to the broker (qpid) -->
<!-- MaxPrefetch set at 0, due to DataPool routers getting messages backed up behind long running tasks -->
<bean id="amqConnectionFactory" class="org.apache.qpid.client.AMQConnectionFactory">
<constructor-arg type="java.lang.String" value="amqp://guest:guest@/${JMS_VIRTUALHOST}?brokerlist='tcp://${BROKER_ADDR}?retries='9999'&amp;heartbeat='0'&amp;connecttimeout='5000'&amp;connectdelay='5000''&amp;maxprefetch='0'&amp;sync_publish='all'&amp;sync_ack='true'"/>
<constructor-arg type="java.lang.String" value="amqp://guest:guest@/${JMS_VIRTUALHOST}?brokerlist='${JMS_SERVER}?retries='9999'&amp;heartbeat='0'&amp;connecttimeout='5000'&amp;connectdelay='5000''&amp;maxprefetch='0'&amp;sync_publish='all'&amp;sync_ack='true'"/>
</bean>
<bean id="jmsPooledConnectionFactory" class="com.raytheon.uf.common.jms.JmsPooledConnectionFactory">

View file

@ -1,28 +1,14 @@
@echo OFF
REM Always use the System32 (64-bit) reg.exe.
SET REG_EXE=C:\Windows\System32\reg.exe
REM Determine where we are located.
SET CONTAINING_DIRECTORY=%~dp0
REM Prepare the environment.
REM Registry Query Variables.
SET A2_JAVA_REG="HKLM\Software\Raytheon\Runtime Environment\AWIPS II Java"
SET A2_PYTHON_REG="HKLM\Software\Raytheon\Runtime Environment\AWIPS II Python"
REM Determine where AWIPS II Java (the jre) is located.
%REG_EXE% QUERY %A2_JAVA_REG% /v JavaJreDirectory > NUL 2>&1
IF ERRORLEVEL 1 (echo ENVIRONMENT ERROR - Unable to find AWIPS II Java. && PAUSE && EXIT)
FOR /F "tokens=2* delims= " %%A IN (
'%REG_EXE% QUERY %A2_JAVA_REG% /v JavaJreDirectory') DO (
SET JavaJreDirectory=%%B)
REM Determine where AWIPS II Python is located.
%REG_EXE% QUERY %A2_PYTHON_REG% /v PythonInstallDirectory > NUL 2>&1
IF ERRORLEVEL 1 (echo ENVIRONMENT ERROR - Unable to find AWIPS II Python. && PAUSE && EXIT)
FOR /F "tokens=2* delims= " %%A IN (
'%REG_EXE% QUERY %A2_PYTHON_REG% /v PythonInstallDirectory') DO (
SET PythonInstallDirectory=%%B)
REM Location of AWIPS II Java (the jre).
SET JavaJreDirectory=C:\Program Files\Raytheon\AWIPS II\Java\jre7
REM Location of AWIPS II Python.
SET PythonInstallDirectory=C:\Program Files\Raytheon\AWIPS II\Python
REM Add Java and Python to the path.
SET Path=%PythonInstallDirectory%;%PythonInstallDirectory%\DLLs;%Path%
@ -36,9 +22,6 @@ SET PythonPath=%PythonInstallDirectory%;%PythonPath%
REM Eliminate variables that will no longer be used.
SET PythonInstallDirectory=
SET JavaJreDirectory=
SET REG_EXE=
SET A2_JAVA_REG=
SET A2_PYTHON_REG=
REM Determine where we will be logging to.
SET HOME_DIRECTORY=%USERPROFILE%

View file

@ -1,28 +1,14 @@
@echo OFF
REM Always use the System32 (64-bit) reg.exe.
SET REG_EXE=C:\Windows\System32\reg.exe
REM Determine where we are located.
SET CONTAINING_DIRECTORY=%~dp0
REM Prepare the environment.
REM Registry Query Variables.
SET A2_JAVA_REG="HKLM\Software\Raytheon\Runtime Environment\AWIPS II Java"
SET A2_PYTHON_REG="HKLM\Software\Raytheon\Runtime Environment\AWIPS II Python"
REM Determine where AWIPS II Java (the jre) is located.
%REG_EXE% QUERY %A2_JAVA_REG% /v JavaJreDirectory > NUL 2>&1
IF ERRORLEVEL 1 (echo ENVIRONMENT ERROR - Unable to find AWIPS II Java. && PAUSE && EXIT)
FOR /F "tokens=2* delims= " %%A IN (
'%REG_EXE% QUERY %A2_JAVA_REG% /v JavaJreDirectory') DO (
SET JavaJreDirectory=%%B)
REM Determine where AWIPS II Python is located.
%REG_EXE% QUERY %A2_PYTHON_REG% /v PythonInstallDirectory > NUL 2>&1
IF ERRORLEVEL 1 (echo ENVIRONMENT ERROR - Unable to find AWIPS II Python. && PAUSE && EXIT)
FOR /F "tokens=2* delims= " %%A IN (
'%REG_EXE% QUERY %A2_PYTHON_REG% /v PythonInstallDirectory') DO (
SET PythonInstallDirectory=%%B)
REM Location of AWIPS II Java (the jre).
SET JavaJreDirectory=C:\Program Files\Raytheon\AWIPS II\Java\jre7
REM Location of AWIPS II Python.
SET PythonInstallDirectory=C:\Program Files\Raytheon\AWIPS II\Python
REM Add Java and Python to the path.
SET Path=%PythonInstallDirectory%;%PythonInstallDirectory%\DLLs;%Path%
@ -39,9 +25,6 @@ SET PythonPath=%PythonInstallDirectory%;%PythonPath%
REM Eliminate variables that will no longer be used.
SET PythonInstallDirectory=
SET JavaJreDirectory=
SET REG_EXE=
SET A2_JAVA_REG=
SET A2_PYTHON_REG=
REM Determine where we will be logging to.
SET HOME_DIRECTORY=%USERPROFILE%

View file

@ -65,7 +65,8 @@ import com.raytheon.viz.avnconfig.AvnConfigConstants.triggerType;
* Feb 16, 2011 7878 rferrel Modifications to use ids.cfg file.
* Apr 08, 2011 8856 rferrel Can now make a new station's templates
* May 24, 2011 9060 rferrel Limit downloading of localization files.
* Aug 09, 2013 2033 mschenke Switched File.separator to IPathManager.SEPARATOR
* Aug 09, 2013 2033 mschenke Switched File.separator to IPathManager.SEPARATOR
* May 04, 2015 17417 yteng Get all sites from product
*
* </pre>
*
@ -299,13 +300,10 @@ public class TafSiteConfigIni implements ITafSiteConfig {
HierarchicalINIConfiguration config = getProductConfig(product);
if (config != null) {
config.setDelimiterParsingDisabled(true);
String sites = config.getString("sites.idents");
if (sites != null) {
String[] idents = config.getString("sites.idents").split(
"\\s*,\\s*", 0);
for (String id : idents) {
siteList.add(id);
String[] sites = config.getStringArray("sites.idents");
if (sites != null && sites.length > 0) {
for (String site : sites) {
siteList.add(site);
}
}
}

View file

@ -56,7 +56,8 @@
# ------------ ---------- ----------- --------------------------
# 12/02/2014 RM #625 ryu Changed checkGroup() as suggested to display models
# in multi-columns when a single column is insufficient.
#
# 04/16/2015 17390 ryu Replacing string.atoi with int for string/integer to integer conversion
# (ListBox.curselection() now returns ints instead of strings.)
# ----------------------------------------------------------------------------
#
MenuItems = ["Verify"]
@ -6629,7 +6630,7 @@ class Verif(BVDialog):
outlist=[]
itemnums=self.ForecasterListbox.curselection()
try:
itemnums=map(string.atoi,itemnums)
itemnums=map(int,itemnums)
except ValueError: pass
for itemnum in itemnums:
outlist.append(self.forecasterNumbers[itemnum])
@ -6805,7 +6806,7 @@ class Verif(BVDialog):
def getFromdayListbox(self):
itemnums=self.FromdayListbox.curselection()
try:
itemnums=map(string.atoi,itemnums)
itemnums=map(int,itemnums)
except ValueError: pass
itemnum=itemnums[0]
outdate=self.gridDays[itemnum]
@ -6818,7 +6819,7 @@ class Verif(BVDialog):
outlist=[]
itemnums=self.DaylistListbox.curselection()
try:
itemnums=map(string.atoi,itemnums)
itemnums=map(int,itemnums)
except ValueError: pass
for itemnum in itemnums:
outlist.append(self.gridDays[itemnum])
@ -7792,7 +7793,7 @@ class Verif(BVDialog):
outlist=[]
itemnums=listbox.curselection()
try:
itemnums=map(string.atoi,itemnums)
itemnums=map(int,itemnums)
except ValueError: pass
for itemnum in itemnums:
outlist.append(listbox.get(itemnum))

View file

@ -26,7 +26,6 @@ import JUtil, VarDictGroker
import RedirectLogging
import UFStatusHandler
from java.io import File
#
# Runs the text formatter to generate text products
#
@ -38,7 +37,12 @@ from java.io import File
# ------------ ---------- ----------- --------------------------
# 05/29/08 njensen Initial Creation.
# 12/10/14 #14946 ryu Add getTimeZones() function.
# 04/16/15 #14946 ryu Fix getTimeZones to return the office TZ if timezone
# is not set for any zone in a segment.
# 04/20/2015 #4027 randerso Fixes for formatter autotests
# 05/06/2015 #4467 randerso Convert to upper case before writing to files if
# mixed case is not enabled for the product.
# Cleaned up file writing code
#
#
@ -103,6 +107,33 @@ def executeFromJava(databaseID, site, username, dataMgr, forecastList, logFile,
RedirectLogging.restore()
return forecasts
def getPid(forecast):
# taken from ProductParser.py
import re
sl = r'^' # start of line
el = r'\s*?\n' # end of line
id3 = r'[A-Za-z]{3}' # 3 charater word
empty = r'^\s*' + el # empty line
wmoid = r'(?P<wmoid>[A-Z]{4}\d{2})' # wmoid
fsid = r'(?P<fsid>[A-Z]{4})' # full station id
pit = r'(?P<pit>\d{6})' # product issuance time UTC
ff = r'(?P<funnyfield> ' + id3 + ')?' # "funny" field
# CI block
ci_start = sl + wmoid + ' ' + fsid + ' ' + pit + ff + el
awipsid = r'(?P<pil>(?P<cat>[A-Z0-9]{3})(?P<lid>[A-Z0-9]{1,3}))' + el
ci_block = r'(?P<ciblock>' + ci_start + awipsid + '\n?)'
ci_re = re.compile(ci_block)
pid = None
m = ci_re.search(forecast)
if m is not None:
pid = m.group('cat')
return pid
def runFormatter(databaseID, site, forecastList, cmdLineVarDict, vtecMode,
username, dataMgr, serverFile=None,
@ -232,16 +263,31 @@ def runFormatter(databaseID, site, forecastList, cmdLineVarDict, vtecMode,
# For each Forecast Type,
# Create generate forecast
forecasts = ""
forecasts = "" # returned value
outForecasts = "" # written to output files
for forecastType in forecastList:
forecast = formatter.getForecast(forecastType, argDict)
forecasts = forecasts + forecast
# Convert data written to files to upper case if required
mixedCase = False
pid = getPid(forecast)
if pid is None:
logger.warning("Unable to determine PID: defaulting to upper case")
else:
from com.raytheon.uf.common.dataplugin.text.db import MixedCaseProductSupport
mixedCase = MixedCaseProductSupport.isMixedCase(pid)
if mixedCase:
outForecasts = outForecasts + forecast
else:
outForecasts = outForecasts + forecast.upper()
logger.info("Text:\n" + str(forecasts))
try:
outputFile = argDict["outputFile"]
success = writeToFile(forecasts, outputFile, "w")
success = writeToFile(outForecasts, outputFile, "w")
if success == 0:
print "Couldn't open output file", outputFile
logger.error("Couldn't open output file: ", outputFile)
@ -251,7 +297,7 @@ def runFormatter(databaseID, site, forecastList, cmdLineVarDict, vtecMode,
try:
outputFile = argDict["serverOutputFile"]
success = writeToFile(forecasts, outputFile, "w")
success = writeToFile(outForecasts, outputFile, "w")
if success == 0:
print "Couldn't open output file", outputFile
logger.error("Couldn't open output file: ", outputFile)
@ -262,7 +308,7 @@ def runFormatter(databaseID, site, forecastList, cmdLineVarDict, vtecMode,
try:
appendFile = argDict["appendFile"]
success = writeToFile(forecasts, appendFile, "a")
success = writeToFile(outForecasts, appendFile, "a")
if success == 0:
print "Couldn't open append file", appendFile
logger.error("Couldn't write to append file: ", appendFile)
@ -273,7 +319,7 @@ def runFormatter(databaseID, site, forecastList, cmdLineVarDict, vtecMode,
try:
serverFile = argDict["serverFile"]
writeToSite = (username == "SITE")
success = writeToServerFile(forecasts, serverFile, writeToSite)
success = writeToServerFile(outForecasts, serverFile, writeToSite)
if success == 0:
print "Couldn't open server output file", serverFile
logger.error("Couldn't open server output file: ", serverFile)
@ -281,6 +327,8 @@ def runFormatter(databaseID, site, forecastList, cmdLineVarDict, vtecMode,
except:
pass
del outForecasts
# Remove any lat/lon areas created temporarily
#global LatLonIds
#argDict["ifpClient"].deleteReferenceData(LatLonIds)
@ -307,29 +355,37 @@ def getAbsTime(timeStr):
return AbsTime.absTimeYMD(year, month, day, hour, minute)
def writeToFile(forecasts, outputFile, mode):
if not outputFile is None and outputFile != "":
outfile = open(outputFile, mode)
os.chmod(outputFile, 0644)
if outfile is None:
if outputFile:
logger.info("Writing forecast to " + outputFile)
try:
with open(outputFile, mode) as outfile:
outfile.write(forecasts)
os.chmod(outputFile, 0644)
except:
logger.exception("Error writing forecast to "+outputFile)
return 0
else:
outfile.write(forecasts)
outfile.close()
return 1
def writeToServerFile(forecasts, outputFile, writeToSite):
if not outputFile is None and outputFile != "":
if writeToSite:
ctx = PATH_MGR.getContext(LocalizationType.COMMON_STATIC, LocalizationLevel.SITE)
else:
ctx = PATH_MGR.getContext(LocalizationType.COMMON_STATIC, LocalizationLevel.USER)
filePath = File.separatorChar.join(["gfe", "text", "PRODGEN", outputFile + ".PRODGEN"])
lFile = PATH_MGR.getLocalizationFile(ctx, filePath)
javaFile = lFile.getFile()
outfile = open(javaFile.getAbsolutePath(), 'w')
outfile.write(forecasts)
outfile.close()
return lFile.save()
if outputFile:
try:
if writeToSite:
ctx = PATH_MGR.getContext(LocalizationType.COMMON_STATIC, LocalizationLevel.SITE)
else:
ctx = PATH_MGR.getContext(LocalizationType.COMMON_STATIC, LocalizationLevel.USER)
filePath = PATH_MGR.SEPARATOR.join(["gfe", "text", "PRODGEN", outputFile + ".PRODGEN"])
lFile = PATH_MGR.getLocalizationFile(ctx, filePath)
logger.info("Writing forecast to " + str(lFile))
from LockingFile import File
with File(lFile.getFile(), "", 'w') as outfile:
outfile.write(forecasts)
return lFile.save()
except:
logger.exception("Error writing forecast to " + str(lFile))
return 0
return 1
def getScripts(paths, nameMap, definitionMap):
@ -441,19 +497,18 @@ def getTimeZones(zones, officeTZ):
timezones = []
if zones is not None:
for zone in JUtil.javaStringListToPylist(zones):
area_dict = AreaDictionary.AreaDictionary.get(zone)
if area_dict is None:
continue
tzs = area_dict.get("ugcTimeZone")
if tzs is not None:
if type(tzs) is str:
tzs = [tzs]
for tz in tzs:
if tz not in timezones:
timezones.append(tz)
zdict = AreaDictionary.AreaDictionary.get(zone, {})
tzs = zdict.get("ugcTimeZone", [])
if type(tzs) is str:
tzs = [tzs]
for tz in tzs:
if tz not in timezones:
timezones.append(tz)
if officeTZ in timezones and officeTZ != timezones[0]:
timezones.remove(officeTZ)
timezones.insert(0, officeTZ)
if len(timezones) == 0:
timezones.append(officeTZ)
return JUtil.pylistToJavaStringList(timezones)
def reloadModule(moduleName):

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<WEGroup name="NWPS">
<WEItem relativeCycleNumber="0" parmID="WaveHeight_SFC:xxx_GRID__nwpsCG1_00000000_0000"/>
<WEItem relativeCycleNumber="0" parmID="Period_SFC:xxx_GRID__nwpsCG1_00000000_0000"/>
<WEItem relativeCycleNumber="0" parmID="SwanSwell_SFC:xxx_GRID__nwpsCG1_00000000_0000"/>
</WEGroup>

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<WEGroup name="nwpsTrackingCG0">
<WEItem parmID="Period1_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Period2_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Period3_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Period4_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Period5_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Period6_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Period7_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Period8_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Period9_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Period10_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Wave1_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Wave2_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Wave3_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Wave4_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Wave5_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Wave6_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Wave7_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Wave8_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Wave9_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
<WEItem parmID="Wave10_SFC:xxx_GRID__nwpsTrkngCG0_20150207_0600" relativeCycleNumber="0"/>
</WEGroup>

View file

@ -19,7 +19,10 @@
further_licensing_information.
-->
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<contribute xsi:type="menuItem" menuText="Cloud Cover" key="CCP" indentText="false" />
<contribute xsi:type="menuItem" menuText="Cloud Cover Anl Uncertainty" key="CCPerranl" indentText="false" />
<contribute xsi:type="menuItem" menuText="Visibility" key="Vis" indentText="false" />
<contribute xsi:type="menuItem" menuText="Visibility Anl Uncertainty" key="Viserranl" indentText="false" />
<contribute xsi:type="menuItem" menuText="Turbulence" key="TURB" indentText="false" />
<contribute xsi:type="menuItem" menuText="Turbulence Index" key="TPFI" indentText="false" />
<contribute xsi:type="menuItem" menuText="Icing Probability" key="ICPRB" indentText="false" />

View file

@ -35,7 +35,9 @@ import javax.jms.Session;
import com.raytheon.uf.common.dataplugin.text.request.InsertStdTextProductRequest;
import com.raytheon.uf.common.serialization.SerializationUtil;
import com.raytheon.uf.common.status.IPerformanceStatusHandler;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.PerformanceStatus;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.comm.JMSConnection;
@ -60,6 +62,7 @@ import com.raytheon.viz.texteditor.util.SiteAbbreviationUtil;
* 02Aug2010 2187 cjeanbap Update variable/method signature to be consistent.
* 04Oct2010 7193 cjeanbap Add time-to-live value to MessageProducer.
* Sep 13, 2013 2368 rjpeter Set delivery mode to PERSISTENT.
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* </pre>
*
* @author mschenke
@ -70,6 +73,9 @@ public class WarningSender implements IWarngenObserver {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(WarningSender.class);
private static final IPerformanceStatusHandler perfLog = PerformanceStatus
.getHandler("WG:");
private final String hostName = null;
private boolean notifyError;
@ -105,8 +111,8 @@ public class WarningSender implements IWarngenObserver {
long t0 = System.currentTimeMillis();
String siteNode = SiteAbbreviationUtil.getSiteNode(LocalizationManager
.getInstance().getCurrentSite());
statusHandler.debug("Get site node time: "
+ (System.currentTimeMillis() - t0));
perfLog.logDuration("Get site node time",
System.currentTimeMillis() - t0);
if (host == null) {
statusHandler.handle(Priority.ERROR,
"Text Workstation host not set in preferences.");
@ -144,7 +150,7 @@ public class WarningSender implements IWarngenObserver {
m.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
mp.send(m);
long t1 = System.currentTimeMillis();
statusHandler.debug(id + " sent to text workstation in "
perfLog.log(id + " sent to text workstation in "
+ (t1 - t0) + "ms in " + (connectCount + 1)
+ (connectCount > 0 ? " tries" : " try"));
messageNotSent = false;
@ -260,8 +266,8 @@ public class WarningSender implements IWarngenObserver {
ThriftClient.sendRequest(new InsertStdTextProductRequest(id, warning,
operationalMode));
statusHandler.debug(id + " saved to textdb in "
+ (System.currentTimeMillis() - t0) + "ms");
perfLog.logDuration(id + " save to textdb",
System.currentTimeMillis() - t0);
}
public static String getCurTimeString() {

View file

@ -27,6 +27,8 @@ import com.raytheon.uf.common.geospatial.ISpatialQuery.SearchMode;
import com.raytheon.uf.common.geospatial.SpatialException;
import com.raytheon.uf.common.geospatial.SpatialQueryFactory;
import com.raytheon.uf.common.geospatial.SpatialQueryResult;
import com.raytheon.uf.common.status.IPerformanceStatusHandler;
import com.raytheon.uf.common.status.PerformanceStatus;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.maps.rsc.DbMapQueryFactory;
import com.raytheon.viz.core.map.GeoUtil;
@ -53,6 +55,7 @@ import com.vividsolutions.jts.geom.Point;
* Feb 12, 2013 1600 jsanchez Used adjustAngle method from AbstractStormTrackResource.
* Mar 5, 2013 1600 jsanchez Used AdjustAngle instead of AbstractStormTrackResource to handle angle adjusting.
* Mar 26, 2013 1819 jsanchez Allowed points to be not be based on point source inclusion constraints.
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
*
* </pre>
*
@ -61,6 +64,9 @@ import com.vividsolutions.jts.geom.Point;
*/
abstract public class AbstractDbSourceDataAdaptor {
private static final IPerformanceStatusHandler perfLog = PerformanceStatus
.getHandler("WG:");
private static final String transformedKey = "com.raytheon.transformed";
private static final String GEOM_FIELD = "the_geom";
@ -176,8 +182,8 @@ abstract public class AbstractDbSourceDataAdaptor {
ptFields.toArray(new String[ptFields.size()]),
searchArea, filter, SearchMode.INTERSECTS);
}
System.out.println("Retrieve location data for '" + pointSource
+ "' = " + (System.currentTimeMillis() - t0));
perfLog.logDuration("Retrieve location data for '" + pointSource + "'",
System.currentTimeMillis() - t0);
} catch (SpatialException e) {
throw new VizException("Error querying " + pointSource + " table: "
+ e.getLocalizedMessage(), e);

View file

@ -44,7 +44,9 @@ import com.raytheon.uf.common.geospatial.ISpatialQuery.SearchMode;
import com.raytheon.uf.common.geospatial.SpatialException;
import com.raytheon.uf.common.geospatial.SpatialQueryFactory;
import com.raytheon.uf.common.geospatial.SpatialQueryResult;
import com.raytheon.uf.common.status.IPerformanceStatusHandler;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.PerformanceStatus;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.exception.VizException;
@ -87,6 +89,7 @@ import com.vividsolutions.jts.geom.prep.PreparedGeometry;
* Sep 14, 2014 ASM #641 dhuffman Filtered out cases where Areas do not match Zones by using
* refactored WarngenLayer::filterArea.
* Mar 9, 2014 ASM #17190 D. Friedman Use fipsField and areaField for unique area ID.
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* </pre>
*
* @author chammack
@ -96,6 +99,9 @@ public class Area {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(Area.class);
private static final IPerformanceStatusHandler perfLog = PerformanceStatus
.getHandler("WG:");
/**
* If an area greater than this percentage of the area is covered, no
* direction is included
@ -167,6 +173,7 @@ public class Area {
// Query for points within polygon
SpatialQueryResult[] ptFeatures = null;
long t0 = System.currentTimeMillis();
if (pointField != null) {
try {
ptFeatures = SpatialQueryFactory.create().query(pointSource,
@ -177,6 +184,8 @@ public class Area {
e);
}
}
perfLog.logDuration("affected areas '" + areaConfig.getVariable()
+ "' spatial query", System.currentTimeMillis() - t0);
Abbreviation abbreviation = null;
@ -194,6 +203,7 @@ public class Area {
List<String> uniqueAreaIDs = new ArrayList<String>();
List<AffectedAreas> areas = new ArrayList<AffectedAreas>();
long t0f = System.currentTimeMillis();
for (GeospatialData regionFeature : countyMap.values()) {
Geometry regionGeom = regionFeature.geometry;
PreparedGeometry preparedRegionGeom = regionFeature.prepGeom;
@ -284,6 +294,8 @@ public class Area {
areas.add(area);
}
}
perfLog.logDuration("affected areas '" + areaConfig.getVariable()
+ "' features", System.currentTimeMillis() - t0f);
// Perform Sort
if (fields.size() > 0) {

View file

@ -54,6 +54,7 @@ import com.vividsolutions.jts.geom.LinearRing;
import com.vividsolutions.jts.geom.Point;
import com.vividsolutions.jts.geom.Polygon;
import com.vividsolutions.jts.geom.PrecisionModel;
import com.vividsolutions.jts.geom.TopologyException;
import com.vividsolutions.jts.geom.prep.PreparedGeometry;
import com.vividsolutions.jts.geom.prep.PreparedGeometryFactory;
import com.vividsolutions.jts.precision.SimpleGeometryPrecisionReducer;
@ -89,6 +90,9 @@ import com.vividsolutions.jts.precision.SimpleGeometryPrecisionReducer;
* 06/27/2014 DR 17443 D. Friedman Fix some odd cases in which parts of a polygon not covering a
* hatched area would be retained after redrawing.
* 07/22/2014 DR 17475 Qinglu Lin Updated createPolygonByPoints() and created second createPolygonByPoints().
* 04/29/2015 DR 17310 D. Friedman Use Geometry.buffer() to fix self-intersections. Fix bug in alterVertexes.
* 05/07/2015 DR 17438 D. Friedman Clean up debug and performance logging.
* 05/08/2015 DR 17310 D. Friedman Prevent reducePoints from generating invalid polygons.
* </pre>
*
* @author mschenke
@ -543,12 +547,27 @@ public class PolygonUtil {
GeometryFactory gf = new GeometryFactory();
points.add(new Coordinate(points.get(0)));
truncate(points, 2);
Polygon rval = gf.createPolygon(gf.createLinearRing(points
.toArray(new Coordinate[points.size()])), null);
if (!rval.isValid()) {
statusHandler.handle(Priority.DEBUG, String.format(
"Polygon %s is invalid. Attempting to fix...", rval));
String resultMessage = null;
try {
Polygon p2 = (Polygon) rval.buffer(0.0);
rval = gf.createPolygon((LinearRing) p2.getExteriorRing());
resultMessage = String.format(" ...fixed. Result: %s", rval);
} catch (TopologyException e) {
resultMessage = " ...fix failed";
} catch (ClassCastException e) {
resultMessage = " ...resulted in something other than a polygon";
}
statusHandler.handle(Priority.DEBUG, resultMessage);
}
if (rval.isValid() == false) {
System.out.println("Fixing intersected segments");
statusHandler.handle(Priority.DEBUG, "Fixing intersected segments");
Coordinate[] coords = rval.getCoordinates();
adjustVertex(coords);
PolygonUtil.round(coords, 2);
@ -799,6 +818,7 @@ public class PolygonUtil {
int npts = pts.length;
double xavg = 0, yavg = 0;
int[] yesList = new int[npts];
boolean[] excludeList = new boolean[npts];
int nyes = 0;
int k, k1, k2, kn, y, simple;
double bigDis, maxDis, dis, dx, dy, dx0, dy0, bas;
@ -863,6 +883,8 @@ public class PolygonUtil {
k = 0;
if (k == k2)
break;
if (excludeList[k])
continue;
dx = pts[k].x - pts[k1].x;
dy = pts[k].y - pts[k1].y;
dis = dx * dx0 + dy * dy0;
@ -870,6 +892,8 @@ public class PolygonUtil {
dis = -dis;
else
dis -= bas;
double newMaxDis = maxDis;
int newSimple = simple;
if (dis <= 0) {
if (simple == 0)
continue;
@ -877,15 +901,30 @@ public class PolygonUtil {
if (dis < 0)
dis = -dis;
} else if (simple != 0)
maxDis = simple = 0;
if (dis < maxDis)
newMaxDis = newSimple = 0;
if (dis < newMaxDis) {
maxDis = newMaxDis;
continue;
}
if (! checkReducePointsValid(pts, yesList, nyes, k)) {
excludeList[k] = true;
continue;
}
simple = newSimple;
maxDis = dis;
kn = k;
}
k1 = k2;
}
Arrays.fill(excludeList, false);
if (kn < 0) {
statusHandler.debug(
String.format("reducePoints(..., %d): Unable to find a valid point\npoints: %s",
maxNpts, points));
break;
}
if (simple != 0 && nyes > 2) {
if (maxDis * 40 < bigDis)
break;
@ -909,6 +948,24 @@ public class PolygonUtil {
points.addAll(Arrays.asList(Arrays.copyOf(pts, npts)));
}
private boolean checkReducePointsValid(Coordinate[] pts, int[] yesList, int nyes, int k) {
Coordinate[] verts = new Coordinate[nyes + 2];
int vi = 0;
for (int i = 0; i < nyes; ++i) {
if (k >= 0 && k < yesList[i]) {
verts[vi++] = pts[k];
k = -1;
}
verts[vi++] = pts[yesList[i]];
}
if (k >= 0) {
verts[vi++] = pts[k];
}
verts[verts.length - 1] = new Coordinate(verts[0]);
GeometryFactory gf = new GeometryFactory();
return gf.createPolygon(verts).isValid();
}
/**
* A1 ported point reduction method 2
*
@ -1675,8 +1732,8 @@ public class PolygonUtil {
if (intersectCoord != null) {
index1 = calcShortestDistance(intersectCoord, ls1);
index2 = calcShortestDistance(intersectCoord, ls2);
Coordinate c = new Coordinate(0.5*(coord[index1].x + coord[2+index2].x),
0.5*(coord[index1].y + coord[2+index2].y));
Coordinate c = new Coordinate(0.5*(coord[index[index1]].x + coord[index[2+index2]].x),
0.5*(coord[index[index1]].y + coord[index[2+index2]].y));
PolygonUtil.round(c, 2);
coord[index[index1]] = new Coordinate(c);
coord[index[2+index2]] = new Coordinate(c);

View file

@ -51,7 +51,9 @@ import com.raytheon.uf.common.dataquery.requests.DbQueryRequest;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
import com.raytheon.uf.common.dataquery.responses.DbQueryResponse;
import com.raytheon.uf.common.status.IPerformanceStatusHandler;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.PerformanceStatus;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.util.TimeUtil;
@ -86,6 +88,7 @@ import com.vividsolutions.jts.geom.Polygon;
* extension of a watch to counties which are of same/different fe_area.
* Sep 25, 2014 ASM #16783 D. Friedman Do not use VTEC action to determine Watch uniqueness.
* Apr 28, 2015 RODO #4027 randerso Expunged Calendar from ActiveTableRecord
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* </pre>
*
* @author jsanchez
@ -96,6 +99,9 @@ public class WatchUtil {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(WatchUtil.class);
private static final IPerformanceStatusHandler perfLog = PerformanceStatus
.getHandler("WG:");
private static final UnitConverter milesToKilometer = NonSI.MILE
.getConverterTo(SI.KILOMETER);
@ -230,8 +236,8 @@ public class WatchUtil {
Polygon watchArea = (Polygon) warningPolygon
.buffer(milesToKilometer.convert(watchAreaBuffer)
/ KmToDegrees);
System.out.println("create watch area buffer time: "
+ (System.currentTimeMillis() - t0));
perfLog.logDuration("Create watch area buffer time",
System.currentTimeMillis() - t0);
HashSet<String> validUgcZones = new HashSet<String>(
warngenLayer.getUgcsForWatches(watchArea,
GeoFeatureType.COUNTY));

View file

@ -64,7 +64,9 @@ import com.raytheon.uf.common.geospatial.ISpatialQuery.SearchMode;
import com.raytheon.uf.common.geospatial.MapUtil;
import com.raytheon.uf.common.geospatial.SpatialQueryFactory;
import com.raytheon.uf.common.geospatial.SpatialQueryResult;
import com.raytheon.uf.common.status.IPerformanceStatusHandler;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.PerformanceStatus;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.exception.VizException;
@ -118,6 +120,7 @@ import com.vividsolutions.jts.geom.Point;
* Dec 4, 2013 2604 jsanchez Refactored GisUtil.
* Apr 29, 2014 3033 jsanchez Updated method to retrieve files in localization.
* Jun 17, 2014 DR 17390 Qinglu Lin Updated getClosestPoints().
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* </pre>
*
* @author chammack
@ -127,6 +130,9 @@ public class Wx {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(Wx.class);
private static final IPerformanceStatusHandler perfLog = PerformanceStatus
.getHandler("WG:");
private long wwaStopTime;
private long wwaStartTime;
@ -531,8 +537,8 @@ public class Wx {
pathcasts.remove(pathcasts.size() - 1);
}
System.out.println("Time to get pathcast = "
+ (System.currentTimeMillis() - t0) + "ms");
perfLog.logDuration("Get pathcast",
System.currentTimeMillis() - t0);
return pathcasts.toArray(new PathCast[pathcasts.size()]);
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM,
@ -608,8 +614,8 @@ public class Wx {
+ variable + "'", t);
}
}
System.out.println("Time to get closestPoints = "
+ (System.currentTimeMillis() - t0) + "ms");
perfLog.logDuration("Get closestPoints",
System.currentTimeMillis() - t0);
return pointsMap;
}
@ -729,8 +735,8 @@ public class Wx {
localizedSite));
}
long t1 = System.currentTimeMillis();
System.out.println("getClosestPoint.dbQuery took " + (t1 - t0)
+ " for point source " + pointConfig.getPointSource());
perfLog.logDuration("getClosestPoints.dbQuery for point source "
+ pointConfig.getPointSource(), t1 - t0);
}
// Convert searchArea to a local projection

View file

@ -67,7 +67,9 @@ import com.raytheon.uf.common.dataplugin.warning.WarningRecord.WarningAction;
import com.raytheon.uf.common.dataplugin.warning.config.BulletActionGroup;
import com.raytheon.uf.common.dataplugin.warning.config.DamInfoBullet;
import com.raytheon.uf.common.dataplugin.warning.config.WarngenConfiguration;
import com.raytheon.uf.common.status.IPerformanceStatusHandler;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.PerformanceStatus;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.SimulatedTime;
@ -159,6 +161,11 @@ import com.vividsolutions.jts.geom.Polygon;
* Jul 01, 2014 DR 17450 D. Friedman Use list of templates from backup site.
* Jul 21, 2014 3419 jsanchez Created a hidden button to make recreating polygons easier.
* Feb 26, 2015 3353 rjpeter Fixed NPE on clear.
* Apr 27, 2015 DR 17359 Qinglu Lin Updated changeTemplate(). The approach for solving slowness issue while switching from
* one marine product to another is to skip computing hatching area. The hatching area might
* not be as expected if percentage/area is different between the two products. But the
* chance for that to occur is trivial.
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* </pre>
*
* @author chammack
@ -169,6 +176,9 @@ public class WarngenDialog extends CaveSWTDialog implements
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(WarngenDialog.class);
private static final IPerformanceStatusHandler perfLog = PerformanceStatus
.getHandler("WG:");
/*
* This flag allows a hidden button to appear to help recreating warning
* polygons that had issues in the feed.
@ -1111,6 +1121,7 @@ public class WarngenDialog extends CaveSWTDialog implements
* Action for OK button
*/
private void okPressed() {
final long t0okPressed = System.currentTimeMillis();
if (checkDamSelection() == false) {
return;
} else if (warngenLayer.getWarningArea() == null) {
@ -1165,9 +1176,9 @@ public class WarngenDialog extends CaveSWTDialog implements
@Override
public void run(IProgressMonitor monitor)
throws InvocationTargetException, InterruptedException {
long t0 = System.currentTimeMillis();
try {
monitor.beginTask("Generating product", 1);
long t0 = System.currentTimeMillis();
String result = TemplateRunner.runTemplate(
warngenLayer, startTime.getTime(),
endTime.getTime(), selectedBullets,
@ -1178,8 +1189,6 @@ public class WarngenDialog extends CaveSWTDialog implements
while (m.find()) {
totalSegments++;
}
System.out.println("Time to run template = "
+ (System.currentTimeMillis() - t0));
} catch (Exception e) {
statusHandler.handle(
Priority.PROBLEM,
@ -1187,19 +1196,23 @@ public class WarngenDialog extends CaveSWTDialog implements
+ e.getLocalizedMessage(), e);
} finally {
monitor.done();
perfLog.logDuration("Run template",
System.currentTimeMillis() - t0);
perfLog.logDuration("click to finish template",
System.currentTimeMillis() - t0okPressed);
}
}
});
System.out.println(WarningSender.getCurTimeString()
+ ": Creating Transmitting Warning Job");
statusHandler.handle(Priority.DEBUG,
"Creating Transmitting Warning Job");
new Job("Transmitting Warning") {
@Override
protected IStatus run(IProgressMonitor monitor) {
System.out.println(WarningSender.getCurTimeString()
+ ": Transmitting Warning Job Running");
statusHandler.debug(
": Transmitting Warning Job Running");
// Launch the text editor display as the warngen editor
// dialog using the result aka the warngen text product.
@ -1218,6 +1231,8 @@ public class WarngenDialog extends CaveSWTDialog implements
"Error sending warning: "
+ e.getLocalizedMessage(), e);
}
perfLog.logDuration("click to finish sending",
System.currentTimeMillis() - t0okPressed);
return Status.OK_STATUS;
}
}.schedule();
@ -1657,14 +1672,17 @@ public class WarngenDialog extends CaveSWTDialog implements
.equalsIgnoreCase(lastAreaSource);
boolean snapHatchedAreaToPolygon = isDifferentAreaSources;
boolean preservedSelection = !isDifferentAreaSources;
// If template has a different hatched area source from the previous
// template, then the warned area would be based on the polygon and not
// preserved.
try {
warngenLayer.updateWarnedAreas(snapHatchedAreaToPolygon,
preservedSelection);
} catch (VizException e1) {
statusHandler.handle(Priority.PROBLEM, "WarnGen Error", e1);
if (isDifferentAreaSources || !warngenLayer.getConfiguration()
.getHatchedAreaSource().getAreaSource().toLowerCase().equals("marinezones")) {
// If template has a different hatched area source from the previous
// template, then the warned area would be based on the polygon and not
// preserved.
try {
warngenLayer.updateWarnedAreas(snapHatchedAreaToPolygon,
preservedSelection);
} catch (VizException e1) {
statusHandler.handle(Priority.PROBLEM, "WarnGen Error", e1);
}
}
// Properly sets the "Create Text" button.
setInstructions();

View file

@ -81,7 +81,9 @@ import com.raytheon.uf.common.jms.notification.INotificationObserver;
import com.raytheon.uf.common.jms.notification.NotificationException;
import com.raytheon.uf.common.jms.notification.NotificationMessage;
import com.raytheon.uf.common.site.SiteMap;
import com.raytheon.uf.common.status.IPerformanceStatusHandler;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.PerformanceStatus;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
@ -236,6 +238,8 @@ import com.vividsolutions.jts.io.WKTReader;
* 02/09/2015 3954 dlovely Only draw "W" if the county is displayed.
* 02/25/2014 3353 rjpeter Fix synchronized use case, updated to not create dialog before init is finished.
* 04/24/2015 ASM #17394 D. Friedman Fix geometries that become invalid in local coordinate space.
* 05/07/2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* 05/08/2015 ASM #17310 D. Friedman Log input polygon when output of AreaHatcher is invalid.
* </pre>
*
* @author mschenke
@ -246,6 +250,9 @@ public class WarngenLayer extends AbstractStormTrackResource {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(WarngenLayer.class);
private static final IPerformanceStatusHandler perfLog = PerformanceStatus
.getHandler("WG:");
String uniqueFip = null;
String backupOfficeShort = null;
@ -490,9 +497,11 @@ public class WarngenLayer extends AbstractStormTrackResource {
}
if ((warningArea != null) && (warningPolygon != null)) {
long t0 = System.currentTimeMillis();
Polygon inputWarningPolygon = warningPolygon;
Polygon outputHatchedArea = null;
Geometry outputHatchedWarningArea = null;
String adjustmentMessage = null;
try {
warningPolygon = PolygonUtil
.removeDuplicateCoordinate(warningPolygon);
@ -512,11 +521,12 @@ public class WarngenLayer extends AbstractStormTrackResource {
GeometryFactory gf = new GeometryFactory();
LinearRing lr = gf.createLinearRing(coords);
outputHatchedArea = gf.createPolygon(lr, null);
long tadj0 = System.currentTimeMillis();
int adjustPolygon_counter = 0;
while (!outputHatchedArea.isValid()
&& (adjustPolygon_counter < 1)) {
System.out.println("Calling adjustPolygon #"
+ adjustPolygon_counter);
adjustmentMessage = "adjustPolygon #"
+ adjustPolygon_counter;
PolygonUtil.adjustPolygon(coords);
PolygonUtil.round(coords, 2);
coords = PolygonUtil
@ -529,16 +539,11 @@ public class WarngenLayer extends AbstractStormTrackResource {
}
int counter = 0;
if (!outputHatchedArea.isValid() && (counter < 2)) {
System.out
.println("calling adjustVertex & alterVertexes: loop #"
+ counter);
int adjustVertex_counter = 0;
lr = gf.createLinearRing(coords);
outputHatchedArea = gf.createPolygon(lr, null);
while (!outputHatchedArea.isValid()
&& (adjustVertex_counter < 5)) {
System.out.println(" Calling adjustVertex #"
+ adjustVertex_counter);
coords = PolygonUtil.adjustVertex(coords);
coords = PolygonUtil
.removeDuplicateCoordinate(coords);
@ -549,12 +554,8 @@ public class WarngenLayer extends AbstractStormTrackResource {
adjustVertex_counter += 1;
}
int inner_counter = 0;
System.out.println("");
while (!outputHatchedArea.isValid()
&& (inner_counter < 5)) {
System.out
.println(" Calling alterVertexes #"
+ inner_counter);
coords = PolygonUtil.alterVertexes(coords);
coords = PolygonUtil
.removeDuplicateCoordinate(coords);
@ -564,7 +565,15 @@ public class WarngenLayer extends AbstractStormTrackResource {
outputHatchedArea = gf.createPolygon(lr, null);
inner_counter += 1;
}
counter += 1;
adjustmentMessage = String.format(
"adjustVertex & alterVertexes: %d, %d",
adjustVertex_counter, inner_counter);
}
if (adjustmentMessage != null) {
perfLog.logDuration("Vertex adjustments", System.currentTimeMillis() - tadj0);
statusHandler.debug(adjustmentMessage);
}
for (Coordinate c : outputHatchedArea.getCoordinates()) {
if (Double.isNaN(c.x) || Double.isNaN(c.y)) {
@ -575,6 +584,10 @@ public class WarngenLayer extends AbstractStormTrackResource {
outputHatchedWarningArea = createWarnedArea(
latLonToLocal(outputHatchedArea),
latLonToLocal(warningArea));
if (! outputHatchedArea.isValid()) {
statusHandler.debug(String.format("Input %s redrawn to invalid %s",
inputWarningPolygon, outputHatchedArea));
}
}
this.hatchedArea = outputHatchedArea;
this.hatchedWarningArea = outputHatchedWarningArea;
@ -587,9 +600,10 @@ public class WarngenLayer extends AbstractStormTrackResource {
* priority in getHatchedAreas().
*/
statusHandler.handle(Priority.DEBUG, String.format(
"Error redrawing polygon: %s\n Input: %s\n",
e.getLocalizedMessage(), inputWarningPolygon), e);
"Error redrawing polygon: %s\n Input: %s\nAdjustments: %s\n",
e.getLocalizedMessage(), inputWarningPolygon, adjustmentMessage), e);
}
perfLog.logDuration("AreaHatcher total", System.currentTimeMillis() - t0);
}
return Status.OK_STATUS;
@ -610,6 +624,7 @@ public class WarngenLayer extends AbstractStormTrackResource {
}
public synchronized Geometry[] getHatchedAreas() {
long t0 = System.currentTimeMillis();
while (getState() != Job.NONE) {
try {
join();
@ -617,6 +632,10 @@ public class WarngenLayer extends AbstractStormTrackResource {
return new Geometry[] { null, null };
}
}
long t1 = System.currentTimeMillis();
if (t1 - t0 > 250) {
perfLog.logDuration("Wait for AreaHatcher", t1 - t0);
}
if (getResult() == null) {
return null;
}
@ -1259,8 +1278,8 @@ public class WarngenLayer extends AbstractStormTrackResource {
this.configuration = config;
}// end synchronize
System.out.println("Total time to init warngen config = "
+ (System.currentTimeMillis() - t0) + "ms");
perfLog.logDuration("Init warngen config",
System.currentTimeMillis() - t0);
}
private void initializeGeomUpdateObserver() {
@ -1459,8 +1478,8 @@ public class WarngenLayer extends AbstractStormTrackResource {
gData.localGridGeometry = new GeneralGridGeometry(range, ge);
System.out.println("Time to lookup geospatial data "
+ (System.currentTimeMillis() - tq0));
perfLog.logDuration("Lookup geospatial data",
System.currentTimeMillis() - tq0);
siteMap.put(currKey, gData);
GeospatialData[] timezones = GeospatialFactory.getTimezones();
@ -1957,8 +1976,8 @@ public class WarngenLayer extends AbstractStormTrackResource {
: null);
updateWarnedAreaState(newWarningArea, snapHatchedAreaToPolygon);
System.out.println("determining hatchedArea took "
+ (System.currentTimeMillis() - t0));
perfLog.logDuration("Determining hatchedArea",
System.currentTimeMillis() - t0);
}
/**
@ -2664,8 +2683,8 @@ public class WarngenLayer extends AbstractStormTrackResource {
return true;
}
long t0 = System.currentTimeMillis();
try {
long t0 = System.currentTimeMillis();
Polygon hatched = state.getWarningPolygon();
Geometry hatchedArea = state.getWarningArea();
if (areaHatcher != null) {
@ -2713,13 +2732,13 @@ public class WarngenLayer extends AbstractStormTrackResource {
issueRefresh();
result = false;
}
System.out.println("Time to createWarningPolygon: "
+ (System.currentTimeMillis() - t0) + "ms");
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM,
"Error hatching polygon", e);
result = false;
}
perfLog.logDuration("redrawBoxFromHatched",
System.currentTimeMillis() - t0);
issueRefresh();
}
return result;

View file

@ -62,7 +62,9 @@ import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.site.SiteMap;
import com.raytheon.uf.common.status.IPerformanceStatusHandler;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.PerformanceStatus;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
@ -145,6 +147,7 @@ import com.vividsolutions.jts.io.WKTReader;
* Aug 28, 2014 ASM #15551 Qinglu Lin Replaced 1200 PM/1200 AM by NOON/MIDNIGHT, removed days in
* included tornado/severe thunderstorm watch message.
* Sep 18, 2014 ASM #15465 Qinglu Lin For backup, get officeShort and officeLoc from backup WFO's config.xml.
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* </pre>
*
* @author njensen
@ -155,6 +158,9 @@ public class TemplateRunner {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(TemplateRunner.class);
private static final IPerformanceStatusHandler perfLog = PerformanceStatus
.getHandler("WG:");
private static final String LOGIN_NAME_KEY = "LOGNAME";
private static final Pattern BBB_PATTERN = Pattern
@ -295,15 +301,15 @@ public class TemplateRunner {
t0 = System.currentTimeMillis();
areas = area.findAffectedAreas(config, warnPolygon, warningArea,
threeLetterSiteId);
System.out.println("Time to get areas = "
+ (System.currentTimeMillis() - t0));
perfLog.logDuration("runTemplate get areas",
System.currentTimeMillis() - t0);
context.put(config.getHatchedAreaSource().getVariable(), areas);
t0 = System.currentTimeMillis();
intersectAreas = area.findInsectingAreas(config, warnPolygon,
warningArea, threeLetterSiteId, warngenLayer);
System.out.println("Time to get intersecting areas = "
+ (System.currentTimeMillis() - t0));
perfLog.logDuration("runTemplate get intersecting areas",
System.currentTimeMillis() - t0);
for (String ia : intersectAreas.keySet()) {
context.put(ia, intersectAreas.get(ia));
}
@ -380,9 +386,8 @@ public class TemplateRunner {
"Either timezoneGeom or/and warningArea is null. "
+ "Timezone cannot be determined.");
}
System.out
.println("Time to do size computation = "
+ (System.currentTimeMillis() - t0));
perfLog.logDuration("runTemplate size computation",
System.currentTimeMillis() - t0);
if (totalSize > minSize) {
timeZones.add(oneLetterTZ[i]);
}
@ -544,8 +549,8 @@ public class TemplateRunner {
context.put("eventLocation", coords);
t0 = System.currentTimeMillis();
ToolsDataManager.getInstance().setStormTrackData(std);
System.out.println("save storm track data: "
+ (System.currentTimeMillis() - t0));
perfLog.logDuration("Save storm track data",
System.currentTimeMillis() - t0);
} else {
// Retrieve the old Warning
// Example: s[0-5] = T.CON-KLWX.SV.W.0123
@ -601,8 +606,8 @@ public class TemplateRunner {
std.setMotionSpeed(oldWarn.getMotspd());
t0 = System.currentTimeMillis();
ToolsDataManager.getInstance().setStormTrackData(std);
System.out.println("save storm track data: "
+ (System.currentTimeMillis() - t0));
perfLog.logDuration("Save storm track data",
System.currentTimeMillis() - t0);
}
}
@ -859,8 +864,7 @@ public class TemplateRunner {
WatchUtil watchUtil = new WatchUtil(warngenLayer);
List<Watch> watches = watchUtil.getWatches(config, warnPolygon,
simulatedTime);
System.out.println("getWatches time: "
+ (System.currentTimeMillis() - t0));
perfLog.logDuration("getWatches", System.currentTimeMillis() - t0);
if (watches != null && watches.isEmpty() == false) {
context.put("watches", watches);
}
@ -875,8 +879,7 @@ public class TemplateRunner {
long tz0 = System.currentTimeMillis();
String script = createScript(warngenLayer.getTemplateName() + ".vm",
context);
System.out.println("velocity time: "
+ (System.currentTimeMillis() - tz0));
perfLog.logDuration("velocity", System.currentTimeMillis() - tz0);
String text = script.toString();
WarningTextHandler handler = WarningTextHandlerFactory.getHandler(

View file

@ -23,6 +23,8 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.raytheon.uf.common.dataplugin.warning.WarningRecord.WarningAction;
import com.raytheon.uf.common.status.IPerformanceStatusHandler;
import com.raytheon.uf.common.status.PerformanceStatus;
import com.raytheon.viz.warngen.gis.AffectedAreas;
/**
@ -36,6 +38,7 @@ import com.raytheon.viz.warngen.gis.AffectedAreas;
* ------------ ---------- ----------- --------------------------
* Sep 24, 2012 15322 jsanchez Initial creation
* Jan 8, 2013 15664 Qinglu Lin Appended WarningAction to handle()'s parameter list, etc.
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
*
* </pre>
*
@ -43,6 +46,8 @@ import com.raytheon.viz.warngen.gis.AffectedAreas;
* @version 1.0
*/
public class WarningTextHandler {
private static final IPerformanceStatusHandler perfLog = PerformanceStatus
.getHandler("WG:");
private AbstractLockingBehavior lockingBehavior;
@ -69,8 +74,8 @@ public class WarningTextHandler {
text = clean(text);
System.out.println("Time to handle the text: "
+ (System.currentTimeMillis() - t0));
perfLog.logDuration("Handle the text",
System.currentTimeMillis() - t0);
return text;
}

View file

@ -41,7 +41,9 @@ import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
import com.raytheon.uf.common.dataquery.responses.DbQueryResponse;
import com.raytheon.uf.common.site.SiteMap;
import com.raytheon.uf.common.status.IPerformanceStatusHandler;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.PerformanceStatus;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.ISimulatedTimeChangeListener;
@ -78,6 +80,7 @@ import com.vividsolutions.jts.geom.Geometry;
* Aug 14, 2013 DR 16483 Qinglu Lin Fixed no option issue in WarnGen dropdown menu after
* issuance of an CANCON and restart of CAVE.
* Oct 16, 2013 2439 rferrel Restrict retrieval of warnings to prevent getting future warnings.
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* </pre>
*
* @author mschenke
@ -88,6 +91,9 @@ public class CurrentWarnings {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(CurrentWarnings.class);
private static final IPerformanceStatusHandler perfLog = PerformanceStatus
.getHandler("WG:");
public static interface IWarningsArrivedListener {
public void warningsArrived();
}
@ -244,8 +250,8 @@ public class CurrentWarnings {
long t0 = System.currentTimeMillis();
List<AbstractWarningRecord> warnings = requestRecords(constraints);
System.out.println("Time to request CurrentWarnings records: "
+ (System.currentTimeMillis() - t0) + "ms");
perfLog.logDuration("Request CurrentWarnings records",
System.currentTimeMillis() - t0);
processRecords(warnings);
}
@ -542,8 +548,8 @@ public class CurrentWarnings {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(),
e);
}
System.out.println("Time to prepare " + records.size()
+ " records = " + (System.currentTimeMillis() - t0) + "ms");
perfLog.logDuration("Prepare " + records.size() + " records",
System.currentTimeMillis() - t0);
}
return prepared;

View file

@ -68,6 +68,7 @@ import com.vividsolutions.jts.geom.Geometry;
* Mar 04, 2014 2832 njensen Moved disposeInternal() to abstract class
* Apr 07, 2014 2959 njensen Correct handling of color change
* Apr 14, 2014 DR 17257 D. Friedman Redo time matching on per-minute refresh.
* Apr 28, 2015 ASM #15008 D. Friedman Create polygon for EXTs even if original product is not found.
*
* </pre>
*
@ -268,9 +269,11 @@ public class WarningsResource extends AbstractWWAResource {
}
}
}
// create the new polygon for the CON outside of the above
// for loop
if (createShape != null) {
/* Create a new polygon for the follow-up to the original
* product found in the above loop. Also create a polygon
* for EXT actions even if the original was not found.
*/
if (createShape != null || act == WarningAction.EXT) {
initShape(target, warnrec);
}
} else {

View file

@ -0,0 +1,96 @@
#!/usr/bin/env python
import sys, os, glob, shutil, pwd
def main():
REMOVE = """#==============================================================================
#
# The following empty code is here to fool the ifpServer into
# thinking it's a tool. This is so that the configuration will
# appear right next to the primary tool.
#
# DO NOT CHANGE THE LINES BELOW
#
ToolType = "numeric"
WeatherElementEdited = "None"
from numpy import *
HideTool = 1
import SmartScript
class Tool (SmartScript.SmartScript):
def __init__(self, dbss):
SmartScript.SmartScript.__init__(self, dbss)
def execute(self):
return
"""
dryrun = 0
if len(sys.argv) > 1 and sys.argv[1] == "-dry":
dryrun = 1
print "running %s with dryrun = %d\n\n" % (sys.argv[0], dryrun)
pws = pwd.getpwnam("awips")
cavestatic = '/awips2/edex/data/utility/cave_static'
tool_subpaths = 'gfe/userPython/smartTools'
util_subpaths = 'gfe/userPython/utilities'
tool_list = glob.glob(cavestatic + "/*/*/" + tool_subpaths + "/SerpConfig*.py")
util_list = glob.glob(cavestatic + "/*/*/" + util_subpaths + "/SerpConfig*.py")
print "current tool files:"
print tool_list
print "\ncurrent utilities:"
print util_list
for f in tool_list:
print "\nworking from %s" % f
dirn, filen = os.path.split(f)
utildir = dirn.replace("smartTools", "utilities")
newfile = os.path.join(utildir, "SerpConfig.py")
if os.path.exists(newfile):
print "%s already exists. No need to create." % newfile
else:
content = open(f).read()
replaced = content.replace(REMOVE, "")
if not dryrun:
if not os.path.exists(utildir):
os.makedirs(utildir)
open(newfile, 'w+').write(replaced)
print "create new file %s" % newfile
if not dryrun:
if not os.path.exists(newfile):
print "Error: file %s is not created." % newfile
else:
os.chown(newfile, pws.pw_uid, pws.pw_gid)
os.chmod(newfile, 644)
if filen == "SerpConfig.py":
print "removing override %s" % f
if not dryrun:
os.remove(f)
print ""
for f in util_list:
dirn, filen = os.path.split(f)
utildir = dirn
newfile = os.path.join(utildir, "SerpConfig.py")
if not os.path.exists(newfile):
if not dryrun:
shutil.copy(f, newfile)
print "create new file %s from %s" % (newfile, filen)
if not dryrun:
if not os.path.exists(newfile):
print "Error: file %s is not created." % newfile
else:
os.chown(newfile, pws.pw_uid, pws.pw_gid)
pass
if __name__ == "__main__":
main()

View file

@ -0,0 +1,76 @@
#!/bin/bash
##
# 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.
##
# Issue: #4462 Update script to update stdtextprodcts entries with blank site values.
#
# This script will modify table stdtextproducts in the fxatext.public schema.
#
PSQL="/awips2/psql/bin/psql"
if [ ${#1} != 4 ] ; then
echo "ERROR: First argument must be local site to use in the stdtextproducts table. Example: KOAX"
exit 1
else
siteId=${1}
siteLtr=${siteId:0:1}
fi
if [ ! -f ${PSQL} ];
then
echo "ERROR: The PSQL executable does not exist - ${PSQL}."
echo "FATAL: Update Failed!"
exit 1
fi
UPDATE_BY_XXX="update public.stdtextproducts set site = '${siteLtr}' || xxxid where site='' and xxxid not like '% ';"
UPDATE_LOC_SITE="update public.stdtextproducts set site='${siteId}' where site='' and xxxid like '% ';"
function updateXXXentries
{
echo "INFO: Updating stdtextproducts using xxxid"
${PSQL} -U awips -d fxatext -a -c "${UPDATE_BY_XXX}"
if [ $? -ne 0 ];
then
echo "FATAL: Update by xxxid Failed!"
exit 1
fi
echo "INFO: Completed updating stdtextproducts using xxxid."
}
function updateSITEentries
{
echo "INFO: Updating stdtextproduct table's site using local site."
${PSQL} -U awips -d fxatext -a -c "${UPDATE_LOC_SITE}"
if [ $? -ne 0 ];
then
echo "FATAL: unable to update stdtextproducts using local site."
exit 1
fi
echo "INFO: Finish updating stdtextproducts using local site."
}
echo "INFO: start update stdtextproducts"
updateXXXentries
updateSITEentries
echo "INFO: finish update stdtextproducts"
exit 0

View file

@ -107,6 +107,7 @@ import com.raytheon.uf.edex.database.query.DatabaseQuery;
* 06/12/14 #3244 randerso Improved error handling
* 09/21/2014 #3648 randerso Changed to do version purging when new databases are added
* 10/16/2014 3454 bphillip Upgrading to Hibernate 4
* 04/28/2015 17435 randerso Fix getLatestDbIdByModelName().
*
* </pre>
*
@ -1372,7 +1373,8 @@ public class GFEDao extends DefaultPluginDao {
public List<DatabaseID> doInTransaction(
TransactionStatus status) {
Query query = getCurrentSession().createQuery("FROM DatabaseID WHERE siteId = :siteId AND modelName = :modelName ORDER BY modelTime DESC LIMIT 1");
Query query = getCurrentSession().createQuery("FROM DatabaseID WHERE siteId = :siteId AND modelName = :modelName ORDER BY modelTime DESC");
query.setMaxResults(1);
query.setParameter("siteId", siteId);
query.setParameter("modelName",modelName);
return query.list();

View file

@ -97,9 +97,8 @@
<alias base="GFS161">gfs161</alias>
<alias base="GFS199">gfs161</alias>
<alias base="RUC130">ruc130</alias>
<alias base="RTMA">rtmaNDFD</alias>
<alias base="RTMA25">rtmaNDFD</alias>
<alias base="URMA25">urmaNDFD</alias>
<alias base="RTMA-Mosaic">rtmaNDFD</alias>
<alias base="AK-RTMA">aKrtmaNDFD</alias>
<alias base="NamDNG5">NamDNG5</alias>
<alias base="GlobalWave">GlobalWave</alias>
@ -143,8 +142,6 @@
<alias base="SREF243">sref243</alias>
<alias base="RTGSST">RTGSST235</alias>
<alias base="GFSGuide">gfsGuide232</alias>
<alias base="RTMA">rtmaNDFD</alias>
<alias base="RTMA-Mosaic">rtmaNDFD</alias>
<alias base="AK-RTMA">aKrtmaNDFD</alias>
<alias base="AK-RTMA3">aKrtmaNDFD</alias>
<alias base="HI-RTMA">HIrtmaNDFD</alias>

View file

@ -333,6 +333,7 @@
<alias base="tp6c6">tp6c6</alias>
<alias base="tp6c7">tp6c7</alias>
<alias base="tp6c8">tp6c8</alias>
<alias base="TCCerranl">tccerranl</alias>
<alias base="TP6mean">tpmean6</alias>
<alias base="TP6sprd">tpsprd6</alias>
<alias base="TP-ECMWF">tpecmwf</alias>

View file

@ -61,7 +61,11 @@
# 04/08/2015 #4383 dgilling Define FireWX ISC configuration parameters.
#
# for Fcst/Official.
#
# 04/15/2015 #17383 yteng Change localTC to fix error that time constraints
# being off
# being off
# 04/20/2015 #4414 dgilling Add missing NWPSTrkngCG0 weather elements.
# 05/12/2015 #17144 bhunder Added RTMA model
########################################################################
#----------------------------------------------------------------------------
@ -218,6 +222,7 @@ Wave_6 = ("Wave_6", VECTOR, "ft", "Wave_6", 50.0, 0.0, 2, NO)
Wave_7 = ("Wave_7", VECTOR, "ft", "Wave_7", 50.0, 0.0, 2, NO)
Wave_8 = ("Wave_8", VECTOR, "ft", "Wave_8", 50.0, 0.0, 2, NO)
Wave_9 = ("Wave_9", VECTOR, "ft", "Wave_9", 50.0, 0.0, 2, NO)
Wave_10 = ("Wave_10", VECTOR, "ft", "Wave_10", 50.0, 0.0, 2, NO)
#Fcst Grids - for partitioned wave groups
Wave1 = ("Wave1", VECTOR, "ft", "WAVE1", 50.0, 0.0, 1, NO)
@ -229,6 +234,7 @@ Wave6 = ("Wave6", VECTOR, "ft", "WAVE6", 50.0, 0.0, 1, NO)
Wave7 = ("Wave7", VECTOR, "ft", "Wave7", 50.0, 0.0, 0, NO)
Wave8 = ("Wave8", VECTOR, "ft", "Wave8", 35.0, 0.0, 0, NO)
Wave9 = ("Wave9", VECTOR, "ft", "Wave9", 35.0, 0.0, 0, NO)
Wave10 = ("Wave10", VECTOR, "ft", "Wave10", 35.0, 0.0, 0, NO)
#Smart Init Grids - for partitioned wave groups
Period_1 = ("Period_1", SCALAR, "sec", "Period_1", 30.0, 1.0, 0, NO)
@ -240,6 +246,7 @@ Period_6 = ("Period_6", SCALAR, "sec", "Period_6", 30.0, 0.0, 0, NO)
Period_7 = ("Period_7", SCALAR, "sec", "Period_7", 30.0, 0.0, 0, NO)
Period_8 = ("Period_8", SCALAR, "sec", "Period_8", 30.0, 0.0, 0, NO)
Period_9 = ("Period_9", SCALAR, "sec", "Period_9", 30.0, 0.0, 0, NO)
Period_10 = ("Period_10", SCALAR, "sec", "Period_10", 30.0, 0.0, 0, NO)
#Fcst Grids - for partitioned wave groups
Period1 = ("Period1", SCALAR, "sec", "Period1", 25.0, 0.0, 1, NO)
@ -251,6 +258,7 @@ Period6 = ("Period6", SCALAR, "sec", "Period6", 25.0, 0.0, 1, NO)
Period7 = ("Period7", SCALAR, "sec", "Period7", 25.0, 0.0, 0, NO)
Period8 = ("Period8", SCALAR, "sec", "Period8", 25.0, 0.0, 0, NO)
Period9 = ("Period9", SCALAR, "sec", "Period9", 25.0, 0.0, 0, NO)
Period10 = ("Period10", SCALAR, "sec", "Period10", 25.0, 0.0, 0, NO)
# Fire Weather Weather Elements
LAL = ("LAL", SCALAR, "cat", "Lightning Activity Level", 6.0, 1.0, 0, NO)
@ -308,6 +316,8 @@ VisUnc = ("VisUnc", SCALAR, "SM", "Vsby Anl Uncertainty", 10.0, 0.0, 2, NO)
PressUnc = ("PressUnc", SCALAR, "Pa", "Press Anl Uncertainty", 110000.0, 0.0, 2, NO)
Pressure = ("Pressure", SCALAR, "Pa", "Pressure", 110000.0, 0.0, 2, NO)
WGustUnc = ("WGustUnc", SCALAR, "kts", "WGust Anl Uncertainty", 12.0, 0.0, 0, NO)
# DR 17144
SkyUnc = ("SkyUnc", SCALAR, "%", "Sky Uncertainty", 100.0, 0.0, 0, NO)
# NamDNG5 parms
QPF3 = ("QPF3", SCALAR, "in", "3HR QPF", 3.0, 0.0, 2, YES)
@ -1299,7 +1309,8 @@ elif SID in CONUS_EAST_SITES:
('nwpsCG1', 'nwpsCG1'),
('nwpsTrkngCG0', 'nwpsTrkngCG0'),
'MOSGuide',
'RTMA',
##############DR17144
('RTMA25', 'RTMA'),
'NamDNG5',
('TPCWindProb','TPCProb'),
('SREF212', 'SREF'),
@ -1376,7 +1387,8 @@ else: #######DCS3501 WEST_CONUS
('nwpsCG1', 'nwpsCG1'),
('nwpsTrkngCG0', 'nwpsTrkngCG0'),
'MOSGuide',
'RTMA',
#######DR17144
('RTMA25', 'RTMA'),
'NamDNG5',
('TPCWindProb','TPCProb'),
('SREF212', 'SREF'),
@ -1973,7 +1985,7 @@ OFFICIALDBS = [([Temp, Td, Wind, NWPSwind, Weather, Sky, FzLevel, SnowLevel], TC
([MinT], MinTTC), ([MaxT], MaxTTC),
([MinRH], MinRHTC), ([MaxRH], MaxRHTC),
([WaveHeight, SurfHeight, Swell, Swell2, Period], TC3NG),
([WindWaveHeight, SwanSwell, Wave1, Wave2, Wave3, Wave4, Wave5, Wave6, Wave7, Wave8, Wave9, Period1, Period2, Period3, Period4, Period5, Period6, Period7, Period8, Period9], TC3NG),
([WindWaveHeight, SwanSwell, Wave1, Wave2, Wave3, Wave4, Wave5, Wave6, Wave7, Wave8, Wave9, Wave10, Period1, Period2, Period3, Period4, Period5, Period6, Period7, Period8, Period9, Period10], TC3NG),
([VentRate, LAL, Haines, MixHgt, FreeWind, TransWind], TC1),
([DSI, Stability, MarineLayer], TC1),
([HrsOfSun, InvBurnOffTemp], LT24),
@ -1998,7 +2010,7 @@ OFFICIALDBS = [([Temp, Td, Wind, NWPSwind, Weather, Sky, FzLevel, SnowLevel], TC
# NWPS
nwpsCG1_MODEL = [([SwanSwell, Period, WaveHeight, WindWaveHeight, Wind], TC3NG)]
nwpsTrkngCG0_MODEL = [([Wave1, Wave2, Wave3, Wave4, Wave5, Wave6, Wave7, Wave8, Wave9, Period1, Period2, Period3, Period4, Period5, Period6,Period7, Period8, Period9 ], TC3NG)]
nwpsTrkngCG0_MODEL = [([Wave1, Wave2, Wave3, Wave4, Wave5, Wave6, Wave7, Wave8, Wave9, Wave10, Period1, Period2, Period3, Period4, Period5, Period6,Period7, Period8, Period9, Period10 ], TC3NG)]
# Global Wave Watch III, WNAWAVE, AKWAVE Model database parameter groupings
WAVEPARMS = [([WindWaveHeight, WaveHeight, SurfHeight, Wind], TC6),
@ -2057,17 +2069,17 @@ TPCTCM_MODEL = [([HiWind], TC3)]
# RTMA database parameter groupings
#if SID in ALASKA_SITES: - not sure if this is right
# DCS17288
# DCS17288/DR17144
if SID in ALASKA_SITES or SID in ["HFO", "SJU"]:
RTMAPARMS = [([Temp,Td,RH,Wind,Vis,Pressure,WindGust],TC1),
([MinT],MinTTC), ([MaxT],MaxTTC),
([MinRH],MinRHTC), ([MaxRH],MaxRHTC),
([TUnc,TdUnc,WSpdUnc,WDirUnc,VisUnc,PressUnc,WGustUnc],TC1)]
([TUnc,TdUnc,WSpdUnc,WDirUnc,VisUnc,PressUnc,WGustUnc,SkyUnc],TC1)]
else:
RTMAPARMS = [([Temp,Td,RH,Wind,QPE,Sky,Vis,Pressure,WindGust],TC1),
([MinT],MinTTC), ([MaxT],MaxTTC),
([MinRH],MinRHTC), ([MaxRH],MaxRHTC),
([TUnc,TdUnc,WSpdUnc,WDirUnc,VisUnc,PressUnc,WGustUnc],TC1)]
([TUnc,TdUnc,WSpdUnc,WDirUnc,VisUnc,PressUnc,WGustUnc,SkyUnc],TC1)]
# NamDNG5 database parameter groupings
NamDNG5PARMS = [([Temp, Td, RH, Wind, Sky, WindGust, Vis], TC3),

View file

@ -420,6 +420,30 @@
<Level key="OSEQD2">
<DatabaseLevel levelName="OSEQD" levelOneValue="2.0"/>
</Level>
<Level key="OSEQD3">
<DatabaseLevel levelName="OSEQD" levelOneValue="3.0"/>
</Level>
<Level key="OSEQD4">
<DatabaseLevel levelName="OSEQD" levelOneValue="4.0"/>
</Level>
<Level key="OSEQD5">
<DatabaseLevel levelName="OSEQD" levelOneValue="5.0"/>
</Level>
<Level key="OSEQD6">
<DatabaseLevel levelName="OSEQD" levelOneValue="6.0"/>
</Level>
<Level key="OSEQD7">
<DatabaseLevel levelName="OSEQD" levelOneValue="7.0"/>
</Level>
<Level key="OSEQD8">
<DatabaseLevel levelName="OSEQD" levelOneValue="8.0"/>
</Level>
<Level key="OSEQD9">
<DatabaseLevel levelName="OSEQD" levelOneValue="9.0"/>
</Level>
<Level key="OSEQD10">
<DatabaseLevel levelName="OSEQD" levelOneValue="10.0"/>
</Level>
<Level key="PV5">
<DatabaseLevel levelName="PV" levelOneValue="0.5" unit="K * m^2/kg*s * 1000000"/>
</Level>

View file

@ -26,10 +26,15 @@
<fcst>237600</fcst>
<fcst>248400</fcst>
<fcst>259200</fcst>
<fcst>270000</fcst>
<fcst>280800</fcst>
<fcst>291600</fcst>
<fcst>302400</fcst>
<fcst>313200</fcst>
<fcst>324000</fcst>
<fcst>334800</fcst>
<fcst>345600</fcst>
<fcst>356400</fcst>
<fcst>367200</fcst>
<fcst>388800</fcst>
<fcst>410400</fcst>
@ -46,7 +51,7 @@
<fcst>648000</fcst>
</valtimeMINUSreftime>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>SWDIR</short_name>
<short_name>swdir</short_name>
<long_name>Swell peak direction</long_name>
<units>degree_angle</units>
<udunits>degree_angle</udunits>
@ -70,7 +75,7 @@
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>SWPER</short_name>
<short_name>swper</short_name>
<long_name>Swell wave peak period</long_name>
<units>s</units>
<udunits>seconds</udunits>
@ -94,7 +99,7 @@
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>SWELL</short_name>
<short_name>swell</short_name>
<long_name>Significant swell wave height</long_name>
<units>m</units>
<udunits>meters</udunits>

View file

@ -100,6 +100,21 @@
<level>EA</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>tccerranl</short_name>
<long_name>Total Cloud Cover error analysis</long_name>
<units>%</units>
<udunits>percent</udunits>
<uiname>ErrorAnalysisCloud</uiname>
<valid_range>0.0</valid_range>
<valid_range>100.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>0</n3D>
<levelsDesc>EA</levelsDesc>
<levels>
<level>EA</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>

View file

@ -1065,25 +1065,21 @@ class Forecaster(GridUtilities):
LogStream.logEvent(msg)
try:
rval = apply(mthd, tuple(gargs))
rval = apply(mthd, tuple(gargs))
if rval is not None:
if type(rval) is not ndarray:
if type(rval) is not tuple:
jrval = rval
rval = rval.__numpy__
if len(rval) == 1:
if rval[0].dtype != int8:
if type(rval) is not ndarray and rval is not None:
if type(rval) is not tuple:
jrval = rval
rval = rval.__numpy__
if len(rval) == 1:
if rval[0].dtype != int8:
# scalar
rval = rval[0]
else:
else:
# discrete or weather
keys = JUtil.javaObjToPyVal(jrval.getKeyList())
rval.append(keys)
cache[we] = (rval, time)
else:
cache[we] = (None, time)
cache[we] = (rval, time)
if rval is not None and cache['mtime'][0] is not None and doStore:
parm = self.__getNewWE(we)

View file

@ -52,6 +52,12 @@ class RTMAForecaster(Forecaster):
grid = tcc_EA
return clip(grid, 0, 100)
##--------------------------------------------------------------------------
## Sky Analysis Uncertainty
##--------------------------------------------------------------------------
def calcSkyUnc(self, tccerranl_EA):
grid = tccerranl_EA
return clip(grid, 0, 100)
##--------------------------------------------------------------------------
## T - change K to F
##--------------------------------------------------------------------------
def calcT(self, t_FHAG2):

View file

@ -4,78 +4,56 @@ import os
class nwpsTrkngCG0Forecaster(Forecaster):
def __init__(self):
Forecaster.__init__(self, "nwpsTrkngCG0", "nwpsTrkngCG0")
def calcPeriod1(self, SWPER_OSEQD1):
period = SWPER_OSEQD1
return period
def calcPeriod2(self, SWPER_OSEQD2):
period = SWPER_OSEQD2
return period
def calcPeriod3(self, SWPER_OSEQD3):
period = SWPER_OSEQD3
return period
def calcPeriod4(self, SWPER_OSEQD4):
period = SWPER_OSEQD4
return period
def calcPeriod5(self, SWPER_OSEQD5):
period = SWPER_OSEQD5
return period
def calcPeriod6(self, SWPER_OSEQD6):
period = SWPER_OSEQD6
return period
def calcPeriod7(self, SWPER_OSEQD7):
period = SWPER_OSEQD7
return period
def calcPeriod8(self, SWPER_OSEQD8):
period = SWPER_OSEQD8
return period
def calcPeriod9(self, SWPER_OSEQD9):
period = SWPER_OSEQD9
return period
def calcPeriod10(self, SWPER_OSEQD10):
period = SWPER_OSEQD10
return period
def calcWave1(self, SWELL_OSEQD1, SWDIR_OSEQD1):
mag = SWELL_OSEQD1 * 3.28
dir = clip(SWDIR_OSEQD1, 0, 359.5)
def _calcPeriodN(self, swper):
return swper
def _calcWaveN(self, swell, swdir):
mag = swell / 0.3048
dir = clip(swdir, 0, 359.5)
return (mag, dir)
def calcWave2(self, SWELL_OSEQD2, SWDIR_OSEQD2):
mag = SWELL_OSEQD2 * 3.28
dir = clip(SWDIR_OSEQD2, 0, 359.5)
return (mag, dir)
def calcWave3(self, SWELL_OSEQD3, SWDIR_OSEQD3):
mag = SWELL_OSEQD3 * 3.28
dir = clip(SWDIR_OSEQD3, 0, 359.5)
return (mag, dir)
def calcWave4(self, SWELL_OSEQD4, SWDIR_OSEQD4):
mag = SWELL_OSEQD4 * 3.28
dir = clip(SWDIR_OSEQD4, 0, 359.5)
return (mag, dir)
def calcWave5(self, SWELL_OSEQD5, SWDIR_OSEQD5):
mag = SWELL_OSEQD5 * 3.28
dir = clip(SWDIR_OSEQD5, 0, 359.5)
return (mag, dir)
def calcWave6(self, SWELL_OSEQD6, SWDIR_OSEQD6):
mag = SWELL_OSEQD6 * 3.28
dir = clip(SWDIR_OSEQD6, 0, 359.5)
return (mag, dir)
def calcWave7(self, SWELL_OSEQD7, SWDIR_OSEQD7):
mag = SWELL_OSEQD7 * 3.28
dir = clip(SWDIR_OSEQD7, 0, 359.5)
return (mag, dir)
def calcWave8(self, SWELL_OSEQD8, SWDIR_OSEQD8):
mag = SWELL_OSEQD8 * 3.28
dir = clip(SWDIR_OSEQD8, 0, 359.5)
return (mag, dir)
def calcWave9(self, SWELL_OSEQD9, SWDIR_OSEQD9):
mag = SWELL_OSEQD9 * 3.28
dir = clip(SWDIR_OSEQD9, 0, 359.5)
return (mag, dir)
def calcWave10(self, SWELL_OSEQD10, SWDIR_OSEQD10):
mag = SWELL_OSEQD10 * 3.28
dir = clip(SWDIR_OSEQD10, 0, 359.5)
return (mag, dir)
def calcPeriod1(self, swper_OSEQD1):
return self._calcPeriodN(swper_OSEQD1)
def calcPeriod2(self, swper_OSEQD2):
return self._calcPeriodN(swper_OSEQD2)
def calcPeriod3(self, swper_OSEQD3):
return self._calcPeriodN(swper_OSEQD3)
def calcPeriod4(self, swper_OSEQD4):
return self._calcPeriodN(swper_OSEQD4)
def calcPeriod5(self, swper_OSEQD5):
return self._calcPeriodN(swper_OSEQD5)
def calcPeriod6(self, swper_OSEQD6):
return self._calcPeriodN(swper_OSEQD6)
def calcPeriod7(self, swper_OSEQD7):
return self._calcPeriodN(swper_OSEQD7)
def calcPeriod8(self, swper_OSEQD8):
return self._calcPeriodN(swper_OSEQD8)
def calcPeriod9(self, swper_OSEQD9):
return self._calcPeriodN(swper_OSEQD9)
def calcPeriod10(self, swper_OSEQD10):
return self._calcPeriodN(swper_OSEQD10)
def calcWave1(self, swell_OSEQD1, swdir_OSEQD1):
return self._calcWaveN(swell_OSEQD1, swdir_OSEQD1)
def calcWave2(self, swell_OSEQD2, swdir_OSEQD2):
return self._calcWaveN(swell_OSEQD2, swdir_OSEQD2)
def calcWave3(self, swell_OSEQD3, swdir_OSEQD3):
return self._calcWaveN(swell_OSEQD3, swdir_OSEQD3)
def calcWave4(self, swell_OSEQD4, swdir_OSEQD4):
return self._calcWaveN(swell_OSEQD4, swdir_OSEQD4)
def calcWave5(self, swell_OSEQD5, swdir_OSEQD5):
return self._calcWaveN(swell_OSEQD5, swdir_OSEQD5)
def calcWave6(self, swell_OSEQD6, swdir_OSEQD6):
return self._calcWaveN(swell_OSEQD6, swdir_OSEQD6)
def calcWave7(self, swell_OSEQD7, swdir_OSEQD7):
return self._calcWaveN(swell_OSEQD7, swdir_OSEQD7)
def calcWave8(self, swell_OSEQD8, swdir_OSEQD8):
return self._calcWaveN(swell_OSEQD8, swdir_OSEQD8)
def calcWave9(self, swell_OSEQD9, swdir_OSEQD9):
return self._calcWaveN(swell_OSEQD9, swdir_OSEQD9)
def calcWave10(self, swell_OSEQD10, swdir_OSEQD10):
return self._calcWaveN(swell_OSEQD10, swdir_OSEQD10)
def main():
nwpsTrkngCG0Forecaster().run()

View file

@ -17,6 +17,14 @@
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
# further licensing information.
##
#
# SOFTWARE HISTORY
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# May 01, 2015 17421 ryu Changed analysis methods for StormTotalSnow
#
##
#-------------------------------------------------------------------------
# Description: This product creates a ZFP-type series of text phrases
# for consecutive time periods for a list of edit areas. It can be
@ -475,7 +483,7 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
("PoP", self._PoP_analysisMethod("Period_1"), [3]),
("PoP", self.binnedPercent, [3]),
("SnowAmt", self.accumMinMax),
("StormTotalSnow", self.accumMinMax),
("StormTotalSnow", self.minMax),
("IceAccum", self.accumMinMax),
("SnowLevel", self.avg),
("Wind", self.vectorMedianRange, [6]),
@ -564,7 +572,7 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
("PoP", self._PoP_analysisMethod("Period_2_3"), [6]),
("PoP", self.binnedPercent, [6]),
("SnowAmt", self.accumMinMax),
("StormTotalSnow", self.accumMinMax),
("StormTotalSnow", self.minMax),
("IceAccum", self.accumMinMax),
("SnowLevel", self.avg),
("Wind", self.vectorMedianRange, [6]),
@ -791,7 +799,7 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
("PoP", self._PoP_analysisMethod("FirstFcstPeriod"), [6]),
("PoP", self.binnedPercent, [6]),
("SnowAmt", self.accumMinMax),
("StormTotalSnow", self.accumMinMax),
("StormTotalSnow", self.minMax),
("IceAccum", self.accumMinMax),
("SnowLevel", self.avg),
("Wind", self.vectorMedianRange, [6]),
@ -852,7 +860,7 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
("PoP", self._PoP_analysisMethod("AreaFcstPeriod"), [6]),
("PoP", self.binnedPercent, [6]),
("SnowAmt", self.accumMinMax),
("StormTotalSnow", self.accumMinMax),
("StormTotalSnow", self.minMax),
("IceAccum", self.accumMinMax),
("SnowLevel", self.avg),
("Wind", self.vectorMedianRange, [6]),

View file

@ -77,12 +77,12 @@
</info>
<info>
<title>GFS20-PAC</title>
<dataset>GFS-PAC-20KM</dataset>
<datasetId>GFS-PAC-20KM</datasetId>
<dt>3</dt>
</info>
<info>
<title>GFS20-PRICO</title>
<dataset>GFS-PRICO-20KM</dataset>
<datasetId>GFS-PRICO-20KM</datasetId>
<dt>3</dt>
</info>
<info>

View file

@ -45,6 +45,8 @@ import com.raytheon.uf.common.time.util.TimeUtil;
* Feb 12, 2014 2655 njensen Set source
* Jun 05, 2014 3226 bclement LightningStikePoint refactor
* Jun 10, 2014 3226 bclement fixed source
* May 8, 2015 DR17252 MPorricelli Removed setting of source.
* Source set in TextLightningParser.
*
* </pre>
*
@ -57,12 +59,6 @@ public class TextLightningDecoder extends AbstractDecoder implements
private String traceId = null;
/*
* inferred from Wufeng Zhou comment in BinLightningDecoderUtil, stands for
* World Wide Lightning Location Network
*/
private static final String SOURCE = "WWLLN";
/**
* Construct a TextLightning decoder. Calling hasNext() after construction
* will return false, decode() will return a null.
@ -103,8 +99,6 @@ public class TextLightningDecoder extends AbstractDecoder implements
report.setTraceId(traceId);
report.setSource(SOURCE);
return new PluginDataObject[] { report };
}

View file

@ -34,6 +34,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 3, 2014 3226 bclement Initial creation
* May 8, 2015 DR17252 MPorricelli Use HOUR_OF_DAY for setHour
*
* </pre>
*
@ -118,7 +119,7 @@ public class BaseLightningPoint {
* Hour of the day [0..23].
*/
public void setHour(int hour) {
this.time.set(Calendar.HOUR, hour);
this.time.set(Calendar.HOUR_OF_DAY, hour);
}
/**

View file

@ -14,4 +14,6 @@ Require-Bundle: com.raytheon.uf.common.dataplugin,
com.raytheon.uf.common.geospatial,
com.raytheon.uf.common.serialization,
com.raytheon.uf.common.dataaccess,
com.raytheon.uf.common.message,
javax.measure
Eclipse-RegisterBuddy: com.raytheon.uf.common.message

View file

@ -162,4 +162,10 @@
install-size="0"
version="0.0.0"/>
<plugin
id="org.jfreechart"
download-size="0"
install-size="0"
version="0.0.0"/>
</feature>

View file

@ -43,6 +43,7 @@ import com.raytheon.uf.common.geospatial.ISpatialObject;
import com.raytheon.uf.common.geospatial.MapUtil;
import com.raytheon.uf.common.geospatial.PointUtil;
import com.raytheon.uf.common.monitor.xml.SCANModelParameterXML;
import com.raytheon.uf.common.time.util.TimeUtil;
import com.raytheon.uf.edex.database.plugin.PluginDao;
import com.raytheon.uf.edex.database.plugin.PluginFactory;
import com.raytheon.uf.edex.database.query.DatabaseQuery;
@ -106,6 +107,7 @@ public class FreezingLevel {
// only for get data for hour 00z,06z,12z, or 18z
int adjustedHour = (refTime.get(Calendar.HOUR_OF_DAY) / 6) * 6;
refTime.set(Calendar.HOUR_OF_DAY, adjustedHour);
TimeUtil.minCalendarFields(refTime, Calendar.MINUTE, Calendar.SECOND, Calendar.MILLISECOND);
// populates what ever is missing, sets prevalent forecast hour
for (Entry<String, Integer> entry : getGHLevelMap().entrySet()) {

View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
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.
-->
<!--
Refer to edex/modes/README.txt for documentation
-->
<edexModes>
<mode name="ingestHydro">
<include>ndm-ingest.xml</include>
</mode>
</edexModes>

View file

@ -100,6 +100,7 @@ import com.raytheon.uf.edex.database.purge.PurgeLogger;
* 10/16/2014 3454 bphillip Upgrading to Hibernate 4
* 10/28/2014 3454 bphillip Fix usage of getSession()
* Jan 27, 2015 4031 rferrel Resolve AFOS PILs site conflict using preferredAfosFirstLetter.
* May 05, 2015 4462 rferrel {@link #write(StdTextProduct)} when missing set the textProduct's site.
* </pre>
*
* @author garmendariz
@ -220,6 +221,22 @@ public class StdTextProductDao extends CoreDao {
prodId.setNnnid(nnn);
prodId.setXxxid(xxx);
Session session = this.getSession();
String site = textProduct.getProdId().getSite();
if ((site == null) || site.trim().isEmpty()) {
// Determine product site.
if (xxx.trim().length() == MAX_FIELD_LENGTH) {
site = SiteMap.getInstance().getSite4LetterId(xxx);
} else {
site = SiteMap.getInstance().getSite4LetterId(
SiteUtil.getSite());
}
if (logger.isInfoEnabled()) {
logger.info("Write \"" + ccc + nnn + xxx
+ "\" setting site to " + site);
}
textProduct.getProdId().setSite(site);
}
try {
try {
Query query = session.createQuery("SELECT refTime from "

View file

@ -64,7 +64,7 @@ public class LmaDecoder {
*/
public PluginDataObject[] decode(File fileInput) throws Exception {
//Create an empty records to hold the data once decoded.
GridRecord[] records = null;
List<GridRecord> recordsList = new ArrayList<GridRecord>();
/** The variable dictionary used to check which variables are supported by the ingest **/
LMAVarsDict lmaVarsDict = LMAVarsDict.getInstance();
@ -105,7 +105,6 @@ public class LmaDecoder {
float dy= yresAtt.getNumericValue().floatValue();
int nx = file.findDimension("x").getLength();
int ny = file.findDimension("y").getLength();
int nz = file.findDimension("levels_17").getLength();
//Construct the grid coverage with attributes
GridCoverage cov =createMapCoverage(centerLon, centerLat, nx, ny, dx, dy);
//Lookup Coverage to make sure it does not already exist in the db.
@ -129,17 +128,15 @@ public class LmaDecoder {
String[] listOfVariablesToProcess = new String[sizeOfVariablesToProcess];
varsToProcessList.toArray(listOfVariablesToProcess);
//
//Create initial Grid Record array
int count =0;
records = new GridRecord[sizeOfVariablesToProcess*nz];
//Iterate over variables and create GridRecords for each variable and level
for (int i = 0; i<sizeOfVariablesToProcess; ++i ) {
Variable v = file.findVariable(listOfVariablesToProcess[i]);
int nz = v.getDimension(1).getLength();
for (int j=0; j< nz; ++j) {
records[count] = new GridRecord();
records[count].setPersistenceTime(TimeUtil.newDate());
records[count].setDataTime(dataTime);
GridRecord record = new GridRecord();
record.setPersistenceTime(TimeUtil.newDate());
record.setDataTime(dataTime);
///If the level is the first then it is the SUM level.
if (j==0) {
MasterLevel masterLevel = levelDao.lookupMasterLevel(new MasterLevel("SFC"), true);
@ -147,7 +144,7 @@ public class LmaDecoder {
level.setLevelonevalue(0);
level.setMasterLevel(masterLevel);
level = levelDao.lookupLevel(level);
records[count].setLevel(level);
record.setLevel(level);
} else {
MasterLevel masterLevel = levelDao.lookupMasterLevel(new MasterLevel("FHAG"), true);
masterLevel.setUnitString("m");
@ -155,10 +152,10 @@ public class LmaDecoder {
level.setLevelonevalue((j+1)*1000.);
level.setMasterLevel(masterLevel);
level = levelDao.lookupLevel(level);
records[count].setLevel(level);
record.setLevel(level);
}
records[count].setDatasetId(networkNameAtt.getStringValue());
records[count].setLocation(cov);
record.setDatasetId(networkNameAtt.getStringValue());
record.setLocation(cov);
String id = lmaVarsDict.getVarForStorage(v.getFullName());
Parameter param = null;
try {
@ -167,13 +164,13 @@ public class LmaDecoder {
}
if (param == null) {
statusHandler.info("Need to create new parameter"+id+","+lmaVarsDict.getVarNameForStorage(v.getFullName()));
statusHandler.info("Need to create new parameter "+id+","+lmaVarsDict.getVarNameForStorage(v.getFullName()));
param = new Parameter(id);
param.setName(lmaVarsDict.getVarNameForStorage(v.getFullName()));
}
records[count].setParameter(param);
records[count].setLocation(cov);
record.setParameter(param);
record.setLocation(cov);
//Need to transform the array to a float array, then flip the array.
Array array = v.read();
@ -187,8 +184,8 @@ public class LmaDecoder {
}
///Need to flip the array to match how it is stored in AWIPS II versus netcdf.
ArraysUtil.flipHoriz(endArray, ny, nx);
records[count].setMessageData(endArray);
++count;
record.setMessageData(endArray);
recordsList.add(record);
}
}
@ -201,7 +198,13 @@ public class LmaDecoder {
} catch (Exception e){
statusHandler.warn("Problem closing the lma netcdf file: "+e);
}
return records;
if (recordsList.size() >0) {
GridRecord[] records = new GridRecord[recordsList.size()];
recordsList.toArray(records);
return records;
} else {
return null;
}
}

View file

@ -0,0 +1,258 @@
<!-- NASA SPoRT -->
<colorMap>
<color r="0.00392156862745098" g="0.101960784313725" b="0.258823529411765" a="0" />
<color r="0.807843137254902" g="0.83921568627451" b="0.772549019607843" a="1" />
<color r="0.301960784313725" g="0.83921568627451" b="0.796078431372549" a="1" />
<color r="0" g="0.698039215686274" b="0.83921568627451" a="1" />
<color r="0.337254901960784" g="0.588235294117647" b="0.83921568627451" a="1" />
<color r="0.184313725490196" g="0.294117647058824" b="0.83921568627451" a="1" />
<color r="0.0156862745098039" g="0" b="1" a="1" />
<color r="0.384313725490196" g="0.0313725490196078" b="1" a="1" />
<color r="0.00392156862745098" g="0.270588235294118" b="0.00392156862745098" a="1" />
<color r="0.00392156862745098" g="0.470588235294118" b="0.00392156862745098" a="1" />
<color r="0.00784313725490196" g="0.67843137254902" b="0.00784313725490196" a="1" />
<color r="0.00784313725490196" g="0.76078431372549" b="0.00784313725490196" a="1" />
<color r="0.00784313725490196" g="0.792156862745098" b="0.00784313725490196" a="1" />
<color r="0.00784313725490196" g="0.823529411764706" b="0.00784313725490196" a="1" />
<color r="0.00784313725490196" g="0.890196078431372" b="0.00784313725490196" a="1" />
<color r="0.00784313725490196" g="0.925490196078431" b="0.00784313725490196" a="1" />
<color r="0.0117647058823529" g="1" b="0.0117647058823529" a="1" />
<color r="0.215686274509804" g="1" b="0.0117647058823529" a="1" />
<color r="0.623529411764706" g="1" b="0.0196078431372549" a="1" />
<color r="0.662745098039216" g="1" b="0.0196078431372549" a="1" />
<color r="0.705882352941177" g="1" b="0.0196078431372549" a="1" />
<color r="0.623529411764706" g="1" b="0.0196078431372549" a="1" />
<color r="0.694117647058824" g="1" b="0.0196078431372549" a="1" />
<color r="0.643137254901961" g="1" b="0.0313725490196078" a="1" />
<color r="0.682352941176471" g="0.972549019607843" b="0.0901960784313725" a="1" />
<color r="0.72156862745098" g="0.945098039215686" b="0.152941176470588" a="1" />
<color r="0.76078431372549" g="0.917647058823529" b="0.215686274509804" a="1" />
<color r="0.8" g="0.890196078431372" b="0.27843137254902" a="1" />
<color r="0.83921568627451" g="0.862745098039216" b="0.337254901960784" a="1" />
<color r="0.87843137254902" g="0.835294117647059" b="0.4" a="1" />
<color r="0.917647058823529" g="0.807843137254902" b="0.462745098039216" a="1" />
<color r="1" g="0.752941176470588" b="0.588235294117647" a="1" />
<color r="1" g="0.729411764705882" b="0.568627450980392" a="1" />
<color r="1" g="0.701960784313725" b="0.545098039215686" a="1" />
<color r="1" g="0.674509803921569" b="0.525490196078431" a="1" />
<color r="1" g="0.647058823529412" b="0.501960784313725" a="1" />
<color r="1" g="0.619607843137255" b="0.47843137254902" a="1" />
<color r="1" g="0.592156862745098" b="0.458823529411765" a="1" />
<color r="1" g="0.568627450980392" b="0.435294117647059" a="1" />
<color r="1" g="0.541176470588235" b="0.415686274509804" a="1" />
<color r="1" g="0.513725490196078" b="0.392156862745098" a="1" />
<color r="1" g="0.486274509803922" b="0.368627450980392" a="1" />
<color r="1" g="0.458823529411765" b="0.349019607843137" a="1" />
<color r="1" g="0.431372549019608" b="0.325490196078431" a="1" />
<color r="1" g="0.443137254901961" b="0.227450980392157" a="1" />
<color r="1" g="0.427450980392157" b="0.2" a="1" />
<color r="1" g="0.415686274509804" b="0.172549019607843" a="1" />
<color r="1" g="0.4" b="0.145098039215686" a="1" />
<color r="1" g="0.388235294117647" b="0.117647058823529" a="1" />
<color r="1" g="0.356862745098039" b="0.0588235294117647" a="1" />
<color r="1" g="0.356862745098039" b="0.0862745098039216" a="1" />
<color r="1" g="0.356862745098039" b="0.113725490196078" a="1" />
<color r="1" g="0.36078431372549" b="0.141176470588235" a="1" />
<color r="1" g="0.36078431372549" b="0.168627450980392" a="1" />
<color r="1" g="0.36078431372549" b="0.196078431372549" a="1" />
<color r="1" g="0.364705882352941" b="0.223529411764706" a="1" />
<color r="1" g="0.364705882352941" b="0.250980392156863" a="1" />
<color r="1" g="0.368627450980392" b="0.309803921568627" a="1" />
<color r="1" g="0.337254901960784" b="0.290196078431373" a="1" />
<color r="1" g="0.301960784313725" b="0.270588235294118" a="1" />
<color r="1" g="0.270588235294118" b="0.250980392156863" a="1" />
<color r="1" g="0.235294117647059" b="0.227450980392157" a="1" />
<color r="1" g="0.203921568627451" b="0.207843137254902" a="1" />
<color r="1" g="0.168627450980392" b="0.188235294117647" a="1" />
<color r="1" g="0.137254901960784" b="0.168627450980392" a="1" />
<color r="1" g="0.101960784313725" b="0.145098039215686" a="1" />
<color r="1" g="0.0705882352941176" b="0.125490196078431" a="1" />
<color r="1" g="0" b="0.0823529411764706" a="1" />
<color r="1" g="0" b="0.113725490196078" a="1" />
<color r="1" g="0" b="0.149019607843137" a="1" />
<color r="1" g="0" b="0.180392156862745" a="1" />
<color r="1" g="0" b="0.215686274509804" a="1" />
<color r="1" g="0" b="0.247058823529412" a="1" />
<color r="1" g="0" b="0.282352941176471" a="1" />
<color r="1" g="0" b="0.313725490196078" a="1" />
<color r="1" g="0" b="0.349019607843137" a="1" />
<color r="1" g="0" b="0.380392156862745" a="1" />
<color r="1" g="0" b="0.450980392156863" a="1" />
<color r="1" g="0" b="0.474509803921569" a="1" />
<color r="1" g="0" b="0.501960784313725" a="1" />
<color r="1" g="0" b="0.529411764705882" a="1" />
<color r="1" g="0" b="0.556862745098039" a="1" />
<color r="1" g="0" b="0.584313725490196" a="1" />
<color r="1" g="0" b="0.611764705882353" a="1" />
<color r="1" g="0" b="0.63921568627451" a="1" />
<color r="1" g="0" b="0.666666666666667" a="1" />
<color r="1" g="0" b="0.694117647058824" a="1" />
<color r="1" g="0" b="0.450980392156863" a="1" />
<color r="1" g="0" b="0.482352941176471" a="1" />
<color r="1" g="0" b="0.517647058823529" a="1" />
<color r="1" g="0" b="0.552941176470588" a="1" />
<color r="0.996078431372549" g="0" b="0.588235294117647" a="1" />
<color r="0.996078431372549" g="0" b="0.619607843137255" a="1" />
<color r="0.996078431372549" g="0" b="0.654901960784314" a="1" />
<color r="0.996078431372549" g="0" b="0.690196078431373" a="1" />
<color r="0.992156862745098" g="0" b="0.725490196078431" a="1" />
<color r="0.992156862745098" g="0" b="0.756862745098039" a="1" />
<color r="0.992156862745098" g="0" b="0.792156862745098" a="1" />
<color r="0.992156862745098" g="0" b="0.827450980392157" a="1" />
<color r="0.988235294117647" g="0" b="0.862745098039216" a="1" />
<color r="0.988235294117647" g="0" b="0.894117647058824" a="1" />
<color r="0.988235294117647" g="0" b="0.929411764705882" a="1" />
<color r="0.984313725490196" g="0" b="1" a="1" />
<color r="0.984313725490196" g="0.0196078431372549" b="1" a="1" />
<color r="0.984313725490196" g="0.0392156862745098" b="0.996078431372549" a="1" />
<color r="0.984313725490196" g="0.0627450980392157" b="0.996078431372549" a="1" />
<color r="0.984313725490196" g="0.0823529411764706" b="0.992156862745098" a="1" />
<color r="0.984313725490196" g="0.101960784313725" b="0.992156862745098" a="1" />
<color r="0.984313725490196" g="0.125490196078431" b="0.988235294117647" a="1" />
<color r="0.988235294117647" g="0.145098039215686" b="0.988235294117647" a="1" />
<color r="0.988235294117647" g="0.168627450980392" b="0.984313725490196" a="1" />
<color r="0.988235294117647" g="0.188235294117647" b="0.984313725490196" a="1" />
<color r="0.988235294117647" g="0.207843137254902" b="0.980392156862745" a="1" />
<color r="0.988235294117647" g="0.231372549019608" b="0.980392156862745" a="1" />
<color r="0.988235294117647" g="0.250980392156863" b="0.976470588235294" a="1" />
<color r="0.992156862745098" g="0.274509803921569" b="0.976470588235294" a="1" />
<color r="0.992156862745098" g="0.294117647058824" b="0.972549019607843" a="1" />
<color r="0.992156862745098" g="0.313725490196078" b="0.972549019607843" a="1" />
<color r="0.992156862745098" g="0.337254901960784" b="0.968627450980392" a="1" />
<color r="0.992156862745098" g="0.356862745098039" b="0.968627450980392" a="1" />
<color r="0.992156862745098" g="0.376470588235294" b="0.964705882352941" a="1" />
<color r="0.992156862745098" g="0.4" b="0.964705882352941" a="1" />
<color r="0.996078431372549" g="0.419607843137255" b="0.96078431372549" a="1" />
<color r="0.996078431372549" g="0.443137254901961" b="0.96078431372549" a="1" />
<color r="0.996078431372549" g="0.462745098039216" b="0.956862745098039" a="1" />
<color r="0.996078431372549" g="0.482352941176471" b="0.956862745098039" a="1" />
<color r="0.996078431372549" g="0.505882352941176" b="0.952941176470588" a="1" />
<color r="1" g="0.549019607843137" b="0.949019607843137" a="1" />
<color r="0.996078431372549" g="0.552941176470588" b="0.949019607843137" a="1" />
<color r="0.988235294117647" g="0.556862745098039" b="0.949019607843137" a="1" />
<color r="0.980392156862745" g="0.564705882352941" b="0.952941176470588" a="1" />
<color r="0.972549019607843" g="0.568627450980392" b="0.952941176470588" a="1" />
<color r="0.964705882352941" g="0.572549019607843" b="0.956862745098039" a="1" />
<color r="0.96078431372549" g="0.580392156862745" b="0.956862745098039" a="1" />
<color r="0.952941176470588" g="0.584313725490196" b="0.96078431372549" a="1" />
<color r="0.945098039215686" g="0.588235294117647" b="0.96078431372549" a="1" />
<color r="0.937254901960784" g="0.596078431372549" b="0.964705882352941" a="1" />
<color r="0.929411764705882" g="0.6" b="0.964705882352941" a="1" />
<color r="0.925490196078431" g="0.603921568627451" b="0.968627450980392" a="1" />
<color r="0.917647058823529" g="0.611764705882353" b="0.968627450980392" a="1" />
<color r="0.909803921568627" g="0.615686274509804" b="0.972549019607843" a="1" />
<color r="0.901960784313726" g="0.619607843137255" b="0.972549019607843" a="1" />
<color r="0.894117647058824" g="0.627450980392157" b="0.976470588235294" a="1" />
<color r="0.886274509803922" g="0.631372549019608" b="0.976470588235294" a="1" />
<color r="0.882352941176471" g="0.635294117647059" b="0.980392156862745" a="1" />
<color r="0.874509803921569" g="0.643137254901961" b="0.980392156862745" a="1" />
<color r="0.866666666666667" g="0.647058823529412" b="0.984313725490196" a="1" />
<color r="0.858823529411765" g="0.650980392156863" b="0.984313725490196" a="1" />
<color r="0.850980392156863" g="0.658823529411765" b="0.988235294117647" a="1" />
<color r="0.847058823529412" g="0.662745098039216" b="0.988235294117647" a="1" />
<color r="0.83921568627451" g="0.666666666666667" b="0.992156862745098" a="1" />
<color r="0.831372549019608" g="0.674509803921569" b="0.992156862745098" a="1" />
<color r="0.847058823529412" g="0.674509803921569" b="0.988235294117647" a="1" />
<color r="0.819607843137255" g="0.682352941176471" b="0.988235294117647" a="1" />
<color r="0.788235294117647" g="0.694117647058824" b="0.988235294117647" a="1" />
<color r="0.76078431372549" g="0.705882352941177" b="0.988235294117647" a="1" />
<color r="0.729411764705882" g="0.717647058823529" b="0.988235294117647" a="1" />
<color r="0.701960784313725" g="0.729411764705882" b="0.988235294117647" a="1" />
<color r="0.670588235294118" g="0.741176470588235" b="0.984313725490196" a="1" />
<color r="0.643137254901961" g="0.752941176470588" b="0.984313725490196" a="1" />
<color r="0.611764705882353" g="0.764705882352941" b="0.984313725490196" a="1" />
<color r="0.584313725490196" g="0.776470588235294" b="0.984313725490196" a="1" />
<color r="0.552941176470588" g="0.788235294117647" b="0.984313725490196" a="1" />
<color r="0.525490196078431" g="0.8" b="0.984313725490196" a="1" />
<color r="0.494117647058824" g="0.811764705882353" b="0.980392156862745" a="1" />
<color r="0.466666666666667" g="0.823529411764706" b="0.980392156862745" a="1" />
<color r="0.435294117647059" g="0.835294117647059" b="0.980392156862745" a="1" />
<color r="0.403921568627451" g="0.847058823529412" b="0.980392156862745" a="1" />
<color r="0.376470588235294" g="0.858823529411765" b="0.980392156862745" a="1" />
<color r="0.345098039215686" g="0.870588235294118" b="0.976470588235294" a="1" />
<color r="0.317647058823529" g="0.882352941176471" b="0.976470588235294" a="1" />
<color r="0.286274509803922" g="0.894117647058824" b="0.976470588235294" a="1" />
<color r="0.258823529411765" g="0.905882352941176" b="0.976470588235294" a="1" />
<color r="0.227450980392157" g="0.917647058823529" b="0.976470588235294" a="1" />
<color r="0.2" g="0.929411764705882" b="0.976470588235294" a="1" />
<color r="0.168627450980392" g="0.941176470588235" b="0.972549019607843" a="1" />
<color r="0.141176470588235" g="0.952941176470588" b="0.972549019607843" a="1" />
<color r="0.109803921568627" g="0.964705882352941" b="0.972549019607843" a="1" />
<color r="0.0823529411764706" g="0.976470588235294" b="0.972549019607843" a="1" />
<color r="0.0196078431372549" g="1" b="0.952941176470588" a="1" />
<color r="0.0509803921568627" g="1" b="0.949019607843137" a="1" />
<color r="0.0862745098039216" g="1" b="0.941176470588235" a="1" />
<color r="0.117647058823529" g="1" b="0.933333333333333" a="1" />
<color r="0.152941176470588" g="1" b="0.925490196078431" a="1" />
<color r="0.184313725490196" g="1" b="0.92156862745098" a="1" />
<color r="0.219607843137255" g="1" b="0.913725490196078" a="1" />
<color r="0.250980392156863" g="1" b="0.905882352941176" a="1" />
<color r="0.286274509803922" g="1" b="0.898039215686275" a="1" />
<color r="0.32156862745098" g="1" b="0.894117647058824" a="1" />
<color r="0.352941176470588" g="1" b="0.886274509803922" a="1" />
<color r="0.388235294117647" g="1" b="0.87843137254902" a="1" />
<color r="0.419607843137255" g="1" b="0.870588235294118" a="1" />
<color r="0.454901960784314" g="1" b="0.866666666666667" a="1" />
<color r="0.486274509803922" g="1" b="0.858823529411765" a="1" />
<color r="0.52156862745098" g="1" b="0.850980392156863" a="1" />
<color r="0.552941176470588" g="1" b="0.843137254901961" a="1" />
<color r="0.588235294117647" g="1" b="0.83921568627451" a="1" />
<color r="0.623529411764706" g="1" b="0.831372549019608" a="1" />
<color r="0.654901960784314" g="1" b="0.823529411764706" a="1" />
<color r="0.690196078431373" g="1" b="0.815686274509804" a="1" />
<color r="0.72156862745098" g="1" b="0.811764705882353" a="1" />
<color r="0.756862745098039" g="1" b="0.803921568627451" a="1" />
<color r="0.788235294117647" g="1" b="0.796078431372549" a="1" />
<color r="0.823529411764706" g="1" b="0.788235294117647" a="1" />
<color r="1" g="0.996078431372549" b="0.784313725490196" a="1" />
<color r="1" g="0.996078431372549" b="0.768627450980392" a="1" />
<color r="1" g="0.992156862745098" b="0.752941176470588" a="1" />
<color r="1" g="0.992156862745098" b="0.741176470588235" a="1" />
<color r="1" g="0.992156862745098" b="0.725490196078431" a="1" />
<color r="1" g="0.992156862745098" b="0.709803921568627" a="1" />
<color r="1" g="0.992156862745098" b="0.694117647058824" a="1" />
<color r="1" g="0.992156862745098" b="0.67843137254902" a="1" />
<color r="1" g="0.992156862745098" b="0.662745098039216" a="1" />
<color r="1" g="0.992156862745098" b="0.647058823529412" a="1" />
<color r="1" g="0.988235294117647" b="0.631372549019608" a="1" />
<color r="1" g="0.988235294117647" b="0.615686274509804" a="1" />
<color r="1" g="0.988235294117647" b="0.6" a="1" />
<color r="1" g="0.988235294117647" b="0.584313725490196" a="1" />
<color r="1" g="0.988235294117647" b="0.568627450980392" a="1" />
<color r="1" g="0.988235294117647" b="0.552941176470588" a="1" />
<color r="1" g="0.988235294117647" b="0.537254901960784" a="1" />
<color r="1" g="0.988235294117647" b="0.52156862745098" a="1" />
<color r="1" g="0.984313725490196" b="0.505882352941176" a="1" />
<color r="1" g="0.984313725490196" b="0.494117647058824" a="1" />
<color r="1" g="0.984313725490196" b="0.47843137254902" a="1" />
<color r="1" g="0.984313725490196" b="0.462745098039216" a="1" />
<color r="1" g="0.984313725490196" b="0.447058823529412" a="1" />
<color r="1" g="0.984313725490196" b="0.431372549019608" a="1" />
<color r="1" g="0.984313725490196" b="0.415686274509804" a="1" />
<color r="1" g="0.984313725490196" b="0.4" a="1" />
<color r="1" g="0.980392156862745" b="0.384313725490196" a="1" />
<color r="1" g="0.980392156862745" b="0.368627450980392" a="1" />
<color r="1" g="0.980392156862745" b="0.352941176470588" a="1" />
<color r="1" g="0.980392156862745" b="0.337254901960784" a="1" />
<color r="1" g="0.980392156862745" b="0.32156862745098" a="1" />
<color r="1" g="0.980392156862745" b="0.305882352941176" a="1" />
<color r="1" g="0.980392156862745" b="0.290196078431373" a="1" />
<color r="1" g="0.980392156862745" b="0.274509803921569" a="1" />
<color r="1" g="0.976470588235294" b="0.258823529411765" a="1" />
<color r="1" g="0.976470588235294" b="0.247058823529412" a="1" />
<color r="1" g="0.976470588235294" b="0.231372549019608" a="1" />
<color r="1" g="0.976470588235294" b="0.215686274509804" a="1" />
<color r="1" g="0.976470588235294" b="0.2" a="1" />
<color r="1" g="0.976470588235294" b="0.184313725490196" a="1" />
<color r="1" g="0.976470588235294" b="0.168627450980392" a="1" />
<color r="1" g="0.976470588235294" b="0.152941176470588" a="1" />
<color r="1" g="0.972549019607843" b="0.137254901960784" a="1" />
<color r="1" g="0.972549019607843" b="0.12156862745098" a="1" />
<color r="1" g="0.972549019607843" b="0.105882352941176" a="1" />
<color r="1" g="0.972549019607843" b="0.0901960784313725" a="1" />
<color r="1" g="0.972549019607843" b="0.0745098039215686" a="1" />
<color r="1" g="0.972549019607843" b="0.0588235294117647" a="1" />
<color r="1" g="0.972549019607843" b="0.0431372549019608" a="1" />
<color r="1" g="1" b="1" a="1" />
<color r="1" g="1" b="1" a="1" />
</colorMap>

View file

@ -0,0 +1,261 @@
<!-- ====================
This is a colormap file that is read via JaXB to marshel the ColorMap class.
======================-->
<colorMap>
<color r="0" g="0" b="0" a="0" />
<color r="0" g="0" b="0" a="1" />
<color r="0" g="0" b="0" a="1" />
<color r="0.00784313725490196" g="0.850980392156863" b="0.00784313725490196" a="1" />
<color r="0.133333333333333" g="0.850980392156863" b="0.00784313725490196" a="1" />
<color r="0.258823529411765" g="0.850980392156863" b="0.00784313725490196" a="1" />
<color r="0.384313725490196" g="0.850980392156863" b="0.00784313725490196" a="1" />
<color r="0.509803921568627" g="0.854901960784314" b="0.00784313725490196" a="1" />
<color r="0.635294117647059" g="0.854901960784314" b="0.00784313725490196" a="1" />
<color r="0.768627450980392" g="0.850980392156863" b="0.0156862745098039" a="1" />
<color r="0.784313725490196" g="0.737254901960784" b="0.0274509803921569" a="1" />
<color r="0.8" g="0.623529411764706" b="0.0431372549019608" a="1" />
<color r="0.819607843137255" g="0.505882352941176" b="0.0549019607843137" a="1" />
<color r="0.835294117647059" g="0.392156862745098" b="0.0705882352941176" a="1" />
<color r="0.854901960784314" g="0.274509803921569" b="0.0823529411764706" a="1" />
<color r="0.768627450980392" g="0.850980392156863" b="0.0156862745098039" a="1" />
<color r="0.745098039215686" g="0.819607843137255" b="0.0470588235294118" a="1" />
<color r="0.717647058823529" g="0.788235294117647" b="0.0784313725490196" a="1" />
<color r="0.690196078431373" g="0.756862745098039" b="0.109803921568627" a="1" />
<color r="0.662745098039216" g="0.725490196078431" b="0.145098039215686" a="1" />
<color r="0.635294117647059" g="0.694117647058824" b="0.176470588235294" a="1" />
<color r="0.607843137254902" g="0.662745098039216" b="0.207843137254902" a="1" />
<color r="0.580392156862745" g="0.631372549019608" b="0.23921568627451" a="1" />
<color r="0.552941176470588" g="0.6" b="0.274509803921569" a="1" />
<color r="0.525490196078431" g="0.568627450980392" b="0.305882352941176" a="1" />
<color r="0.498039215686275" g="0.537254901960784" b="0.337254901960784" a="1" />
<color r="0.470588235294118" g="0.505882352941176" b="0.368627450980392" a="1" />
<color r="0.443137254901961" g="0.474509803921569" b="0.403921568627451" a="1" />
<color r="0.415686274509804" g="0.443137254901961" b="0.435294117647059" a="1" />
<color r="0.388235294117647" g="0.411764705882353" b="0.466666666666667" a="1" />
<color r="0.36078431372549" g="0.380392156862745" b="0.498039215686275" a="1" />
<color r="0.333333333333333" g="0.349019607843137" b="0.533333333333333" a="1" />
<color r="0.305882352941176" g="0.317647058823529" b="0.564705882352941" a="1" />
<color r="0.27843137254902" g="0.286274509803922" b="0.596078431372549" a="1" />
<color r="0.250980392156863" g="0.254901960784314" b="0.627450980392157" a="1" />
<color r="0.223529411764706" g="0.223529411764706" b="0.662745098039216" a="1" />
<color r="0.196078431372549" g="0.192156862745098" b="0.694117647058824" a="1" />
<color r="0.168627450980392" g="0.16078431372549" b="0.725490196078431" a="1" />
<color r="0.141176470588235" g="0.129411764705882" b="0.756862745098039" a="1" />
<color r="0.113725490196078" g="0.0980392156862745" b="0.792156862745098" a="1" />
<color r="0.0862745098039216" g="0.0666666666666667" b="0.823529411764706" a="1" />
<color r="0.0549019607843137" g="0.0274509803921569" b="0.850980392156863" a="1" />
<color r="0.0705882352941176" g="0.0470588235294118" b="0.850980392156863" a="1" />
<color r="0.0862745098039216" g="0.0705882352941176" b="0.850980392156863" a="1" />
<color r="0.105882352941176" g="0.0941176470588235" b="0.850980392156863" a="1" />
<color r="0.12156862745098" g="0.113725490196078" b="0.854901960784314" a="1" />
<color r="0.141176470588235" g="0.137254901960784" b="0.854901960784314" a="1" />
<color r="0.156862745098039" g="0.16078431372549" b="0.854901960784314" a="1" />
<color r="0.176470588235294" g="0.180392156862745" b="0.854901960784314" a="1" />
<color r="0.192156862745098" g="0.203921568627451" b="0.858823529411765" a="1" />
<color r="0.211764705882353" g="0.227450980392157" b="0.858823529411765" a="1" />
<color r="0.227450980392157" g="0.247058823529412" b="0.858823529411765" a="1" />
<color r="0.247058823529412" g="0.270588235294118" b="0.858823529411765" a="1" />
<color r="0.262745098039216" g="0.294117647058824" b="0.862745098039216" a="1" />
<color r="0.282352941176471" g="0.313725490196078" b="0.862745098039216" a="1" />
<color r="0.298039215686275" g="0.337254901960784" b="0.862745098039216" a="1" />
<color r="0.317647058823529" g="0.36078431372549" b="0.862745098039216" a="1" />
<color r="0.333333333333333" g="0.380392156862745" b="0.866666666666667" a="1" />
<color r="0.352941176470588" g="0.403921568627451" b="0.866666666666667" a="1" />
<color r="0.368627450980392" g="0.427450980392157" b="0.866666666666667" a="1" />
<color r="0.388235294117647" g="0.450980392156863" b="0.870588235294118" a="1" />
<color r="0.403921568627451" g="0.470588235294118" b="0.870588235294118" a="1" />
<color r="0.419607843137255" g="0.494117647058824" b="0.870588235294118" a="1" />
<color r="0.43921568627451" g="0.517647058823529" b="0.870588235294118" a="1" />
<color r="0.454901960784314" g="0.537254901960784" b="0.874509803921569" a="1" />
<color r="0.474509803921569" g="0.56078431372549" b="0.874509803921569" a="1" />
<color r="0.490196078431373" g="0.584313725490196" b="0.874509803921569" a="1" />
<color r="0.509803921568627" g="0.603921568627451" b="0.874509803921569" a="1" />
<color r="0.525490196078431" g="0.627450980392157" b="0.87843137254902" a="1" />
<color r="0.545098039215686" g="0.650980392156863" b="0.87843137254902" a="1" />
<color r="0.56078431372549" g="0.670588235294118" b="0.87843137254902" a="1" />
<color r="0.580392156862745" g="0.694117647058824" b="0.87843137254902" a="1" />
<color r="0.596078431372549" g="0.717647058823529" b="0.882352941176471" a="1" />
<color r="0.615686274509804" g="0.737254901960784" b="0.882352941176471" a="1" />
<color r="0.631372549019608" g="0.76078431372549" b="0.882352941176471" a="1" />
<color r="0.650980392156863" g="0.784313725490196" b="0.882352941176471" a="1" />
<color r="0.666666666666667" g="0.803921568627451" b="0.886274509803922" a="1" />
<color r="0.686274509803922" g="0.827450980392157" b="0.886274509803922" a="1" />
<color r="0.674509803921569" g="0.803921568627451" b="0.890196078431372" a="1" />
<color r="0.674509803921569" g="0.8" b="0.890196078431372" a="1" />
<color r="0.674509803921569" g="0.796078431372549" b="0.890196078431372" a="1" />
<color r="0.674509803921569" g="0.792156862745098" b="0.886274509803922" a="1" />
<color r="0.67843137254902" g="0.788235294117647" b="0.886274509803922" a="1" />
<color r="0.67843137254902" g="0.784313725490196" b="0.882352941176471" a="1" />
<color r="0.67843137254902" g="0.780392156862745" b="0.882352941176471" a="1" />
<color r="0.682352941176471" g="0.772549019607843" b="0.87843137254902" a="1" />
<color r="0.682352941176471" g="0.768627450980392" b="0.87843137254902" a="1" />
<color r="0.682352941176471" g="0.764705882352941" b="0.874509803921569" a="1" />
<color r="0.686274509803922" g="0.76078431372549" b="0.874509803921569" a="1" />
<color r="0.686274509803922" g="0.756862745098039" b="0.874509803921569" a="1" />
<color r="0.686274509803922" g="0.752941176470588" b="0.870588235294118" a="1" />
<color r="0.690196078431373" g="0.745098039215686" b="0.870588235294118" a="1" />
<color r="0.690196078431373" g="0.741176470588235" b="0.866666666666667" a="1" />
<color r="0.690196078431373" g="0.737254901960784" b="0.866666666666667" a="1" />
<color r="0.690196078431373" g="0.733333333333333" b="0.862745098039216" a="1" />
<color r="0.694117647058824" g="0.729411764705882" b="0.862745098039216" a="1" />
<color r="0.694117647058824" g="0.725490196078431" b="0.858823529411765" a="1" />
<color r="0.694117647058824" g="0.717647058823529" b="0.858823529411765" a="1" />
<color r="0.698039215686274" g="0.713725490196078" b="0.858823529411765" a="1" />
<color r="0.698039215686274" g="0.709803921568627" b="0.854901960784314" a="1" />
<color r="0.698039215686274" g="0.705882352941177" b="0.854901960784314" a="1" />
<color r="0.701960784313725" g="0.701960784313725" b="0.850980392156863" a="1" />
<color r="0.701960784313725" g="0.698039215686274" b="0.850980392156863" a="1" />
<color r="0.701960784313725" g="0.694117647058824" b="0.847058823529412" a="1" />
<color r="0.705882352941177" g="0.686274509803922" b="0.847058823529412" a="1" />
<color r="0.705882352941177" g="0.682352941176471" b="0.843137254901961" a="1" />
<color r="0.705882352941177" g="0.67843137254902" b="0.843137254901961" a="1" />
<color r="0.709803921568627" g="0.674509803921569" b="0.843137254901961" a="1" />
<color r="0.709803921568627" g="0.670588235294118" b="0.83921568627451" a="1" />
<color r="0.709803921568627" g="0.666666666666667" b="0.83921568627451" a="1" />
<color r="0.709803921568627" g="0.658823529411765" b="0.835294117647059" a="1" />
<color r="0.713725490196078" g="0.654901960784314" b="0.835294117647059" a="1" />
<color r="0.713725490196078" g="0.650980392156863" b="0.831372549019608" a="1" />
<color r="0.713725490196078" g="0.647058823529412" b="0.831372549019608" a="1" />
<color r="0.717647058823529" g="0.643137254901961" b="0.827450980392157" a="1" />
<color r="0.717647058823529" g="0.63921568627451" b="0.827450980392157" a="1" />
<color r="0.717647058823529" g="0.631372549019608" b="0.827450980392157" a="1" />
<color r="0.72156862745098" g="0.627450980392157" b="0.823529411764706" a="1" />
<color r="0.72156862745098" g="0.623529411764706" b="0.823529411764706" a="1" />
<color r="0.72156862745098" g="0.619607843137255" b="0.819607843137255" a="1" />
<color r="0.725490196078431" g="0.615686274509804" b="0.819607843137255" a="1" />
<color r="0.725490196078431" g="0.611764705882353" b="0.815686274509804" a="1" />
<color r="0.725490196078431" g="0.607843137254902" b="0.815686274509804" a="1" />
<color r="0.725490196078431" g="0.6" b="0.811764705882353" a="1" />
<color r="0.729411764705882" g="0.596078431372549" b="0.811764705882353" a="1" />
<color r="0.729411764705882" g="0.592156862745098" b="0.811764705882353" a="1" />
<color r="0.729411764705882" g="0.588235294117647" b="0.807843137254902" a="1" />
<color r="0.733333333333333" g="0.584313725490196" b="0.807843137254902" a="1" />
<color r="0.733333333333333" g="0.580392156862745" b="0.803921568627451" a="1" />
<color r="0.733333333333333" g="0.572549019607843" b="0.803921568627451" a="1" />
<color r="0.737254901960784" g="0.568627450980392" b="0.8" a="1" />
<color r="0.737254901960784" g="0.564705882352941" b="0.8" a="1" />
<color r="0.737254901960784" g="0.56078431372549" b="0.796078431372549" a="1" />
<color r="0.741176470588235" g="0.556862745098039" b="0.796078431372549" a="1" />
<color r="0.741176470588235" g="0.552941176470588" b="0.796078431372549" a="1" />
<color r="0.741176470588235" g="0.545098039215686" b="0.792156862745098" a="1" />
<color r="0.745098039215686" g="0.541176470588235" b="0.792156862745098" a="1" />
<color r="0.745098039215686" g="0.537254901960784" b="0.788235294117647" a="1" />
<color r="0.745098039215686" g="0.533333333333333" b="0.788235294117647" a="1" />
<color r="0.745098039215686" g="0.529411764705882" b="0.784313725490196" a="1" />
<color r="0.749019607843137" g="0.525490196078431" b="0.784313725490196" a="1" />
<color r="0.749019607843137" g="0.52156862745098" b="0.780392156862745" a="1" />
<color r="0.749019607843137" g="0.513725490196078" b="0.780392156862745" a="1" />
<color r="0.752941176470588" g="0.509803921568627" b="0.776470588235294" a="1" />
<color r="0.752941176470588" g="0.505882352941176" b="0.776470588235294" a="1" />
<color r="0.752941176470588" g="0.501960784313725" b="0.776470588235294" a="1" />
<color r="0.756862745098039" g="0.498039215686275" b="0.772549019607843" a="1" />
<color r="0.756862745098039" g="0.494117647058824" b="0.772549019607843" a="1" />
<color r="0.756862745098039" g="0.486274509803922" b="0.768627450980392" a="1" />
<color r="0.76078431372549" g="0.482352941176471" b="0.768627450980392" a="1" />
<color r="0.76078431372549" g="0.47843137254902" b="0.764705882352941" a="1" />
<color r="0.76078431372549" g="0.474509803921569" b="0.764705882352941" a="1" />
<color r="0.76078431372549" g="0.470588235294118" b="0.76078431372549" a="1" />
<color r="0.764705882352941" g="0.466666666666667" b="0.76078431372549" a="1" />
<color r="0.764705882352941" g="0.458823529411765" b="0.76078431372549" a="1" />
<color r="0.764705882352941" g="0.454901960784314" b="0.756862745098039" a="1" />
<color r="0.768627450980392" g="0.450980392156863" b="0.756862745098039" a="1" />
<color r="0.768627450980392" g="0.447058823529412" b="0.752941176470588" a="1" />
<color r="0.768627450980392" g="0.443137254901961" b="0.752941176470588" a="1" />
<color r="0.772549019607843" g="0.43921568627451" b="0.749019607843137" a="1" />
<color r="0.772549019607843" g="0.435294117647059" b="0.749019607843137" a="1" />
<color r="0.772549019607843" g="0.427450980392157" b="0.745098039215686" a="1" />
<color r="0.776470588235294" g="0.423529411764706" b="0.745098039215686" a="1" />
<color r="0.776470588235294" g="0.419607843137255" b="0.745098039215686" a="1" />
<color r="0.776470588235294" g="0.415686274509804" b="0.741176470588235" a="1" />
<color r="0.780392156862745" g="0.411764705882353" b="0.741176470588235" a="1" />
<color r="0.780392156862745" g="0.407843137254902" b="0.737254901960784" a="1" />
<color r="0.780392156862745" g="0.4" b="0.737254901960784" a="1" />
<color r="0.780392156862745" g="0.396078431372549" b="0.733333333333333" a="1" />
<color r="0.784313725490196" g="0.392156862745098" b="0.733333333333333" a="1" />
<color r="0.784313725490196" g="0.388235294117647" b="0.729411764705882" a="1" />
<color r="0.784313725490196" g="0.384313725490196" b="0.729411764705882" a="1" />
<color r="0.788235294117647" g="0.380392156862745" b="0.729411764705882" a="1" />
<color r="0.788235294117647" g="0.372549019607843" b="0.725490196078431" a="1" />
<color r="0.788235294117647" g="0.368627450980392" b="0.725490196078431" a="1" />
<color r="0.792156862745098" g="0.364705882352941" b="0.72156862745098" a="1" />
<color r="0.792156862745098" g="0.36078431372549" b="0.72156862745098" a="1" />
<color r="0.792156862745098" g="0.356862745098039" b="0.717647058823529" a="1" />
<color r="0.796078431372549" g="0.352941176470588" b="0.717647058823529" a="1" />
<color r="0.796078431372549" g="0.349019607843137" b="0.713725490196078" a="1" />
<color r="0.796078431372549" g="0.341176470588235" b="0.713725490196078" a="1" />
<color r="0.8" g="0.337254901960784" b="0.713725490196078" a="1" />
<color r="0.8" g="0.333333333333333" b="0.709803921568627" a="1" />
<color r="0.8" g="0.329411764705882" b="0.709803921568627" a="1" />
<color r="0.8" g="0.325490196078431" b="0.705882352941177" a="1" />
<color r="0.803921568627451" g="0.32156862745098" b="0.705882352941177" a="1" />
<color r="0.803921568627451" g="0.313725490196078" b="0.701960784313725" a="1" />
<color r="0.803921568627451" g="0.309803921568627" b="0.701960784313725" a="1" />
<color r="0.807843137254902" g="0.305882352941176" b="0.698039215686274" a="1" />
<color r="0.807843137254902" g="0.301960784313725" b="0.698039215686274" a="1" />
<color r="0.807843137254902" g="0.298039215686275" b="0.698039215686274" a="1" />
<color r="0.811764705882353" g="0.294117647058824" b="0.694117647058824" a="1" />
<color r="0.811764705882353" g="0.286274509803922" b="0.694117647058824" a="1" />
<color r="0.811764705882353" g="0.282352941176471" b="0.690196078431373" a="1" />
<color r="0.815686274509804" g="0.27843137254902" b="0.690196078431373" a="1" />
<color r="0.815686274509804" g="0.274509803921569" b="0.686274509803922" a="1" />
<color r="0.815686274509804" g="0.270588235294118" b="0.686274509803922" a="1" />
<color r="0.815686274509804" g="0.266666666666667" b="0.682352941176471" a="1" />
<color r="0.819607843137255" g="0.262745098039216" b="0.682352941176471" a="1" />
<color r="0.819607843137255" g="0.254901960784314" b="0.67843137254902" a="1" />
<color r="0.819607843137255" g="0.250980392156863" b="0.67843137254902" a="1" />
<color r="0.823529411764706" g="0.247058823529412" b="0.67843137254902" a="1" />
<color r="0.823529411764706" g="0.243137254901961" b="0.674509803921569" a="1" />
<color r="0.823529411764706" g="0.23921568627451" b="0.674509803921569" a="1" />
<color r="0.827450980392157" g="0.235294117647059" b="0.670588235294118" a="1" />
<color r="0.827450980392157" g="0.227450980392157" b="0.670588235294118" a="1" />
<color r="0.827450980392157" g="0.223529411764706" b="0.666666666666667" a="1" />
<color r="0.831372549019608" g="0.219607843137255" b="0.666666666666667" a="1" />
<color r="0.831372549019608" g="0.215686274509804" b="0.662745098039216" a="1" />
<color r="0.831372549019608" g="0.211764705882353" b="0.662745098039216" a="1" />
<color r="0.835294117647059" g="0.207843137254902" b="0.662745098039216" a="1" />
<color r="0.835294117647059" g="0.2" b="0.658823529411765" a="1" />
<color r="0.835294117647059" g="0.196078431372549" b="0.658823529411765" a="1" />
<color r="0.835294117647059" g="0.192156862745098" b="0.654901960784314" a="1" />
<color r="0.83921568627451" g="0.188235294117647" b="0.654901960784314" a="1" />
<color r="0.83921568627451" g="0.184313725490196" b="0.650980392156863" a="1" />
<color r="0.83921568627451" g="0.180392156862745" b="0.650980392156863" a="1" />
<color r="0.843137254901961" g="0.176470588235294" b="0.647058823529412" a="1" />
<color r="0.843137254901961" g="0.168627450980392" b="0.647058823529412" a="1" />
<color r="0.843137254901961" g="0.164705882352941" b="0.647058823529412" a="1" />
<color r="0.847058823529412" g="0.16078431372549" b="0.643137254901961" a="1" />
<color r="0.847058823529412" g="0.156862745098039" b="0.643137254901961" a="1" />
<color r="0.847058823529412" g="0.152941176470588" b="0.63921568627451" a="1" />
<color r="0.850980392156863" g="0.149019607843137" b="0.63921568627451" a="1" />
<color r="0.850980392156863" g="0.141176470588235" b="0.635294117647059" a="1" />
<color r="0.850980392156863" g="0.137254901960784" b="0.635294117647059" a="1" />
<color r="0.850980392156863" g="0.133333333333333" b="0.631372549019608" a="1" />
<color r="0.854901960784314" g="0.129411764705882" b="0.631372549019608" a="1" />
<color r="0.854901960784314" g="0.125490196078431" b="0.631372549019608" a="1" />
<color r="0.854901960784314" g="0.12156862745098" b="0.627450980392157" a="1" />
<color r="0.858823529411765" g="0.113725490196078" b="0.627450980392157" a="1" />
<color r="0.858823529411765" g="0.109803921568627" b="0.623529411764706" a="1" />
<color r="0.858823529411765" g="0.105882352941176" b="0.623529411764706" a="1" />
<color r="0.862745098039216" g="0.101960784313725" b="0.619607843137255" a="1" />
<color r="0.862745098039216" g="0.0980392156862745" b="0.619607843137255" a="1" />
<color r="0.862745098039216" g="0.0941176470588235" b="0.615686274509804" a="1" />
<color r="0.866666666666667" g="0.0901960784313725" b="0.615686274509804" a="1" />
<color r="0.866666666666667" g="0.0823529411764706" b="0.615686274509804" a="1" />
<color r="0.866666666666667" g="0.0784313725490196" b="0.611764705882353" a="1" />
<color r="0.870588235294118" g="0.0745098039215686" b="0.611764705882353" a="1" />
<color r="0.870588235294118" g="0.0705882352941176" b="0.607843137254902" a="1" />
<color r="0.870588235294118" g="0.0666666666666667" b="0.607843137254902" a="1" />
<color r="0.870588235294118" g="0.0627450980392157" b="0.603921568627451" a="1" />
<color r="0.874509803921569" g="0.0549019607843137" b="0.603921568627451" a="1" />
<color r="0.874509803921569" g="0.0509803921568627" b="0.6" a="1" />
<color r="0.874509803921569" g="0.0470588235294118" b="0.6" a="1" />
<color r="0.87843137254902" g="0.0431372549019608" b="0.6" a="1" />
<color r="0.87843137254902" g="0.0392156862745098" b="0.596078431372549" a="1" />
<color r="0.87843137254902" g="0.0352941176470588" b="0.596078431372549" a="1" />
<color r="0.882352941176471" g="0.0274509803921569" b="0.592156862745098" a="1" />
<color r="0.882352941176471" g="0.0235294117647059" b="0.592156862745098" a="1" />
<color r="0.882352941176471" g="0.0196078431372549" b="0.588235294117647" a="1" />
<color r="0.886274509803922" g="0.0156862745098039" b="0.588235294117647" a="1" />
<color r="0.886274509803922" g="0.0117647058823529" b="0.584313725490196" a="1" />
<color r="0.886274509803922" g="0.00784313725490196" b="0.584313725490196" a="1" />
<color r="1" g="1" b="1" a="1" />
</colorMap>

View file

@ -3,9 +3,9 @@ This is a colormap file that is read via JaXB to marshel the ColorMap class.
======================-->
<colorMap>
<color r="0" g="0" b="0" a="0" />
<color r="0" g="0" b="0" a="0" />
<color r="0" g="0" b="0" a="0" />
<color r="0" g="0" b="0" a="0" />
<color r="1" g="0.98" b="1" a="1" />
<color r="1" g="0.97" b="1" a="1" />
<color r="1" g="0.96" b="1" a="1" />
<color r="1" g="0.952941176470588" b="1" a="1" />
<color r="1" g="0.933333333333333" b="1" a="1" />
<color r="1" g="0.917647058823529" b="1" a="1" />

View file

@ -9,7 +9,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Maximum Source Density" id="lma">
<dataURI>/grid/NALMA/%/%/lmamsd</dataURI>
@ -17,7 +17,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamsd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/NALMA/%/%/lmafed</dataURI>
@ -25,7 +25,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/NALMA/%/%/lmafid</dataURI>
@ -33,7 +33,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/NALMA/%/%/lmamfd</dataURI>
@ -41,7 +41,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Rate of Change" id="lma">
<dataURI>/grid/NALMA/%/%/lmaroc</dataURI>
@ -49,7 +49,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmaroc"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
<contribute xsi:type="subMenu" menuText="DCLMA">
@ -59,7 +59,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/DCLMA/%/%/lmafed</dataURI>
@ -67,7 +67,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/DCLMA/%/%/lmafid</dataURI>
@ -75,7 +75,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/DCLMA/%/%/lmamfd</dataURI>
@ -83,7 +83,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -94,7 +94,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/KLDAR/%/%/lmafed</dataURI>
@ -102,7 +102,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/KLDAR/%/%/lmafid</dataURI>
@ -110,7 +110,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/KLDAR/%/%/lmamfd</dataURI>
@ -118,7 +118,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -129,7 +129,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/OKLMA/%/%/lmafed</dataURI>
@ -137,7 +137,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/OKLMA/%/%/lmafid</dataURI>
@ -145,7 +145,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/OKLMA/%/%/lmamfd</dataURI>
@ -153,7 +153,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -164,7 +164,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/COLMA/%/%/lmafed</dataURI>
@ -172,7 +172,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/COLMA/%/%/lmafid</dataURI>
@ -180,7 +180,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/COLMA/%/%/lmamfd</dataURI>
@ -188,7 +188,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -199,7 +199,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/HGLMA/%/%/lmafed</dataURI>
@ -207,7 +207,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/HGLMA/%/%/lmafid</dataURI>
@ -215,7 +215,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/HGLMA/%/%/lmamfd</dataURI>
@ -223,7 +223,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -234,7 +234,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/WTLMA/%/%/lmafed</dataURI>
@ -242,7 +242,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/WTLMA/%/%/lmafid</dataURI>
@ -250,7 +250,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/WTLMA/%/%/lmamfd</dataURI>
@ -258,7 +258,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -269,7 +269,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/CFLMA/%/%/lmafed</dataURI>
@ -277,7 +277,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/CFLMA/%/%/lmafid</dataURI>
@ -285,7 +285,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/CFLMA/%/%/lmamfd</dataURI>
@ -293,7 +293,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -304,7 +304,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/LLLMA/%/%/lmafed</dataURI>
@ -312,7 +312,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/LLLMA/%/%/lmafid</dataURI>
@ -320,7 +320,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/LLLMA/%/%/lmamfd</dataURI>
@ -328,7 +328,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -340,7 +340,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/KSCLMA/%/%/lmafed</dataURI>
@ -348,7 +348,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/KSCLMA/%/%/lmafid</dataURI>
@ -356,7 +356,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/KSCLMA/%/%/lmamfd</dataURI>
@ -364,7 +364,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -375,7 +375,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/NGLMA/%/%/lmafed</dataURI>
@ -383,7 +383,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/NGLMA/%/%/lmafid</dataURI>
@ -391,7 +391,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/NGLMA/%/%/lmamfd</dataURI>
@ -399,7 +399,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -410,7 +410,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/ONLMA/%/%/lmafed</dataURI>
@ -418,7 +418,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/ONLMA/%/%/lmafid</dataURI>
@ -426,7 +426,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/ONLMA/%/%/lmamfd</dataURI>
@ -434,7 +434,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -445,7 +445,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/WILMA/%/%/lmafed</dataURI>
@ -453,7 +453,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/WILMA/%/%/lmafid</dataURI>
@ -461,7 +461,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/WILMA/%/%/lmamfd</dataURI>
@ -469,7 +469,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -480,7 +480,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Extent Density" id="lma">
<dataURI>/grid/WSLMA/%/%/lmafed</dataURI>
@ -488,7 +488,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/WSLMA/%/%/lmafid</dataURI>
@ -496,7 +496,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/WSLMA/%/%/lmamfd</dataURI>
@ -504,7 +504,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -517,7 +517,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/PGNA/%/%/lmafid</dataURI>
@ -525,7 +525,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Maximum Flash Density" id="lma">
<dataURI>/grid/PGNA/%/%/lmamfd</dataURI>
@ -533,7 +533,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="30 minute Sum" id="lma">
<dataURI>/grid/PGNA/%/%/lmasum</dataURI>
@ -541,7 +541,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasum"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -552,7 +552,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/PGDC/%/%/lmafid</dataURI>
@ -560,7 +560,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Maximum Flash Density" id="lma">
<dataURI>/grid/PGDC/%/%/lmamfd</dataURI>
@ -568,7 +568,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="30 minute Sum" id="lma">
<dataURI>/grid/PGDC/%/%/lmasum</dataURI>
@ -576,7 +576,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasum"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -587,7 +587,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/PGSC/%/%/lmafid</dataURI>
@ -595,7 +595,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Maximum Flash Density" id="lma">
<dataURI>/grid/PGSC/%/%/lmamfd</dataURI>
@ -603,7 +603,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="30 minute Sum" id="lma">
<dataURI>/grid/PGSC/%/%/lmasum</dataURI>
@ -611,7 +611,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasum"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -622,7 +622,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/PGOK/%/%/lmafid</dataURI>
@ -630,7 +630,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Maximum Flash Density" id="lma">
<dataURI>/grid/PGOK/%/%/lmamfd</dataURI>
@ -638,7 +638,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="30 minute Sum" id="lma">
<dataURI>/grid/PGOK/%/%/lmasum</dataURI>
@ -646,7 +646,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasum"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -657,7 +657,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/PGCO/%/%/lmafid</dataURI>
@ -665,7 +665,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Maximum Flash Density" id="lma">
<dataURI>/grid/PGCO/%/%/lmamfd</dataURI>
@ -673,7 +673,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="30 minute Sum" id="lma">
<dataURI>/grid/PGCO/%/%/lmasum</dataURI>
@ -681,7 +681,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasum"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -692,7 +692,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/PGHG/%/%/lmafid</dataURI>
@ -700,7 +700,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Maximum Flash Density" id="lma">
<dataURI>/grid/PGHG/%/%/lmamfd</dataURI>
@ -708,7 +708,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="30 minute Sum" id="lma">
<dataURI>/grid/PGHG/%/%/lmasum</dataURI>
@ -716,7 +716,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasum"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -727,7 +727,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/PGWT/%/%/lmafid</dataURI>
@ -735,7 +735,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Maximum Flash Density" id="lma">
<dataURI>/grid/PGWT/%/%/lmamfd</dataURI>
@ -743,7 +743,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="30 minute Sum" id="lma">
<dataURI>/grid/PGWT/%/%/lmasum</dataURI>
@ -751,7 +751,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasum"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -762,7 +762,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/PGCF/%/%/lmafid</dataURI>
@ -770,7 +770,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Maximum Flash Density" id="lma">
<dataURI>/grid/PGCF/%/%/lmamfd</dataURI>
@ -778,7 +778,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="30 minute Sum" id="lma">
<dataURI>/grid/PGCF/%/%/lmasum</dataURI>
@ -786,7 +786,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasum"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
@ -797,7 +797,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafed"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Flash Initiation Density" id="lma">
<dataURI>/grid/PGLL/%/%/lmafid</dataURI>
@ -805,7 +805,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmafid"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="Maximum Flash Density" id="lma">
<dataURI>/grid/PGLL/%/%/lmamfd</dataURI>
@ -813,7 +813,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmamfd"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Lma.xml" menuText="30 minute Sum" id="lma">
<dataURI>/grid/PGLL/%/%/lmasum</dataURI>
@ -821,7 +821,7 @@
<substitute key="level" value="0"/>
<substitute key="levelType" value="SFC"/>
<substitute key="productType" value="lmasum"/>
<substitute key="colorMapName" value="lma/nalma"/>
<substitute key="colorMapName" value="LMA/LMA_default"/>
</contribute>
</contribute>
</contribute>

View file

@ -8,7 +8,7 @@
<colorbarLabeling>
<values>50.0 100.0 150.0 200.0</values>
</colorbarLabeling>
<defaultColormap>lma/nalma</defaultColormap>
<defaultColormap>LMA/LMA_default</defaultColormap>
<range scale="LINEAR">
<minValue>0.0</minValue>
<maxValue>500.0</maxValue>
@ -16,34 +16,18 @@
</imageStyle>
</styleRule>
<styleRule>
<paramLevelMatches>
<parameter>lmamsd</parameter>
</paramLevelMatches>
<imageStyle>
<colorbarLabeling>
<values>50.0 100.0 150.0</values>
</colorbarLabeling>
<defaultColormap>lma/nalma</defaultColormap>
<range scale="LINEAR">
<minValue>0.0</minValue>
<maxValue>200.0</maxValue>
</range>
</imageStyle>
</styleRule>
<styleRule>
<paramLevelMatches>
<parameter>lmafed</parameter>
<parameter>lmafid</parameter>
<parameter>lmamfd</parameter>
<parameter>lmasum</parameter>
</paramLevelMatches>
<imageStyle>
<colorbarLabeling>
<values>10.0 20.0 30.0</values>
</colorbarLabeling>
<defaultColormap>lma/nalma</defaultColormap>
<defaultColormap>LMA/LMA_default</defaultColormap>
<range scale="LINEAR">
<minValue>0.0</minValue>
<maxValue>110.0</maxValue>
@ -60,14 +44,28 @@
<colorbarLabeling>
<values>-1.0 0.0 1.0</values>
</colorbarLabeling>
<defaultColormap>lma/nalma</defaultColormap>
<defaultColormap>LMA/LMA_default</defaultColormap>
<range scale="LINEAR">
<minValue>-3.0</minValue>
<maxValue>3.0</maxValue>
</range>
</imageStyle>
</styleRule>
<styleRule>
<paramLevelMatches>
<parameter>lmasum</parameter>
</paramLevelMatches>
<imageStyle>
<colorbarLabeling>
<values>50.0 100.0 150.0 200.0</values>
</colorbarLabeling>
<defaultColormap>LMA/LMA_default</defaultColormap>
<range scale="LINEAR">
<minValue>0.0</minValue>
<maxValue>400.0</maxValue>
</range>
</imageStyle>
</styleRule>
</styleRuleset>

View file

@ -35,6 +35,7 @@ import javax.xml.bind.annotation.XmlRootElement;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 12, 2014 3521 bkowal Initial creation
* Apr 20, 2015 4392 dlovely Removed un-used JMX port configuration
*
* </pre>
*
@ -60,9 +61,6 @@ public class Wes2BridgeCase {
@XmlElement
private int qpidHttpPort;
@XmlElement
private int qpidJmxPort;
@XmlElement
private int jmsPort;
@ -153,21 +151,6 @@ public class Wes2BridgeCase {
this.qpidHttpPort = qpidHttpPort;
}
/**
* @return the qpidJmxPort
*/
public int getQpidJmxPort() {
return qpidJmxPort;
}
/**
* @param qpidJmxPort
* the qpidJmxPort to set
*/
public void setQpidJmxPort(int qpidJmxPort) {
this.qpidJmxPort = qpidJmxPort;
}
/**
* @return the jmsPort
*/

View file

@ -4,6 +4,7 @@ Bundle-Name: Wes2Bridge Manager
Bundle-SymbolicName: com.raytheon.wes2bridge.manager
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: RAYTHEON
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Require-Bundle: com.raytheon.wes2bridge.common;bundle-version="1.0.0",
org.apache.commons.lang;bundle-version="2.3.0"
org.apache.commons.lang;bundle-version="2.3.0",
org.codehaus.jackson;bundle-version="1.7.3"

View file

@ -11,7 +11,7 @@
<attribute name="Main-Class" value="org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader"/>
<attribute name="Rsrc-Main-Class" value="com.raytheon.wes2bridge.manager.Wes2BridgeManager"/>
<attribute name="Class-Path" value="."/>
<attribute name="Rsrc-Class-Path" value="./ commons-collections-3.2.jar geronimo-jms_1.1_spec-1.1.1.jar org.eclipse.ui_3.8.2.v20121018-234953.jar org.eclipse.swt_3.8.1.v3836b.jar org.eclipse.swt.gtk.linux.x86_3.8.1.v3836b.jar org.eclipse.jface_3.8.0.v20120912-135020.jar org.eclipse.core.commands_3.6.1.v20120912-135020.jar org.eclipse.ui.workbench_3.8.2.v20121128-133708.jar org.eclipse.core.runtime_3.8.0.v20120521-2346.jar org.eclipse.osgi_3.8.2.v20130124-134944.jar org.eclipse.equinox.common_3.6.100.v20120522-1841.jar org.eclipse.core.jobs_3.5.200.v20120521-2346.jar runtime_registry_compatibility.jar org.eclipse.equinox.registry_3.5.200.v20120522-1841.jar org.eclipse.equinox.preferences_3.5.1.v20121031-182809.jar org.eclipse.core.contenttype_3.4.200.v20120523-2004.jar org.eclipse.equinox.app_1.3.100.v20120522-1841.jar log4j-1.2.16.jar log4j.extras-1.0.jar commons-beanutils-1.8.3.jar commons-digester-1.8.1.jar commons-lang-2.3.jar commons-configuration-1.6.jar"/>
<attribute name="Rsrc-Class-Path" value="./ commons-collections-3.2.jar geronimo-jms_1.1_spec-1.1.1.jar org.eclipse.ui_3.8.2.v20121018-234953.jar org.eclipse.swt_3.8.1.v3836b.jar org.eclipse.swt.gtk.linux.x86_3.8.1.v3836b.jar org.eclipse.jface_3.8.0.v20120912-135020.jar org.eclipse.core.commands_3.6.1.v20120912-135020.jar org.eclipse.ui.workbench_3.8.2.v20121128-133708.jar org.eclipse.core.runtime_3.8.0.v20120521-2346.jar org.eclipse.osgi_3.8.2.v20130124-134944.jar org.eclipse.equinox.common_3.6.100.v20120522-1841.jar org.eclipse.core.jobs_3.5.200.v20120521-2346.jar runtime_registry_compatibility.jar org.eclipse.equinox.registry_3.5.200.v20120522-1841.jar org.eclipse.equinox.preferences_3.5.1.v20121031-182809.jar org.eclipse.core.contenttype_3.4.200.v20120523-2004.jar org.eclipse.equinox.app_1.3.100.v20120522-1841.jar log4j-1.2.16.jar log4j.extras-1.0.jar commons-beanutils-1.8.3.jar commons-digester-1.8.1.jar commons-lang-2.3.jar commons-configuration-1.6.jar jackson-core-asl-1.7.3.jar jackson-mapper-asl-1.7.3.jar jackson-xc-1.7.3.jar"/>
</manifest>
<zipfileset src="${basedir}/../build.wes2bridge.utility/lib/jar-in-jar-loader.zip"/>
<zipfileset dir="${baseline.directory}/org.apache.commons.collections" includes="commons-collections-3.2.jar"/>
@ -36,6 +36,9 @@
<zipfileset dir="${baseline.directory}/org.apache.commons.beanutils" includes="commons-beanutils-1.8.3.jar"/>
<zipfileset dir="${baseline.directory}/org.apache.commons.digester" includes="commons-digester-1.8.1.jar"/>
<zipfileset dir="${baseline.directory}/org.apache.commons.lang" includes="commons-lang-2.3.jar"/>
<zipfileset dir="${baseline.directory}/org.codehaus.jackson" includes="jackson-core-asl-1.7.3.jar"/>
<zipfileset dir="${baseline.directory}/org.codehaus.jackson" includes="jackson-mapper-asl-1.7.3.jar"/>
<zipfileset dir="${baseline.directory}/org.codehaus.jackson" includes="jackson-xc-1.7.3.jar"/>
<fileset dir="${baseline.directory}/com.raytheon.wes2bridge.common/${bin.dir}"/>
<fileset dir="${baseline.directory}/com.raytheon.wes2bridge.manager/${bin.dir}"/>
</jar>

View file

@ -1,48 +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.wes2bridge.manager;
/**
* Identifies XML tag names of interest as constants within the qpid config.xml
* configuration.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 17, 2013 bkowal Initial creation
*
* </pre>
*
* @author bkowal
* @version 1.0
*/
public interface IQpidConfigurationXML {
public static final String XML_BROKER = "broker";
public static final String XML_CONNECTOR = "connector";
public static final String XML_MANAGEMENT = "management";
public static final String XML_JMXPORT = "jmxport";
public static final String XML_HTTP = "http";
public static final String XML_REGISTRY_SERVER = "registryServer";
public static final String XML_PORT = "port";
}

View file

@ -26,27 +26,21 @@ import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import javax.xml.bind.JAXBException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.commons.lang.StringUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import com.raytheon.wes2bridge.manager.IQpidConfigurationXML;
import com.raytheon.wes2bridge.common.configuration.Wes2BridgeCase;
import com.raytheon.wes2bridge.configuration.jaxb.Wes2BridgeJaxbManager;
@ -73,6 +67,8 @@ import com.raytheon.wes2bridge.configuration.jaxb.Wes2BridgeJaxbManager;
* Aug 14, 2014 3521 bkowal Updated to use Wes2BridgeCase. Eliminated
* configuration that is no longer used and
* updated EDEX re-configuration.
* Apr 15, 2015 4392 dlovely Updates the new qpid json configuration now
* Apr 20, 2015 4392 dlovely Removed un-used JMX port configuration
*
* </pre>
*
@ -101,6 +97,16 @@ public class Wes2BridgeManager {
private String wes2BridgeScripts = null;
private static final TypeReference<Map<String, Object>> MAP_TYPE_REFERENCE = new TypeReference<Map<String, Object>>()
{
};
public static final String QPID_NAME = "name";
public static final String QPID_AMQP = "AMQP";
public static final String QPID_HTTP = "HTTP";
public static final String QPID_PORT = "port";
public static final String QPID_PORTS = "ports";
/**
*
*/
@ -191,9 +197,9 @@ public class Wes2BridgeManager {
final String line1 = "export DATA_ARCHIVE_ROOT=";
final String line2 = "export DB_PORT=";
final String line3 = "export BROKER_ADDR=";
final String line3 = "export BROKER_PORT=";
final String line4 = "export HTTP_PORT=";
final String line5 = "export JMS_SERVER=";
final String line5 = "export BROKER_HTTP=";
final String line6 = "export SHARE_DIR=";
final String pypiesServerPattern = "(export PYPIES_SERVER=http://.+:)[1-9][0-9]+";
final Pattern pattern7 = Pattern.compile(pypiesServerPattern);
@ -207,13 +213,11 @@ public class Wes2BridgeManager {
} else if (line.startsWith(line2)) {
line = line2 + this.wes2BridgeCase.getDatabasePort();
} else if (line.startsWith(line3)) {
line = line3 + "localhost:"
+ this.wes2BridgeCase.getJmsPort();
line = line3 + this.wes2BridgeCase.getJmsPort();
} else if (line.startsWith(line4)) {
line = line4 + this.wes2BridgeCase.getEdexHttpPort();
} else if (line.startsWith(line5)) {
line = line5 + "tcp://localhost:"
+ this.wes2BridgeCase.getJmsPort();
line = line5 + this.wes2BridgeCase.getQpidHttpPort();
} else if (line.startsWith(line6)) {
line = line6 + edexDirectory + "/data/share";
} else if (matcher.matches()) {
@ -409,87 +413,51 @@ public class Wes2BridgeManager {
}
}
public void reconfigureQPID() throws FileNotFoundException, IOException,
ParserConfigurationException, SAXException,
TransformerFactoryConfigurationError, TransformerException {
public void reconfigureQPID() throws FileNotFoundException, IOException {
final String srcQpidDirectory = AWIPSII + "/" + "qpid";
final String qpidDirectory = WES2BRIDGE_DIRECTORY + "/"
+ this.wes2BridgeCase.getName() + "/" + "qpid";
this.updateQpidConfigXML(srcQpidDirectory, qpidDirectory);
this.updateQpidConfigJSON(srcQpidDirectory, qpidDirectory);
this.updateQPIDD(qpidDirectory);
}
/* Updates qpid config.xml */
private void updateQpidConfigXML(String srcQpidDirectory,
String qpidDirectory) throws FileNotFoundException, IOException,
ParserConfigurationException, SAXException,
TransformerFactoryConfigurationError, TransformerException {
String srcconfig_xml = srcQpidDirectory + "/etc/config.xml";
String config_xml = qpidDirectory + "/etc/config.xml";
/* Updates qpid config.json */
private void updateQpidConfigJSON(String srcQpidDirectory,
String qpidDirectory) throws FileNotFoundException, IOException {
String srcconfig_json = srcQpidDirectory + "/config.json";
String config_json = qpidDirectory + "/config.json";
DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document document = documentBuilder.parse(srcconfig_xml);
try (BufferedWriter bw = this.getBufferedWriter(config_json);){
// Get the root broker node.
Node brokerNode = document.getElementsByTagName(
IQpidConfigurationXML.XML_BROKER).item(0);
// Get the connector node.
Node connectorNode = this.getChildNodeByName(brokerNode,
IQpidConfigurationXML.XML_CONNECTOR);
// Get the management node.
Node managementNode = this.getChildNodeByName(brokerNode,
IQpidConfigurationXML.XML_MANAGEMENT);
// Get the jmxport node.
Node jmxPortNode = this.getChildNodeByName(managementNode,
IQpidConfigurationXML.XML_JMXPORT);
// Get the http port node.
Node httpPortNode = this.getChildNodeByName(managementNode,
IQpidConfigurationXML.XML_HTTP);
Node portNode = null;
// Get the connector port node.
portNode = this.getChildNodeByName(connectorNode,
IQpidConfigurationXML.XML_PORT);
portNode.setTextContent(Integer.toString(this.wes2BridgeCase
.getJmsPort()));
// Get the jmxport registryServer node
portNode = this.getChildNodeByName(jmxPortNode,
IQpidConfigurationXML.XML_REGISTRY_SERVER);
portNode.setTextContent(Integer.toString(this.wes2BridgeCase
.getQpidJmxPort()));
// Get the http port node.
portNode = this.getChildNodeByName(httpPortNode,
IQpidConfigurationXML.XML_PORT);
portNode.setTextContent(Integer.toString(this.wes2BridgeCase
.getQpidHttpPort()));
/*
* Write the updated configuration file to its destination.
*/
Transformer transformer = TransformerFactory.newInstance()
.newTransformer();
DOMSource domSource = new DOMSource(document);
StreamResult streamResult = new StreamResult(new File(config_xml));
transformer.transform(domSource, streamResult);
}
private Node getChildNodeByName(Node parentNode, String childName) {
if (parentNode.hasChildNodes() == false) {
return null;
}
NodeList nodeList = parentNode.getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeName().equals(childName)) {
return node;
List<String> lines = Files.readAllLines(Paths.get(srcconfig_json), Charset.defaultCharset());
StringBuilder stringBuilder = new StringBuilder();
for (String line : lines) {
stringBuilder.append( line );
}
}
return null;
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> attributesMap = mapper.readValue(stringBuilder.toString(), MAP_TYPE_REFERENCE);
@SuppressWarnings("unchecked")
ArrayList<Object> ports = (ArrayList<Object>) attributesMap.get(QPID_PORTS);
for(int x = 0; x < ports.size(); x++) {
@SuppressWarnings("unchecked")
Map<String, Object> port = (Map<String, Object>) ports.get(x);
String name = (String) port.get(QPID_NAME);
if (QPID_AMQP.equals(name)) {
port.put(QPID_PORT, this.wes2BridgeCase.getJmsPort());
} else if (QPID_HTTP.equals(name)) {
port.put(QPID_PORT, this.wes2BridgeCase.getQpidHttpPort());
}
}
/*
* Write the updated configuration file to its destination.
*/
mapper.defaultPrettyPrintingWriter().writeValue(bw, attributesMap);
}
}
private void updateQPIDD(String qpidDirectory)

View file

@ -39,6 +39,7 @@
#20140612 3230 rferrel Add pattern for URMA.
#20150121 4014 dgilling Add pattern for ETSS.
#20150202 4066 rferrel Add pattern form Earth Networks Total Lightning: SFPA42
#20150507 4434 skorolev Add pattern for GFS20
#***************************************************************
# AWIPS 1 PATTERN GRAPHIC ^[PQ].* /redbook/Raw
# PGNA00 KWNS 010001 !redbook 1_1/NMCGPHMCD/MCDSUM/PXSF001CN/20110201 0001
@ -171,6 +172,13 @@ HDS ^(O.[LN].{1,3}) (KWBM|KWBI) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([
HDS ^(OEBA88) KNWC (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*)
FILE -overwrite -log -close -edex /data_store/\5/(\2:yyyy)(\2:mm)\2/\3/ICE/GRID\7/\9Z_\(10)_\(11)-\1_KNWC_\2\3\4_(seq).\5.%Y%m%d%H
# DR 17480 Add HFR (High Frequency Radar) Pattern
# Note: There isn't much metadata here to work with, if more is needed Unidata should be contacted.
# OUTA98 KWNB 111100 !grib2/
ANY ^(OUTA98) KWNB (..)(..)(..)[^!]*!(grib|grib2)
FILE -overwrite -log -close -edex /data_store/\5/(\2:yyyy)(\2:mm)\2/\3/HFR/\1_KWNB_\2\3\4_(seq).\5.%Y%m%d%H
# AWIPS1: GRID ^[YZ][UV]M.98.*KNHC /Grid/SBN/Raw
# *** NOT FOUND IN INGEST STREAM ***
@ -283,8 +291,11 @@ NGRID ^([LM].[EF].{1,3}) (KWBD) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([
# 2.5km CONUS GriddedLAMP
# Pattern added by Josh Watson
# The noaaportIngester does not yet read a grib2 SBN file with more than one message.
NGRID ^(L...[0-9][0-9]) (KMDL) (..)(..)(..)
# RM 17414 Split out EKDMOS from KMDL pattern
NGRID ^(L[ABCDKLMN]U[ABZ][0-9][0-9]) (KMDL) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/grib2/(\3:yyyy)(\3:mm)\3/\4/LAMP/GRID184/\1_\2_\3\4\5_(seq).grib2.%Y%m%d%H
NGRID ^([LM][EFGH][A-L]Z9[0-9]) (KMDL) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/grib2/(\3:yyyy)(\3:mm)\3/\4/EKDMOS/GRID184/\1_\2_\3\4\5_(seq).grib2.%Y%m%d%H
NGRID ^(L[CDEF]U.[0-9][0-9]) (KWNO) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/grib2/(\3:yyyy)(\3:mm)\3/\4/LAMP/GRID184/\1_\2_\3\4\5_(seq).grib2.%Y%m%d%H
@ -358,26 +369,6 @@ NGRID ^(L.QA98) (KWBR) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0
ANY ^([LM].[EF].{1,3}) (KWBS) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*)
FILE -overwrite -log -close -edex /data_store/\6/(\3:yyyy)(\3:mm)\3/\4/\7/GRID\8/\(10)Z_\(11)_\(12)-\1_\2_\3\4\5_(seq).\6.%Y%m%d%H
# AWIPS1: GRID ^LGXT[0-2][0-9].*KNHC /Grid/SBN/rawGrib2
# *** This is only be available during an active storm. Verified 20120828 - Hurricane Isaac.
ANY ^(LGXT[0-2][0-9]) KNHC (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/grib2/(\2:yyyy)(\2:mm)\2/\3/TPC/\3\4Z_SURGE-\1_KNHC_\2\3\4_(seq).grib2.%Y%m%d%H
# AWIPS1: GRID ^LGXP[0-9][0-9].*KNHC /Grid/SBN/rawGrib2
# *** This is only be available during an active storm. Verified 20120828 - Hurricane Isaac.
ANY ^(LGXP[0-9][0-9]) KNHC (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/grib2/(\2:yyyy)(\2:mm)\2/\3/TPC/\3\4Z_SURGE-\1_KNHC_\2\3\4_(seq).grib2.%Y%m%d%H
# TPCSurge PHISH heights
#ANY ^(L[l-X]X[QP][1-5]0) KNHC (..)(..)(..)
# FILE -overwrite -log -close -edex /data_store/grib2/(\2:yyyy)(\2:mm)\2/\3/TPC/\3\4Z_SURGE-\1_KNHC_\2\3\4_(seq).grib2.%Y%m%d%H
# TPCSurge PHISH probabilities
#ANY ^(L[H-G]X[A-M][0-2][0-9]) KNHC (..)(..)(..)
# FILE -overwrite -log -close -edex /data_store/grib2/(\2:yyyy)(\2:mm)\2/\3/TPC/\3\4Z_SURGE-\1_KNHC_\2\3\4_(seq).grib2.%Y%m%d%H
# AWIPS1: GRID ^LDIZ11.*KWNS /Grid/SBN/rawGrib2
# LDIZ11 KWNS 180039 !grib2/ncep/0/#202/FHRS//LVL
@ -816,3 +807,13 @@ NGRID ^(MHU...) (KNHC) (..)(..)(..)
# ETSS-AK
NGRID ^(MHR...) (KNHC) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/grib2/(\3:yyyy)(\3:mm)\3/\4/ETSS/NDFD-AK/\1_\2_\3\4\5_(seq).grib2.%Y%m%d%H
#NGRID ^(YAU[CDLMPQS][0-2][0-9]) (KWNR) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*)
# FILE -overwrite -log -close -edex /data_store/\6/(\3:yyyy)(\3:mm)\3/\4/\7/GRID\8/\(10)Z_\(11)_\(12)-\1_\2_\3\4\5_(seq).\6.%Y%m%d%H
# GFS20 - Alaska, Puerto Rico, Pacific and CONUS
# YUFC97 KWBC 051200 !grib2/ncep/GFS/#255/201505051200F012/UREL/2 K*m**2*kg-1*s-1
# ZONK67 KWBC 051200 !grib2/ncep/GFS/#215/201505051200F021/OMEG/675 hPa PRES
# ZVBK86 KWBC 051200 !grib2/ncep/GFS/#217/201505051200F021/VREL/180-150 hPa PDLY
NGRID ^([YZ][BCE-HMO-Y][BEFN][A-Z][0-9][0-9]) KWBC (..)(..)(..) [^!]*!(grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*)
FILE -overwrite -log -close -edex /data_store/grib2/(\2:yyyy)(\2:mm)\2/\3/\6/GRID\7/\9Z_\(10)_\(11)_\1_KWBC_\2\3\4_(seq).\5.%Y%m%d%H

Binary file not shown.