Merge tag 'OB_16.2.2-6' into omaha_16.2.2
16.2.2-6 Former-commit-id: c7a74d6200c5d04f652f7ebe16f70d7c2050398d
This commit is contained in:
commit
679e9a532a
101 changed files with 2395 additions and 573 deletions
|
@ -10,4 +10,19 @@
|
|||
<level value="INFO"/>
|
||||
<appender-ref ref="asyncConsole"/>
|
||||
</root>
|
||||
|
||||
<!-- HydroDualPol log -->
|
||||
<appender name="HydroDualPolLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
|
||||
<name>hydrodualpol</name>
|
||||
</rollingPolicy>
|
||||
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
|
||||
</appender>
|
||||
|
||||
<!-- default logging -->
|
||||
<logger name="HydroDualPolLog" additivity="false">
|
||||
<level value="DEBUG"/>
|
||||
<appender-ref ref="HydroDualPolLog"/>
|
||||
</logger>
|
||||
|
||||
</configuration>
|
||||
|
|
|
@ -475,11 +475,16 @@ public class FFMPResource extends
|
|||
LoadProperties loadProperties) {
|
||||
super(resourceData, loadProperties);
|
||||
getResourceData().addChangeListener(this);
|
||||
|
||||
// The FFMPMonitor dialog was opened here previously but this led
|
||||
// to an issue where if the user pressed the clear button before the
|
||||
// FFMPResource was properly initialized the dialog would not close.
|
||||
// Opening the dialog is now the responsibility of the FFMPResource
|
||||
|
||||
monitor = getResourceData().getMonitor();
|
||||
monitor.addResourceListener(this);
|
||||
|
||||
if (getResourceData().tableLoad) {
|
||||
if (!isBasinToggle()) {
|
||||
setBasinToggle(true);
|
||||
}
|
||||
monitor.launchFFMPDialog(this);
|
||||
}
|
||||
|
||||
// So we are not time agnostic
|
||||
dataTimes = new ArrayList<DataTime>();
|
||||
|
@ -1293,16 +1298,6 @@ public class FFMPResource extends
|
|||
|
||||
}
|
||||
});
|
||||
|
||||
monitor = getResourceData().getMonitor();
|
||||
monitor.addResourceListener(this);
|
||||
|
||||
if (getResourceData().tableLoad) {
|
||||
if (!isBasinToggle()) {
|
||||
setBasinToggle(true);
|
||||
}
|
||||
monitor.launchFFMPDialog(this);
|
||||
}
|
||||
|
||||
// Set flag for HPE data
|
||||
isHpe = resourceData.dataKey.equalsIgnoreCase(HPE)
|
||||
|
|
|
@ -30,6 +30,7 @@ import java.util.Set;
|
|||
|
||||
import com.raytheon.uf.common.dataplugin.HDF5Util;
|
||||
import com.raytheon.uf.common.dataplugin.binlightning.BinLightningRecord;
|
||||
import com.raytheon.uf.common.dataplugin.binlightning.LightningConstants;
|
||||
import com.raytheon.uf.common.datastorage.DataStoreFactory;
|
||||
import com.raytheon.uf.common.datastorage.IDataStore;
|
||||
import com.raytheon.uf.common.datastorage.Request;
|
||||
|
@ -63,11 +64,11 @@ import com.vividsolutions.jts.geom.Point;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Sep 10, 2009 njensen Initial creation
|
||||
* Mar 08, 2016 18336 amoore Keep-alive records only have time data.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author njensen
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class LtgDataMgr {
|
||||
|
@ -176,25 +177,30 @@ public class LtgDataMgr {
|
|||
recordList.add(rec);
|
||||
}
|
||||
|
||||
List<IDataRecord> times = recordMap.get("obsTime");
|
||||
List<IDataRecord> latitudes = recordMap
|
||||
.get(LightningConstants.LAT_DATASET);
|
||||
|
||||
int k = 0;
|
||||
for (IDataRecord timeRec : times) {
|
||||
LongDataRecord time = (LongDataRecord) timeRec;
|
||||
if (latitudes != null) {
|
||||
int k = 0;
|
||||
for (IDataRecord latitude : latitudes) {
|
||||
|
||||
long[] timeData = time.getLongData();
|
||||
float[] latitudeData = ((FloatDataRecord) recordMap.get(
|
||||
"latitude").get(k)).getFloatData();
|
||||
float[] longitudeData = ((FloatDataRecord) recordMap.get(
|
||||
"longitude").get(k)).getFloatData();
|
||||
for (int n = 0; n < timeData.length; n++) {
|
||||
updateSites(timeData[n], latitudeData[n],
|
||||
longitudeData[n]);
|
||||
long[] timeData = ((LongDataRecord) recordMap.get(
|
||||
LightningConstants.TIME_DATASET).get(k))
|
||||
.getLongData();
|
||||
float[] latitudeData = ((FloatDataRecord) latitude)
|
||||
.getFloatData();
|
||||
float[] longitudeData = ((FloatDataRecord) recordMap
|
||||
.get(LightningConstants.LON_DATASET).get(k))
|
||||
.getFloatData();
|
||||
for (int n = 0; n < timeData.length; n++) {
|
||||
updateSites(timeData[n], latitudeData[n],
|
||||
longitudeData[n]);
|
||||
}
|
||||
k++;
|
||||
}
|
||||
k++;
|
||||
}
|
||||
} catch (FileNotFoundException e) {
|
||||
statusHandler.handle(Priority.PROBLEM, e.getMessage());
|
||||
statusHandler.handle(Priority.PROBLEM, e.getMessage());
|
||||
} catch (Exception e) {
|
||||
// TODO
|
||||
e.printStackTrace();
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
# Last Modified: 10/30/15 by Joe Maloney, added -q flags to scp/ssh at end.
|
||||
# Last Modified: 11/25/15 by Tom LeFebvre, added switch to run tool from a cron or interactively.
|
||||
# Last Modified: 11/29/15 by P. Santos, completed adding code to enable running Run_NWPS interactively or from a cron.
|
||||
# Last modified: 03/18/16 by Joe Maloney, a minor tweak to runManualNWPS_OutsideAWIPS call.
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# The MenuItems list defines the GFE menu item(s) under which the
|
||||
|
@ -113,15 +114,15 @@ class Procedure (SmartScript.SmartScript):
|
|||
("Waterlevels:", "ESTOFS", "radio", ["ESTOFS","PSURGE", "No"]),
|
||||
("If PSURGE\n% Exceedance Hgt:", "10", "radio", ["10", "20", "30", "40", "50"]),
|
||||
]
|
||||
|
||||
|
||||
varDict = {}
|
||||
processVarList = ProcessVariableList.ProcessVariableList("Run_NWPS", variableList, varDict, None)
|
||||
status = processVarList.status()
|
||||
if status != "OK":
|
||||
return
|
||||
|
||||
fcst_length = processVarList.varDict()["How Long Do You Want To Run NWPS:"]
|
||||
fcstlength = str(fcst_length)
|
||||
|
||||
fcst_length = processVarList.varDict()["How Long Do You Want To Run NWPS:"]
|
||||
fcstlength = str(fcst_length)
|
||||
wind="ForecastWindGrids"
|
||||
modelstarttime = processVarList.varDict()["Model Start Time:"]
|
||||
wheretorun = processVarList.varDict()["Local, NCEP, or Both:"]
|
||||
|
@ -137,7 +138,7 @@ class Procedure (SmartScript.SmartScript):
|
|||
excd = processVarList.varDict()["If PSURGE\n% Exceedance Hgt:"]
|
||||
cron = False
|
||||
# end interactive GUI portion
|
||||
|
||||
|
||||
else:
|
||||
|
||||
# This part of if else statement assumes procedure is being run from command
|
||||
|
@ -161,14 +162,14 @@ class Procedure (SmartScript.SmartScript):
|
|||
gstream = varDict['gstream']
|
||||
tstep = varDict['tstep']
|
||||
hotstart = varDict['hotstart']
|
||||
waterlevels = varDict['waterlevels']
|
||||
excd = varDict['excd']
|
||||
|
||||
waterlevels = varDict['waterlevels']
|
||||
excd = varDict['excd']
|
||||
|
||||
modelTR = self.getModelTimeRange("Fcst", "Wind")
|
||||
startHour = modelTR[1]
|
||||
endHour = modelTR[2]
|
||||
timeRange = modelTR[0]
|
||||
|
||||
|
||||
if (modelstarttime == buttonList[0]):
|
||||
starttime=timeList[0]
|
||||
elif (modelstarttime == buttonList[1]):
|
||||
|
@ -185,21 +186,21 @@ class Procedure (SmartScript.SmartScript):
|
|||
starttime=timeList[6]
|
||||
else:
|
||||
starttime=startHour # Model start Hour if all others empty
|
||||
|
||||
|
||||
if (startHour > starttime):
|
||||
starttime = startHour
|
||||
|
||||
|
||||
timeRange1 = TimeRange.TimeRange(AbsTime.AbsTime(starttime - 7*24*3600), AbsTime.AbsTime(starttime + 8*24*3600))
|
||||
timeRange2 = TimeRange.TimeRange(AbsTime.AbsTime(starttime), AbsTime.AbsTime(starttime + 8*24*3600))
|
||||
|
||||
|
||||
self.deleteCmd(['NWPSwind'], timeRange1)
|
||||
databaseID = self.findDatabase("Fcst")
|
||||
self.copyToCmd([('Wind', 'NWPSwind')], databaseID, timeRange2)
|
||||
self.fragmentCmd(['NWPSwind'], timeRange2)
|
||||
self.saveElements(["NWPSwind"])
|
||||
|
||||
|
||||
inp_args = fcstlength + ":" + wna + ":" + nest + ":" + gstream + ":" + wind + ":" + web + ":" + plot + ":" + tstep + ":" + hotstart + ":" + waterlevels + ":" + model + ":" + excd + ":" + wheretorun
|
||||
|
||||
|
||||
try:
|
||||
os.stat('/tmp/nwps/'+GFEDomainname)
|
||||
except:
|
||||
|
@ -216,5 +217,5 @@ class Procedure (SmartScript.SmartScript):
|
|||
if cron:
|
||||
os.system('ssh -q px2f /awips2/GFESuite/nwps/bin/runManualNWPS_OutsideAWIPS.sh '+GFEDomainname)
|
||||
else:
|
||||
os.system('xterm -e ssh -q px2f /awips2/GFESuite/nwps/bin/runManualNWPS_OutsideAWIPS.sh '+GFEDomainname)
|
||||
os.system('nohup xterm -iconic -e ssh -q px2f /awips2/GFESuite/nwps/bin/runManualNWPS_OutsideAWIPS.sh '+GFEDomainname+' &')
|
||||
shutil.rmtree('/tmp/nwps/'+GFEDomainname)
|
||||
|
|
|
@ -0,0 +1,90 @@
|
|||
|
||||
# ----------------------------------------------------------------------------
|
||||
# This software is in the public domain, furnished "as is", without technical
|
||||
# support, and with no warranty, express or implied, as to its usefulness for
|
||||
# any purpose.
|
||||
#
|
||||
# ApparentTemperature.py
|
||||
#
|
||||
# Author: amoore
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
ToolType = "numeric"
|
||||
WeatherElementEdited = "ApparentT"
|
||||
HideTool = 0
|
||||
|
||||
ScreenList = ["ApparentT"]
|
||||
|
||||
from numpy import *
|
||||
import SmartScript
|
||||
|
||||
class Tool (SmartScript.SmartScript):
|
||||
def __init__(self, dbss):
|
||||
SmartScript.SmartScript.__init__(self, dbss)
|
||||
|
||||
def execute(self, T, Td, Wind):
|
||||
"Apparent Temperature based on T, Td, Wind"
|
||||
|
||||
ApparentT = where(less(T, 51), self._windChillCalc(T, Wind),
|
||||
where(greater(T, 79), self._heatIndexCalc(T, Td),
|
||||
T))
|
||||
|
||||
# Return the new value
|
||||
return ApparentT
|
||||
|
||||
|
||||
def _heatIndexCalc(self, T, Td):
|
||||
|
||||
#----------------------
|
||||
# Heat Index Equation
|
||||
#----------------------
|
||||
Tc = .556 * (T - 32.0)
|
||||
Tdc = .556 * (Td - 32.0)
|
||||
Vt = 6.11 * pow(10,(Tc * 7.5 / (Tc + 237.3)))
|
||||
Vd = 6.11 * pow(10,(Tdc * 7.5 / (Tdc + 237.3)))
|
||||
RH = (Vd / Vt) * 100.0
|
||||
|
||||
A = -42.379
|
||||
B = 2.04901523 * T
|
||||
C = 10.14333127 * RH
|
||||
D = -0.22475541 * T * RH
|
||||
E = -0.00683783 * pow(T, 2)
|
||||
F = -0.05481717 * pow(RH, 2)
|
||||
G = 0.00122874 * pow(T, 2) * RH
|
||||
H = 0.00085282 * T * pow(RH, 2)
|
||||
I = -0.00000199 * pow(T, 2) * pow(RH, 2)
|
||||
|
||||
HeatIndexValue = A + B + C + D + E + F + G + H + I
|
||||
|
||||
# make the adjustments for low humidity
|
||||
rhLessThan13 = less(RH, 13.0)
|
||||
T80to112 = logical_and(greater_equal(T, 80), less_equal(T, 112))
|
||||
downMask = logical_and(rhLessThan13, T80to112)
|
||||
|
||||
# make array that is T where conditions are true and 100, otherwise
|
||||
adjustT = where(downMask, T, 80.0)
|
||||
HeatIndexValue[downMask] = HeatIndexValue[downMask] - (((13.0 - RH[downMask]) / 4.0) * sqrt((17.0 - abs(adjustT[downMask] - 95.0)) / 17))
|
||||
|
||||
# make the adjustments for high humidity
|
||||
rhGreater85 = greater(RH, 85.0)
|
||||
T80to87 = logical_and(greater_equal(T, 80.0), less_equal(T, 87.0))
|
||||
upMask = logical_and(rhGreater85, T80to87)
|
||||
HeatIndexValue[upMask] = HeatIndexValue[upMask] + (((RH[upMask] - 85.0) / 10.0) * ((87 - T[upMask]) / 5.0))
|
||||
|
||||
return HeatIndexValue
|
||||
|
||||
|
||||
|
||||
def _windChillCalc(self, T, Wind):
|
||||
|
||||
#---------------------
|
||||
# Wind Chill Equation
|
||||
#---------------------
|
||||
mag = Wind[0] * 1.15
|
||||
WindChillValue = where(less_equal(mag, 3), T, 35.74 + (0.6215 * T) -
|
||||
(35.75 * (mag ** 0.16)) + (0.4275 * T * (mag ** 0.16)))
|
||||
mask = greater(WindChillValue, T)
|
||||
WindChillValue[mask] = T[mask]
|
||||
|
||||
return WindChillValue
|
||||
|
|
@ -137,6 +137,7 @@ import com.raytheon.viz.ui.simulatedtime.SimulatedTimeOperations;
|
|||
* Oct 13, 2015 4933 rferrel Refactored to use selected variables.
|
||||
* Oct 27, 2015 4900 mduff Don't transmit SHEF files if in DRT.
|
||||
* Nov 06, 2015 17846 lbousaidi change the query so that after QC, the quality_code
|
||||
* Feb 17, 2016 14471 amoore Update/insert/modify in Latest obs table
|
||||
* is reset from Bad to Good.
|
||||
* Mar 17, 2016 5483 randerso Major GUI cleanup
|
||||
*
|
||||
|
@ -1867,12 +1868,163 @@ public class TabularTimeSeriesDlg extends CaveSWTDialog implements
|
|||
}
|
||||
}
|
||||
} // end if fcst
|
||||
|
||||
else {
|
||||
/* code for inserting/updating latestobsvalue table, if not forecast */
|
||||
updateInsertLatestObsValue(td, dataManager, now, dr, newDateTime);
|
||||
}
|
||||
/* reload list of timeseries */
|
||||
scheduleDataRetrieval();
|
||||
tabularLoadTimeseries();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update/Insert the edited value into the latestobsvalue table, if newer
|
||||
* than the existing record.
|
||||
*
|
||||
* @param tabularData
|
||||
* tabular data.
|
||||
* @param dataManager
|
||||
* data manager.
|
||||
* @param postingTime
|
||||
* posting time to use.
|
||||
* @param dataRecord
|
||||
* data record to use/update with information.
|
||||
* @param obsTime
|
||||
* observation time to use.
|
||||
*/
|
||||
private void updateInsertLatestObsValue(TabularData tabularData,
|
||||
TimeSeriesDataManager dataManager, Date postingTime,
|
||||
DataRecord dataRecord, Date obsTime) {
|
||||
String tablename = "latestobsvalue";
|
||||
|
||||
/* set the update/add structure with data which doesn't change */
|
||||
dataRecord.setLid(lid);
|
||||
dataRecord.setPe(pe);
|
||||
dataRecord.setDur(Integer.parseInt(dur));
|
||||
dataRecord.setTs(ts);
|
||||
dataRecord.setExt(extremum);
|
||||
/* set posting time to current time */
|
||||
dataRecord.setPostingTime(postingTime);
|
||||
|
||||
/* set the update structure with data from the original entry */
|
||||
|
||||
if (tabularDataList.size() != 0) {
|
||||
|
||||
dataRecord.setProductId(tabularData.getProductId());
|
||||
dataRecord.setProductTime(tabularData.getProductTime());
|
||||
dataRecord.setValue(Double.parseDouble(valueTF.getText()));
|
||||
|
||||
long qualityCode;
|
||||
if (qcCbo.getItem(qcCbo.getSelectionIndex()).equals("Good")) {
|
||||
qualityCode = TimeSeriesUtil.setQcCode(QC_MANUAL_PASSED,
|
||||
tabularData.getQualityCode());
|
||||
} else if (qcCbo.getItem(qcCbo.getSelectionIndex()).equals("Bad")) {
|
||||
qualityCode = TimeSeriesUtil.setQcCode(QC_MANUAL_FAILED,
|
||||
tabularData.getQualityCode());
|
||||
} else {
|
||||
qualityCode = TimeSeriesUtil.setQcCode(QC_MANUAL_QUEST,
|
||||
tabularData.getQualityCode());
|
||||
}
|
||||
|
||||
dataRecord.setQualityCode(qualityCode);
|
||||
|
||||
} else { /* if no data in list, set defaults values. */
|
||||
|
||||
dataRecord.setProductId(INSERT_PROD_ID);
|
||||
dataRecord.setValue(Double.parseDouble(valueTF.getText()));
|
||||
dataRecord.setQualityCode(TimeSeriesUtil.setQcCode(
|
||||
QC_MANUAL_PASSED, 0));
|
||||
dataRecord.setRevision(0);
|
||||
obsTime = postingTime;
|
||||
|
||||
try {
|
||||
Date defaultDate = dbFormat.parse(productTimeLbl.getText());
|
||||
dataRecord.setProductTime(defaultDate);
|
||||
} catch (ParseException e) {
|
||||
statusHandler.error("Parse Error: Could not parse ["
|
||||
+ productTimeLbl.getText() + "]", e);
|
||||
}
|
||||
|
||||
}
|
||||
/* always set the shefQualCode with a "M" for Manual edit */
|
||||
dataRecord.setShefQualCode("M");
|
||||
|
||||
/* do the update */
|
||||
String whereExists = createWhereExistsLatestObsValue(dataRecord);
|
||||
String whereOlderExists = createOlderThanWhereLatestObsValue(dataRecord);
|
||||
/* if toggle button ProductTime/ID is checked */
|
||||
|
||||
if (useProductTimeChk.getSelection()) {
|
||||
try {
|
||||
Date useProductDate = dbFormat.parse(productTimeLbl.getText());
|
||||
dataRecord.setProductTime(useProductDate);
|
||||
dataRecord.setProductId(INSERT_PROD_ID);
|
||||
|
||||
} catch (ParseException e) {
|
||||
statusHandler.handle(
|
||||
Priority.PROBLEM,
|
||||
"Parse Error: Could not parse ["
|
||||
+ productTimeLbl.getText() + "]", e);
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
long existingRecordCount = dataManager.recordCount(tablename,
|
||||
whereExists);
|
||||
long olderRecordCount = dataManager.recordCount(tablename,
|
||||
whereOlderExists);
|
||||
/* already a record with same key that is older */
|
||||
if (olderRecordCount == 1) {
|
||||
dataRecord.setRevision(1);
|
||||
String updateSQL = "update "
|
||||
+ tablename
|
||||
+ " set value = "
|
||||
+ dataRecord.getValue()
|
||||
+ ", quality_code = "
|
||||
+ dataRecord.getQualityCode()
|
||||
+ ", obstime = '"
|
||||
+ HydroConstants.DATE_FORMAT.format(obsTime)
|
||||
+ "', postingtime = '"
|
||||
+ HydroConstants.DATE_FORMAT.format(dataRecord
|
||||
.getPostingTime())
|
||||
+ "', product_id = '"
|
||||
+ dataRecord.getProductId()
|
||||
+ "', "
|
||||
+ "producttime = '"
|
||||
+ HydroConstants.DATE_FORMAT.format(dataRecord
|
||||
.getProductTime()) + "', revision = "
|
||||
+ dataRecord.getRevision() + ", shef_qual_code = '"
|
||||
+ dataRecord.getShefQualCode() + "' ";
|
||||
|
||||
String query = updateSQL + whereExists;
|
||||
try {
|
||||
dataManager.update(query);
|
||||
} catch (VizException e) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
"Failed to execute query [" + query + "]", e);
|
||||
}
|
||||
} else if (existingRecordCount == 0) {
|
||||
/*
|
||||
* if no record, insert a new one and set revision to 0
|
||||
*/
|
||||
try {
|
||||
dataRecord.setRevision(0);
|
||||
dataManager.addDataRecord(tablename, dataRecord);
|
||||
} catch (VizException e) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
"Failed to add data record to table [" + tablename
|
||||
+ "]", e);
|
||||
}
|
||||
}
|
||||
scheduleDataRetrieval();
|
||||
|
||||
} catch (VizException e) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
"Failed to get record count for table [" + tablename + "]",
|
||||
e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets just the value of the selected row to missing.
|
||||
*/
|
||||
|
@ -2061,6 +2213,10 @@ public class TabularTimeSeriesDlg extends CaveSWTDialog implements
|
|||
/* copy the deleted record to RejectedData */
|
||||
dataRecordList.add(dr);
|
||||
}
|
||||
|
||||
/********** This part is for latestobsvalue data ****/
|
||||
String where = createUpdDelWhereObs(dr);
|
||||
queryList.add("delete from latestobsvalue" + " " + where);
|
||||
}
|
||||
|
||||
// execute the queries
|
||||
|
@ -2566,12 +2722,70 @@ public class TabularTimeSeriesDlg extends CaveSWTDialog implements
|
|||
}
|
||||
|
||||
/**
|
||||
* Create the update and delete where clause
|
||||
* Create the where clause for latestobsvalue table, seeing if matching keys
|
||||
* and the given record's obstime is newer.
|
||||
*
|
||||
* @param dataRecord
|
||||
* The DataRecord to update
|
||||
* @return The Where clause used in the update
|
||||
*/
|
||||
private String createOlderThanWhereLatestObsValue(DataRecord dr) {
|
||||
StringBuilder sb = new StringBuilder(" where ");
|
||||
sb.append("lid = '");
|
||||
sb.append(dr.getLid());
|
||||
sb.append("' and ");
|
||||
sb.append("pe = '");
|
||||
sb.append(dr.getPe().toUpperCase());
|
||||
sb.append("' and ");
|
||||
sb.append("dur = ");
|
||||
sb.append(dr.getDur());
|
||||
sb.append(" and ");
|
||||
sb.append("ts = '");
|
||||
sb.append(dr.getTs().toUpperCase());
|
||||
sb.append("' and ");
|
||||
sb.append("extremum = '");
|
||||
sb.append(dr.getExt().toUpperCase());
|
||||
sb.append("' and ");
|
||||
sb.append("obstime < '");
|
||||
sb.append(dbFormat.format(dr.getObsTime()));
|
||||
sb.append("';");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the update where clause for latestobsvalue table.
|
||||
*
|
||||
* @param dataRecord
|
||||
* The DataRecord to update or delete
|
||||
* @return The Where clause used in the update or delete
|
||||
*/
|
||||
private String createWhereExistsLatestObsValue(DataRecord dr) {
|
||||
StringBuilder sb = new StringBuilder(" where ");
|
||||
sb.append("lid = '");
|
||||
sb.append(dr.getLid());
|
||||
sb.append("' and ");
|
||||
sb.append("pe = '");
|
||||
sb.append(dr.getPe().toUpperCase());
|
||||
sb.append("' and ");
|
||||
sb.append("dur = ");
|
||||
sb.append(dr.getDur());
|
||||
sb.append(" and ");
|
||||
sb.append("ts = '");
|
||||
sb.append(dr.getTs().toUpperCase());
|
||||
sb.append("' and ");
|
||||
sb.append("extremum = '");
|
||||
sb.append(dr.getExt().toUpperCase());
|
||||
sb.append("';");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the update where clause
|
||||
*
|
||||
* @param dataRecord
|
||||
* The DataRecord to update
|
||||
* @return The Where clause used in the update or delete
|
||||
*/
|
||||
private String createUpdDelWhereObs(DataRecord dr) {
|
||||
StringBuilder sb = new StringBuilder(" where ");
|
||||
sb.append("lid = '");
|
||||
|
|
|
@ -142,6 +142,8 @@ import com.raytheon.viz.hydrocommon.util.DbUtils;
|
|||
* 05 Sep 2013 #2332 lvenable Fixed memory leaks.
|
||||
* 24 Jan 2013 15959 lbousaidi Swap the corner points of the bounding box when zooming.
|
||||
* 22 Oct 2015 13736 xwei Fixed missing data after zoom, edit, & reset problem
|
||||
* 26 Oct, 2015 14217 jwu Removed MAX_TRACES limitation
|
||||
*
|
||||
* Nov 18 2015 5073 skorolev Fixed drawing PP time series.
|
||||
*
|
||||
* @author lvenable
|
||||
|
@ -153,9 +155,6 @@ public class TimeSeriesDisplayCanvas extends TimeSeriesGraphCanvas implements
|
|||
private static final IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(TimeSeriesDisplayCanvas.class);
|
||||
|
||||
/** The maximum number of forecast traces. */
|
||||
private static final int MAX_FCST_TRACES = 30;
|
||||
|
||||
private final String FEET = "ft";
|
||||
|
||||
private final String CFS = "cfs";
|
||||
|
@ -2601,38 +2600,32 @@ public class TimeSeriesDisplayCanvas extends TimeSeriesGraphCanvas implements
|
|||
}
|
||||
|
||||
if (basisTime.getTime() != prevBasisTime.getTime()) {
|
||||
if (ntraces < MAX_FCST_TRACES) {
|
||||
traceData.setXmin(beginDate);
|
||||
traceData.setXmax(endDate);
|
||||
n = 0; /* Reset npts in new forecast trace */
|
||||
traceData.setBasistime(prevBasisTime);
|
||||
ntraces++;
|
||||
traceData.setTsData(points
|
||||
.toArray(new TimeSeriesPoint[points
|
||||
.size()]));
|
||||
points = new ArrayList<TimeSeriesPoint>();
|
||||
traceData.setXmin(beginDate);
|
||||
traceData.setXmax(endDate);
|
||||
n = 0; /* Reset npts in new forecast trace */
|
||||
traceData.setBasistime(prevBasisTime);
|
||||
ntraces++;
|
||||
traceData
|
||||
.setTsData(points
|
||||
.toArray(new TimeSeriesPoint[points
|
||||
.size()]));
|
||||
points = new ArrayList<TimeSeriesPoint>();
|
||||
|
||||
if (ntraces >= 1) {
|
||||
traceDataList.add(traceData);
|
||||
}
|
||||
|
||||
traceData = new TraceData();
|
||||
traceData.setForecast(true);
|
||||
traceData.setDur(dur);
|
||||
traceData.setExtremum(extremum);
|
||||
traceData.setLid(lid);
|
||||
traceData.setPe(pe);
|
||||
traceData.setTs(ts);
|
||||
traceData.setName(name);
|
||||
traceData.setBasistime(basisTime);
|
||||
traceData.setProductTime(productTime);
|
||||
traceData.setTraceOn(!this.latestFcstFlag);
|
||||
} else {
|
||||
/*
|
||||
* reached max fcst traces, break out of loop
|
||||
*/
|
||||
break;
|
||||
if (ntraces >= 1) {
|
||||
traceDataList.add(traceData);
|
||||
}
|
||||
|
||||
traceData = new TraceData();
|
||||
traceData.setForecast(true);
|
||||
traceData.setDur(dur);
|
||||
traceData.setExtremum(extremum);
|
||||
traceData.setLid(lid);
|
||||
traceData.setPe(pe);
|
||||
traceData.setTs(ts);
|
||||
traceData.setName(name);
|
||||
traceData.setBasistime(basisTime);
|
||||
traceData.setProductTime(productTime);
|
||||
traceData.setTraceOn(!this.latestFcstFlag);
|
||||
}
|
||||
|
||||
p.setY(row.getValue());
|
||||
|
@ -2680,11 +2673,9 @@ public class TimeSeriesDisplayCanvas extends TimeSeriesGraphCanvas implements
|
|||
/*
|
||||
* Copy last trace into forecast trace
|
||||
*/
|
||||
if (ntraces < MAX_FCST_TRACES) {
|
||||
traceData.setBasistime(prevBasisTime);
|
||||
traceDataList.add(traceData);
|
||||
ntraces++;
|
||||
}
|
||||
traceData.setBasistime(prevBasisTime);
|
||||
traceDataList.add(traceData);
|
||||
ntraces++;
|
||||
} else {
|
||||
traceDataList.add(traceData);// although nothing from DB
|
||||
}
|
||||
|
|
|
@ -131,6 +131,7 @@ import com.raytheon.viz.ui.widgets.DateTimeSpinner;
|
|||
* Oct 13, 2015 4933 rferrel Log error if unable to find group definition file
|
||||
* Fixed formatter resource leaks.
|
||||
* 30 Oct, 2015 15102 wkwock Implements preferred order for PE-D-TS-EXT list
|
||||
* 26 Oct, 2015 14217 jwu Removed DAYS_MAX & MAX_TRACES limitations
|
||||
* Jan 26, 2016 5054 randerso Allow dialog to be parented to display
|
||||
* Mar 17, 2016 5483 randerso Major GUI cleanup
|
||||
*
|
||||
|
@ -1456,6 +1457,11 @@ public class TimeSeriesDlg extends CaveHydroSWTDialog {
|
|||
PageInfo pageInfo = null;
|
||||
GraphData graphData = null;
|
||||
|
||||
// Make sure group definition file exists.
|
||||
if (groupConfigFilePath == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
try (BufferedReader in = new BufferedReader(new FileReader(
|
||||
groupConfigFilePath))) {
|
||||
String str;
|
||||
|
@ -1826,13 +1832,19 @@ public class TimeSeriesDlg extends CaveHydroSWTDialog {
|
|||
tableButton.setEnabled(false);
|
||||
graphButton.setEnabled(false);
|
||||
bothButton.setEnabled(false);
|
||||
openTabularDisplay();
|
||||
openGraph();
|
||||
|
||||
// Open display/graph if user's selections are valid.
|
||||
if (validateForm()) {
|
||||
openTabularDisplay();
|
||||
openGraph();
|
||||
tabularDlg.getShell().moveAbove(this.shell);
|
||||
timeSeriesDisplayDlg.getShell().moveAbove(this.shell);
|
||||
}
|
||||
|
||||
tableButton.setEnabled(true);
|
||||
graphButton.setEnabled(true);
|
||||
bothButton.setEnabled(true);
|
||||
tabularDlg.getShell().moveAbove(this.shell);
|
||||
timeSeriesDisplayDlg.getShell().moveAbove(this.shell);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2120,19 +2132,6 @@ public class TimeSeriesDlg extends CaveHydroSWTDialog {
|
|||
valid = false;
|
||||
}
|
||||
|
||||
long numberOfDays = (endCal.getTimeInMillis() - beginCal
|
||||
.getTimeInMillis())
|
||||
/ HydroConstants.MILLIS_PER_MINUTE
|
||||
/ 60
|
||||
/ 24;
|
||||
|
||||
if (numberOfDays > HydroConstants.DAYS_MAX) {
|
||||
MessageDialog.openWarning(shell, "Invalid Date Selection",
|
||||
"Time Period exceeds " + HydroConstants.DAYS_MAX
|
||||
+ " days");
|
||||
valid = false;
|
||||
}
|
||||
|
||||
if (topDataTable.getSelectionIndex() == -1) {
|
||||
MessageDialog.openWarning(shell, "Invalid Selection",
|
||||
"A Location ID is required");
|
||||
|
|
|
@ -23,8 +23,6 @@ import java.util.ArrayList;
|
|||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.raytheon.viz.hydrocommon.HydroConstants;
|
||||
|
||||
/**
|
||||
* Object to hold the data and metadata for the time series.
|
||||
*
|
||||
|
@ -36,6 +34,7 @@ import com.raytheon.viz.hydrocommon.HydroConstants;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* Jun 24, 2008 mpduff Initial creation.
|
||||
* May 06, 2013 1976 mpduff Use List interface.
|
||||
* 26 Oct, 2015 14217 jwu Removed DAYS_MAX & MAX_TRACES limitations
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -311,10 +310,8 @@ public class GraphData {
|
|||
}
|
||||
|
||||
public void addTrace(TraceData trace) {
|
||||
if (traces.size() < HydroConstants.MAX_TRACES) {
|
||||
if (!traces.contains(trace)) {
|
||||
traces.add(trace);
|
||||
}
|
||||
if (!traces.contains(trace)) {
|
||||
traces.add(trace);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -340,9 +337,7 @@ public class GraphData {
|
|||
* true if value is stage, false otherwise
|
||||
*/
|
||||
public void addIsStage(boolean isStage) {
|
||||
if (traces.size() < HydroConstants.MAX_TRACES) {
|
||||
this.isStage.add(isStage);
|
||||
}
|
||||
this.isStage.add(isStage);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -92,7 +92,7 @@ import com.raytheon.viz.ui.dialogs.ICloseCallback;
|
|||
* 08 April 2015 17338 djingtao "Apostrophe" entered into HB text fields are not written to IHFS database
|
||||
* remove the changes in 15695/15488, move the apostrophe fix into a more central position
|
||||
* 01 July 2015 15642 xwei Added read-only lat/lon in DMS format
|
||||
*
|
||||
* Nov 30, 2015 14228 wkwock Update remark limit to 510.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -404,7 +404,9 @@ public class AddModifyLocationDlg extends CaveSWTDialog implements
|
|||
private String defaultNewLid = "XXXXX";
|
||||
|
||||
private String defaultNewCountyState = "XXXXXXXXXXXXXXXXXXXX, XX";
|
||||
|
||||
|
||||
private final int MAX_REMARK_CHAR = 510;
|
||||
|
||||
/**
|
||||
* Listeners to notify main HB Dialog of station list changes
|
||||
*/
|
||||
|
@ -871,11 +873,11 @@ public class AddModifyLocationDlg extends CaveSWTDialog implements
|
|||
remarksTF = new Text(remarksGroup, SWT.BORDER | SWT.MULTI | SWT.WRAP);
|
||||
remarksTF.setLayoutData(gd);
|
||||
remarksTF.setFont(controlFont);
|
||||
remarksTF.setTextLimit(255);
|
||||
remarksTF.setTextLimit(MAX_REMARK_CHAR);
|
||||
currentRemarkText = remarksTF.getText();
|
||||
ModifyListener listener = new ModifyListener() {
|
||||
public void modifyText(ModifyEvent e) {
|
||||
if (remarksTF.getText().length() > 255) {
|
||||
if (remarksTF.getText().length() > MAX_REMARK_CHAR) {
|
||||
remarksTF.setText(currentRemarkText);
|
||||
shell.getDisplay().beep();
|
||||
} else
|
||||
|
|
|
@ -57,6 +57,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
|
|||
* 02 Sep 2008 lvenable Initial creation.
|
||||
* 17 Dec 2008 1787 askripsk Connect to database.
|
||||
* 17 Apr 2013 1790 rferrel Make dialog non-blocking.
|
||||
* 30 Nov 2015 14228 wkwock Update remark limit to 510.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -122,7 +123,9 @@ public class BenchmarkDlg extends CaveSWTDialog {
|
|||
* Benchmark data for the current location.
|
||||
*/
|
||||
private java.util.List<BenchmarkData> benchData;
|
||||
|
||||
|
||||
private final int MAX_REMARK_CHAR = 510;
|
||||
|
||||
/**
|
||||
* Dialog states.
|
||||
*/
|
||||
|
@ -256,7 +259,7 @@ public class BenchmarkDlg extends CaveSWTDialog {
|
|||
gd.horizontalSpan = 2;
|
||||
descriptionTF = new Text(infoGroup, SWT.BORDER | SWT.MULTI | SWT.WRAP);
|
||||
descriptionTF.setLayoutData(gd);
|
||||
descriptionTF.setTextLimit(255);
|
||||
descriptionTF.setTextLimit(MAX_REMARK_CHAR);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -80,6 +80,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
|
|||
* list is selected
|
||||
* Feb 16, 2016 5354 bkowal Only update the stnclass table after an ingest
|
||||
* filter removal if there is an associated location.
|
||||
* Feb 17, 2016 14607 amoore Add WFO filter
|
||||
*
|
||||
*
|
||||
* </pre>
|
||||
|
@ -101,6 +102,11 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
*/
|
||||
private List ingestDataList;
|
||||
|
||||
/**
|
||||
* WFO filter list control.
|
||||
*/
|
||||
private List wfoFilterList;
|
||||
|
||||
/**
|
||||
* Physical element filter list control.
|
||||
*/
|
||||
|
@ -131,6 +137,11 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
*/
|
||||
private Button locationChk;
|
||||
|
||||
/**
|
||||
* WFO check box.
|
||||
*/
|
||||
private Button wfoChk;
|
||||
|
||||
/**
|
||||
* Type source check box.
|
||||
*/
|
||||
|
@ -151,6 +162,11 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
*/
|
||||
private Label locationLbl;
|
||||
|
||||
/**
|
||||
* WFO label.
|
||||
*/
|
||||
private Label wfoLbl;
|
||||
|
||||
/**
|
||||
* Physical element label.
|
||||
*/
|
||||
|
@ -201,6 +217,11 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
*/
|
||||
private Label locationSelLbl;
|
||||
|
||||
/**
|
||||
* WFO selected label.
|
||||
*/
|
||||
private Label wfoSelLbl;
|
||||
|
||||
/**
|
||||
* Duration selected label.
|
||||
*/
|
||||
|
@ -231,6 +252,11 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
*/
|
||||
private Text locationSelectedTF;
|
||||
|
||||
/**
|
||||
* WFO selected text control.
|
||||
*/
|
||||
private Label wfoSelectedLbl;
|
||||
|
||||
/**
|
||||
* Duration selected combo box.
|
||||
*/
|
||||
|
@ -388,7 +414,7 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
private void createIngestListControls(Group parentGroup) {
|
||||
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
|
||||
Composite listComp = new Composite(parentGroup, SWT.NONE);
|
||||
listComp.setLayout(new GridLayout(9, false));
|
||||
listComp.setLayout(new GridLayout(10, false));
|
||||
listComp.setLayoutData(gd);
|
||||
|
||||
// ---------------------------------------------------
|
||||
|
@ -399,6 +425,11 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
locationLbl.setText("Location");
|
||||
locationLbl.setLayoutData(gd);
|
||||
|
||||
gd = new GridData(40, SWT.DEFAULT);
|
||||
Label wfoLbl = new Label(listComp, SWT.NONE);
|
||||
wfoLbl.setText("WFO");
|
||||
wfoLbl.setLayoutData(gd);
|
||||
|
||||
gd = new GridData(40, SWT.DEFAULT);
|
||||
Label peLbl = new Label(listComp, SWT.NONE);
|
||||
peLbl.setText("PE");
|
||||
|
@ -444,8 +475,8 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
// ---------------------------------------------------
|
||||
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
|
||||
gd.widthHint = 450;
|
||||
gd.heightHint = 250;
|
||||
gd.horizontalSpan = 9;
|
||||
gd.heightHint = 380;
|
||||
gd.horizontalSpan = 10;
|
||||
ingestDataList = new List(listComp, SWT.BORDER | SWT.SINGLE
|
||||
| SWT.V_SCROLL);
|
||||
ingestDataList.setLayoutData(gd);
|
||||
|
@ -460,7 +491,7 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
// Create the buttons below the Ingest list control
|
||||
// ---------------------------------------------------
|
||||
gd = new GridData(SWT.RIGHT, SWT.DEFAULT, true, false);
|
||||
gd.horizontalSpan = 6;
|
||||
gd.horizontalSpan = 7;
|
||||
|
||||
Button setSwitchesBtn = new Button(listComp, SWT.PUSH);
|
||||
setSwitchesBtn.setText("Set Switches for All Listed Above");
|
||||
|
@ -518,9 +549,16 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
if (locationChk.getSelection() == true) {
|
||||
locationLbl.setEnabled(true);
|
||||
locationFilterTF.setEnabled(true);
|
||||
// clear and disable wfo
|
||||
wfoChk.setEnabled(false);
|
||||
wfoChk.setSelection(false);
|
||||
wfoFilterList.setEnabled(false);
|
||||
wfoLbl.setEnabled(false);
|
||||
} else {
|
||||
locationLbl.setEnabled(false);
|
||||
locationFilterTF.setEnabled(false);
|
||||
// enable ability to filter with wfo
|
||||
wfoChk.setEnabled(true);
|
||||
}
|
||||
|
||||
populateLists(true);
|
||||
|
@ -530,6 +568,20 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
// Filler
|
||||
new Label(filterGroup, SWT.NONE);
|
||||
|
||||
wfoChk = new Button(filterGroup, SWT.CHECK);
|
||||
wfoChk.setText("WFO");
|
||||
wfoChk.addSelectionListener(new SelectionAdapter() {
|
||||
public void widgetSelected(SelectionEvent event) {
|
||||
wfoLbl.setEnabled(wfoChk.getSelection());
|
||||
wfoFilterList.setEnabled(wfoChk.getSelection());
|
||||
|
||||
populateLists(true);
|
||||
}
|
||||
});
|
||||
|
||||
// Filler
|
||||
new Label(filterGroup, SWT.NONE);
|
||||
|
||||
typeSrcChk = new Button(filterGroup, SWT.CHECK);
|
||||
typeSrcChk.setText("TypeSrc");
|
||||
typeSrcChk.addSelectionListener(new SelectionAdapter() {
|
||||
|
@ -621,6 +673,27 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
}
|
||||
});
|
||||
|
||||
gd = new GridData(SWT.FILL, SWT.DEFAULT, false, false);
|
||||
wfoLbl = new Label(filterGroup, SWT.RIGHT);
|
||||
wfoLbl.setText("WFO: ");
|
||||
wfoLbl.setEnabled(false);
|
||||
wfoLbl.setLayoutData(gd);
|
||||
|
||||
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
|
||||
gd.widthHint = 250;
|
||||
gd.heightHint = 100;
|
||||
gd.horizontalSpan = 3;
|
||||
wfoFilterList = new List(filterGroup, SWT.BORDER | SWT.MULTI
|
||||
| SWT.V_SCROLL);
|
||||
wfoFilterList.setLayoutData(gd);
|
||||
wfoFilterList.setEnabled(false);
|
||||
wfoFilterList.setFont(controlFont);
|
||||
wfoFilterList.addSelectionListener(new SelectionAdapter() {
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
populateLists(true);
|
||||
}
|
||||
});
|
||||
|
||||
gd = new GridData(SWT.FILL, SWT.DEFAULT, false, false);
|
||||
physElemLbl = new Label(filterGroup, SWT.RIGHT);
|
||||
physElemLbl.setText("PhysElem: ");
|
||||
|
@ -729,6 +802,17 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
locationSelectedTF.setLayoutData(gd);
|
||||
selectedItemControls.add(locationSelectedTF);
|
||||
|
||||
gd = new GridData(SWT.FILL, SWT.CENTER, false, true);
|
||||
wfoSelLbl = new Label(leftComp, SWT.RIGHT);
|
||||
wfoSelLbl.setText("WFO: ");
|
||||
wfoSelLbl.setLayoutData(gd);
|
||||
selectedItemControls.add(wfoSelLbl);
|
||||
|
||||
gd = new GridData(80, SWT.DEFAULT);
|
||||
wfoSelectedLbl = new Label(leftComp, SWT.BORDER);
|
||||
wfoSelectedLbl.setLayoutData(gd);
|
||||
selectedItemControls.add(wfoSelectedLbl);
|
||||
|
||||
gd = new GridData(SWT.FILL, SWT.CENTER, false, true);
|
||||
durationSelLbl = new Label(leftComp, SWT.RIGHT);
|
||||
durationSelLbl.setText("Duration: ");
|
||||
|
@ -913,6 +997,12 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
.getInstance();
|
||||
|
||||
try {
|
||||
// Load WFO
|
||||
wfoFilterList.removeAll();
|
||||
for (String currWFO : man.getWFOs()) {
|
||||
wfoFilterList.add(currWFO);
|
||||
}
|
||||
|
||||
// Load Duration
|
||||
durationSelectedCbo.removeAll();
|
||||
for (String currDur : man.getShefDur()) {
|
||||
|
@ -965,6 +1055,7 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
|
||||
getIngestFilter(physElemChk.getSelection(), getSelectedPEs(),
|
||||
locationChk.getSelection(), locationFilterTF.getText(),
|
||||
wfoChk.getSelection(), getSelectedWFOs(),
|
||||
switchesChk.getSelection(), masterFilterChk.getSelection(),
|
||||
ofsFilterChk.getSelection(), mpeFilterChk.getSelection(),
|
||||
typeSrcChk.getSelection(),
|
||||
|
@ -979,6 +1070,8 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
* @param selectedPEs
|
||||
* @param locationChkSelection
|
||||
* @param locationFilterText
|
||||
* @param wfoChkSelection
|
||||
* @param selectedWFOs
|
||||
* @param switchesChkSelection
|
||||
* @param masterFilterChkSelection
|
||||
* @param ofsFilterChkSelection
|
||||
|
@ -990,7 +1083,8 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
private void getIngestFilter(final boolean physElemChkSelection,
|
||||
final java.util.List<String> selectedPEs,
|
||||
final boolean locationChkSelection,
|
||||
final String locationFilterText,
|
||||
final String locationFilterText, final boolean wfoChkSelection,
|
||||
final java.util.List<String> selectedWFOs,
|
||||
final boolean switchesChkSelection,
|
||||
final boolean masterFilterChkSelection,
|
||||
final boolean ofsFilterChkSelection,
|
||||
|
@ -1009,10 +1103,11 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
try {
|
||||
temp = man.getIngestFilter(physElemChkSelection,
|
||||
selectedPEs, locationChkSelection,
|
||||
locationFilterText, switchesChkSelection,
|
||||
masterFilterChkSelection, ofsFilterChkSelection,
|
||||
mpeFilterChkSelection, typeSrcChkSelection,
|
||||
typeSrcFilterCboValue, forceLoad);
|
||||
locationFilterText, wfoChkSelection, selectedWFOs,
|
||||
switchesChkSelection, masterFilterChkSelection,
|
||||
ofsFilterChkSelection, mpeFilterChkSelection,
|
||||
typeSrcChkSelection, typeSrcFilterCboValue,
|
||||
forceLoad);
|
||||
} catch (VizException e) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
"Problem filter list ", e);
|
||||
|
@ -1077,6 +1172,22 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
return peFilter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the selected WFOs to filter by
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private java.util.List<String> getSelectedWFOs() {
|
||||
int[] selectedInd = wfoFilterList.getSelectionIndices();
|
||||
java.util.List<String> wfoFilter = new ArrayList<>(selectedInd.length);
|
||||
|
||||
for (int i : selectedInd) {
|
||||
wfoFilter.add(wfoFilterList.getItem(i));
|
||||
}
|
||||
|
||||
return wfoFilter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the display information in the bottom group to reflect the data
|
||||
* from the currently selected record.
|
||||
|
@ -1088,6 +1199,9 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
// Location
|
||||
locationSelectedTF.setText(selectedData.getLid());
|
||||
|
||||
// WFO
|
||||
wfoSelectedLbl.setText(selectedData.getWfo());
|
||||
|
||||
// Duration
|
||||
for (int i = 0; i < durationSelectedCbo.getItemCount(); i++) {
|
||||
if (durationSelectedCbo.getItem(i).contains(
|
||||
|
@ -1158,6 +1272,9 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
// LID
|
||||
dataToSave.setLid(locationSelectedTF.getText());
|
||||
|
||||
// WFO not retrieved from text field because it is not part of the
|
||||
// ingestfilter table, and is derived from the location table by LID
|
||||
|
||||
// Duration
|
||||
dataToSave.setDuration(getSelectedIntValue(durationSelectedCbo));
|
||||
|
||||
|
@ -1344,6 +1461,7 @@ public class DataIngestFilterDlg extends CaveSWTDialog {
|
|||
*/
|
||||
private void clearInformation() {
|
||||
locationSelectedTF.setText("");
|
||||
wfoSelectedLbl.setText("");
|
||||
durationSelectedCbo.select(0);
|
||||
typeSrcSelectedCbo.select(0);
|
||||
extremumSelectedCbo.select(0);
|
||||
|
|
|
@ -59,6 +59,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* Sep 4, 2008 lvenable Initial creation
|
||||
* Apr 19,2013 1790 rferrel Make dialog non-blocking.
|
||||
* Feb 08, 2016 14232 amoore Expand locarea area column to 500 characters.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -66,6 +67,11 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
|
|||
* @version 1.0
|
||||
*/
|
||||
public class DescriptionDlg extends CaveSWTDialog {
|
||||
/**
|
||||
* Maximum characters of affected area.
|
||||
*/
|
||||
private static final int MAX_AFFECTED_AREA_SIZE = 500;
|
||||
|
||||
private final IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(DescriptionDlg.class);
|
||||
|
||||
|
@ -441,7 +447,7 @@ public class DescriptionDlg extends CaveSWTDialog {
|
|||
currentAreaText = affectedAreaTF.getText();
|
||||
ModifyListener listenerA = new ModifyListener() {
|
||||
public void modifyText(ModifyEvent e) {
|
||||
if (affectedAreaTF.getText().length() > 80) {
|
||||
if (affectedAreaTF.getText().length() > MAX_AFFECTED_AREA_SIZE) {
|
||||
affectedAreaTF.setText(currentAreaText);
|
||||
shell.getDisplay().beep();
|
||||
} else {
|
||||
|
|
|
@ -63,7 +63,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
|
|||
* Sep 4, 2008 lvenable Initial creation
|
||||
* Jan 8, 2008 1802 askripsk Connect to DB.
|
||||
* Apr 19, 2013 170- rferrel Make dialog non-blocking.
|
||||
*
|
||||
* Nov 30, 2015 14228 wkwock Update remark limit to 510.
|
||||
* </pre>
|
||||
*
|
||||
* @author lvenable
|
||||
|
@ -160,6 +160,9 @@ public class GageHistoryDlg extends CaveSWTDialog {
|
|||
* @param titleInfo
|
||||
* Dialog title information.
|
||||
*/
|
||||
|
||||
private final int MAX_REMARK_CHAR = 510;
|
||||
|
||||
public GageHistoryDlg(Shell parent, String titleInfo, String lid) {
|
||||
super(parent);
|
||||
setText("Gage History" + titleInfo);
|
||||
|
@ -345,11 +348,11 @@ public class GageHistoryDlg extends CaveSWTDialog {
|
|||
gd = new GridData(500, 120);
|
||||
locationTF = new Text(locationGroup, SWT.BORDER | SWT.MULTI | SWT.WRAP);
|
||||
locationTF.setLayoutData(gd);
|
||||
locationTF.setTextLimit(255);
|
||||
locationTF.setTextLimit(MAX_REMARK_CHAR);
|
||||
currentLocText = locationTF.getText();
|
||||
ModifyListener listener = new ModifyListener() {
|
||||
public void modifyText(ModifyEvent e) {
|
||||
if (locationTF.getText().length() > 255) {
|
||||
if (locationTF.getText().length() > MAX_REMARK_CHAR) {
|
||||
locationTF.setText(currentLocText);
|
||||
shell.getDisplay().beep();
|
||||
} else
|
||||
|
|
|
@ -82,6 +82,7 @@ import com.raytheon.viz.ui.dialogs.ICloseCallback;
|
|||
* Feb.02, 2015 #13372 djingtao Change from GMT time to local time for "Revise" field
|
||||
* May 15, 2015 4380 skorolev Added issuanceStage and issuanceFlow text fields.
|
||||
* Jul 06, 2015 #14104 lbousaidi increased textlimit to 15
|
||||
* Nov 30, 2015 14228 wkwock Update remark limit to 510.
|
||||
* Jan 13, 2016 #17652 jingtaoD use location lat/lon for 1st guess for new River Gage
|
||||
*
|
||||
* </pre>
|
||||
|
@ -339,7 +340,7 @@ public class RiverGageDlg extends CaveSWTDialog implements
|
|||
/**
|
||||
* maximum number of character allowed in the remark text box
|
||||
*/
|
||||
private final int MAX_REMARK_CHAR = 255;
|
||||
private final int MAX_REMARK_CHAR = 510;
|
||||
|
||||
/**
|
||||
* Issuance Stage text control
|
||||
|
|
|
@ -34,6 +34,7 @@ import org.eclipse.swt.graphics.RGB;
|
|||
* Jun 17, 2008 1194 M. Duff Initial creation.
|
||||
* 11/18/2008 1662 grichard Added physical element enum type.
|
||||
* 14 Sep, 2015 15102 wkwock Implements preferred order for PE-D-TS-EXT list
|
||||
* 26 Oct, 2015 14217 jwu Removed DAYS_MAX & MAX_TRACES
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -85,9 +86,6 @@ public class HydroConstants {
|
|||
/** default year */
|
||||
public static final int DEFAULT_YEAR = 1900;
|
||||
|
||||
/** maximum number of days for the time series */
|
||||
public static final int DAYS_MAX = 90;
|
||||
|
||||
/** Number of milliseconds per second */
|
||||
public static final int MILLIS_PER_SECOND = 1000;
|
||||
|
||||
|
@ -112,9 +110,6 @@ public class HydroConstants {
|
|||
/** Number of seconds per minute */
|
||||
public static final int SECONDS_PER_MINUTE = 60;
|
||||
|
||||
/** Max number of traces per time series graph */
|
||||
public static final int MAX_TRACES = 30;
|
||||
|
||||
/** Max number of points per time series graph */
|
||||
public static final int MAX_POINTS = 5000;
|
||||
|
||||
|
|
|
@ -75,6 +75,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
|
|||
* Dec 10, 2014 16061 lbousaidi set the crest time to the correct value for a
|
||||
* new record,also fixed the sorting to match the correct
|
||||
* timecrest.
|
||||
* Nov 30, 2015 14228 wkwock Update remark limit to 160.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -239,7 +240,7 @@ public class CrestHistoryDlg extends CaveSWTDialog implements
|
|||
/**
|
||||
* maximum number of character allowed in the remark text box
|
||||
*/
|
||||
private final int MAX_REMARK_CHAR = 80;
|
||||
private final int MAX_REMARK_CHAR = 160;
|
||||
|
||||
/**
|
||||
* The valid time set by the last call to verifiedTime().
|
||||
|
|
|
@ -45,6 +45,11 @@ public class DataIngestFilterData extends HydroDBData implements IHydroDBData {
|
|||
*/
|
||||
private String lid;
|
||||
|
||||
/**
|
||||
* WFO.
|
||||
*/
|
||||
private String wfo;
|
||||
|
||||
/**
|
||||
* Physical Element
|
||||
*/
|
||||
|
@ -101,7 +106,8 @@ public class DataIngestFilterData extends HydroDBData implements IHydroDBData {
|
|||
*/
|
||||
public DataIngestFilterData(QueryResultRow data,
|
||||
Map<String, Integer> dataMap) {
|
||||
setLid(getDBValue("lid", data, dataMap, ""));
|
||||
setLid(getDBValue("ingestfilter.lid", data, dataMap, ""));
|
||||
setWfo(getDBValue("wfo", data, dataMap, ""));
|
||||
setPe(getDBValue("pe", data, dataMap, ""));
|
||||
setDuration(getDBValue("dur", data, dataMap,
|
||||
(short) HydroConstants.MISSING_VALUE).intValue());
|
||||
|
@ -122,6 +128,14 @@ public class DataIngestFilterData extends HydroDBData implements IHydroDBData {
|
|||
this.lid = lid;
|
||||
}
|
||||
|
||||
public String getWfo() {
|
||||
return wfo;
|
||||
}
|
||||
|
||||
public void setWfo(String wfo) {
|
||||
this.wfo = wfo;
|
||||
}
|
||||
|
||||
public String getPe() {
|
||||
return pe;
|
||||
}
|
||||
|
@ -198,7 +212,7 @@ public class DataIngestFilterData extends HydroDBData implements IHydroDBData {
|
|||
public String getConstrainedSelectStatement() {
|
||||
return getSelectStatement()
|
||||
+ whereClause
|
||||
+ " ORDER BY lid, pe, dur, ts, extremum, ts_rank, ingest, ofs_input, stg2_input";
|
||||
+ " ORDER BY lid, wfo, pe, dur, ts, extremum, ts_rank, ingest, ofs_input, stg2_input";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -236,11 +250,11 @@ public class DataIngestFilterData extends HydroDBData implements IHydroDBData {
|
|||
public String getSelectStatement() {
|
||||
StringBuffer rval = new StringBuffer();
|
||||
|
||||
String columns = "lid, pe, dur, ts, extremum, ts_rank, ingest, ofs_input, stg2_input";
|
||||
String columns = "ingestfilter.lid, wfo, pe, dur, ts, extremum, ts_rank, ingest, ofs_input, stg2_input";
|
||||
|
||||
rval.append("SELECT ");
|
||||
rval.append(columns);
|
||||
rval.append(" FROM ingestfilter");
|
||||
rval.append(" FROM ingestfilter LEFT JOIN location ON ingestfilter.lid = location.lid");
|
||||
|
||||
return rval.toString();
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ import com.raytheon.viz.hydrocommon.data.DataIngestFilterData;
|
|||
* Apr 18, 2013 1790 rferrel Code clean up with non-blocking dialogs.
|
||||
* May 1, 2014 17096 xwei Updated the filter list SQL statement
|
||||
* Jul 21, 2015 4500 rjpeter Use Number in blind cast.
|
||||
* Feb 17, 2016 14607 amoore Add WFO Filter
|
||||
* </pre>
|
||||
*
|
||||
* @author askripsky
|
||||
|
@ -146,6 +147,31 @@ public class DataIngestFilterDataManager {
|
|||
return rval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the WFOs from the DB
|
||||
*
|
||||
* @return The WFOs from the DB
|
||||
* @throws VizException
|
||||
*/
|
||||
public List<String> getWFOs() throws VizException {
|
||||
List<String> rval = new ArrayList<String>();
|
||||
|
||||
String extQuery = "SELECT wfo FROM wfo ORDER BY wfo";
|
||||
|
||||
QueryResult data = HydroDBDataManager.getInstance().runMappedQuery(
|
||||
extQuery);
|
||||
|
||||
if (data != null) {
|
||||
for (QueryResultRow currExt : data.getRows()) {
|
||||
String wfo = (String) currExt.getColumn(data.getColumnNames()
|
||||
.get("wfo"));
|
||||
rval.add(wfo);
|
||||
}
|
||||
}
|
||||
|
||||
return rval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the ingest filter data from the database cache.
|
||||
*
|
||||
|
@ -157,6 +183,10 @@ public class DataIngestFilterDataManager {
|
|||
* Whether or not to filter by the location.
|
||||
* @param selectedLocation
|
||||
* The location string to filter by.
|
||||
* @param filterByWFO
|
||||
* Whether or not to filter by the WFO.
|
||||
* @param selectedWFOs
|
||||
* The WFO strings to filter by.
|
||||
* @param filterBySwitches
|
||||
* Whether or not to filter by the ingest switches.
|
||||
* @param filterByIngest
|
||||
|
@ -174,12 +204,14 @@ public class DataIngestFilterDataManager {
|
|||
*/
|
||||
public List<DataIngestFilterData> getIngestFilter(boolean filterByPE,
|
||||
List<String> selectedPE, boolean filterByLocation,
|
||||
String selectedLocation, boolean filterBySwitches,
|
||||
String selectedLocation, boolean filterByWFO,
|
||||
List<String> selectedWFOs, boolean filterBySwitches,
|
||||
boolean filterByIngest, boolean filterByOFS, boolean filterByMPE,
|
||||
boolean filterByTS, String selectedTS) throws VizException {
|
||||
return getIngestFilter(filterByPE, selectedPE, filterByLocation,
|
||||
selectedLocation, filterBySwitches, filterByIngest,
|
||||
filterByOFS, filterByMPE, filterByTS, selectedTS, false);
|
||||
selectedLocation, filterByWFO, selectedWFOs, filterBySwitches,
|
||||
filterByIngest, filterByOFS, filterByMPE, filterByTS,
|
||||
selectedTS, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -193,6 +225,10 @@ public class DataIngestFilterDataManager {
|
|||
* Whether or not to filter by the location.
|
||||
* @param selectedLocation
|
||||
* The location string to filter by.
|
||||
* @param filterByWFO
|
||||
* Whether or not to filter by the WFO.
|
||||
* @param selectedWFOs
|
||||
* The WFO strings to filter by.
|
||||
* @param filterBySwitches
|
||||
* Whether or not to filter by the ingest switches.
|
||||
* @param filterByIngest
|
||||
|
@ -212,7 +248,8 @@ public class DataIngestFilterDataManager {
|
|||
*/
|
||||
public List<DataIngestFilterData> getIngestFilter(boolean filterByPE,
|
||||
List<String> selectedPE, boolean filterByLocation,
|
||||
String selectedLocation, boolean filterBySwitches,
|
||||
String selectedLocation, boolean filterByWFO,
|
||||
List<String> selectedWFOs, boolean filterBySwitches,
|
||||
boolean filterByIngest, boolean filterByOFS, boolean filterByMPE,
|
||||
boolean filterByTS, String selectedTS, boolean forceLoad)
|
||||
throws VizException {
|
||||
|
@ -221,7 +258,26 @@ public class DataIngestFilterDataManager {
|
|||
|
||||
StringBuffer whereClause = new StringBuffer();
|
||||
if (filterByLocation) {
|
||||
whereClause.append("lid='" + selectedLocation + "'");
|
||||
whereClause.append("ingestfilter.lid='" + selectedLocation
|
||||
+ "'");
|
||||
} else {
|
||||
// not filtering by location, so allow filtering by WFO if
|
||||
// enabled
|
||||
if (filterByWFO && !selectedWFOs.isEmpty()) {
|
||||
// DCS14607, multiple list form patterns were incompatible
|
||||
// with apostrophe logic later on, so switching to string of
|
||||
// ORs)
|
||||
whereClause.append("(");
|
||||
|
||||
for (String wfo : selectedWFOs) {
|
||||
whereClause.append("wfo='").append(wfo).append("' OR ");
|
||||
}
|
||||
|
||||
// Remove the extra _OR_
|
||||
whereClause.setLength(whereClause.length() - 4);
|
||||
|
||||
whereClause.append(")");
|
||||
}
|
||||
}
|
||||
|
||||
if (filterByPE && (selectedPE.size() > 0)) {
|
||||
|
@ -229,14 +285,17 @@ public class DataIngestFilterDataManager {
|
|||
whereClause.append(" AND ");
|
||||
}
|
||||
|
||||
whereClause.append("pe in (");
|
||||
whereClause.append("(");
|
||||
|
||||
for (String currPE : selectedPE) {
|
||||
whereClause.append("'" + currPE + "',");
|
||||
// DCS14607, multiple list form patterns were incompatible
|
||||
// with apostrophe logic later on, so switched to string of
|
||||
// ORs)
|
||||
whereClause.append("pe='").append(currPE).append("' OR ");
|
||||
}
|
||||
|
||||
// Remove the extra ,
|
||||
whereClause.setLength(whereClause.length() - 1);
|
||||
// Remove the extra _OR_
|
||||
whereClause.setLength(whereClause.length() - 4);
|
||||
|
||||
whereClause.append(")");
|
||||
}
|
||||
|
@ -282,10 +341,10 @@ public class DataIngestFilterDataManager {
|
|||
* @return The display string for the data.
|
||||
*/
|
||||
public String getIngestFilterString(DataIngestFilterData currData) {
|
||||
String dataFormat = "%-9S %-4S %-6S %-7S %-6S %-7S %-5S %-5S %-5S";
|
||||
String dataFormat = "%-9S %-4S %-4S %-6S %-7S %-6S %-7S %-5S %-5S %-5S";
|
||||
|
||||
return String.format(dataFormat, currData.getLid(), currData.getPe(),
|
||||
getDisplayString(currData.getDuration()),
|
||||
return String.format(dataFormat, currData.getLid(), currData.getWfo(),
|
||||
currData.getPe(), getDisplayString(currData.getDuration()),
|
||||
currData.getTypeSource(), currData.getExtremum(),
|
||||
getDisplayString(currData.getTsRank()), currData.getIngest(),
|
||||
currData.getOfsInput(), currData.getStg2Input());
|
||||
|
|
|
@ -75,11 +75,11 @@ import com.raytheon.uf.viz.core.cache.CacheObject.IObjectRetrieverAndDisposer;
|
|||
* better error handling
|
||||
* Sep 25, 2015 4605 bsteffen repeat binning
|
||||
* Nov 05, 2015 5090 bsteffen Use constants for datatime start/end
|
||||
* Mar 08, 2016 18336 amoore Keep-alive messages should update the legend.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author bclement
|
||||
* @version 1.0
|
||||
*/
|
||||
public class LightningFrameRetriever implements
|
||||
IObjectRetrieverAndDisposer<LightningFrameMetadata, LightningFrame> {
|
||||
|
@ -153,13 +153,13 @@ public class LightningFrameRetriever implements
|
|||
DbQueryRequest request = new DbQueryRequest();
|
||||
request.setEntityClass(BinLightningRecord.class);
|
||||
request.addConstraint(LightningConstants.SOURCE, sourceRC);
|
||||
request.addConstraint(PluginDataObject.STARTTIME_ID,
|
||||
startRC);
|
||||
request.addConstraint(PluginDataObject.STARTTIME_ID, startRC);
|
||||
request.addConstraint(PluginDataObject.ENDTIME_ID, endRC);
|
||||
try {
|
||||
DbQueryResponse response = (DbQueryResponse) RequestRouter
|
||||
.route(request);
|
||||
BinLightningRecord[] newRecords = response.getEntityObjects(BinLightningRecord.class);
|
||||
BinLightningRecord[] newRecords = response
|
||||
.getEntityObjects(BinLightningRecord.class);
|
||||
metadata.getNewRecords().addAll(Arrays.asList(newRecords));
|
||||
} catch (Exception e) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
|
@ -289,14 +289,23 @@ public class LightningFrameRetriever implements
|
|||
IDataRecord pulseIndexes = recordMap
|
||||
.get(LightningConstants.PULSE_INDEX_DATASET);
|
||||
|
||||
if (timeRec == null || intensities == null || lats == null
|
||||
|| lons == null || types == null
|
||||
if (timeRec != null && intensities == null && lats == null
|
||||
&& lons == null && types == null
|
||||
&& pulseIndexes == null) {
|
||||
statusHandler.debug("Group '" + entry.getKey()
|
||||
+ "'is a keep-alive message");
|
||||
// has time, but missing others; must be keep-alive
|
||||
continue;
|
||||
} else if (timeRec == null || intensities == null
|
||||
|| lats == null || lons == null || types == null
|
||||
|| pulseIndexes == null) {
|
||||
List<String> missing = getMissingDatasets(recordMap);
|
||||
statusHandler.error("Group '" + entry.getKey()
|
||||
+ "' missing dataset(s): " + missing);
|
||||
// missing some mix of data
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!allSameLength(timeRec, intensities, lats, lons, types,
|
||||
pulseIndexes)) {
|
||||
statusHandler.error("Group '" + entry.getKey()
|
||||
|
@ -496,8 +505,8 @@ public class LightningFrameRetriever implements
|
|||
"Mismatched pulse latitude/longitude data", latRecord);
|
||||
}
|
||||
for (int i = 0; i < lats.length; ++i) {
|
||||
bundle.getPulseLatLonList()
|
||||
.add(new double[] { lons[i], lats[i] });
|
||||
bundle.getPulseLatLonList().add(
|
||||
new double[] { lons[i], lats[i] });
|
||||
}
|
||||
} catch (FileNotFoundException e) {
|
||||
statusHandler.error("Unable to open lightning file", e);
|
||||
|
@ -507,4 +516,4 @@ public class LightningFrameRetriever implements
|
|||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -32,9 +32,9 @@
|
|||
-XX:G1MixedGCLiveThresholdPercent=25
|
||||
-XX:G1OldCSetRegionThresholdPercent=25
|
||||
-XX:G1HeapWastePercent=5</vmArgs>
|
||||
<vmArgsLin>-Xmx2560M -XX:MaxDirectMemorySize=2G
|
||||
<vmArgsLin>-Xmx6144M -XX:MaxDirectMemorySize=2G
|
||||
-XX:OnOutOfMemoryError="capture -t no -p $pid &"</vmArgsLin>
|
||||
<vmArgsWin>-Dfile.encoding=UTF-8 -Xmx2560M</vmArgsWin>
|
||||
<vmArgsWin>-Dfile.encoding=UTF-8 -Xmx6144M</vmArgsWin>
|
||||
</launcherArgs>
|
||||
|
||||
<windowImages i16="/com.raytheon.viz.product.awips/icons/cave_16x16.png" i32="/com.raytheon.viz.product.awips/icons/cave_32x32.png" i48="/com.raytheon.viz.product.awips/icons/cave_48x48.png" i64="/com.raytheon.viz.product.awips/icons/cave_64x64.png" i128="/com.raytheon.viz.product.awips/icons/cave_128x128.png"/>
|
||||
|
|
100
cave/com.raytheon.viz.radar/localization/bundles/DefaultRadarMosaicDPprecip.xml
Executable file
100
cave/com.raytheon.viz.radar/localization/bundles/DefaultRadarMosaicDPprecip.xml
Executable file
|
@ -0,0 +1,100 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0"
|
||||
contrast="1.0" alpha="1.0" />
|
||||
<capability xsi:type="groupNamingCapability" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false"
|
||||
isBlinking="false" isMapLayer="false" isHoverOn="false"
|
||||
isVisible="true" />
|
||||
<resourceData xsi:type="radarMosaicResourceData"
|
||||
productName="${name}" isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true"
|
||||
retrieveData="false">
|
||||
<binOffset posOffset="360" negOffset="0"
|
||||
virtualOffset="0" />
|
||||
<metadataMap>
|
||||
<mapping key="productCode">
|
||||
<constraint constraintValue="${product}"
|
||||
constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="icao">
|
||||
<constraint constraintValue="${mosaicIcaoList}"
|
||||
constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="primaryElevationAngle">
|
||||
<constraint constraintValue="${elevation}"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="layer">
|
||||
<constraint constraintValue="${layer}"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="radar"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
<resourceFactory xsi:type="radarMosaicResourceFactory"
|
||||
values="${mosaicIcaoList}" key="kxxx">
|
||||
<resource>
|
||||
<loadProperties
|
||||
loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false"
|
||||
brightness="1.0" contrast="1.0"
|
||||
alpha="1.0" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false"
|
||||
isBlinking="false" isMapLayer="false"
|
||||
isHoverOn="false" isVisible="true" />
|
||||
<resourceData xsi:type="radarResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="productCode">
|
||||
<constraint
|
||||
constraintValue="${product}"
|
||||
constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="icao">
|
||||
<constraint
|
||||
constraintValue="kxxx"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="primaryElevationAngle">
|
||||
<constraint
|
||||
constraintValue="${elevation}"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="layer">
|
||||
<constraint
|
||||
constraintValue="${layer}"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint
|
||||
constraintValue="radar"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</resourceFactory>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -11,7 +11,7 @@
|
|||
menuText="10km Radar Coded Msg" id="10kmRadarCodedMsg" />
|
||||
<contribute xsi:type="subinclude" fileName="menus/radar/airportRadars.xml" />
|
||||
<contribute xsi:type="titleItem" titleText="------ Mosaic ------" id="RadarMosaic" />
|
||||
<contribute xsi:type="subinclude" fileName="menus/radar/otherMosaicMenus.xml" />
|
||||
<contribute xsi:type="subinclude" fileName="menus/radar/regionalMosaicMenus.xml" />
|
||||
<contribute xsi:type="subinclude" fileName="menus/radar/radarMosaicProductMenu.xml" />
|
||||
<contribute xsi:type="separator" id="belowRadarMosaics" />
|
||||
<contribute xsi:type="subMenu" menuText="Dial Radars" id="RadarMenuDialRadarsSubMenu">
|
||||
|
|
|
@ -47,6 +47,7 @@ import com.raytheon.uf.common.geospatial.ReferencedCoordinate;
|
|||
import com.raytheon.uf.common.geospatial.ReferencedObject.Type;
|
||||
import com.raytheon.uf.common.localization.IPathManager;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle;
|
||||
import com.raytheon.uf.viz.core.data.IRenderedImageCallback;
|
||||
import com.raytheon.uf.viz.core.drawables.IDescriptor;
|
||||
import com.raytheon.uf.viz.core.drawables.IImage;
|
||||
|
@ -73,6 +74,7 @@ import com.vividsolutions.jts.geom.Coordinate;
|
|||
* Aug 11, 2014 3504 mapeters Replaced deprecated IODataPreparer
|
||||
* instances with IRenderedImageCallback.
|
||||
* Oct 37, 2015 4798 bsteffen Use SVGImageFactory
|
||||
* Feb 16, 2016 12021 wkwock Fix mesocyclone zooming issue
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -160,7 +162,14 @@ public class RadarGraphicFunctions {
|
|||
public int[] pixelOffset;
|
||||
|
||||
public String label;
|
||||
|
||||
|
||||
public MesocycloneType type;
|
||||
|
||||
public double mesoRadius = -999;
|
||||
public double lat;
|
||||
public double lon;
|
||||
public LineStyle lineStyle;
|
||||
public RGB color;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -321,17 +330,17 @@ public class RadarGraphicFunctions {
|
|||
return po;
|
||||
}
|
||||
|
||||
public static PlotObject createMesocycloneImage(double i, double j,
|
||||
int mesoRadius, IGraphicsTarget target,
|
||||
public static PlotObject setMesocycloneInfo(double i, double j,
|
||||
double mesoRadius, IGraphicsTarget target,
|
||||
GeneralGridGeometry gridGeometry, IDescriptor descriptor,
|
||||
MesocycloneType type, RGB color) throws VizException,
|
||||
MesocycloneType type, RGB color, LineStyle lineStyle) throws VizException,
|
||||
TransformException, FactoryException {
|
||||
ReferencedCoordinate rc = new ReferencedCoordinate(
|
||||
RadarGraphicsPage.rectifyCoordinate(new Coordinate(i, j)),
|
||||
gridGeometry, Type.GRID_CENTER);
|
||||
|
||||
return createMesocycloneImage(rc, mesoRadius, target, descriptor, type,
|
||||
color);
|
||||
return setMesocycloneInfo(rc, mesoRadius, descriptor, type,
|
||||
color, lineStyle);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -370,86 +379,11 @@ public class RadarGraphicFunctions {
|
|||
return radius;
|
||||
}
|
||||
|
||||
public static PlotObject createMesocycloneImage(ReferencedCoordinate rc,
|
||||
double mesoRadius, IGraphicsTarget target, IDescriptor descriptor,
|
||||
MesocycloneType type, RGB color) throws VizException,
|
||||
public static PlotObject setMesocycloneInfo(ReferencedCoordinate rc,
|
||||
double mesoRadius, IDescriptor descriptor,
|
||||
MesocycloneType type, RGB color, LineStyle lineStyle) throws VizException,
|
||||
TransformException, FactoryException {
|
||||
int spikeSize = 8;
|
||||
|
||||
String svgToGet;
|
||||
if (type.equals(MesocycloneType.MESOCYCLONE_WITH_SPIKES)) {
|
||||
svgToGet = "MesocycloneWithSpikes.svg";
|
||||
} else {
|
||||
svgToGet = "Mesocyclone.svg";
|
||||
}
|
||||
|
||||
// Get the SVG
|
||||
RadarSVGImageFactory imageFactory = getImageFactory(svgToGet);
|
||||
Document document = imageFactory.getDocument();
|
||||
|
||||
// Load the values into the SVG
|
||||
// Set radius
|
||||
Element radius = document.getElementById("mesocyclone");
|
||||
double mesoRadiusInPixels = getRadiusInPixels(mesoRadius,
|
||||
rc.asLatLon().x, rc.asLatLon().y, descriptor, target);
|
||||
radius.setAttribute("r", String.valueOf(mesoRadiusInPixels));
|
||||
|
||||
// Draw spikes if needed
|
||||
if (type.equals(MesocycloneType.MESOCYCLONE_WITH_SPIKES)) {
|
||||
// Set spikes
|
||||
Element topSpike = document.getElementById("topSpike");
|
||||
topSpike.setAttribute("x1", "0");
|
||||
topSpike.setAttribute("y1", String.valueOf(mesoRadiusInPixels));
|
||||
topSpike.setAttribute("x2", "0");
|
||||
topSpike.setAttribute("y2",
|
||||
String.valueOf(mesoRadiusInPixels + spikeSize));
|
||||
|
||||
// <line id="rightSpike" x1="8" y1="0" x2="16" y2="0"/>
|
||||
Element rightSpike = document.getElementById("rightSpike");
|
||||
rightSpike.setAttribute("y1", "0");
|
||||
rightSpike.setAttribute("x1", String.valueOf(mesoRadiusInPixels));
|
||||
rightSpike.setAttribute("y2", "0");
|
||||
rightSpike.setAttribute("x2",
|
||||
String.valueOf(mesoRadiusInPixels + spikeSize));
|
||||
|
||||
// <line id="bottomSpike" x1="0" y1="-8" x2="0" y2="-16"/>
|
||||
Element bottomSpike = document.getElementById("bottomSpike");
|
||||
bottomSpike.setAttribute("x1", "0");
|
||||
bottomSpike.setAttribute("y1",
|
||||
String.valueOf(-1 * mesoRadiusInPixels));
|
||||
bottomSpike.setAttribute("x2", "0");
|
||||
bottomSpike.setAttribute("y2",
|
||||
String.valueOf(-1 * (mesoRadiusInPixels + spikeSize)));
|
||||
|
||||
// <line id="leftSpike" x1="-8" y1="0" x2="-16" y2="0"/>
|
||||
Element leftSpike = document.getElementById("leftSpike");
|
||||
leftSpike.setAttribute("y1", "0");
|
||||
leftSpike.setAttribute("x1",
|
||||
String.valueOf(-1 * mesoRadiusInPixels));
|
||||
leftSpike.setAttribute("y2", "0");
|
||||
leftSpike.setAttribute("x2",
|
||||
String.valueOf(-1 * (mesoRadiusInPixels + spikeSize)));
|
||||
}
|
||||
|
||||
if (type.equals(MesocycloneType.CORRELATED_SHEAR)) {
|
||||
radius.setAttribute("style", "");
|
||||
radius.setAttribute("stroke-width", "1px");
|
||||
} else if (type.equals(MesocycloneType.CORRELATED_SHEAR_EXTRAPOLATED)) {
|
||||
radius.setAttribute("style", "stroke-dasharray: 5, 3");
|
||||
radius.setAttribute("stroke-width", "1px");
|
||||
} else {
|
||||
radius.setAttribute("style", "");
|
||||
radius.setAttribute("stroke-width", "4px");
|
||||
}
|
||||
|
||||
// Get the buffered image from SVG
|
||||
BufferedImage img = imageFactory.createSingleColorImage(color);
|
||||
|
||||
// Plot
|
||||
IImage image = convertBufferedImage(target, img);
|
||||
PlotObject po = new PlotObject();
|
||||
po.image = image;
|
||||
|
||||
try {
|
||||
po.coord = rc.asPixel(descriptor.getGridGeometry());
|
||||
// adjust y coord per original code
|
||||
|
@ -458,8 +392,13 @@ public class RadarGraphicFunctions {
|
|||
throw new VizException("Unable to transform coordinates", e);
|
||||
}
|
||||
|
||||
// Meso images are supposed to reflect the actual area covered
|
||||
// po.constantSize = false;
|
||||
po.image=null;
|
||||
po.type=type;
|
||||
po.mesoRadius=mesoRadius;
|
||||
po.lat=rc.asLatLon().x;
|
||||
po.lon=rc.asLatLon().y;
|
||||
po.lineStyle=lineStyle;
|
||||
po.color=color;
|
||||
|
||||
return po;
|
||||
}
|
||||
|
@ -471,9 +410,9 @@ public class RadarGraphicFunctions {
|
|||
TransformException, FactoryException {
|
||||
List<PlotObject> images = new ArrayList<PlotObject>();
|
||||
if (point != null) {
|
||||
PlotObject po = createMesocycloneImage(point.getI(), point.getJ(),
|
||||
point.getPointFeatureAttr(), target, gridGeometry,
|
||||
descriptor, type, color);
|
||||
PlotObject po = setMesocycloneInfo(point.getI(), point.getJ(),
|
||||
point.getPointFeatureAttr()/4.0, target, gridGeometry, //MD radius /4
|
||||
descriptor, type, color, LineStyle.SOLID);
|
||||
images.add(po);
|
||||
}
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ import javax.measure.unit.SI;
|
|||
|
||||
import org.eclipse.swt.graphics.RGB;
|
||||
import org.geotools.coverage.grid.GeneralGridGeometry;
|
||||
import org.geotools.referencing.GeodeticCalculator;
|
||||
import org.opengis.referencing.FactoryException;
|
||||
import org.opengis.referencing.operation.TransformException;
|
||||
|
||||
|
@ -63,6 +64,7 @@ import com.raytheon.uf.common.geospatial.ReferencedGeometry;
|
|||
import com.raytheon.uf.common.geospatial.ReferencedObject.Type;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.viz.core.DrawableCircle;
|
||||
import com.raytheon.uf.viz.core.DrawableLine;
|
||||
import com.raytheon.uf.viz.core.DrawableString;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget;
|
||||
|
@ -110,7 +112,9 @@ import com.vividsolutions.jts.geom.LineString;
|
|||
* instances with IRenderedImageCallback.
|
||||
* Sep 03, 2014 3574 njensen Properly dispose objects
|
||||
* Nov 06, 2014 16776 zwang Handle AMDA product MBA
|
||||
* Feb 08, 2016 5318 randerso Font must be monospaced
|
||||
* Feb 08, 2016 5318 randerso Font should not be preference based because the
|
||||
* size must match the table outline
|
||||
* Feb 16, 2016 12021 wkwock Fix mesocyclone zooming issue
|
||||
* Mar 08, 2016 5318 randerso Fix hard coded scaling factors
|
||||
*
|
||||
* </pre>
|
||||
|
@ -186,6 +190,10 @@ public class RadarGraphicsPage implements IRenderable {
|
|||
|
||||
private int recordsPerPage = 5;
|
||||
|
||||
private static final int MIN_RADIUS_IN_PIXEL = 7;
|
||||
|
||||
private static final int SPIKE_SIZE = 8;
|
||||
|
||||
// for GFM product, add gfmFcstWireframeShape
|
||||
public RadarGraphicsPage(IDescriptor descriptor, GeneralGridGeometry gg,
|
||||
IWireframeShape shape, IWireframeShape gfmShape,
|
||||
|
@ -335,7 +343,7 @@ public class RadarGraphicsPage implements IRenderable {
|
|||
MesocyclonePoint mp = (MesocyclonePoint) currPoint;
|
||||
try {
|
||||
pObject = RadarGraphicFunctions
|
||||
.createMesocycloneImage(
|
||||
.setMesocycloneInfo(
|
||||
mp.i,
|
||||
mp.j,
|
||||
mp.getMesoCycloneRadius(),
|
||||
|
@ -343,7 +351,7 @@ public class RadarGraphicsPage implements IRenderable {
|
|||
this.gridGeometry,
|
||||
this.descriptor,
|
||||
RadarGraphicFunctions.MesocycloneType.MESOCYCLONE,
|
||||
color);
|
||||
color, LineStyle.SOLID);
|
||||
} catch (TransformException e) {
|
||||
statusHandler.error(e.getLocalizedMessage(), e);
|
||||
} catch (FactoryException e) {
|
||||
|
@ -835,9 +843,13 @@ public class RadarGraphicsPage implements IRenderable {
|
|||
double radius = currFeature
|
||||
.getValueAsDouble(DMDAttributeIDs.BASE_DIAMETER
|
||||
.toString()) / 2;
|
||||
LineStyle lineStyle = LineStyle.SOLID;
|
||||
if (currFeature.getValue(DMDAttributeIDs.DETECTION_STATUS.toString()).equals("EXT")) {
|
||||
lineStyle = LineStyle.DASHED;
|
||||
}
|
||||
|
||||
image = RadarGraphicFunctions.createMesocycloneImage(rc,
|
||||
radius, target, this.descriptor, iconType, color);
|
||||
image = RadarGraphicFunctions.setMesocycloneInfo(rc,
|
||||
radius, descriptor, iconType, color, lineStyle);
|
||||
double radiusInPixels = RadarGraphicFunctions
|
||||
.getRadiusInPixels(radius, rc.asLatLon().x,
|
||||
rc.asLatLon().y, descriptor, target);
|
||||
|
@ -1356,11 +1368,120 @@ public class RadarGraphicsPage implements IRenderable {
|
|||
target.drawStrings(string);
|
||||
|
||||
}
|
||||
target.getExtension(IPointImageExtension.class).drawPointImages(
|
||||
paintProps, image);
|
||||
|
||||
if (po.image != null) {
|
||||
target.getExtension(IPointImageExtension.class)
|
||||
.drawPointImages(paintProps, image);
|
||||
} else {
|
||||
drawMesocyclone(target, paintProps, po);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the radius from kilometer to radius relative to pixel
|
||||
* @param lat The latitude in decimal degrees between -90 and +90°
|
||||
* @param lon The longitude in decimal degrees between -180 and +180°
|
||||
* @param radius in kilometer
|
||||
* @return radius relative to pixel
|
||||
*/
|
||||
private double convertRadius(double lat, double lon, double radius){
|
||||
GeodeticCalculator gc = new GeodeticCalculator(descriptor.getCRS());
|
||||
gc.setStartingGeographicPoint(lat, lon);
|
||||
gc.setDirection(90, radius * 1000); //convert to meter
|
||||
|
||||
|
||||
double[] p1 = descriptor.worldToPixel(new double[] {
|
||||
gc.getStartingGeographicPoint().getX(),
|
||||
gc.getStartingGeographicPoint().getY() });
|
||||
double[] p2 = descriptor.worldToPixel(new double[] {
|
||||
gc.getDestinationGeographicPoint().getX(),
|
||||
gc.getDestinationGeographicPoint().getY() });
|
||||
return Math.abs(p1[0] - p2[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Draw mesocyclone symbols
|
||||
* @param target
|
||||
* @param paintProps
|
||||
* @param po
|
||||
* @throws VizException
|
||||
*/
|
||||
private void drawMesocyclone(IGraphicsTarget target,
|
||||
PaintProperties paintProps, PlotObject po) throws VizException {
|
||||
float width = 4;
|
||||
if (po.type.equals(MesocycloneType.CORRELATED_SHEAR)
|
||||
|| po.type
|
||||
.equals(MesocycloneType.CORRELATED_SHEAR_EXTRAPOLATED)) {
|
||||
width = 1;
|
||||
}
|
||||
|
||||
double radius = Math.abs(po.mesoRadius);
|
||||
if (radius==0) {//In case, it's 0 for line radius=MIN_RADIUS_IN_PIXEL/radiusInPixel*radius;
|
||||
radius = 0.01;
|
||||
}
|
||||
|
||||
radius=convertRadius(po.lat,po.lon,radius);
|
||||
|
||||
double[] centerXy = this.descriptor.getRenderableDisplay()
|
||||
.gridToScreen(new double[] { po.coord.x, po.coord.y, 0.0 },
|
||||
target);
|
||||
double[] rightXy = this.descriptor.getRenderableDisplay().gridToScreen(
|
||||
new double[] { po.coord.x + radius, po.coord.y, 0.0 }, target);
|
||||
double radiusInPixel = rightXy[0] - centerXy[0];
|
||||
|
||||
if (radiusInPixel<MIN_RADIUS_IN_PIXEL){
|
||||
radius=MIN_RADIUS_IN_PIXEL/radiusInPixel*radius;
|
||||
radiusInPixel=MIN_RADIUS_IN_PIXEL;
|
||||
}
|
||||
|
||||
DrawableCircle circle = new DrawableCircle();
|
||||
circle = new DrawableCircle();
|
||||
circle.setCoordinates(po.coord.x,po.coord.y);
|
||||
circle.radius = radius;
|
||||
circle.basics.color = po.color;
|
||||
circle.lineWidth = width;
|
||||
circle.lineStyle=po.lineStyle;
|
||||
target.drawCircle(circle);
|
||||
|
||||
if (po.type.equals(MesocycloneType.MESOCYCLONE_WITH_SPIKES)) {
|
||||
List<DrawableLine> lines = new ArrayList<DrawableLine>();
|
||||
|
||||
DrawableLine topSpike = new DrawableLine();
|
||||
topSpike.addPoint(centerXy[0], centerXy[1] - radiusInPixel);
|
||||
topSpike.addPoint(centerXy[0], centerXy[1] - radiusInPixel
|
||||
- SPIKE_SIZE);
|
||||
topSpike.basics.color = po.color;
|
||||
topSpike.width = width;
|
||||
lines.add(topSpike);
|
||||
|
||||
DrawableLine bottomSpike = new DrawableLine();
|
||||
bottomSpike.addPoint(centerXy[0], centerXy[1] + radiusInPixel);
|
||||
bottomSpike.addPoint(centerXy[0], centerXy[1] + radiusInPixel
|
||||
+ SPIKE_SIZE);
|
||||
bottomSpike.basics.color = po.color;
|
||||
bottomSpike.width = width;
|
||||
lines.add(bottomSpike);
|
||||
|
||||
DrawableLine leftSpike = new DrawableLine();
|
||||
leftSpike.addPoint(centerXy[0] - radiusInPixel, centerXy[1]);
|
||||
leftSpike.addPoint(centerXy[0] - radiusInPixel - SPIKE_SIZE,
|
||||
centerXy[1]);
|
||||
leftSpike.basics.color = po.color;
|
||||
leftSpike.width = width;
|
||||
lines.add(leftSpike);
|
||||
|
||||
DrawableLine rightSpike = new DrawableLine();
|
||||
rightSpike.addPoint(centerXy[0] + radiusInPixel, centerXy[1]);
|
||||
rightSpike.addPoint(centerXy[0] + radiusInPixel + SPIKE_SIZE,
|
||||
centerXy[1]);
|
||||
rightSpike.basics.color = po.color;
|
||||
rightSpike.width = width;
|
||||
lines.add(rightSpike);
|
||||
target.getExtension(ICanvasRenderingExtension.class).drawLines(
|
||||
paintProps, lines.toArray(new DrawableLine[0]));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1473,7 +1594,7 @@ public class RadarGraphicsPage implements IRenderable {
|
|||
|
||||
if (plotObjects != null) {
|
||||
for (PlotObject po : plotObjects) {
|
||||
if (po != null) {
|
||||
if (po != null && po.image != null) {
|
||||
po.image.dispose();
|
||||
po.image = null;
|
||||
}
|
||||
|
|
|
@ -36,6 +36,8 @@
|
|||
</include>
|
||||
<include subMenu="Derived Products Plots" installTo="menu:satellite?after=GROUP4"
|
||||
fileName="menus/satellite/baseDerivedProductPlots.xml"/>
|
||||
<include subMenu="OCONUS Imagery" installTo="menu:satellite?before=GROUP5"
|
||||
fileName="menus/satellite/oconus/baseOCONUSImagery.xml"/>
|
||||
<include installTo="menu:satellite?after=GROUP5"
|
||||
fileName="menus/satellite/baseNHemisphere.xml">
|
||||
<substitute key="sector0" value="West CONUS"/>
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This is a base version for OCONUS satellite sub-menu in D2D.
|
||||
The base version is intentionally empty. Each OCONUS site should
|
||||
create a site version of this file and put the contents with
|
||||
satellite image items and groups for the site in the site
|
||||
version. A sample can be found in baseOCONUSImageryTemplate.xml
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
</menuTemplate>
|
|
@ -0,0 +1,130 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This is a sample for OCONUS satellite sub-menu in D2D.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="subMenu" menuText="Group 1">
|
||||
<contribute xsi:type="titleItem"
|
||||
titleText="------ Sub Group 1 ------" id="SubGroup1" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultCompositeSatellite.xml"
|
||||
menuText="Imagery 1" id="imagery1">
|
||||
<substitute key="sector0" value="West CONUS"/>
|
||||
<substitute key="sector1" value="East CONUS"/>
|
||||
<substitute key="sector2" value="Supernational"/>
|
||||
<substitute key="sector3" value="Northern Hemisphere Composite"/>
|
||||
<substitute key="entity" value="GOES%"/>
|
||||
<substitute key="element" value="Imager 6.7-6.5 micron IR (WV)"/>
|
||||
<substitute key="colormap" value="Sat/WV/Gray Scale Water Vapor"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultCompositeSatellite.xml"
|
||||
menuText="Imagery 2" id="imagery2">
|
||||
<substitute key="sector0" value="West CONUS"/>
|
||||
<substitute key="sector1" value="East CONUS"/>
|
||||
<substitute key="sector2" value="Supernational"/>
|
||||
<substitute key="sector3" value="Northern Hemisphere Composite"/>
|
||||
<substitute key="entity" value="GOES%"/>
|
||||
<substitute key="element" value="Imager 6.7-6.5 micron IR (WV)"/>
|
||||
<substitute key="colormap" value="Sat/WV/Gray Scale Water Vapor"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="titleItem"
|
||||
titleText="------ Sub Group 2 ------" id="SubGroup2" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subMenu" menuText="Group 2">
|
||||
<contribute xsi:type="titleItem"
|
||||
titleText="------ Sub Group 1 ------" id="SubGroup1" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultCompositeSatellite.xml"
|
||||
menuText="Imagery 1" id="imagery1">
|
||||
<substitute key="sector0" value="West CONUS"/>
|
||||
<substitute key="sector1" value="East CONUS"/>
|
||||
<substitute key="sector2" value="Supernational"/>
|
||||
<substitute key="sector3" value="Northern Hemisphere Composite"/>
|
||||
<substitute key="entity" value="GOES%"/>
|
||||
<substitute key="element" value="Imager 6.7-6.5 micron IR (WV)"/>
|
||||
<substitute key="colormap" value="Sat/WV/Gray Scale Water Vapor"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultCompositeSatellite.xml"
|
||||
menuText="Imagery 2" id="imagery2">
|
||||
<substitute key="sector0" value="West CONUS"/>
|
||||
<substitute key="sector1" value="East CONUS"/>
|
||||
<substitute key="sector2" value="Supernational"/>
|
||||
<substitute key="sector3" value="Northern Hemisphere Composite"/>
|
||||
<substitute key="entity" value="GOES%"/>
|
||||
<substitute key="element" value="Imager 6.7-6.5 micron IR (WV)"/>
|
||||
<substitute key="colormap" value="Sat/WV/Gray Scale Water Vapor"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="titleItem"
|
||||
titleText="------ Sub Group 2 ------" id="SubGroup2" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subMenu" menuText="Group 3">
|
||||
<contribute xsi:type="titleItem"
|
||||
titleText="------ Sub Group 1 ------" id="SubGroup1" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultCompositeSatellite.xml"
|
||||
menuText="Imagery 1" id="imagery1">
|
||||
<substitute key="sector0" value="West CONUS"/>
|
||||
<substitute key="sector1" value="East CONUS"/>
|
||||
<substitute key="sector2" value="Supernational"/>
|
||||
<substitute key="sector3" value="Northern Hemisphere Composite"/>
|
||||
<substitute key="entity" value="GOES%"/>
|
||||
<substitute key="element" value="Imager 6.7-6.5 micron IR (WV)"/>
|
||||
<substitute key="colormap" value="Sat/WV/Gray Scale Water Vapor"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultCompositeSatellite.xml"
|
||||
menuText="Imagery 2" id="imagery2">
|
||||
<substitute key="sector0" value="West CONUS"/>
|
||||
<substitute key="sector1" value="East CONUS"/>
|
||||
<substitute key="sector2" value="Supernational"/>
|
||||
<substitute key="sector3" value="Northern Hemisphere Composite"/>
|
||||
<substitute key="entity" value="GOES%"/>
|
||||
<substitute key="element" value="Imager 6.7-6.5 micron IR (WV)"/>
|
||||
<substitute key="colormap" value="Sat/WV/Gray Scale Water Vapor"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="titleItem"
|
||||
titleText="------ Sub Group 2 ------" id="SubGroup2" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subMenu" menuText="Group 4">
|
||||
<contribute xsi:type="titleItem"
|
||||
titleText="------ Sub Group 1 ------" id="SubGroup1" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultCompositeSatellite.xml"
|
||||
menuText="Imagery 1" id="imagery1">
|
||||
<substitute key="sector0" value="West CONUS"/>
|
||||
<substitute key="sector1" value="East CONUS"/>
|
||||
<substitute key="sector2" value="Supernational"/>
|
||||
<substitute key="sector3" value="Northern Hemisphere Composite"/>
|
||||
<substitute key="entity" value="GOES%"/>
|
||||
<substitute key="element" value="Imager 6.7-6.5 micron IR (WV)"/>
|
||||
<substitute key="colormap" value="Sat/WV/Gray Scale Water Vapor"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultCompositeSatellite.xml"
|
||||
menuText="Imagery 2" id="imagery2">
|
||||
<substitute key="sector0" value="West CONUS"/>
|
||||
<substitute key="sector1" value="East CONUS"/>
|
||||
<substitute key="sector2" value="Supernational"/>
|
||||
<substitute key="sector3" value="Northern Hemisphere Composite"/>
|
||||
<substitute key="entity" value="GOES%"/>
|
||||
<substitute key="element" value="Imager 6.7-6.5 micron IR (WV)"/>
|
||||
<substitute key="colormap" value="Sat/WV/Gray Scale Water Vapor"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="titleItem"
|
||||
titleText="------ Sub Group 2 ------" id="SubGroup2" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultCompositeSatellite.xml"
|
||||
menuText="Imagery 1" id="imagery1">
|
||||
<substitute key="sector0" value="West CONUS"/>
|
||||
<substitute key="sector1" value="East CONUS"/>
|
||||
<substitute key="sector2" value="Supernational"/>
|
||||
<substitute key="sector3" value="Northern Hemisphere Composite"/>
|
||||
<substitute key="entity" value="GOES%"/>
|
||||
<substitute key="element" value="Imager 6.7-6.5 micron IR (WV)"/>
|
||||
<substitute key="colormap" value="Sat/WV/Gray Scale Water Vapor"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultCompositeSatellite.xml"
|
||||
menuText="Imagery 2" id="imagery2">
|
||||
<substitute key="sector0" value="West CONUS"/>
|
||||
<substitute key="sector1" value="East CONUS"/>
|
||||
<substitute key="sector2" value="Supernational"/>
|
||||
<substitute key="sector3" value="Northern Hemisphere Composite"/>
|
||||
<substitute key="entity" value="GOES%"/>
|
||||
<substitute key="element" value="Imager 6.7-6.5 micron IR (WV)"/>
|
||||
<substitute key="colormap" value="Sat/WV/Gray Scale Water Vapor"/>
|
||||
</contribute>
|
||||
</menuTemplate>
|
|
@ -29,6 +29,8 @@
|
|||
key="WVPER" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Wind Wave Len"
|
||||
key="WVLEN" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Wave Steepness"
|
||||
key="WSTP" indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Swell Hgt" key="SWELL"
|
||||
indentText="true" />
|
||||
<contribute xsi:type="menuItem" menuText="Swell Dir" key="SWdir"
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
-- Change name of column "ml_overide_flag" to "melt_layer_src"
|
||||
--Change name of column "ml_overide_flag" to "melt_layer_src"
|
||||
|
||||
ALTER TABLE DSAAdapt RENAME COLUMN ml_overide_flag TO melt_layer_src;
|
||||
|
||||
-- Add new columns for Build 17 parameters
|
||||
--Add new columns for Build 17 parameters
|
||||
|
||||
ALTER TABLE DSAAdapt ADD COLUMN min_early_term_angle float4;
|
||||
ALTER TABLE DSAAdapt ADD COLUMN max_volume_per_hour float4;
|
||||
|
|
9
deltaScripts/16.2.2/ModifyTables.sql
Normal file
9
deltaScripts/16.2.2/ModifyTables.sql
Normal file
|
@ -0,0 +1,9 @@
|
|||
--Double the remarks sections in the following tables:
|
||||
-- location, riverstat, benchmark, gage, crest(cremark), lowwater(lwrem)
|
||||
|
||||
ALTER TABLE lowwater ALTER COLUMN lwrem TYPE character varying(160);
|
||||
ALTER TABLE crest ALTER COLUMN cremark TYPE character varying(160);
|
||||
ALTER TABLE gage ALTER COLUMN remark TYPE character varying(510);
|
||||
ALTER TABLE benchmark ALTER COLUMN remark TYPE character varying(510);
|
||||
ALTER TABLE riverstat ALTER COLUMN remark TYPE character varying(510);
|
||||
ALTER TABLE location ALTER COLUMN lremark TYPE character varying(510);
|
3
deltaScripts/16.3.1/DCS14232/increase_locarea_area_size.sql
Executable file
3
deltaScripts/16.3.1/DCS14232/increase_locarea_area_size.sql
Executable file
|
@ -0,0 +1,3 @@
|
|||
-- Update area column in locarea table of IHFS to hold up to 500 characters
|
||||
|
||||
ALTER TABLE locarea ALTER COLUMN area TYPE character varying(500);
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>com.raytheon.edex.plugin.binlightning.legacy</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,8 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: LegacyLightningDecoder
|
||||
Bundle-SymbolicName: com.raytheon.edex.plugin.binlightning.legacy
|
||||
Bundle-Version: 1.16.0
|
||||
Bundle-Vendor: RAYTHEON
|
||||
Fragment-Host: com.raytheon.edex.plugin.binlightning;bundle-version="1.14.0"
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
|
@ -0,0 +1,4 @@
|
|||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
|
@ -43,12 +43,12 @@ import javax.crypto.IllegalBlockSizeException;
|
|||
|
||||
import com.raytheon.edex.esb.Headers;
|
||||
import com.raytheon.edex.exception.DecoderException;
|
||||
import com.raytheon.edex.plugin.AbstractDecoder;
|
||||
import com.raytheon.edex.plugin.binlightning.filter.LightningGeoFilter;
|
||||
import com.raytheon.edex.plugin.binlightning.impl.BinLightningFactory;
|
||||
import com.raytheon.edex.plugin.binlightning.impl.IBinDataSource;
|
||||
import com.raytheon.edex.plugin.binlightning.impl.IBinLightningDecoder;
|
||||
import com.raytheon.edex.plugin.binlightning.impl.LightningDataSource;
|
||||
import com.raytheon.edex.plugin.binlightning.total.LightningWMOHeader;
|
||||
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||
import com.raytheon.uf.common.dataplugin.binlightning.BinLightningRecord;
|
||||
import com.raytheon.uf.common.dataplugin.binlightning.impl.LightningStrikePoint;
|
||||
|
@ -99,13 +99,14 @@ import com.raytheon.uf.edex.decodertools.core.DecoderTools;
|
|||
* Jun 10, 2014 3226 bclement added filter support
|
||||
* Jun 19, 2014 3226 bclement added validator callback
|
||||
* Aug 04, 2014 3488 bclement added checkBinRange(), rebin() and finalizeRecords()
|
||||
* Mar 08, 2016 18336 amoore Keep-alive messages should update the legend.
|
||||
* Apr 07, 2016 DR18763 mgamazaychikov Switched to using LightningWMOHeader.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author jkorman
|
||||
* @version 1.0
|
||||
*/
|
||||
public class BinLightningDecoder extends AbstractDecoder {
|
||||
public class BinLightningDecoder {
|
||||
|
||||
// Allow ingest up to 10 minutes into the future.
|
||||
private static final long TEN_MINUTES = 10 * 60 * 1000L;
|
||||
|
@ -137,15 +138,9 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
return BinLightningDecoderUtil.isKeepAliveRecord(decryptedData)
|
||||
|| BinLightningDecoderUtil
|
||||
.isLightningDataRecords(decryptedData);
|
||||
/*
|
||||
* use this if keep-alive record could be mixed with lightning
|
||||
* records
|
||||
*/
|
||||
// return
|
||||
// BinLigntningDecoderUtil.isValidMixedRecordData(decryptedData);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Construct a BinLightning decoder. Calling hasNext() after construction
|
||||
* will return false, decode() will return a null.
|
||||
|
@ -162,21 +157,22 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
* @throws DecoderException
|
||||
* Thrown if no data is available.
|
||||
*/
|
||||
public PluginDataObject[] decode(byte[] data, Headers headers) throws DecoderException {
|
||||
public PluginDataObject[] decode(byte[] data, Headers headers)
|
||||
throws DecoderException {
|
||||
|
||||
//String traceId = null;
|
||||
// String traceId = null;
|
||||
PluginDataObject[] rval = new PluginDataObject[0];
|
||||
|
||||
if (data != null) {
|
||||
traceId = (String) headers.get(DecoderTools.INGEST_FILE_NAME);
|
||||
|
||||
WMOHeader wmoHdr = new WMOHeader(data);
|
||||
LightningWMOHeader wmoHdr = new LightningWMOHeader(data);
|
||||
if (wmoHdr.isValid()) {
|
||||
String fileName = (String) headers
|
||||
.get(WMOHeader.INGEST_FILE_NAME);
|
||||
Calendar baseTime = WMOTimeParser.findDataTime(
|
||||
wmoHdr.getYYGGgg(), fileName);
|
||||
|
||||
|
||||
/*
|
||||
* Because binary nature of the encrypted data, the string
|
||||
* created with its byte[] array may not have the same length of
|
||||
|
@ -185,20 +181,21 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
* observed that it may return a shorter byte[] than the real
|
||||
* data array. (Looks like a bug???)
|
||||
*/
|
||||
// byte[] pdata = DecoderTools.stripWMOHeader(data, SFUS_PATTERN);
|
||||
// if (pdata == null) {
|
||||
// pdata = DecoderTools.stripWMOHeader(data, SFPA_PATTERN);
|
||||
// }
|
||||
// byte[] pdata = DecoderTools.stripWMOHeader(data,
|
||||
// SFUS_PATTERN);
|
||||
// if (pdata == null) {
|
||||
// pdata = DecoderTools.stripWMOHeader(data, SFPA_PATTERN);
|
||||
// }
|
||||
/*
|
||||
* instead the following is used to strip WMO header a little
|
||||
* more safely.
|
||||
*/
|
||||
byte[] pdata = extractPData(wmoHdr, data);
|
||||
|
||||
|
||||
if ((pdata == null) || (pdata.length == 0)) {
|
||||
return new PluginDataObject[0];
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Modified by Wufeng Zhou to handle both legacy bit-shifted and
|
||||
* new encryted data
|
||||
|
@ -208,34 +205,39 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
* and added logic to process both encrypted data and legacy
|
||||
* data
|
||||
*/
|
||||
|
||||
|
||||
Collection<LightningStrikePoint> strikes = decodeBinLightningData(
|
||||
data, pdata, traceId, wmoHdr, baseTime.getTime());
|
||||
|
||||
if (strikes == null) { // keep-alive record, log and return
|
||||
logger.info(traceId + " - found keep-alive record. ignore for now.");
|
||||
return rval;
|
||||
}
|
||||
|
||||
/*
|
||||
* Done MOD by Wufeng Zhou
|
||||
*/
|
||||
|
||||
|
||||
// post processing data - if not keep-alive record
|
||||
BinLightningRecord report = null;
|
||||
if (strikes.size() > 0) {
|
||||
report = LightningGeoFilter.createFilteredRecord(strikes);
|
||||
} else {
|
||||
return new PluginDataObject[0];
|
||||
synchronized (SDF) {
|
||||
logger.info(traceId
|
||||
+ ": found keep-alive record of base time ["
|
||||
+ SDF.format(baseTime.getTime()) + "]");
|
||||
}
|
||||
report = new BinLightningRecord(baseTime);
|
||||
}
|
||||
|
||||
Collection<BinLightningRecord> records = checkBinRange(report,
|
||||
strikes);
|
||||
rval = finalizeRecords(records, baseTime);
|
||||
|
||||
}
|
||||
} else {
|
||||
logger.error("No WMOHeader found in data");
|
||||
logger.error("No WMOHeader found in data");
|
||||
}
|
||||
|
||||
logger.debug(traceId + ": Returning array of [" + rval.length
|
||||
+ "] bin lightning records");
|
||||
|
||||
return rval;
|
||||
}
|
||||
|
||||
|
@ -255,8 +257,7 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
if (c == null) {
|
||||
throw new DecoderException(traceId + " - Error decoding times");
|
||||
}
|
||||
ArrayList<BinLightningRecord> rval = new ArrayList<BinLightningRecord>(
|
||||
records.size());
|
||||
ArrayList<BinLightningRecord> rval = new ArrayList<>(records.size());
|
||||
for (BinLightningRecord record : records) {
|
||||
Calendar cStart = record.getStartTime();
|
||||
if (cStart.getTimeInMillis() > (c.getTimeInMillis() + TEN_MINUTES)) {
|
||||
|
@ -273,10 +274,8 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
DataTime dataTime = new DataTime(cStart, range);
|
||||
record.setDataTime(dataTime);
|
||||
|
||||
if (record != null) {
|
||||
record.setTraceId(traceId);
|
||||
rval.add(record);
|
||||
}
|
||||
record.setTraceId(traceId);
|
||||
rval.add(record);
|
||||
}
|
||||
}
|
||||
return rval.toArray(new PluginDataObject[rval.size()]);
|
||||
|
@ -325,8 +324,7 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
*/
|
||||
private Collection<BinLightningRecord> rebin(
|
||||
Collection<LightningStrikePoint> strikes) {
|
||||
Map<Long, Collection<LightningStrikePoint>> binMap = new HashMap<Long, Collection<LightningStrikePoint>>(
|
||||
1);
|
||||
Map<Long, Collection<LightningStrikePoint>> binMap = new HashMap<>(1);
|
||||
for (LightningStrikePoint strike : strikes) {
|
||||
Calendar c = TimeUtil.newCalendar(strike.getTime());
|
||||
c.set(Calendar.HOUR_OF_DAY, 0);
|
||||
|
@ -336,13 +334,12 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
long key = c.getTimeInMillis();
|
||||
Collection<LightningStrikePoint> bin = binMap.get(key);
|
||||
if (bin == null) {
|
||||
bin = new ArrayList<LightningStrikePoint>(strikes.size());
|
||||
bin = new ArrayList<>(strikes.size());
|
||||
binMap.put(key, bin);
|
||||
}
|
||||
bin.add(strike);
|
||||
}
|
||||
Collection<BinLightningRecord> rval = new ArrayList<BinLightningRecord>(
|
||||
binMap.size());
|
||||
Collection<BinLightningRecord> rval = new ArrayList<>(binMap.size());
|
||||
for (Entry<Long, Collection<LightningStrikePoint>> e : binMap
|
||||
.entrySet()) {
|
||||
Collection<LightningStrikePoint> bin = e.getValue();
|
||||
|
@ -360,7 +357,7 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
* @param data
|
||||
* @return null if data is invalid
|
||||
*/
|
||||
public static byte[] extractPData(WMOHeader wmoHdr, byte[] data) {
|
||||
public static byte[] extractPData(LightningWMOHeader wmoHdr, byte[] data) {
|
||||
byte[] pdata = null;
|
||||
if (wmoHdr.isValid() && wmoHdr.getMessageDataStart() > 0) {
|
||||
pdata = new byte[data.length - wmoHdr.getMessageDataStart()];
|
||||
|
@ -398,11 +395,11 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
* LightningStrikePoint
|
||||
*/
|
||||
public static List<LightningStrikePoint> decodeBinLightningData(
|
||||
byte[] data, byte[] pdata, String traceId, WMOHeader wmoHdr,
|
||||
byte[] data, byte[] pdata, String traceId, LightningWMOHeader wmoHdr,
|
||||
Date dataDate) {
|
||||
if (pdata == null) { // if data without header not passed, we'll strip
|
||||
// the WMO header here
|
||||
WMOHeader header = new WMOHeader(data);
|
||||
LightningWMOHeader header = new LightningWMOHeader(data);
|
||||
if (header.isValid() && header.getMessageDataStart() > 0) {
|
||||
pdata = new byte[data.length - header.getMessageDataStart()];
|
||||
System.arraycopy(data, header.getMessageDataStart(), pdata, 0,
|
||||
|
@ -410,7 +407,7 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
}
|
||||
}
|
||||
|
||||
List<LightningStrikePoint> strikes = new ArrayList<LightningStrikePoint>();
|
||||
List<LightningStrikePoint> strikes = new ArrayList<>();
|
||||
boolean needDecrypt = true; // set as default unless clear evidence says
|
||||
// otherwise
|
||||
boolean decodeDone = false;
|
||||
|
@ -418,46 +415,37 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
|
||||
/*
|
||||
* Using different WMO headers to indicate whether the data is encrypted
|
||||
* or not would be a nice option.
|
||||
* However, that idea has been discussed but not adopted.
|
||||
* If in the future, WMO header can be different for legacy and
|
||||
* encrypted data, or some other metadata can be used to decide
|
||||
* whether deceyption is needed, logic can be added here.
|
||||
* or not would be a nice option. However, that idea has been discussed
|
||||
* but not adopted. If in the future, WMO header can be different for
|
||||
* legacy and encrypted data, or some other metadata can be used to
|
||||
* decide whether deceyption is needed, logic can be added here.
|
||||
*
|
||||
* Before that happens, we'll use hints and trial & error to decode the
|
||||
* data
|
||||
* Hints: Per lightning data format spec, there are 3 bytes in the WMO
|
||||
* header starting line that indicates the size of the encrypted block
|
||||
* or the ASCII sequence # for legacy bit-shifted data
|
||||
* However, the starting line is optional and AWIPS decode may not see
|
||||
* it at all because TG will strip that starting line away
|
||||
* We'll try to use this hint first, if is is not found, then trial and
|
||||
* error way to decrypt and decode
|
||||
* data Hints: Per lightning data format spec, there are 3 bytes in the
|
||||
* WMO header starting line that indicates the size of the encrypted
|
||||
* block or the ASCII sequence # for legacy bit-shifted data However,
|
||||
* the starting line is optional and AWIPS decode may not see it at all
|
||||
* because TG will strip that starting line away We'll try to use this
|
||||
* hint first, if is is not found, then trial and error way to decrypt
|
||||
* and decode
|
||||
*
|
||||
* As of 11/05/2013, There is change in data spec. that the 3-bytes will
|
||||
* not be encoded as encrypted block size anymore (it will always be
|
||||
* transmission sequence # if present)
|
||||
* So there should have some minor changes in the logic below for
|
||||
* decoding the data.
|
||||
* However, as reading into the
|
||||
* com.raytheon.edex.plugin.binlightning.impl.BinLightningFactory.getDecoder
|
||||
* ()
|
||||
* and follow-on code, we see the following data patterns
|
||||
* transmission sequence # if present) So there should have some minor
|
||||
* changes in the logic below for decoding the data. However, as reading
|
||||
* into the
|
||||
* com.raytheon.edex.plugin.binlightning.impl.BinLightningFactory
|
||||
* .getDecoder () and follow-on code, we see the following data patterns
|
||||
* for legacy bit-shifted data, which could be used to reduce guess-work
|
||||
* in data decryption:
|
||||
* The bit-shifted data will have multiple groups of the following
|
||||
* patterns:
|
||||
* 1-byte (unsigned byte): for size count
|
||||
* 1-byte (unsigned byte): for flash type:
|
||||
* 0x96 for FLASH_RPT (message size is 6 bytes each)
|
||||
* 0x97 for RT_FLASH_RPT (message size is 8 bytes each)
|
||||
* in data decryption: The bit-shifted data will have multiple groups of
|
||||
* the following patterns: 1-byte (unsigned byte): for size count 1-byte
|
||||
* (unsigned byte): for flash type: 0x96 for FLASH_RPT (message size is
|
||||
* 6 bytes each) 0x97 for RT_FLASH_RPT (message size is 8 bytes each)
|
||||
* 0xd0 for OTHER_RPT (The D2D decoders declare but do not define this
|
||||
* message, so unimplemented decoder)
|
||||
* 0xd1 for COMM_RPT (The D2D decoders declare but do not define this
|
||||
* message, so unimplemented decoder)
|
||||
* 4-bytes: date time
|
||||
* multiple of 6 or 8 bytes (as determined by 2nd byte flash type) with
|
||||
* count indicated in 1st byte
|
||||
* message, so unimplemented decoder) 0xd1 for COMM_RPT (The D2D
|
||||
* decoders declare but do not define this message, so unimplemented
|
||||
* decoder) 4-bytes: date time multiple of 6 or 8 bytes (as determined
|
||||
* by 2nd byte flash type) with count indicated in 1st byte
|
||||
*
|
||||
* So this is be used to determine whether the data need to be
|
||||
* decrypted.
|
||||
|
@ -488,9 +476,9 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
// decrypt ok, then decode, first check if keep-alive record
|
||||
if (BinLightningDecoderUtil.isKeepAliveRecord(decryptedData)) {
|
||||
logger.info(traceId
|
||||
+ " - Keep-alive record detected, ignore for now.");
|
||||
+ " - Keep-alive record detected, no strike decoding.");
|
||||
decodeDone = true;
|
||||
return null;
|
||||
return new ArrayList<>(0);
|
||||
}
|
||||
/*
|
||||
* not keep-alive record, then check data validity and decode
|
||||
|
@ -562,8 +550,8 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
* @return
|
||||
*/
|
||||
public static List<LightningStrikePoint> decodeBitShiftedBinLightningData(
|
||||
byte[] pdata, WMOHeader wmoHdr) {
|
||||
List<LightningStrikePoint> strikes = new ArrayList<LightningStrikePoint>();
|
||||
byte[] pdata, LightningWMOHeader wmoHdr) {
|
||||
List<LightningStrikePoint> strikes = new ArrayList<>();
|
||||
|
||||
IBinDataSource msgData = new LightningDataSource(pdata);
|
||||
|
||||
|
@ -578,11 +566,10 @@ public class BinLightningDecoder extends AbstractDecoder {
|
|||
/*
|
||||
* use WMO Header to distinguish NLDN or GLD360 data because
|
||||
* no bit-shifted data spec available for GLD360.
|
||||
* 12/24/2013, WZ
|
||||
* The WMO header start string is defined in
|
||||
* 12/24/2013, WZ The WMO header start string is defined in
|
||||
* BinLightningAESKey.properties file (normally, GLD360 data
|
||||
* will have WMO header
|
||||
* starts with SFPA41, or SFPA99 for test data.)
|
||||
* will have WMO header starts with SFPA41, or SFPA99 for
|
||||
* test data.)
|
||||
*/
|
||||
String gld360WMOHeaderString = BinLightningAESKey
|
||||
.getProps().getProperty(
|
||||
|
|
|
@ -22,6 +22,13 @@ package com.raytheon.edex.plugin.binlightning.impl;
|
|||
|
||||
import static com.raytheon.edex.plugin.binlightning.impl.IBinLightningDecoder.*;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
import com.raytheon.edex.plugin.binlightning.BinLightningDecoder;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
|
||||
/**
|
||||
* Read from the message data source, isolate and create a decoder for the
|
||||
* current sub-message. In the event that the message decoder can not be
|
||||
|
@ -34,6 +41,8 @@ import static com.raytheon.edex.plugin.binlightning.impl.IBinLightningDecoder.*;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 20070810 379 jkorman Initial Coding from prototype.
|
||||
* 20160116 18408 Wufeng Zhou Remove direct dependency on bit shifting decoder
|
||||
*
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -42,6 +51,8 @@ import static com.raytheon.edex.plugin.binlightning.impl.IBinLightningDecoder.*;
|
|||
*/
|
||||
public class BinLightningFactory
|
||||
{
|
||||
private static final IUFStatusHandler logger = UFStatus.getHandler(BinLightningDecoder.class);
|
||||
|
||||
/**
|
||||
* Read from the message data source, isolate and create a decoder for the
|
||||
* current sub-message. In the event that the message decoder can not be
|
||||
|
@ -60,12 +71,14 @@ public class BinLightningFactory
|
|||
{
|
||||
case FLASH_RPT :
|
||||
{
|
||||
decoder = new FlashLightningDecoder(msgData,count);
|
||||
String className = "com.raytheon.edex.plugin.binlightning.impl.FlashLightningDecoder";
|
||||
decoder = loadDecoderInstance(className, msgData, count);
|
||||
break;
|
||||
}
|
||||
case RT_FLASH_RPT :
|
||||
{
|
||||
decoder = new RTLightningDecoder(msgData,count);
|
||||
String className = "com.raytheon.edex.plugin.binlightning.impl.RTLightningDecoder";
|
||||
decoder = loadDecoderInstance(className, msgData, count);
|
||||
break;
|
||||
}
|
||||
case OTHER_RPT :
|
||||
|
@ -90,4 +103,20 @@ public class BinLightningFactory
|
|||
return decoder;
|
||||
}
|
||||
|
||||
private static IBinLightningDecoder loadDecoderInstance(String className, IBinDataSource msgData, int count) {
|
||||
IBinLightningDecoder decoder = null;
|
||||
try {
|
||||
Class<?> clazz = BinLightningFactory.class.getClassLoader().loadClass(className);
|
||||
Class<?>[] types = {IBinDataSource.class, Integer.TYPE};
|
||||
Constructor<?> constructor = clazz.getConstructor(types);
|
||||
Object[] parameters = {msgData, count};
|
||||
decoder = (IBinLightningDecoder)constructor.newInstance(parameters);
|
||||
logger.info("Loaded legacy binlightning decoder class " + className);
|
||||
} catch (ClassNotFoundException | InstantiationException | NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
|
||||
logger.error("Fail to load binlightning decoder class " + className + ". FYI, this is error only if you are authorized: " + e.getMessage());
|
||||
decoder = new LightningErrorDecoder(UNIMPLEMENTED_DECODER);
|
||||
}
|
||||
return decoder;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,377 @@
|
|||
package com.raytheon.edex.plugin.binlightning.total;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import com.raytheon.uf.common.wmo.WMOTimeParser;
|
||||
|
||||
/**
|
||||
* The LightningWMOHeader extracts and parses the relevant WMO Header
|
||||
* information for lightning data. This class is based on the WMOHeader class
|
||||
* and has been created because the regular expression string for the WMO Header
|
||||
* for lightning data and other data types are mutually exclusive.
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Apr 07, 2016 DR18763 mgamazaychikov Initial creation.
|
||||
* </pre>
|
||||
*
|
||||
* @author mgamazaychikov
|
||||
* @version 1
|
||||
*/
|
||||
public class LightningWMOHeader {
|
||||
public static final String LIGHTNING_WMO_HEADER = "[A-Z]{3}[A-Z0-9](?:\\d{0,2}|[A-Z]{0,2}) [A-Z0-9]{4} \\d{6}(?: [A-Z]{3})?[^\\r\\n]*[\\r]*[\\n]";
|
||||
|
||||
private static Pattern LIGHTNING_WMO_HEADER_PATTERN = Pattern
|
||||
.compile(LIGHTNING_WMO_HEADER);
|
||||
|
||||
private static final int CCCCGROUP_SIZE = 4;
|
||||
|
||||
private static final int DTGROUP_SIZE = 6;
|
||||
|
||||
private String wmoHeader;
|
||||
|
||||
private char t1;
|
||||
|
||||
private char t2;
|
||||
|
||||
private char a1;
|
||||
|
||||
private char a2;
|
||||
|
||||
private int ii;
|
||||
|
||||
private String cccc = null;
|
||||
|
||||
private int headerYear = -1;
|
||||
|
||||
private int headerMonth = -1;
|
||||
|
||||
private int headerDay = -1;
|
||||
|
||||
private int headerHour = -1;
|
||||
|
||||
private int headerMinute = -1;
|
||||
|
||||
private String YYGGgg = null;
|
||||
|
||||
private String BBBIndicator = null;
|
||||
|
||||
private boolean isValid = false;
|
||||
|
||||
private int messageDataStart = -1;
|
||||
|
||||
private int wmoHeaderStart = -1;
|
||||
|
||||
private Calendar headerDate = null;
|
||||
|
||||
private String ttaaii = null;
|
||||
|
||||
private String originalMessage = null;
|
||||
|
||||
public LightningWMOHeader(byte[] bytes) {
|
||||
this(bytes, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct the header from a wmo message.
|
||||
*
|
||||
* @param messageData
|
||||
* @param fileName
|
||||
*/
|
||||
public LightningWMOHeader(byte[] messageData, String fileName) {
|
||||
// Assume not valid until proven otherwise!
|
||||
isValid = false;
|
||||
if (messageData != null) {
|
||||
originalMessage = new String(messageData);
|
||||
Matcher m = LIGHTNING_WMO_HEADER_PATTERN.matcher(originalMessage); // handles
|
||||
// the skip
|
||||
// ccb
|
||||
if (m.find()) {
|
||||
wmoHeaderStart = m.start();
|
||||
messageDataStart = m.end();
|
||||
wmoHeader = originalMessage.substring(m.start(), m.end())
|
||||
.trim();
|
||||
|
||||
int hdrIndex = 0;
|
||||
t1 = wmoHeader.charAt(hdrIndex++);
|
||||
t2 = wmoHeader.charAt(hdrIndex++);
|
||||
a1 = wmoHeader.charAt(hdrIndex++);
|
||||
a2 = wmoHeader.charAt(hdrIndex++);
|
||||
char t = wmoHeader.charAt(hdrIndex++);
|
||||
int tt = 0;
|
||||
int iiChars = 0;
|
||||
// Get the ii part. The standard says there must be two digits,
|
||||
// however some data contain 0 or 1 digits.
|
||||
while (t != ' ') {
|
||||
tt *= 10;
|
||||
tt += (t - '0');
|
||||
iiChars++;
|
||||
t = wmoHeader.charAt(hdrIndex++);
|
||||
}
|
||||
|
||||
if (iiChars > 0) {
|
||||
ii = tt;
|
||||
} else {
|
||||
ii = -1;
|
||||
}
|
||||
t = wmoHeader.charAt(hdrIndex);
|
||||
while (t == ' ') {
|
||||
t = wmoHeader.charAt(hdrIndex++);
|
||||
if (t != ' ') {
|
||||
hdrIndex--;
|
||||
}
|
||||
}
|
||||
|
||||
cccc = wmoHeader.substring(hdrIndex, hdrIndex + CCCCGROUP_SIZE);
|
||||
hdrIndex += CCCCGROUP_SIZE;
|
||||
|
||||
t = wmoHeader.charAt(hdrIndex);
|
||||
while (t == ' ') {
|
||||
t = wmoHeader.charAt(hdrIndex++);
|
||||
if (t != ' ') {
|
||||
hdrIndex--;
|
||||
}
|
||||
}
|
||||
YYGGgg = wmoHeader.substring(hdrIndex, hdrIndex + DTGROUP_SIZE);
|
||||
parseDateTime(YYGGgg);
|
||||
headerDate = WMOTimeParser.findDataTime(YYGGgg, fileName);
|
||||
// At this point headerDate will either be the current time (non-archive) or
|
||||
// a time generated from the WMOHeader and filename dateStamp
|
||||
|
||||
headerYear = headerDate.get(Calendar.YEAR);
|
||||
headerMonth = headerDate.get(Calendar.MONTH) + 1;
|
||||
headerDay = headerDate.get(Calendar.DAY_OF_MONTH);
|
||||
headerHour = headerDate.get(Calendar.HOUR_OF_DAY);
|
||||
headerMinute = headerDate.get(Calendar.MINUTE);
|
||||
|
||||
hdrIndex += DTGROUP_SIZE;
|
||||
|
||||
// Everything else goes here for now. Leave it to the client to
|
||||
// perform any BBB validation.
|
||||
BBBIndicator = wmoHeader.substring(hdrIndex).trim();
|
||||
|
||||
isValid = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String getOriginalMessage() {
|
||||
return originalMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the extracted wmo header text. Does not return the trailing carriage
|
||||
* control on the header line.
|
||||
*
|
||||
* @return The extracted wmo header.
|
||||
*/
|
||||
public String getWmoHeader() {
|
||||
return wmoHeader;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the T1 character.
|
||||
*
|
||||
* @return The T1 character.
|
||||
*/
|
||||
public char getT1() {
|
||||
return t1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the T2 character.
|
||||
*
|
||||
* @return The T2 character.
|
||||
*/
|
||||
public char getT2() {
|
||||
return t2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the A1 character.
|
||||
*
|
||||
* @return The A1 character.
|
||||
*/
|
||||
public char getA1() {
|
||||
return a1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the A2 character.
|
||||
*
|
||||
* @return The A2 character.
|
||||
*/
|
||||
public char getA2() {
|
||||
return a2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ii part. If ii is not defined in the header, a value of -1 is
|
||||
* returned.
|
||||
*
|
||||
* @return The ii part.
|
||||
*/
|
||||
public int getIi() {
|
||||
return ii;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the sender CCCC identifier.
|
||||
*
|
||||
* @return The sender CCCC identifier.
|
||||
*/
|
||||
public String getCccc() {
|
||||
return cccc;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the year YYYY
|
||||
*/
|
||||
public int getYear() {
|
||||
return headerYear;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the month [1-12]
|
||||
*/
|
||||
public int getMonth() {
|
||||
return headerMonth;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the day part of the header datetime.
|
||||
*
|
||||
* @return The day part of the header datetime.
|
||||
*/
|
||||
public int getDay() {
|
||||
return headerDay;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the hour part of the header datetime.
|
||||
*
|
||||
* @return The hour part of the header datetime.
|
||||
*/
|
||||
public int getHour() {
|
||||
return headerHour;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the minute part of the header datetime.
|
||||
*
|
||||
* @return The minute part of the header datetime.
|
||||
*/
|
||||
public int getMinute() {
|
||||
return headerMinute;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the header datetime as a string.
|
||||
*
|
||||
* @return The header datetime information.
|
||||
*/
|
||||
public String getYYGGgg() {
|
||||
return YYGGgg;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the BBB information. If the header does not contain BBB information
|
||||
* then a null reference is returned.
|
||||
*
|
||||
* @return The BBB information.
|
||||
*/
|
||||
public String getBBBIndicator() {
|
||||
return BBBIndicator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the WMO header information valid.
|
||||
*
|
||||
* @return Is the WMO header information valid.
|
||||
*/
|
||||
public boolean isValid() {
|
||||
return isValid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the starting position of the header within the message. This position
|
||||
* is the position of the first character of the WMO header.
|
||||
*
|
||||
* @return The message start position.
|
||||
*/
|
||||
public int getWmoHeaderStart() {
|
||||
return wmoHeaderStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the starting position of the data within the message. This position
|
||||
* is the position of the next character after the end of the WMO header.
|
||||
*
|
||||
* @return The message start position.
|
||||
*/
|
||||
public int getMessageDataStart() {
|
||||
return messageDataStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the headerDate
|
||||
*/
|
||||
public Calendar getHeaderDate() {
|
||||
return headerDate;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getTtaaii() {
|
||||
if (ttaaii == null && isValid()) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(wmoHeader.substring(0, 6));
|
||||
int spcIndex = sb.indexOf(" ");
|
||||
if (spcIndex >= 0 && spcIndex + 1 < sb.length()) {
|
||||
sb.delete(spcIndex + 1, sb.length());
|
||||
}
|
||||
while (sb.length() < 6) {
|
||||
sb.append(" ");
|
||||
}
|
||||
ttaaii = sb.toString();
|
||||
}
|
||||
return ttaaii;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the string representation of this WMO header.
|
||||
*
|
||||
* @return The string representation of this WMO header.
|
||||
*/
|
||||
public String toString() {
|
||||
return wmoHeader;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse the header date time information. If any part of the YYGGgg group
|
||||
* is in error, then all date elements are set to -1;
|
||||
*
|
||||
* @param ddhhmm
|
||||
* The YYGGgg group extracted from the header.
|
||||
*/
|
||||
private void parseDateTime(String ddhhmm) {
|
||||
try {
|
||||
headerDay = Integer.parseInt(ddhhmm.substring(0, 2));
|
||||
headerHour = Integer.parseInt(ddhhmm.substring(2, 4));
|
||||
headerMinute = Integer.parseInt(ddhhmm.substring(4));
|
||||
} catch (Exception nfe) {
|
||||
// any failure in the parse above invalidates the entire date info.
|
||||
headerDay = -1;
|
||||
headerHour = -1;
|
||||
headerMinute = -1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -61,6 +61,7 @@ import com.raytheon.uf.common.wmo.WMOTimeParser;
|
|||
* Jun 10, 2014 3226 bclement added filter support
|
||||
* Jun 19, 2014 3226 bclement added validator callback
|
||||
* Jul 07, 2015 4581 skorolev Corrected decodeStrikes to avoid BufferUnderflowException.
|
||||
* Apr 07, 2016 DR18763 mgamazaychikov Switched to using LightningWMOHeader.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -122,7 +123,7 @@ public class TotalLightningDecoder {
|
|||
*/
|
||||
public PluginDataObject[] decode(byte[] data, Headers headers) {
|
||||
PluginDataObject[] rval;
|
||||
WMOHeader wmoHdr = new WMOHeader(data);
|
||||
LightningWMOHeader wmoHdr = new LightningWMOHeader(data);
|
||||
String fileName = (String) headers.get(WMOHeader.INGEST_FILE_NAME);
|
||||
if (wmoHdr.isValid()) {
|
||||
byte[] pdata = BinLightningDecoder.extractPData(wmoHdr, data);
|
||||
|
@ -172,7 +173,7 @@ public class TotalLightningDecoder {
|
|||
* @param fileName
|
||||
* @param wmoHdr
|
||||
*/
|
||||
private void warn(String msg, String fileName, WMOHeader wmoHdr) {
|
||||
private void warn(String msg, String fileName, LightningWMOHeader wmoHdr) {
|
||||
log.warn(msg + ". File: " + fileName + ", WMO Header: " + wmoHdr);
|
||||
}
|
||||
|
||||
|
@ -183,7 +184,7 @@ public class TotalLightningDecoder {
|
|||
* @param headers
|
||||
* @param wmoHdr
|
||||
*/
|
||||
private void error(Exception e, Headers headers, WMOHeader wmoHdr) {
|
||||
private void error(Exception e, Headers headers, LightningWMOHeader wmoHdr) {
|
||||
String fileName = (String) headers.get(WMOHeader.INGEST_FILE_NAME);
|
||||
log.error(e.getLocalizedMessage() + ". File: " + fileName
|
||||
+ ", WMO Header: " + wmoHdr, e);
|
||||
|
@ -197,7 +198,7 @@ public class TotalLightningDecoder {
|
|||
* @return
|
||||
* @throws DecoderException
|
||||
*/
|
||||
private PluginDataObject[] decodeInternal(WMOHeader wmoHdr,
|
||||
private PluginDataObject[] decodeInternal(LightningWMOHeader wmoHdr,
|
||||
String fileName, byte[] pdata) throws DecoderException {
|
||||
if (!validFlashPacket(pdata, COMBINATION_PACKET_HEADER_SIZE)) {
|
||||
/* assume data is encrypted if we can't understand it */
|
||||
|
@ -220,7 +221,7 @@ public class TotalLightningDecoder {
|
|||
* @return
|
||||
* @throws DecoderException
|
||||
*/
|
||||
private byte[] decrypt(WMOHeader wmoHdr, String fileName, byte[] pdata)
|
||||
private byte[] decrypt(LightningWMOHeader wmoHdr, String fileName, byte[] pdata)
|
||||
throws DecoderException {
|
||||
Calendar baseTime = WMOTimeParser.findDataTime(wmoHdr.getYYGGgg(),
|
||||
fileName);
|
||||
|
|
|
@ -112,6 +112,7 @@
|
|||
<alias base="WGSerranl">wgserranl</alias>
|
||||
<alias base="WS">ws</alias>
|
||||
<alias base="WSerranl">wserranl</alias>
|
||||
<alias base="WSTP">wstp</alias>
|
||||
<alias base="WVDIR">wvdir</alias>
|
||||
<alias base="WVHGT">wvhgt</alias>
|
||||
<alias base="WVPER">wvper</alias>
|
||||
|
|
|
@ -75,7 +75,9 @@
|
|||
# 10/30/2015 #17940 jendrowski Responded to Code Review. Mostly syntactical changes.
|
||||
# 11/05/2015 #18182 ryu Change D2DDBVERSIONS value for HPCERP to 24
|
||||
# 12/22/2015 #14152 jwatson Added Sky, Wind to GFSLAMPGrid parms
|
||||
# 1/28/2016 #13910 amoore Wave model data should be available in 3-hrly timesteps
|
||||
# 02/09/2016 #5283 nabowle Remove NGM support.
|
||||
# 02/22/2016 #18161 wkwock Add NationalBlend model for AK, PR, HW
|
||||
# 02/23/2016 #14845 jwatson Changed NamDNG5 to NamDNG for all sources and params.
|
||||
# Changed D2DModels for CONUS and Alaska to
|
||||
# namdng25 and AK-NamDNG3
|
||||
|
@ -2228,6 +2230,7 @@ if SID in groups['ALASKA_SITES']:
|
|||
'PGBlended',
|
||||
'PGBlended-Night',
|
||||
('NCOM-ALASKA', 'NCOM'),
|
||||
('NationalBlend-AK','NationalBlend'),
|
||||
]
|
||||
|
||||
# Hawaii OCONUS
|
||||
|
@ -2258,6 +2261,7 @@ elif SID == "HFO":
|
|||
'PGBlended',
|
||||
'PGBlended-Night',
|
||||
('NCOM-HAWAII', 'NCOM'),
|
||||
('NationalBlend-HI','NationalBlend'),
|
||||
]
|
||||
|
||||
# San Juan OCONUS
|
||||
|
@ -2291,6 +2295,7 @@ elif SID == "SJU":
|
|||
'PGBlended',
|
||||
'PGBlended-Night',
|
||||
('NCOM-AMSEAS', 'NCOMAMSEAS'),
|
||||
('NationalBlend-PR','NationalBlend'),
|
||||
]
|
||||
|
||||
# Guam OCONUS
|
||||
|
@ -2981,8 +2986,12 @@ nwpsCG1_MODEL = [([SwanSwell, Period, WaveHeight, WindWaveHeight, Wind], 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
|
||||
# 6-hour resolution
|
||||
WAVEPARMS = [([WindWaveHeight, WaveHeight, SurfHeight, Wind], TC6),
|
||||
([Swell, Swell2, Period, Period2], TC6)]
|
||||
# 3-hour resolution
|
||||
WAVEPARMS3 = [([WindWaveHeight, WaveHeight, SurfHeight, Wind], TC3),
|
||||
([Swell, Swell2, Period, Period2], TC3)]
|
||||
|
||||
# GLWM Model database parameter groupings
|
||||
GLWMPARMS = [([SigWaveHgt, WindWaveHgt, WindWaveDir, WindWavePeriod], TC1)]
|
||||
|
@ -3100,23 +3109,23 @@ DATABASES = [
|
|||
(GWW, WAVEPARMS),
|
||||
(WNAWAVE, WAVEPARMS),
|
||||
(AKWAVE, WAVEPARMS),
|
||||
(AKwave10, WAVEPARMS),
|
||||
(AKwave4, WAVEPARMS),
|
||||
(EPwave10, WAVEPARMS),
|
||||
(AKwave10, WAVEPARMS3),
|
||||
(AKwave4, WAVEPARMS3),
|
||||
(EPwave10, WAVEPARMS3),
|
||||
(ESTOFS, ESTOFSPARMS),
|
||||
(ETSS, ETSSPARMS),
|
||||
(nwpsCG1, nwpsCG1_MODEL),
|
||||
(nwpsTrkngCG0, nwpsTrkngCG0_MODEL),
|
||||
(GlobalWave, WAVEPARMS),
|
||||
(GlobalWave, WAVEPARMS3),
|
||||
(GLWM, GLWMPARMS),
|
||||
(HIRESWarw, STD3_MODEL),
|
||||
(HIRESWnmm, STD3_MODEL),
|
||||
(HRRR, HRRRPARMS),
|
||||
#DR20634 (SPC, SPCPARMS),
|
||||
(WCwave10, WAVEPARMS),
|
||||
(WCwave4, WAVEPARMS),
|
||||
(WNAwave10, WAVEPARMS),
|
||||
(WNAwave4, WAVEPARMS),
|
||||
(WCwave10, WAVEPARMS3),
|
||||
(WCwave4, WAVEPARMS3),
|
||||
(WNAwave10, WAVEPARMS3),
|
||||
(WNAwave4, WAVEPARMS3),
|
||||
(HPCGrid, MOS_MODEL),
|
||||
(HPCQPF, HPCQPF_MODEL),
|
||||
(RFCQPF, RFCQPF_MODEL),
|
||||
|
@ -3144,7 +3153,17 @@ DATABASES = [
|
|||
# Intersite coordination database parameter groupings, based on
|
||||
# OFFICIALDBS, but time constraint is always TC1
|
||||
ISCPARMS = []
|
||||
<<<<<<< HEAD
|
||||
if type(officeType) != str:
|
||||
raise TypeError, "Office type not a str: " + `officeType`
|
||||
else:
|
||||
if officeType not in VALID_OFFICE_TYPES:
|
||||
raise ValueError, "Office type: " + str(officeType) + " does not match any of the following: [" + (', '.join(VALID_OFFICE_TYPES)) + "]"
|
||||
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> master_16.2.2
|
||||
#
|
||||
# new parameters for NewTerrain
|
||||
#
|
||||
|
|
|
@ -154,6 +154,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -154,6 +154,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -163,6 +163,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -163,6 +163,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -163,6 +163,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -154,6 +154,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -268,6 +268,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -163,6 +163,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -154,6 +154,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -154,6 +154,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -154,6 +154,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -154,6 +154,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -154,6 +154,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -154,6 +154,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -163,6 +163,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -163,6 +163,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -163,6 +163,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -163,6 +163,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -154,6 +154,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Sig height combined wind waves and swell</long_name>
|
||||
|
|
|
@ -120,6 +120,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Significant height of wind waves</long_name>
|
||||
|
@ -135,6 +150,22 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>swell</short_name>
|
||||
<long_name>Significant swell wave height</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meters</udunits>
|
||||
<uiname>heightSwellWaves</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>50.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>OSEQD 1 2</levelsDesc>
|
||||
<levels>
|
||||
<level>OSEQD1</level>
|
||||
<level>OSEQD2</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>staticTopo</short_name>
|
||||
<long_name>Topography</long_name>
|
||||
|
|
|
@ -120,6 +120,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Significant height of wind waves</long_name>
|
||||
|
@ -135,6 +150,22 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>swell</short_name>
|
||||
<long_name>Significant swell wave height</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meters</udunits>
|
||||
<uiname>heightSwellWaves</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>50.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>OSEQD 1 2</levelsDesc>
|
||||
<levels>
|
||||
<level>OSEQD1</level>
|
||||
<level>OSEQD2</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>staticTopo</short_name>
|
||||
<long_name>Topography</long_name>
|
||||
|
|
|
@ -11,6 +11,21 @@
|
|||
<units>meters</units>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Significant height of wind waves</long_name>
|
||||
|
@ -26,6 +41,22 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>swell</short_name>
|
||||
<long_name>Significant swell wave height</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meters</udunits>
|
||||
<uiname>heightSwellWaves</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>50.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>OSEQD 1 2</levelsDesc>
|
||||
<levels>
|
||||
<level>OSEQD1</level>
|
||||
<level>OSEQD2</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>staticCoriolis</short_name>
|
||||
<long_name>Coriolis parameter</long_name>
|
||||
|
|
|
@ -11,6 +11,21 @@
|
|||
<units>meters</units>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Significant height of wind waves</long_name>
|
||||
|
@ -26,6 +41,22 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>swell</short_name>
|
||||
<long_name>Significant swell wave height</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meters</udunits>
|
||||
<uiname>heightSwellWaves</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>50.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>OSEQD 1 2</levelsDesc>
|
||||
<levels>
|
||||
<level>OSEQD1</level>
|
||||
<level>OSEQD2</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>staticCoriolis</short_name>
|
||||
<long_name>Coriolis parameter</long_name>
|
||||
|
|
|
@ -11,6 +11,21 @@
|
|||
<units>meters</units>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Significant height of wind waves</long_name>
|
||||
|
@ -26,6 +41,22 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>swell</short_name>
|
||||
<long_name>Significant swell wave height</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meters</udunits>
|
||||
<uiname>heightSwellWaves</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>50.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>OSEQD 1 2</levelsDesc>
|
||||
<levels>
|
||||
<level>OSEQD1</level>
|
||||
<level>OSEQD2</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>staticCoriolis</short_name>
|
||||
<long_name>Coriolis parameter</long_name>
|
||||
|
|
|
@ -120,6 +120,21 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>wstp</short_name>
|
||||
<long_name>Wave steepness</long_name>
|
||||
<units>1</units>
|
||||
<udunits>one</udunits>
|
||||
<uiname>waveSteepness</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>1.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>SFC</levelsDesc>
|
||||
<levels>
|
||||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>htsgw</short_name>
|
||||
<long_name>Significant height of wind waves</long_name>
|
||||
|
@ -135,6 +150,22 @@
|
|||
<level>SFC</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>swell</short_name>
|
||||
<long_name>Significant swell wave height</long_name>
|
||||
<units>m</units>
|
||||
<udunits>meters</udunits>
|
||||
<uiname>heightSwellWaves</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>50.0</valid_range>
|
||||
<fillValue>-999999.0</fillValue>
|
||||
<n3D>1</n3D>
|
||||
<levelsDesc>OSEQD 1 2</levelsDesc>
|
||||
<levels>
|
||||
<level>OSEQD1</level>
|
||||
<level>OSEQD2</level>
|
||||
</levels>
|
||||
</gridParameterInfo>
|
||||
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
|
||||
<short_name>staticTopo</short_name>
|
||||
<long_name>Topography</long_name>
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<mercatorGridCoverage>
|
||||
<name>NBM_PR</name>
|
||||
<description> National Blend Grid over Puerto Rico - (1.25 km)</description>
|
||||
<la1>16.9775</la1>
|
||||
<lo1>-68.0278</lo1>
|
||||
<firstGridPointCorner>LowerLeft</firstGridPointCorner>
|
||||
<nx>339</nx>
|
||||
<ny>225</ny>
|
||||
<dx>1.25</dx>
|
||||
<dy>1.25</dy>
|
||||
<la2>19.3750032477232</la2>
|
||||
<lo2>-63.984399999999994</lo2>
|
||||
<latin>20</latin>
|
||||
<spacingUnit>km</spacingUnit>
|
||||
<minorAxis>6371200</minorAxis>
|
||||
<majorAxis>6371200</majorAxis>
|
||||
</mercatorGridCoverage>
|
||||
|
|
@ -29,4 +29,37 @@
|
|||
<id>104</id>
|
||||
</process>
|
||||
</model>
|
||||
</gribModelSet>
|
||||
|
||||
<!--Alaska-->
|
||||
<model>
|
||||
<name>NationalBlend-AK</name>
|
||||
<center>7</center>
|
||||
<subcenter>14</subcenter>
|
||||
<grid>1023</grid>
|
||||
<process>
|
||||
<id>104</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<!--Hawaii-->
|
||||
<model>
|
||||
<name>NationalBlend-HI</name>
|
||||
<center>7</center>
|
||||
<subcenter>14</subcenter>
|
||||
<grid>625561001</grid>
|
||||
<process>
|
||||
<id>104</id>
|
||||
</process>
|
||||
</model>
|
||||
|
||||
<!--Puerto Rico-->
|
||||
<model>
|
||||
<name>NationalBlend-PR</name>
|
||||
<center>7</center>
|
||||
<subcenter>14</subcenter>
|
||||
<grid>NBM_PR</grid>
|
||||
<process>
|
||||
<id>104</id>
|
||||
</process>
|
||||
</model>
|
||||
</gribModelSet>
|
||||
|
|
|
@ -93,11 +93,11 @@ import com.raytheon.uf.common.time.util.TimeUtil;
|
|||
* Jun 19, 2014 3214 bclement populated pulse index array with -1 when missing pulse data
|
||||
* Jan 22, 2014 3949 nabowle refactor out default and unknown source constants.
|
||||
* Jul 23, 2015 2360 rferrel Add name to unique constraint.
|
||||
* Mar 08, 2016 18336 amoore Keep-alive messages should update the legend.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author jkorman
|
||||
* @version 1
|
||||
*/
|
||||
@Entity
|
||||
@SequenceGenerator(initialValue = 1, name = PluginDataObject.ID_GEN, sequenceName = "binlightningseq")
|
||||
|
@ -164,6 +164,29 @@ public class BinLightningRecord extends PersistablePluginDataObject implements
|
|||
super(uri);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a zero-strike, keep-alive lightning record based on given
|
||||
* date.
|
||||
*
|
||||
* Record will contain datetime data only.
|
||||
*
|
||||
* @param dateTime
|
||||
* WMO header base date.
|
||||
*/
|
||||
public BinLightningRecord(final Calendar dateTime) {
|
||||
source = LightningConstants.DEFAULT_SOURCE;
|
||||
|
||||
// only data shall be datetime for keep-alive
|
||||
strikeDataArrays.put(LightningConstants.TIME_DATASET,
|
||||
new long[] { dateTime.getTimeInMillis() });
|
||||
|
||||
startTime = dateTime;
|
||||
stopTime = dateTime;
|
||||
|
||||
TimeRange range = new TimeRange(startTime, stopTime);
|
||||
setDataTime(new DataTime(startTime, range));
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a lightning record from a list of strikes
|
||||
*
|
||||
|
|
|
@ -98,6 +98,7 @@ import com.vividsolutions.jts.io.WKBReader;
|
|||
* Aug 08, 2015 4722 dhladky Improved Grid support.
|
||||
* Nov 12, 2015 4834 njensen Changed LocalizationOpFailedException to LocalizationException
|
||||
* Feb 15, 2016 5244 nabowle Replace deprecated LocalizationFile methods.
|
||||
* Apr 07, 2016 5491 tjensen Fix NullPointerException from getRawGeometries
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -1269,7 +1270,8 @@ public class FFMPTemplates {
|
|||
primary = true;
|
||||
}
|
||||
|
||||
if (rawGeometries == null) {
|
||||
if (rawGeometries == null
|
||||
|| rawGeometries.isEmpty()) {
|
||||
rawGeometries = getRawGeometries(dataKey, cwa);
|
||||
}
|
||||
|
||||
|
@ -1781,8 +1783,7 @@ public class FFMPTemplates {
|
|||
if (results != null && results.length > 0) {
|
||||
|
||||
if (pfafGeometries == null) {
|
||||
pfafGeometries = new HashMap<Long, Geometry>(results.length,
|
||||
1.0f);
|
||||
pfafGeometries = new HashMap<>(results.length, 1.0f);
|
||||
cwaRawGeometries.put(compositeKey,
|
||||
new SoftReference<Map<Long, Geometry>>(pfafGeometries));
|
||||
}
|
||||
|
@ -2058,6 +2059,7 @@ public class FFMPTemplates {
|
|||
} catch (SerializationException | IOException | LocalizationException e) {
|
||||
statusHandler.error("Exception reading domain map. Domain Map: "
|
||||
+ dataKey + " cwa:" + cwa + " huc: " + huc, e);
|
||||
|
||||
}
|
||||
|
||||
return map;
|
||||
|
@ -2173,14 +2175,15 @@ public class FFMPTemplates {
|
|||
if (rawGeomRef != null) {
|
||||
pfafGeometries = rawGeomRef.get();
|
||||
}
|
||||
if (pfafGeometries == null) {
|
||||
if (pfafGeometries == null || pfafGeometries.isEmpty()) {
|
||||
// TODO: add sync locking per cwa
|
||||
long t0 = System.currentTimeMillis();
|
||||
pfafGeometries = FFMPUtils.getRawGeometries(getMap(siteKey, cwa,
|
||||
FFMPRecord.ALL).keySet());
|
||||
long t1 = System.currentTimeMillis();
|
||||
System.out.println("Retrieval of raw geometries for site "
|
||||
+ siteKey + " cwa " + cwa + " took " + (t1 - t0) + " ms.");
|
||||
statusHandler.handle(Priority.INFO,
|
||||
"Retrieval of raw geometries for site " + siteKey + " cwa "
|
||||
+ cwa + " took " + (t1 - t0) + " ms.");
|
||||
cwaRawGeometries.put(compositeKey,
|
||||
new SoftReference<Map<Long, Geometry>>(pfafGeometries));
|
||||
}
|
||||
|
|
|
@ -100,6 +100,7 @@ import com.vividsolutions.jts.io.WKTWriter;
|
|||
* Aug 08, 2015 4722 dhladky Added Grid coverage and parsing methods.
|
||||
* Sep 17, 2015 4756 dhladky Multiple guidance source bugs.
|
||||
* Feb 12, 2016 5370 dhladky Camel case for insertTime.
|
||||
* Apr 07, 2016 5491 tjensen Fix NullPointerException from getRawGeometries
|
||||
* </pre>
|
||||
*
|
||||
* @author dhladky
|
||||
|
@ -124,7 +125,7 @@ public class FFMPUtils {
|
|||
public static float MISSING = -99999.0f;
|
||||
|
||||
private static NumberFormat formatter = new DecimalFormat("#.##");
|
||||
|
||||
|
||||
private static final IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(FFMPUtils.class);
|
||||
|
||||
|
@ -371,8 +372,8 @@ public class FFMPUtils {
|
|||
* @param extents
|
||||
* @return
|
||||
*/
|
||||
public static Object[] getBasins(String cwa, double buffer,
|
||||
String extents, String mode) {
|
||||
public static Object[] getBasins(String cwa, double buffer, String extents,
|
||||
String mode) {
|
||||
String lowestSimplificationLevel = ScanUtils
|
||||
.getHighResolutionLevel("ffmp_basins");
|
||||
String highestSimplificationLevel = ScanUtils
|
||||
|
@ -424,7 +425,8 @@ public class FFMPUtils {
|
|||
* @return
|
||||
*/
|
||||
public static Map<Long, Geometry> getRawGeometries(Collection<Long> pfafs) {
|
||||
HashMap<Long, Geometry> rval = null;
|
||||
// Initialize rval to an empty Map to use as the default return value.
|
||||
HashMap<Long, Geometry> rval = new HashMap<>();
|
||||
if (pfafs.size() > 0) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("SELECT pfaf_id, AsBinary("
|
||||
|
@ -448,7 +450,7 @@ public class FFMPUtils {
|
|||
try {
|
||||
sq = SpatialQueryFactory.create();
|
||||
results = sq.dbRequest(builder.toString(), MAPS_DB);
|
||||
rval = new HashMap<Long, Geometry>(results.length, 1.0f);
|
||||
rval = new HashMap<>(results.length, 1.0f);
|
||||
} catch (SpatialException e) {
|
||||
statusHandler.error("Error querying Raw Geometries: +sql: "
|
||||
+ builder.toString(), e);
|
||||
|
@ -971,19 +973,19 @@ public class FFMPUtils {
|
|||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public static String getFFGDataURI(GUIDANCE_TYPE type, String datasetid, String parameter,
|
||||
String plugin) {
|
||||
public static String getFFGDataURI(GUIDANCE_TYPE type, String datasetid,
|
||||
String parameter, String plugin) {
|
||||
DbQueryRequest request = new DbQueryRequest();
|
||||
request.setEntityClass(GridRecord.class.getName());
|
||||
request.addConstraint(GridConstants.PARAMETER_ABBREVIATION,
|
||||
new RequestConstraint(parameter));
|
||||
|
||||
|
||||
if (type == GUIDANCE_TYPE.RFC) {
|
||||
request.addConstraint(GridConstants.DATASET_ID, new RequestConstraint(
|
||||
"FFG-" + datasetid.substring(1)));
|
||||
request.addConstraint(GridConstants.DATASET_ID,
|
||||
new RequestConstraint("FFG-" + datasetid.substring(1)));
|
||||
} else {
|
||||
request.addConstraint(GridConstants.DATASET_ID, new RequestConstraint(
|
||||
datasetid));
|
||||
request.addConstraint(GridConstants.DATASET_ID,
|
||||
new RequestConstraint(datasetid));
|
||||
}
|
||||
|
||||
request.setOrderByField("dataTime.refTime", OrderMode.DESC);
|
||||
|
@ -994,8 +996,8 @@ public class FFMPUtils {
|
|||
if (grids != null && grids.length > 0) {
|
||||
return grids[0].getDataURI();
|
||||
} else {
|
||||
statusHandler.warn(
|
||||
"No data available for this FFG Request: " + request.toString());
|
||||
statusHandler.warn("No data available for this FFG Request: "
|
||||
+ request.toString());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
statusHandler.error(
|
||||
|
@ -1432,7 +1434,7 @@ public class FFMPUtils {
|
|||
|
||||
return unmappedResults.toArray(new Object[0]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* For Grid FFMP types used as primary sources, request the coverage record
|
||||
* for use in domain creation.
|
||||
|
@ -1471,8 +1473,9 @@ public class FFMPUtils {
|
|||
coverage = record.getLocation();
|
||||
}
|
||||
} else {
|
||||
statusHandler.error("Query for Grid Coverage returned no results: DataSetID = "
|
||||
+ datasetID);
|
||||
statusHandler
|
||||
.error("Query for Grid Coverage returned no results: DataSetID = "
|
||||
+ datasetID);
|
||||
}
|
||||
|
||||
return coverage;
|
||||
|
|
|
@ -4230,7 +4230,6 @@ in | .03937 | 0 | 4 | | |..|8000F0FF| | 16 | \
|
|||
|
||||
<styleRule>
|
||||
<paramLevelMatches>
|
||||
<parameter>SPC</parameter>
|
||||
<parameter>OGRD</parameter>
|
||||
<parameter>BARO</parameter>
|
||||
<parameter>SPBARO</parameter>
|
||||
|
@ -4239,6 +4238,14 @@ in | .03937 | 0 | 4 | | |..|8000F0FF| | 16 | \
|
|||
<displayUnits>cm/sec</displayUnits>
|
||||
</contourStyle>
|
||||
</styleRule>
|
||||
<styleRule>
|
||||
<paramLevelMatches>
|
||||
<parameter>SPC</parameter>
|
||||
</paramLevelMatches>
|
||||
<contourStyle>
|
||||
<displayUnits>m/s</displayUnits>
|
||||
</contourStyle>
|
||||
</styleRule>
|
||||
|
||||
<!-- ########## 15.1 edits below by db ############ -->
|
||||
<styleRule>
|
||||
|
|
|
@ -9446,7 +9446,6 @@
|
|||
<styleRule>
|
||||
|
||||
<paramLevelMatches>
|
||||
<parameter>SPC</parameter>
|
||||
<parameter>OGRD</parameter>
|
||||
<parameter>BARO</parameter>
|
||||
<parameter>SPBARO</parameter>
|
||||
|
@ -9456,6 +9455,15 @@
|
|||
</imageStyle>
|
||||
</styleRule>
|
||||
|
||||
<styleRule>
|
||||
<paramLevelMatches>
|
||||
<parameter>SPC</parameter>
|
||||
</paramLevelMatches>
|
||||
<imageStyle>
|
||||
<displayUnits>m/s</displayUnits>
|
||||
</imageStyle>
|
||||
</styleRule>
|
||||
|
||||
<!-- 15.1 additions below -->
|
||||
<styleRule>
|
||||
<paramLevelMatches>
|
||||
|
|
|
@ -261,7 +261,7 @@ public class DSAAdapt extends
|
|||
this.reset_bias = reset_bias;
|
||||
this.longst_lag = longst_lag;
|
||||
|
||||
// * new for Build 17 *
|
||||
// *new for Build 17 *
|
||||
|
||||
this.min_early_term_angle = min_early_term_angle;
|
||||
this.max_volume_per_hour = max_volume_per_hour;
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
* This software 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.uf.common.dataplugin.shef.tables;
|
||||
|
||||
// default package
|
||||
// Generated Oct 17, 2008 2:22:17 PM by Hibernate Tools 3.2.2.GA
|
||||
|
||||
|
@ -38,6 +39,7 @@ import javax.persistence.Table;
|
|||
* Oct 17, 2008 Initial generation by hbm2java
|
||||
* Aug 19, 2011 10672 jkorman Move refactor to new project
|
||||
* Oct 07, 2013 2361 njensen Removed XML annotations
|
||||
* Feb 08, 2016 14232 amoore Expand area column to 500 characters.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -47,10 +49,17 @@ import javax.persistence.Table;
|
|||
@Entity
|
||||
@Table(name = "locarea")
|
||||
@com.raytheon.uf.common.serialization.annotations.DynamicSerialize
|
||||
public class Locarea extends com.raytheon.uf.common.dataplugin.persist.PersistableDataObject implements java.io.Serializable {
|
||||
public class Locarea extends
|
||||
com.raytheon.uf.common.dataplugin.persist.PersistableDataObject
|
||||
implements java.io.Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* Maximum characters of affected area.
|
||||
*/
|
||||
private static final int MAX_AFFECTED_AREA_SIZE = 500;
|
||||
|
||||
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
|
||||
private String lid;
|
||||
|
||||
|
@ -79,7 +88,7 @@ public class Locarea extends com.raytheon.uf.common.dataplugin.persist.Persistab
|
|||
this.lid = lid;
|
||||
}
|
||||
|
||||
@Column(name = "area", length = 80)
|
||||
@Column(name = "area", length = MAX_AFFECTED_AREA_SIZE)
|
||||
public String getArea() {
|
||||
return this.area;
|
||||
}
|
||||
|
|
24
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodAdvisory.xml
Executable file → Normal file
24
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodAdvisory.xml
Executable file → Normal file
|
@ -162,14 +162,14 @@ Must be paired with proper vm code (which are commented out in arealFloodAdvisor
|
|||
<bullet bulletName="specificPlace" bulletText="Specify location" parseString="FLOODING IS OCCURING"/>
|
||||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletText="****** CALL TO ACTIONS (choose 1 or more) ******" bulletType="title"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS, STREAMS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString=""ARROYOS"," STREAMS","CURRENTS""/>
|
||||
<bullet bulletName="burnAreasCTA" bulletText="Burn Areas" parseString="RECENTLY BURNED AREAS"/>
|
||||
<bullet bulletName="camperSafetyCTA" bulletText="Camper/Hiker Safety" parseString="CAMPERS AND HIKERS"/>
|
||||
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to law enforcement" parseString="REPORT FLOODING TO YOUR LOCAL LAW ENFORCEMENT"/>
|
||||
|
@ -221,14 +221,14 @@ Must be paired with proper vm code (which are commented out in arealFloodAdvisor
|
|||
<bullet bulletName="specificPlace" bulletText="Specify location" parseString="FLOODING IS OCCURING"/>
|
||||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletText="****** CALL TO ACTIONS (choose 1 or more) ******" bulletType="title"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS, STREAMS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString=""ARROYOS"," STREAMS","CURRENTS""/>
|
||||
<bullet bulletName="burnAreasCTA" bulletText="Burn Areas" parseString="RECENTLY BURNED AREAS"/>
|
||||
<bullet bulletName="camperSafetyCTA" bulletText="Camper/Hiker Safety" parseString="CAMPERS AND HIKERS"/>
|
||||
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to law enforcement" parseString="REPORT FLOODING TO YOUR LOCAL LAW ENFORCEMENT"/>
|
||||
|
@ -280,14 +280,14 @@ Must be paired with proper vm code (which are commented out in arealFloodAdvisor
|
|||
<bullet bulletName="specificPlace" bulletText="Specify location" parseString="FLOODING IS OCCURING"/>
|
||||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletText="****** CALL TO ACTIONS (choose 1 or more) ******" bulletType="title"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS, STREAMS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString=""ARROYOS"," STREAMS","CURRENTS""/>
|
||||
<bullet bulletName="burnAreasCTA" bulletText="Burn Areas" parseString="RECENTLY BURNED AREAS"/>
|
||||
<bullet bulletName="camperSafetyCTA" bulletText="Camper/Hiker Safety" parseString="CAMPERS AND HIKERS"/>
|
||||
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to law enforcement" parseString="REPORT FLOODING TO YOUR LOCAL LAW ENFORCEMENT"/>
|
||||
|
|
16
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodAdvisoryFollowup.xml
Executable file → Normal file
16
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodAdvisoryFollowup.xml
Executable file → Normal file
|
@ -194,14 +194,14 @@ Must be paired with proper vm code (also commented out in arealFloodAdvisoryFoll
|
|||
<bullet bulletName="specificPlace" bulletText="Specify location" parseString="FLOODING IS OCCURING"/>
|
||||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletText="****** CALL TO ACTIONS (choose 1 or more) ******" bulletType="title"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS, STREAMS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString=""ARROYOS"," STREAMS","CURRENTS""/>
|
||||
<bullet bulletName="burnAreasCTA" bulletText="Burn Areas" parseString="RECENTLY BURNED AREAS"/>
|
||||
<bullet bulletName="camperSafetyCTA" bulletText="Camper/Hiker Safety" parseString="CAMPERS AND HIKERS"/>
|
||||
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to law enforcement" parseString="REPORT FLOODING TO YOUR LOCAL LAW ENFORCEMENT"/>
|
||||
|
@ -252,14 +252,14 @@ Must be paired with proper vm code (also commented out in arealFloodAdvisoryFoll
|
|||
<bullet bulletName="specificPlace" bulletText="Specify location" parseString="FLOODING IS OCCURING"/>
|
||||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletText="****** CALL TO ACTIONS (choose 1 or more) ******" bulletType="title"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS, STREAMS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString=""ARROYOS"," STREAMS","CURRENTS""/>
|
||||
<bullet bulletName="burnAreasCTA" bulletText="Burn Areas" parseString="RECENTLY BURNED AREAS"/>
|
||||
<bullet bulletName="camperSafetyCTA" bulletText="Camper/Hiker Safety" parseString="CAMPERS AND HIKERS"/>
|
||||
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to law enforcement" parseString="REPORT FLOODING TO YOUR LOCAL LAW ENFORCEMENT"/>
|
||||
|
|
18
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodWarning.xml
Executable file → Normal file
18
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodWarning.xml
Executable file → Normal file
|
@ -161,12 +161,12 @@ Must be paired with proper vm code (also commented out in arealFloodWarning.vm)!
|
|||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX is expected" parseString="ADDITIONAL RAINFALL AMOUNTS OF"/>
|
||||
<bullet bulletName="specificStream" bulletText="Flooding is occurring in a specific stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="****** CALLS TO ACTION (CHOOSE 1 OR MORE) ******" bulletType="title"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
@ -222,12 +222,12 @@ Must be paired with proper vm code (also commented out in arealFloodWarning.vm)!
|
|||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletName="specificStream" bulletText="Flooding is occurring in a specific stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="****** CALLS TO ACTION (CHOOSE 1 OR MORE) ******" bulletType="title"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
@ -283,12 +283,12 @@ Must be paired with proper vm code (also commented out in arealFloodWarning.vm)!
|
|||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletName="specificStream" bulletText="Flooding is occurring in a specific stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="****** CALLS TO ACTION (CHOOSE 1 OR MORE) ******" bulletType="title"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
|
12
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodWarningFollowup.xml
Executable file → Normal file
12
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodWarningFollowup.xml
Executable file → Normal file
|
@ -206,12 +206,12 @@ Must be paired with proper vm code (which are commented out in arealFloodWarning
|
|||
<bullet bulletName="specificStream" bulletText="Flooding is occurring in a specific stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="**** CALL TO ACTIONS (CHOOSE 1 OR MORE) ****" bulletType="title"/>
|
||||
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
@ -268,12 +268,12 @@ Must be paired with proper vm code (which are commented out in arealFloodWarning
|
|||
<bullet bulletName="specificStream" bulletText="Flooding is occurring in a specific stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="**** CALL TO ACTIONS (CHOOSE 1 OR MORE) ****" bulletType="title"/>
|
||||
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
|
18
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/burnScarFlashFloodWarning.xml
Executable file → Normal file
18
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/burnScarFlashFloodWarning.xml
Executable file → Normal file
|
@ -139,12 +139,12 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="burnAreasCTA" bulletText="Burn Areas" bulletDefault="true" parseString="RECENTLY BURNED AREAS"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
@ -197,12 +197,12 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="burnAreasCTA" bulletText="Burn Areas" bulletDefault="true" parseString="RECENTLY BURNED AREAS"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
@ -260,12 +260,12 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="burnAreasCTA" bulletText="Burn Areas" bulletDefault="true" parseString="RECENTLY BURNED AREAS"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
|
12
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/burnScarFlashFloodWarningFollowup.xml
Executable file → Normal file
12
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/burnScarFlashFloodWarningFollowup.xml
Executable file → Normal file
|
@ -162,12 +162,12 @@ Must be paired with proper vm code (also commented out in flashFloodWarning.vm)!
|
|||
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="burnAreasCTA" bulletText="Burn Areas" bulletDefault="true" parseString="RECENTLY BURNED AREAS"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
@ -220,12 +220,12 @@ Must be paired with proper vm code (also commented out in flashFloodWarning.vm)!
|
|||
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="burnAreasCTA" bulletText="Burn Areas" bulletDefault="true" parseString="RECENTLY BURNED AREAS"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
|
18
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/flashFloodWarning.xml
Executable file → Normal file
18
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/flashFloodWarning.xml
Executable file → Normal file
|
@ -151,12 +151,12 @@ Must be paired with proper vm code (also commented out in flashFloodWarning.vm)!
|
|||
<bullet bulletText="**** CALL TO ACTIONS (CHOOSE 1 OR MORE) ****" bulletType="title"/>
|
||||
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
@ -205,12 +205,12 @@ Must be paired with proper vm code (also commented out in flashFloodWarning.vm)!
|
|||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletText="**** CALL TO ACTIONS (CHOOSE 1 OR MORE) ****" bulletType="title"/>
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
@ -259,12 +259,12 @@ Must be paired with proper vm code (also commented out in flashFloodWarning.vm)!
|
|||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletText="**** CALL TO ACTIONS (CHOOSE 1 OR MORE) ****" bulletType="title"/>
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
|
12
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/flashFloodWarningFollowup.xml
Executable file → Normal file
12
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/flashFloodWarningFollowup.xml
Executable file → Normal file
|
@ -153,12 +153,12 @@ Must be paired with proper vm code (also commented out in flashFloodWarningFollo
|
|||
<bullet bulletText="**** CALL TO ACTIONS (CHOOSE 1 OR MORE) ****" bulletType="title"/>
|
||||
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
@ -208,12 +208,12 @@ Must be paired with proper vm code (also commented out in flashFloodWarningFollo
|
|||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletText="**** CALL TO ACTIONS (CHOOSE 1 OR MORE) ****" bulletType="title"/>
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
|
4
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/impactSevereWeatherStatement.xml
Executable file → Normal file
4
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/impactSevereWeatherStatement.xml
Executable file → Normal file
|
@ -264,7 +264,7 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletText="*********** CALLS TO ACTION (CHOOSE 1 OR MORE) **********" bulletType="title"/>
|
||||
<bullet bulletName="torEmergencyCTA" bulletText="**TOR EMERGENCY CTA** (CATASTROPHIC Tag use only)" parseString="TORNADO EMERGENCY"/>
|
||||
<!-- There are two "default" safety rules. The first...which will probably be used by most offices...includes safety rules for mobile homes. The second...which is commented out...is for large urban areas that do not have mobile homes. If you wish to switch defaults or provide both options, remove comment tags as necessary and adjust the bulletDefault="true" as appropriate if both options are allowed -->
|
||||
<bullet bulletName="defaultMobileCTA" bulletText="Default safety rules - includes mobile homes" parseString="IF YOU ARE OUTDOORS, IN A MOBILE HOME, OR IN A VEHICLE" bulletGroup="cta1"/>
|
||||
<bullet bulletName="defaultMobileCTA" bulletText="Default safety rules - includes mobile homes" parseString=""AVOID WINDOWS. IF YOU ARE OUTDOORS","MOBILE HOME","VEHICLE"" bulletGroup="cta1"/>
|
||||
<bullet bulletName="defaultUrbanCTA" bulletText="Default safety rules for urban - no mobile homes" parseString="IF YOU ARE OUTDOORS OR IN A VEHICLE" bulletGroup="cta1"/>
|
||||
<bullet bulletName="motoristsCTA" bulletText="Safety rules for motorists" parseString="MOTORISTS SHOULD NOT TAKE SHELTER UNDER"/>
|
||||
<bullet bulletName="rainWrappedCTA" bulletText="Rain wrapped tornado" parseString="HEAVY RAINFALL MAY HIDE THIS TORNADO"/>
|
||||
|
@ -402,7 +402,7 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletText="*********** CALLS TO ACTION (CHOOSE 1 OR MORE) **********" bulletType="title"/>
|
||||
<bullet bulletName="torEmergencyCTA" bulletText="**TOR EMERGENCY CTA** (CATASTROPHIC Tag use only)" parseString="TORNADO EMERGENCY"/>
|
||||
<!-- There are two "default" safety rules. The first...which will probably be used by most offices...includes safety rules for mobile homes. The second...which is commented out...is for large urban areas that do not have mobile homes. If you wish to switch defaults or provide both options, remove comment tags as necessary and adjust the bulletDefault="true" as appropriate if both options are allowed -->
|
||||
<bullet bulletName="defaultMobileCTA" bulletText="Default safety rules - includes mobile homes" parseString="IF YOU ARE OUTDOORS, IN A MOBILE HOME, OR IN A VEHICLE" bulletGroup="cta1"/>
|
||||
<bullet bulletName="defaultMobileCTA" bulletText="Default safety rules - includes mobile homes" parseString=""AVOID WINDOWS. IF YOU ARE OUTDOORS","MOBILE HOME","VEHICLE"" bulletGroup="cta1"/>
|
||||
<bullet bulletName="defaultUrbanCTA" bulletText="Default safety rules for urban - no mobile homes" parseString="IF YOU ARE OUTDOORS OR IN A VEHICLE" bulletGroup="cta1"/>
|
||||
<bullet bulletName="motoristsCTA" bulletText="Safety rules for motorists" parseString="MOTORISTS SHOULD NOT TAKE SHELTER UNDER"/>
|
||||
<bullet bulletName="rainWrappedCTA" bulletText="Rain wrapped tornado" parseString="HEAVY RAINFALL MAY HIDE THIS TORNADO"/>
|
||||
|
|
|
@ -143,7 +143,7 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletText=" ****** CALLS TO ACTION (CHOOSE 1 OR MORE) ****** " bulletType="title"/>
|
||||
<bullet bulletName="genericCTA" bulletText="Generic CTA" parseString="MOVE TO SAFE HARBOR UNTIL HAZARDOUS WEATHER PASSES"/>
|
||||
<bullet bulletName="gustyWindsCTA" bulletText="Gusty Winds CTA" parseString="MOVE TO SAFE HARBOR IMMEDIATELY AS GUSTY WINDS AND HIGH WAVES ARE EXPECTED"/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Wind/Hail cta with hail/wind speeds" parseString="DANGEROUS LIGHTNING, AND HEAVY RAIN ARE POSSIBLE"/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Wind/Hail cta with hail/wind speeds" parseString=""DANGEROUS LIGHTNING","HIGH WAVES","HEAVY RAIN""/>
|
||||
<bullet bulletName="nonThunderstormCTA" bulletText="Non thunderstorm winds - mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS AND INCREASING WAVES"/>
|
||||
<bullet bulletName="waterspoutCTA" bulletText="Waterspout CTA" parseString="CREATE LOCALLY HAZARDOUS SEAS. SEEK SAFE HARBOR IMMEDIATELY"/>
|
||||
<bullet bulletName="lightningCTA" bulletText="Frequent lightning CTA" parseString="FREQUENT LIGHTNING IS OCCURRING WITH"/>
|
||||
|
@ -202,7 +202,7 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletText=" ****** CALLS TO ACTION (CHOOSE 1 OR MORE) ****** " bulletType="title"/>
|
||||
<bullet bulletName="genericCTA" bulletText="Generic CTA" parseString="MOVE TO SAFE HARBOR UNTIL HAZARDOUS WEATHER PASSES"/>
|
||||
<bullet bulletName="gustyWindsCTA" bulletText="Gusty Winds CTA" parseString="MOVE TO SAFE HARBOR IMMEDIATELY AS GUSTY WINDS AND HIGH WAVES ARE EXPECTED"/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Wind/Hail cta with hail/wind speeds" parseString="DANGEROUS LIGHTNING, AND HEAVY RAIN ARE POSSIBLE"/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Wind/Hail cta with hail/wind speeds" parseString=""DANGEROUS LIGHTNING","HIGH WAVES","HEAVY RAIN""/>
|
||||
<bullet bulletName="nonThunderstormCTA" bulletText="Non thunderstorm winds - mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS AND INCREASING WAVES"/>
|
||||
<bullet bulletName="waterspoutCTA" bulletText="Waterspout CTA" parseString="CREATE LOCALLY HAZARDOUS SEAS. SEEK SAFE HARBOR IMMEDIATELY"/>
|
||||
<bullet bulletName="lightningCTA" bulletText="Frequent lightning CTA" parseString="FREQUENT LIGHTNING IS OCCURRING WITH"/>
|
||||
|
|
|
@ -191,7 +191,7 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletText=" ****** CALLS TO ACTION (CHOOSE 1 OR MORE) ****** " bulletType="title"/>
|
||||
<bullet bulletName="genericCTA" bulletText="Generic CTA" parseString="MOVE TO SAFE HARBOR UNTIL HAZARDOUS WEATHER PASSES"/>
|
||||
<bullet bulletName="gustyWindsCTA" bulletText="Gusty Winds CTA" parseString="MOVE TO SAFE HARBOR IMMEDIATELY AS GUSTY WINDS AND HIGH WAVES ARE EXPECTED"/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Wind/Hail cta with hail/wind speeds" parseString="DANGEROUS LIGHTNING, AND HEAVY RAIN ARE POSSIBLE"/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Wind/Hail cta with hail/wind speeds" parseString=""DANGEROUS LIGHTNING","HIGH WAVES","HEAVY RAIN""/>
|
||||
<bullet bulletName="nonThunderstormCTA" bulletText="Non thunderstorm winds - mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS AND INCREASING WAVES"/>
|
||||
<bullet bulletName="waterspoutCTA" bulletText="Waterspout CTA" parseString="CREATE LOCALLY HAZARDOUS SEAS. SEEK SAFE HARBOR IMMEDIATELY"/>
|
||||
<bullet bulletName="lightningCTA" bulletText="Frequent lightning CTA" parseString="FREQUENT LIGHTNING IS OCCURRING WITH"/>
|
||||
|
@ -250,7 +250,7 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletText=" ****** CALLS TO ACTION (CHOOSE 1 OR MORE) ****** " bulletType="title"/>
|
||||
<bullet bulletName="genericCTA" bulletText="Generic CTA" parseString="MOVE TO SAFE HARBOR UNTIL HAZARDOUS WEATHER PASSES"/>
|
||||
<bullet bulletName="gustyWindsCTA" bulletText="Gusty Winds CTA" parseString="MOVE TO SAFE HARBOR IMMEDIATELY AS GUSTY WINDS AND HIGH WAVES ARE EXPECTED"/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Wind/Hail cta with hail/wind speeds" parseString="DANGEROUS LIGHTNING, AND HEAVY RAIN ARE POSSIBLE"/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Wind/Hail cta with hail/wind speeds" parseString=""DANGEROUS LIGHTNING","HIGH WAVES","HEAVY RAIN""/>
|
||||
<bullet bulletName="nonThunderstormCTA" bulletText="Non thunderstorm winds - mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS AND INCREASING WAVES"/>
|
||||
<bullet bulletName="waterspoutCTA" bulletText="Waterspout CTA" parseString="CREATE LOCALLY HAZARDOUS SEAS. SEEK SAFE HARBOR IMMEDIATELY"/>
|
||||
<bullet bulletName="lightningCTA" bulletText="Frequent lightning CTA" parseString="FREQUENT LIGHTNING IS OCCURRING WITH"/>
|
||||
|
|
4
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/impactTornadoWarning.xml
Executable file → Normal file
4
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/impactTornadoWarning.xml
Executable file → Normal file
|
@ -144,7 +144,7 @@ turned on unless the corresponding .vm file is turned on in a given template's .
|
|||
<bullet bulletName="replacesSVRCTA" bulletText="TOR Replaces Severe Thunderstorm Warning" parseString="TORNADO WARNING REPLACES THE SEVERE"/>
|
||||
<!-- There are two "default" safety rules. The first...which will probably be used by most offices...includes safety rules for mobile homes. The second...which is commented out...is for large urban areas that
|
||||
do not have mobile homes. If you wish to switch defaults or provide a single option, add comment tags as necessary and adjust the bulletDefault="true" as appropriate if both options are allowed -->
|
||||
<bullet bulletName="defaultMobileCTA" bulletText="Default safety rules - includes mobile homes" parseString="IF YOU ARE OUTDOORS, IN A MOBILE HOME, OR IN A VEHICLE" bulletDefault="true" bulletGroup="cta1"/>
|
||||
<bullet bulletName="defaultMobileCTA" bulletText="Default safety rules - includes mobile homes" parseString=""AVOID WINDOWS. IF YOU ARE OUTDOORS","MOBILE HOME","VEHICLE"" bulletDefault="true" bulletGroup="cta1"/>
|
||||
<bullet bulletName="defaultUrbanCTA" bulletText="Default safety rules for urban - no mobile homes" parseString="IF YOU ARE OUTDOORS OR IN A VEHICLE" bulletGroup="cta1"/>
|
||||
<bullet bulletName="motoristsCTA" bulletText="Safety rules for motorists" parseString="MOTORISTS SHOULD NOT TAKE SHELTER UNDER"/>
|
||||
<bullet bulletName="rainWrappedCTA" bulletText="Rain wrapped tornado" parseString="HEAVY RAINFALL MAY HIDE THIS TORNADO"/>
|
||||
|
@ -217,7 +217,7 @@ do not have mobile homes. If you wish to switch defaults or provide a single opt
|
|||
<bullet bulletName="replacesSVRCTA" bulletText="TOR Replaces Severe Thunderstorm Warning" parseString="TORNADO WARNING REPLACES THE SEVERE"/>
|
||||
<!-- There are two "default" safety rules. The first...which will probably be used by most offices...includes safety rules for mobile homes. The second...which is commented out...is for large urban areas that
|
||||
do not have mobile homes. If you wish to switch defaults or provide a single option, add comment tags as necessary and adjust the bulletDefault="true" as appropriate if both options are allowed -->
|
||||
<bullet bulletName="defaultMobileCTA" bulletText="Default safety rules - includes mobile homes" parseString="IF YOU ARE OUTDOORS, IN A MOBILE HOME, OR IN A VEHICLE" bulletGroup="cta1"/>
|
||||
<bullet bulletName="defaultMobileCTA" bulletText="Default safety rules - includes mobile homes" parseString=""AVOID WINDOWS. IF YOU ARE OUTDOORS","MOBILE HOME","VEHICLE"" bulletGroup="cta1"/>
|
||||
<bullet bulletName="defaultUrbanCTA" bulletText="Default safety rules for urban - no mobile homes" parseString="IF YOU ARE OUTDOORS OR IN A VEHICLE" bulletGroup="cta1"/>
|
||||
<bullet bulletName="motoristsCTA" bulletText="Safety rules for motorists" parseString="MOTORISTS SHOULD NOT TAKE SHELTER UNDER"/>
|
||||
<bullet bulletName="rainWrappedCTA" bulletText="Rain wrapped tornado" parseString="HEAVY RAINFALL MAY HIDE THIS TORNADO"/>
|
||||
|
|
18
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/nonConvectiveFlashFloodWarning.xml
Executable file → Normal file
18
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/nonConvectiveFlashFloodWarning.xml
Executable file → Normal file
|
@ -142,12 +142,12 @@ Alaska end -->
|
|||
<bullet bulletName="floodMoving" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="****** CALLS TO ACTION (choose 1 or more) ******" bulletType="title"/>
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
@ -227,12 +227,12 @@ Alaska end -->
|
|||
<bullet bulletName="floodMoving" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="****** CALLS TO ACTION (choose 1 or more) ******" bulletType="title"/>
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
@ -310,12 +310,12 @@ Alaska end -->
|
|||
<bullet bulletName="floodMoving" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="****** CALLS TO ACTION (choose 1 or more) ******" bulletType="title"/>
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
|
12
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/nonConvectiveFlashFloodWarningFollowup.xml
Executable file → Normal file
12
edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/nonConvectiveFlashFloodWarningFollowup.xml
Executable file → Normal file
|
@ -233,12 +233,12 @@ Alaska end -->
|
|||
<bullet bulletName="floodMoving" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="****** CALLS TO ACTION (choose 1 or more) ******" bulletType="title"/>
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
@ -329,12 +329,12 @@ Alaska end -->
|
|||
<bullet bulletName="floodMoving" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="****** CALLS TO ACTION (choose 1 or more) ******" bulletType="title"/>
|
||||
<bullet bulletName="ffwEmergencyCTA" bulletText="FLASH FLOOD EMERGENCY" parseString=" DO NOT ATTEMPT TO TRAVEL UNLESS YOU ARE FLEEING AN AREA SUBJECT TO FLOODING OR ARE UNDER AN EVACUATION ORDER"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString="TURN AROUND, DON'T DROWN"/>
|
||||
<bullet bulletName="TADD_CTA" bulletText="Turn around, don't drown" parseString=""TURN AROUND","DON'T DROWN""/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly" parseString="ACT QUICKLY TO PROTECT YOUR LIFE"/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety" parseString="KEEP CHILDREN AWAY"/>
|
||||
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="AT NIGHT WHEN IT IS HARDER TO RECOGNIZE"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString="URBAN AREAS, HIGHWAYS, STREETS AND UNDERPASSES"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="COUNTRY ROADS, FARMLAND, AND OTHER LOW LYING SPOTS"/>
|
||||
<bullet bulletName="urbanCTA" bulletText="Urban areas" parseString=""URBAN AREAS","HIGHWAYS","UNDERPASSES""/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString=""COUNTRY ROADS","FARMLAND","LOW LYING SPOTS""/>
|
||||
<bullet bulletName="stayAwayCTA" bulletText="Stay away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="lowSpotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos" parseString="ARROYOS"/>
|
||||
|
|
|
@ -44,7 +44,6 @@ import java.util.regex.Pattern;
|
|||
* 20071203 410 jkorman JavaDoc complaints.
|
||||
* Jul 10, 2009 2191 rjpeter Added getTtaaii.
|
||||
* May 14, 2014 2536 bclement moved WMO Header to common, removed TimeTools usage
|
||||
* Mar 22, 2016 DR18763 mgamazaychikov Changed WMO_HEADER regular expression string.
|
||||
* </pre>
|
||||
*
|
||||
* @author jkorman
|
||||
|
@ -54,7 +53,7 @@ public class WMOHeader {
|
|||
|
||||
public static final String INGEST_FILE_NAME = "ingestfilename";
|
||||
|
||||
public static final String WMO_HEADER = "[A-Z]{3}[A-Z0-9](?:\\d{0,2}|[A-Z]{0,2}) [A-Z0-9]{4} \\d{6}(?: [A-Z]{3})?[^\\r\\n]*[\\r]{2}[\\n]";
|
||||
public static final String WMO_HEADER = "[A-Z]{3}[A-Z0-9](?:\\d{0,2}|[A-Z]{0,2}) [A-Z0-9]{4} \\d{6}(?: [A-Z]{3})?[^\\r\\n]*[\\r\\n]+";
|
||||
|
||||
private static final Pattern WMO_HEADER_PATTERN = Pattern
|
||||
.compile(WMO_HEADER);
|
||||
|
|
|
@ -31,4 +31,12 @@
|
|||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.edex.plugin.binlightning.legacy"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
fragment="true"
|
||||
unpack="false"/>
|
||||
|
||||
</feature>
|
||||
|
|
|
@ -109,6 +109,7 @@ import com.vividsolutions.jts.geom.Polygon;
|
|||
* Aug 26, 2015 4777 dhladky Fixed bug in DPR accumulations.
|
||||
* Sep 28, 2015 4756 dhladky Multiple Guidance upgrades.
|
||||
* Feb 04, 2016 5311 dhladky Bug in creation of source bins fixed.
|
||||
* Apr 07, 2016 5491 tjensen Fix NullPointerException from getRawGeometries
|
||||
* </pre>
|
||||
*
|
||||
* @author dhladky
|
||||
|
@ -377,7 +378,8 @@ public class FFMPProcessor {
|
|||
} else {
|
||||
if (checkLockStatus()) {
|
||||
lock();
|
||||
if (cwaGeometries == null) {
|
||||
if (cwaGeometries == null
|
||||
|| cwaGeometries.isEmpty()) {
|
||||
cwaGeometries = template
|
||||
.getRawGeometries(dataKey,
|
||||
domain.getCwa());
|
||||
|
@ -902,7 +904,7 @@ public class FFMPProcessor {
|
|||
}
|
||||
} else {
|
||||
|
||||
if (cwaGeometries == null) {
|
||||
if (cwaGeometries == null || cwaGeometries.isEmpty()) {
|
||||
cwaGeometries = template.getRawGeometries(dataKey, cwa);
|
||||
}
|
||||
|
||||
|
@ -1007,7 +1009,7 @@ public class FFMPProcessor {
|
|||
}
|
||||
} else {
|
||||
|
||||
if (cwaGeometries == null) {
|
||||
if (cwaGeometries == null || cwaGeometries.isEmpty()) {
|
||||
cwaGeometries = template.getRawGeometries(dataKey, cwa);
|
||||
}
|
||||
|
||||
|
@ -1222,7 +1224,7 @@ public class FFMPProcessor {
|
|||
}
|
||||
} else {
|
||||
|
||||
if (cwaGeometries == null) {
|
||||
if (cwaGeometries == null || cwaGeometries.isEmpty()) {
|
||||
cwaGeometries = template.getRawGeometries(siteKey, cwa);
|
||||
}
|
||||
|
||||
|
|
|
@ -316,13 +316,7 @@
|
|||
</rule>
|
||||
<!-- Purge rules for MRMS -->
|
||||
<rule regex="true">
|
||||
<keyValue>MRMS_(?:05|10)00</keyValue>
|
||||
<versionsToKeep>120</versionsToKeep>
|
||||
<period>03-00:00:00</period>
|
||||
</rule>
|
||||
<rule>
|
||||
<keyValue>MRMS_5000</keyValue>
|
||||
<versionsToKeep>120</versionsToKeep>
|
||||
<period>03-00:00:00</period>
|
||||
<keyValue>MRMS_(?:05|10|50)00</keyValue>
|
||||
<period>00-08:00:00</period>
|
||||
</rule>
|
||||
</purgeRuleSet>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
dbhost = "dx1f"
|
||||
dbuser = "awips"
|
||||
dbpass = ""
|
||||
nrldb_host = "165.92.28.1"
|
||||
nrldb_host = "<set to ip address of host>"
|
||||
site = "CCC"
|
||||
dbname = "hd_ob92ccc"
|
||||
|
|
|
@ -305,7 +305,7 @@
|
|||
<site-type>wfo</site-type>
|
||||
<ini-substitutions>
|
||||
<max-memory>
|
||||
<value>2560M</value>
|
||||
<value>6144M</value>
|
||||
</max-memory>
|
||||
|
||||
<max-perm>
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
|
||||
# Great Lakes
|
||||
NNEXRAD ^(SDUS[234578].|NXUS6.) (K|P|T)(APX|LOT|DTX|DLH|GRR|GRB|ARX|MQT|MKX|DVN|IWX) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)(...)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# Ohio River Valley
|
||||
NNEXRAD ^(SDUS[234578].|NXUS6.) (K|P|T)(PAH|JKL|IND|LMK|ILX|MEG|OHX) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)(...)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# Northern Plains
|
||||
NNEXRAD ^(SDUS[234578].|NXUS6.) (K|P|T)(ABR|BIS|DMX|FGF|GLD|GID|EAX|MPX|LBF|OAX|UNR|FSD|TOP) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)(...)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# Southern Plains
|
||||
NNEXRAD ^(SDUS[234578].|NXUS6.) (K|P|T)(LSX|DDC|SGF|ICT|LUB|AMA|SJT|EWX|OUN|FWD|TSA|LZK|SHV) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)(...)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# Rockies
|
||||
NNEXRAD ^(SDUS[234578].) (K|P|T)(CYS|BOU|GJT|PUB|GGW|BYZ|RIW|TFX|ABQ|MSO|PIH|SLC|FGZ) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)(...)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# CA, OR, WA
|
||||
NNEXRAD ^(SDUS[234578].) (K|P|T)(HNX|SGX|SEW|PQR|PDT|MFR|EKA|MTR|STO|OTX|LOX) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)(...)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# OCONUS
|
||||
#NNEXRAD ^(SDUS[234578].) (K|P|T)(HFO|GUM|JSJ|AJK|AFC|AFG|ACR) (..)(..)(..) /p(N0Q|N0U|NST)(...)
|
||||
# FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# ID, NV, UT, AZ
|
||||
NNEXRAD ^(SDUS[234578].) (K|P|T)(BOI|REV|LKN|VEF|PSR|TWC) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# New England
|
||||
NNEXRAD ^(SDUS[234578].) (K|P|T)(CAR|GYX|BTV|BOX) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)(...)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# Mid Atlantic
|
||||
NNEXRAD ^(SDUS[234578].) (K|P|T)(ALY|BGM|BUF|CTP|PHI|PBZ|OKX) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)(...)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# Northern South Atlantic
|
||||
NNEXRAD ^(SDUS[234578].) (K|P|T)(RLX|LWX|AKQ|RNK|RAH|MHX|ILM) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)(...)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# Southern South Atlantic
|
||||
NNEXRAD ^(SDUS[234578].) (K|P|T)(CHS|CAE|FFC|GSP|TAE|JAX|MLB|TBW|MFL|KEY) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)(...)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# East South Central
|
||||
NNEXRAD ^(SDUS[234578].) (K|P|T)(MOB|JAN|BMX|HUN) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)(...)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
||||
|
||||
# West South Central
|
||||
NNEXRAD ^(SDUS[234578].) (K|P|T)(LIX|LCH|HGX|CRP|BRO|EPZ|MAF) (..)(..)(..) /p(N0Q|N1Q|N0U|N1U|NST|TZL|TR1|TV1|NCR)(...)
|
||||
FILE -overwrite -log -close -edex /data_store/radar/\2\8/\7/\1_\5\6_\2\8_\7_(seq).rad
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue