Merge branch 'master_16.2.1' into master_16.2.1-lx

Former-commit-id: c7c025042c718217242254e2b3d3049931ca99f9
This commit is contained in:
Shawn.Hooper 2016-04-11 15:23:45 -04:00
commit 672be59626
22 changed files with 603 additions and 184 deletions

View file

@ -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)

View file

@ -49,6 +49,7 @@ 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,6 +100,7 @@ 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()
* Apr 07, 2016 DR18763 mgamazaychikov Switched to using LightningWMOHeader.
*
* </pre>
*
@ -170,7 +172,7 @@ public class BinLightningDecoder extends AbstractDecoder {
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);
@ -360,7 +362,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 +400,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,
@ -562,7 +564,7 @@ public class BinLightningDecoder extends AbstractDecoder {
* @return
*/
public static List<LightningStrikePoint> decodeBitShiftedBinLightningData(
byte[] pdata, WMOHeader wmoHdr) {
byte[] pdata, LightningWMOHeader wmoHdr) {
List<LightningStrikePoint> strikes = new ArrayList<LightningStrikePoint>();
IBinDataSource msgData = new LightningDataSource(pdata);

View file

@ -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;
}
}
}

View file

@ -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);

View file

@ -93,6 +93,7 @@ import com.vividsolutions.jts.io.WKBReader;
* 07/15/13 2184 dhladky Remove all HUC's for storage except ALL
* Nov 18, 2014 3831 dhladky StatusHandler logging. Proper list sizing. Geometry chunk sizing.
* Aug 08, 2015 4722 dhladky Improved Grid support.
* Apr 07, 2016 5491 tjensen Fix NullPointerException from getRawGeometries
* </pre>
*
* @author dhladky
@ -163,7 +164,7 @@ public class FFMPTemplates {
.getHandler(FFMPTemplates.class);
private final IPathManager pathManager;
/**
* Single constructor
*
@ -362,11 +363,12 @@ public class FFMPTemplates {
*/
private LinkedHashMap<String, FFMPVirtualGageBasinMetaData> readVGBFile(
String name, String cwa, String dataKey) {
HashMap<String, FFMPVirtualGageBasinMetaData> protoMap = readVGBDomainMap(
dataKey, cwa);
String[] list = readVGBDomainList(dataKey, cwa);
LinkedHashMap<String, FFMPVirtualGageBasinMetaData> map = new LinkedHashMap<String, FFMPVirtualGageBasinMetaData>(list.length, 1.0f);
LinkedHashMap<String, FFMPVirtualGageBasinMetaData> map = new LinkedHashMap<>(
list.length, 1.0f);
// construct ordered map
for (String lid : list) {
@ -416,13 +418,17 @@ public class FFMPTemplates {
list = null;
} catch (SerializationException se) {
statusHandler.error("Serialization Exception: Write VGB: cwa: "+cwa+" dataKey: "+dataKey, se);
statusHandler.error("Serialization Exception: Write VGB: cwa: "
+ cwa + " dataKey: " + dataKey, se);
} catch (FileNotFoundException fnfe) {
statusHandler.error("File Not found Exception: Write VGB: cwa: "+cwa+" dataKey: "+dataKey, fnfe);
statusHandler.error("File Not found Exception: Write VGB: cwa: "
+ cwa + " dataKey: " + dataKey, fnfe);
} catch (IOException ioe) {
statusHandler.error("IO Exception: Write VGB: cwa: "+cwa+" dataKey: "+dataKey, ioe);
statusHandler.error("IO Exception: Write VGB: cwa: " + cwa
+ " dataKey: " + dataKey, ioe);
} catch (LocalizationOpFailedException e) {
statusHandler.error("Localization Exception: Write VGB: cwa: "+cwa+" dataKey: "+dataKey, e);
statusHandler.error("Localization Exception: Write VGB: cwa: "
+ cwa + " dataKey: " + dataKey, e);
}
}
@ -489,13 +495,19 @@ public class FFMPTemplates {
list = null;
} catch (SerializationException se) {
statusHandler.error("Serialization Exception: Write Template: cwa: "+cwa+" dataKey:"+dataKey+" huc: "+huc, se);
statusHandler.error(
"Serialization Exception: Write Template: cwa: " + cwa
+ " dataKey:" + dataKey + " huc: " + huc, se);
} catch (FileNotFoundException fnfe) {
statusHandler.error("File Not found Exception: Write Template: cwa: "+cwa+" dataKey:"+dataKey+" huc: "+huc, fnfe);
statusHandler.error(
"File Not found Exception: Write Template: cwa: " + cwa
+ " dataKey:" + dataKey + " huc: " + huc, fnfe);
} catch (IOException ioe) {
statusHandler.error("IO Exception: Write Template: cwa: "+cwa+" dataKey:"+dataKey+" huc: "+huc, ioe);
statusHandler.error("IO Exception: Write Template: cwa: " + cwa
+ " dataKey:" + dataKey + " huc: " + huc, ioe);
} catch (LocalizationOpFailedException e) {
statusHandler.error("Localization Exception: Write Template: cwa: "+cwa+" dataKey:"+dataKey+" huc: "+huc, e);
statusHandler.error("Localization Exception: Write Template: cwa: "
+ cwa + " dataKey:" + dataKey + " huc: " + huc, e);
}
}
@ -846,7 +858,8 @@ public class FFMPTemplates {
}
}
} catch (Exception e) {
statusHandler.error("Find Basin by lon lat failed: dataKey: "+dataKey+ " coor:"+coor.toString(), e);
statusHandler.error("Find Basin by lon lat failed: dataKey: "
+ dataKey + " coor:" + coor.toString(), e);
}
return null;
@ -1010,7 +1023,8 @@ public class FFMPTemplates {
}
} catch (Exception e) {
statusHandler.error("Failed to lookup County: dataKey: "+dataKey, e);
statusHandler.error("Failed to lookup County: dataKey: " + dataKey,
e);
}
FFMPCounties counties = new FFMPCounties(countyList);
@ -1085,16 +1099,16 @@ public class FFMPTemplates {
Rectangle rect = null;
rect = HRAPCoordinates.getHRAPCoordinates();
rect.setBounds(rect.x * primeSource.getHrapGridFactor(), rect.y
* primeSource.getHrapGridFactor(), rect.width
* primeSource.getHrapGridFactor(), rect.height
* primeSource.getHrapGridFactor());
rect = HRAPCoordinates.getHRAPCoordinates();
rect.setBounds(rect.x * primeSource.getHrapGridFactor(), rect.y
* primeSource.getHrapGridFactor(),
rect.width * primeSource.getHrapGridFactor(), rect.height
* primeSource.getHrapGridFactor());
HRAPSubGrid hrapgrid = new HRAPSubGrid(rect,
primeSource.getHrapGridFactor());
Geometry geo = hrapgrid.getGeometry();
siteExtents = FFMPUtils.getGeometryText(geo);
HRAPSubGrid hrapgrid = new HRAPSubGrid(rect,
primeSource.getHrapGridFactor());
Geometry geo = hrapgrid.getGeometry();
siteExtents = FFMPUtils.getGeometryText(geo);
} else if (primeSource.getDataType().equals(
FFMPSourceConfigurationManager.DATA_TYPE.RADAR.getDataType())) {
@ -1108,7 +1122,8 @@ public class FFMPTemplates {
} else if (primeSource.getDataType().equals(
FFMPSourceConfigurationManager.DATA_TYPE.GRID.getDataType())) {
// extract the Grid Coverage for use in site extents creation
GridCoverage coverage = FFMPUtils.getGridCoverageRecord(primeSource.getDataPath());
GridCoverage coverage = FFMPUtils.getGridCoverageRecord(primeSource
.getDataPath());
siteExtents = FFMPUtils.getGeometryText(coverage.getGeometry());
} else if (primeSource.getDataType().equals(
FFMPSourceConfigurationManager.DATA_TYPE.PDO.getDataType())) {
@ -1170,7 +1185,9 @@ public class FFMPTemplates {
getMaxExtent(), getSiteExtents(dataKey),
mode.getMode()));
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM, "Unable to create FFMP Template for this dataKey: "+dataKey, e);
statusHandler.handle(Priority.PROBLEM,
"Unable to create FFMP Template for this dataKey: "
+ dataKey, e);
}
} else if (huc.equals(FFMPRecord.COUNTY)) {
list = getCountyFips(cwa, dataKey);
@ -1243,7 +1260,8 @@ public class FFMPTemplates {
primary = true;
}
if (rawGeometries == null) {
if (rawGeometries == null
|| rawGeometries.isEmpty()) {
rawGeometries = getRawGeometries(dataKey, cwa);
}
@ -1745,19 +1763,19 @@ public class FFMPTemplates {
SoftReference<Map<Long, Geometry>> rawGeomRef = cwaRawGeometries
.get(compositeKey);
Map<Long, Geometry> pfafGeometries = null;
if (rawGeomRef != null) {
pfafGeometries = rawGeomRef.get();
}
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));
}
for (int i = 0; i < results.length; i++) {
Object[] row = (Object[]) results[i];
basin = FFMPUtils.getMetaDataBasin(row, mode.getMode());
@ -1772,12 +1790,14 @@ public class FFMPTemplates {
if ((row.length >= (upstreamDepth + 9))
&& (row[upstreamDepth + 9] != null)) {
try {
pfafGeometries.put(basin.getPfaf(), reader
.read((byte[]) row[upstreamDepth + 9])
.buffer(0));
pfafGeometries.put(basin.getPfaf(),
reader.read((byte[]) row[upstreamDepth + 9])
.buffer(0));
} catch (Exception e) {
statusHandler.error("Failure to add rawGeometry in loadBasins: "+siteKey, e);
statusHandler.error(
"Failure to add rawGeometry in loadBasins: "
+ siteKey, e);
}
}
}
@ -1995,9 +2015,11 @@ public class FFMPTemplates {
list = SerializationUtil.transformFromThrift(long[].class,
FileUtil.file2bytes(f.getFile(), true));
} catch (SerializationException se) {
statusHandler.error("Serialization Exception: Read Domain: cwa: "+cwa+" dataKey: "+dataKey+" huc: "+huc, se);
statusHandler.error("Serialization Exception: Read Domain: cwa: "
+ cwa + " dataKey: " + dataKey + " huc: " + huc, se);
} catch (IOException e) {
statusHandler.error("IO Exception: Read Domain: cwa: "+cwa+" dataKey: "+dataKey+" huc: "+huc, e);
statusHandler.error("IO Exception: Read Domain: cwa: " + cwa
+ " dataKey: " + dataKey + " huc: " + huc, e);
}
return list;
@ -2032,9 +2054,11 @@ public class FFMPTemplates {
FileUtil.file2bytes(f.getFile(), true));
}
} catch (SerializationException se) {
statusHandler.error("Serialization Exception: Domain Map: "+dataKey+" cwa:"+cwa+" huc: "+huc, se);
statusHandler.error("Serialization Exception: Domain Map: "
+ dataKey + " cwa:" + cwa + " huc: " + huc, se);
} catch (IOException e) {
statusHandler.error("IO Exception: Domain Map: "+dataKey+" cwa:"+cwa+" huc: "+huc, e);
statusHandler.error("IO Exception: Domain Map: " + dataKey
+ " cwa:" + cwa + " huc: " + huc, e);
}
return map;
@ -2063,9 +2087,11 @@ public class FFMPTemplates {
.transformFromThrift(HashMap.class,
FileUtil.file2bytes(f.getFile(), true));
} catch (SerializationException se) {
statusHandler.error("Serialization Exception: Virtual Basins: "+dataKey+" cwa: "+cwa, se);
statusHandler.error("Serialization Exception: Virtual Basins: "
+ dataKey + " cwa: " + cwa, se);
} catch (IOException e) {
statusHandler.error("IO Exception: Virtual Basins: "+dataKey+" cwa: "+cwa, e);
statusHandler.error("IO Exception: Virtual Basins: " + dataKey
+ " cwa: " + cwa, e);
}
return map;
@ -2091,9 +2117,12 @@ public class FFMPTemplates {
list = SerializationUtil.transformFromThrift(String[].class,
FileUtil.file2bytes(f.getFile(), true));
} catch (SerializationException se) {
statusHandler.error("Serialization Exception: : Read Virtual Domain: cwa: "+cwa+" dataKey: "+dataKey, se);
statusHandler.error(
"Serialization Exception: : Read Virtual Domain: cwa: "
+ cwa + " dataKey: " + dataKey, se);
} catch (IOException e) {
statusHandler.error("IO Exception: : Read Virtual Domain: cwa: "+cwa+" dataKey: "+dataKey, e);
statusHandler.error("IO Exception: : Read Virtual Domain: cwa: "
+ cwa + " dataKey: " + dataKey, e);
}
return list;
@ -2151,14 +2180,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));
}
@ -2362,10 +2392,14 @@ public class FFMPTemplates {
if (res >= 0.004) {
try {
list = FFMPUtils.getUniqueCountyFips(cwa, getMaxExtent(),
getSiteExtents(dataKey), mode.getMode(), resolution);
list = FFMPUtils
.getUniqueCountyFips(cwa, getMaxExtent(),
getSiteExtents(dataKey), mode.getMode(),
resolution);
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM, "Unable to create FFMP Template for this dataKey: "+dataKey, e);
statusHandler.handle(Priority.PROBLEM,
"Unable to create FFMP Template for this dataKey: "
+ dataKey, e);
}
if (list.size() > 0) {

View file

@ -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;

View file

@ -159,14 +159,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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="&quot;ARROYOS&quot;,&quot; STREAMS&quot;,&quot;CURRENTS&quot;"/>
<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"/>
@ -218,14 +218,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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="&quot;ARROYOS&quot;,&quot; STREAMS&quot;,&quot;CURRENTS&quot;"/>
<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"/>
@ -277,14 +277,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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="&quot;ARROYOS&quot;,&quot; STREAMS&quot;,&quot;CURRENTS&quot;"/>
<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"/>

View file

@ -191,14 +191,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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="&quot;ARROYOS&quot;,&quot; STREAMS&quot;,&quot;CURRENTS&quot;"/>
<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"/>
@ -249,14 +249,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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="&quot;ARROYOS&quot;,&quot; STREAMS&quot;,&quot;CURRENTS&quot;"/>
<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"/>

View file

@ -158,12 +158,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>
@ -219,12 +219,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>
@ -280,12 +280,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>

View file

@ -203,12 +203,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>
@ -265,12 +265,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>

View file

@ -136,12 +136,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>
@ -194,12 +194,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>
@ -257,12 +257,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>

View file

@ -159,12 +159,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>
@ -217,12 +217,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>

View file

@ -148,12 +148,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>
@ -202,12 +202,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>
@ -256,12 +256,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>

View file

@ -150,12 +150,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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 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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>

View file

@ -261,7 +261,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="&quot;AVOID WINDOWS. IF YOU ARE OUTDOORS&quot;,&quot;MOBILE HOME&quot;,&quot;VEHICLE&quot;" 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"/>
@ -399,7 +399,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="&quot;AVOID WINDOWS. IF YOU ARE OUTDOORS&quot;,&quot;MOBILE HOME&quot;,&quot;VEHICLE&quot;" 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"/>

View file

@ -140,7 +140,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="&quot;DANGEROUS LIGHTNING&quot;,&quot;HIGH WAVES&quot;,&quot;HEAVY RAIN&quot;"/>
<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"/>
@ -199,7 +199,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="&quot;DANGEROUS LIGHTNING&quot;,&quot;HIGH WAVES&quot;,&quot;HEAVY RAIN&quot;"/>
<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"/>

View file

@ -188,7 +188,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="&quot;DANGEROUS LIGHTNING&quot;,&quot;HIGH WAVES&quot;,&quot;HEAVY RAIN&quot;"/>
<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"/>
@ -247,7 +247,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="&quot;DANGEROUS LIGHTNING&quot;,&quot;HIGH WAVES&quot;,&quot;HEAVY RAIN&quot;"/>
<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"/>

View file

@ -141,7 +141,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="&quot;AVOID WINDOWS. IF YOU ARE OUTDOORS&quot;,&quot;MOBILE HOME&quot;,&quot;VEHICLE&quot;" 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"/>
@ -214,7 +214,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="&quot;AVOID WINDOWS. IF YOU ARE OUTDOORS&quot;,&quot;MOBILE HOME&quot;,&quot;VEHICLE&quot;" 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"/>

View file

@ -139,12 +139,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>
@ -224,12 +224,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>
@ -307,12 +307,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>

View file

@ -230,12 +230,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>
@ -326,12 +326,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="&quot;TURN AROUND&quot;,&quot;DON'T DROWN&quot;"/>
<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="&quot;URBAN AREAS&quot;,&quot;HIGHWAYS&quot;,&quot;UNDERPASSES&quot;"/>
<bullet bulletName="ruralCTA" bulletText="Rural areas" parseString="&quot;COUNTRY ROADS&quot;,&quot;FARMLAND&quot;,&quot;LOW LYING SPOTS&quot;"/>
<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"/>

View file

@ -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);

View file

@ -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);
}