13.5.2-8 baseline

Former-commit-id: 18325949fb [formerly 94aa71fcd1 [formerly 6effdd3f5ce46910c89236306fa33499eada174f]]
Former-commit-id: 94aa71fcd1
Former-commit-id: 8ba7d392d6
This commit is contained in:
Steve Harris 2013-10-04 11:30:03 -04:00
parent cbda847929
commit 553238dca4
194 changed files with 3152 additions and 10434 deletions

View file

@ -28,24 +28,39 @@
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 07/25/08 njensen Initial Creation.
#
# 09/05/13 #2329 randerso Added error handling
#
#
import sys
import sys, traceback, os, time, LogStream
from java.util import ArrayList
def getCombinations(comboName):
outercombos = ArrayList()
cmd = "md = __import__(\"" + comboName + "\")"
exec cmd
comList = md.Combinations
for i in comList:
combos = ArrayList()
innerList = i[0]
for zone in innerList:
combos.add(zone)
outercombos.add(combos)
return outercombos
try:
outercombos = ArrayList()
md = __import__(comboName)
comList = md.Combinations
for i in comList:
combos = ArrayList()
innerList = i[0]
for zone in innerList:
combos.add(zone)
outercombos.add(combos)
return outercombos
except AttributeError as e:
filename = md.__file__
if filename.endswith("pyc") or filename.endswith("pyo"):
filename = filename[:-1]
with open(filename,'r') as fd:
filecontents = fd.read()
LogStream.logProblem("\nERROR loading combinations file: "+ comboName +
"\nmd.__file__: " + md.__file__ +
"\ndir(md): " + str(dir(md)) +
"\n" + md.__file__ + " last modified: " + time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(os.path.getmtime(md.__file__))) +
"\n" + filename + " last modified: " + time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(os.path.getmtime(filename))) +
"\nContents of " + filename + "\n" + filecontents)
raise e

View file

@ -13,7 +13,7 @@
<dfltGeogArea>BasicWX_US</dfltGeogArea>
<resourceParameters>
pluginName=grid
GDFILE=FFG-TIR-HiRes
GDFILE=FFG-TIR
</resourceParameters>
<inventoryEnabled>true</inventoryEnabled>

View file

@ -5,7 +5,7 @@
<resourceCategory>RADAR</resourceCategory>
<resourceParameters>
pluginName=radar
format=Radial,Raster,Graphic
format=Radial,Raster
legendColor=RGB {200, 200, 200}
</resourceParameters>
<rscImplementation>LocalRadar</rscImplementation>

View file

@ -61,6 +61,8 @@ import com.raytheon.viz.gfe.textformatter.TextProductManager;
* 26 SEP 2012 15423 ryu Fix product correction in practice mode
* 15 MAY 2013 1842 dgilling Change constructor signature to accept a
* DataManager instance.
* 05 SEP 2013 2329 randerso Added call to ZoneCombinerComp.applyZoneCombo when
* when run formatter button is clicked.
*
* </pre>
*
@ -386,12 +388,12 @@ public class ProductAreaComp extends Composite implements
// use
// it, else use the default
String dbId = null;
// zoneCombinerComp.compactList();
zoneCombiner.applyZoneCombo();
dbId = ((FormatterLauncherDialog) productTabCB)
.getSelectedDataSource(productName);
FormatterUtil.runFormatterScript(textProductMgr,
productName, zoneCombiner.getZoneGroupings(),
dbId, vtecMode, ProductAreaComp.this);
productName, dbId, vtecMode,
ProductAreaComp.this);
}
}
});

View file

@ -22,16 +22,12 @@ package com.raytheon.viz.gfe.dialogs.formatterlauncher;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.regex.Matcher;
import org.eclipse.jface.preference.IPreferenceStore;
@ -61,6 +57,7 @@ import org.opengis.referencing.FactoryException;
import org.opengis.referencing.operation.TransformException;
import com.raytheon.uf.common.dataplugin.gfe.db.objects.GridLocation;
import com.raytheon.uf.common.dataplugin.gfe.exception.GfeException;
import com.raytheon.uf.common.localization.FileUpdatedMessage;
import com.raytheon.uf.common.localization.FileUpdatedMessage.FileChangeType;
import com.raytheon.uf.common.localization.ILocalizationFileObserver;
@ -70,21 +67,17 @@ import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.localization.exception.LocalizationOpFailedException;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.util.FileUtil;
import com.raytheon.uf.common.util.file.FilenameFilters;
import com.raytheon.uf.viz.core.RGBColors;
import com.raytheon.uf.viz.core.VizApp;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.viz.gfe.Activator;
import com.raytheon.viz.gfe.core.DataManagerUIFactory;
import com.raytheon.viz.gfe.textformatter.CombinationsFileGenerator;
import com.raytheon.viz.gfe.textformatter.CombinationsFileUtil;
import com.raytheon.viz.gfe.textformatter.TextProductManager;
import com.raytheon.viz.gfe.ui.AccessMgr;
import com.raytheon.viz.gfe.ui.zoneselector.ZoneSelector;
/**
@ -100,8 +93,9 @@ import com.raytheon.viz.gfe.ui.zoneselector.ZoneSelector;
* Changes for non-blocking SaveDeleteComboDlg.
* Changes for non-blocking ShuffleZoneGroupsDialog.
* Changes for non-blocking ZoneColorEditorDlg.
*
* Mar 14, 2013 1794 djohnson Consolidate common FilenameFilter implementations.
* Sep 05, 2013 2329 randerso Removed obsolete methods, added ApplyZoneCombo method
*
* </pre>
*
* @author lvenable
@ -307,6 +301,8 @@ public class ZoneCombinerComp extends Composite implements
createMapArea(theSaved);
createBottomControls();
applyButtonState(false);
}
/**
@ -455,6 +451,7 @@ public class ZoneCombinerComp extends Composite implements
@Override
public void widgetSelected(SelectionEvent e) {
zoneSelector.updateCombos(new HashMap<String, Integer>());
applyButtonState(false);
}
});
clearMI.setText("Clear");
@ -731,14 +728,7 @@ public class ZoneCombinerComp extends Composite implements
applyZoneComboBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
try {
CombinationsFileGenerator.generateAutoCombinationsFile(
zoneSelector.getZoneGroupings(),
getCombinationsFileName() + ".py");
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM, "Unable to save "
+ getCombinationsFileName(), e);
}
applyZoneCombo();
}
});
Label label = new Label(controlComp, SWT.CENTER);
@ -754,6 +744,25 @@ public class ZoneCombinerComp extends Composite implements
label.setAlignment(SWT.CENTER);
}
/**
* Save zone combo
*/
public void applyZoneCombo() {
if (!buttonState()) {
return;
}
try {
CombinationsFileUtil.generateAutoCombinationsFile(
zoneSelector.getZoneGroupings(), getCombinationsFileName()
+ ".py");
applyButtonState(false);
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM, "Unable to save "
+ getCombinationsFileName(), e);
}
}
/**
* Display the Color Editor dialog.
*/
@ -845,93 +854,6 @@ public class ZoneCombinerComp extends Composite implements
return file;
}
/**
* Get the names of the combo files at the given level. If level is null,
* get the names of the combo files at all levels. Otherwise, only get the
* names of the files at the given level.
*
* @param level
* @return the save combo files at the given level
*/
public String[] getSavedCombos(LocalizationLevel level) {
String comboDirName = "saved";
String[] combos;
File localFile;
// Accept any file whose name ends with ".py".
FilenameFilter filter = FilenameFilters.byFileExtension(".py");
if (level == null) {
// Aggregate the filenames for all levels.
// Use a set to keep names unique.
Set<String> comboSet = new TreeSet<String>();
LocalizationLevel[] levels = PathManagerFactory.getPathManager()
.getAvailableLevels();
for (int i = levels.length - 1; i >= 0; --i) {
localFile = getLocalization(comboDirName, levels[i]);
if ((localFile != null) && localFile.exists()) {
comboSet.addAll(Arrays.asList(localFile.list(filter)));
}
}
combos = comboSet.toArray(new String[0]);
} else {
// Get only the filenames for USER level.
localFile = getLocalization(comboDirName);
combos = localFile.list(filter);
}
return combos;
}
/**
* Load the combinations file called filename if it is in list or
* filename.py is in list, and return the loaded file as a List of Lists of
* Strings.
*
* @param list
* The list of valid filenames
* @param filename
* The filename to load
* @return the contents of the file, as a List of Lists of Strings.
*/
// public List<List<String>> findCombos(String[] list, String filename) {
// List<List<String>> listOfCombos = null;
// for (int i = 0; i < list.length; i++) {
// if (list[i].equals(filename) || list[i].equals(filename + ".py")) {
// listOfCombos = loadCombinationsFile(filename);
// }
// }
// return listOfCombos;
// }
/**
* Deletes the saved file chosen
*
* @param name
* the combo file name
* @throws LocalizationOpFailedException
* if the server copy of the file cannot be deleted
*/
public void deleteSavedCombos(String name)
throws LocalizationOpFailedException {
String searchName = FileUtil.join(CombinationsFileUtil.COMBO_DIR_PATH,
"saved", name + ".py");
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext userContext = pm.getContext(
LocalizationType.CAVE_STATIC, LocalizationLevel.USER);
LocalizationFile userFile = pm.getLocalizationFile(userContext,
searchName);
if (AccessMgr.verifyDelete(userFile.getName(),
LocalizationType.CAVE_STATIC, false)) {
if (userFile.isAvailableOnServer()) {
userFile.delete();
} else if (userFile.exists()) {
File localFile = userFile.getFile();
localFile.delete();
}
}
}
/**
* Returns the localization for the save and delete functions. This is a
* wrapper around getLocalization(String, level).
@ -987,34 +909,40 @@ public class ZoneCombinerComp extends Composite implements
}
public Map<String, Integer> loadCombinationsFile(String comboName) {
List<List<String>> combolist = new ArrayList<List<String>>();
File localFile = PathManagerFactory.getPathManager().getStaticFile(
FileUtil.join(CombinationsFileUtil.COMBO_DIR_PATH, comboName
+ ".py"));
if (localFile != null) {
combolist = CombinationsFileUtil.init(comboName);
}
// reformat combinations into combo dictionary
Map<String, Integer> d = new HashMap<String, Integer>();
Map<String, Integer> dict = new HashMap<String, Integer>();
try {
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext ctx = pm.getContext(
LocalizationType.CAVE_STATIC, LocalizationLevel.SITE);
File localFile = pm.getFile(ctx, FileUtil.join(
CombinationsFileUtil.COMBO_DIR_PATH, comboName + ".py"));
List<List<String>> combolist = new ArrayList<List<String>>();
if (localFile != null && localFile.exists()) {
combolist = CombinationsFileUtil.init(comboName);
} else {
statusHandler.error("Combinations file does not found: "
+ comboName);
}
// reformat combinations into combo dictionary
int group = 1;
for (List<String> zonelist : combolist) {
for (String z : zonelist) {
d.put(z, group);
dict.put(z, group);
}
group += 1;
}
} catch (Exception e) {
statusHandler.handle(Priority.SIGNIFICANT,
"Combo file is not in combo format: " + comboName);
} catch (GfeException e) {
statusHandler.handle(Priority.SIGNIFICANT, e.getLocalizedMessage(),
e);
return new HashMap<String, Integer>();
}
currentComboFile = FileUtil.join(CombinationsFileUtil.COMBO_DIR_PATH,
comboName + ".py");
return d;
return dict;
}
/**
@ -1060,11 +988,12 @@ public class ZoneCombinerComp extends Composite implements
&& message.getFileName().equalsIgnoreCase(currentComboFile)) {
File file = new File(message.getFileName());
String comboName = file.getName().replace(".py", "");
if (file.getParent().endsWith("saved")) {
comboName = FileUtil.join("saved", comboName);
}
statusHandler
.info("Received FileUpdatedMessage for combinations file: "
+ comboName);
Map<String, Integer> comboDict = loadCombinationsFile(comboName);
this.zoneSelector.updateCombos(comboDict);
applyButtonState(false);
}
}
@ -1085,4 +1014,20 @@ public class ZoneCombinerComp extends Composite implements
});
}
}
private boolean buttonState() {
final boolean[] state = { false };
if (this.applyZoneComboBtn != null
&& !this.applyZoneComboBtn.isDisposed()) {
VizApp.runSync(new Runnable() {
@Override
public void run() {
state[0] = ZoneCombinerComp.this.applyZoneComboBtn
.isEnabled();
}
});
}
return state[0];
}
}

View file

@ -1,108 +0,0 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
/**
* Creating the combinations file for the TextFormatter
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
*6/12/2008 mnash Initial creation
*
* </pre>
*
* @author mnash
* @version 1
*/
package com.raytheon.viz.gfe.textformatter;
import java.io.File;
import java.io.IOException;
import java.util.List;
import com.raytheon.uf.common.dataplugin.gfe.request.SaveCombinationsFileRequest;
import com.raytheon.uf.common.localization.IPathManager;
import com.raytheon.uf.common.localization.LocalizationContext;
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel;
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.util.FileUtil;
import com.raytheon.viz.gfe.core.DataManager;
import com.raytheon.viz.gfe.core.internal.IFPClient;
public class CombinationsFileGenerator {
/**
* Generates combinations files based on just running the formatter
*
* @param zoneGroupList
* @param filename
* @throws IOException
*/
public static void generateAutoCombinationsFile(
List<List<String>> zoneGroupList, String filename) throws Exception {
generateCombinationsFile(zoneGroupList, filename, "");
}
/**
* Generates combinations files based on user wanting to save
*
* @param zoneGroupList
* @param filename
* @throws IOException
*/
public static void generateSavedCombinationsFile(
List<List<String>> zoneGroupList, String filename) throws Exception {
if (filename.endsWith(".py")) {
generateCombinationsFile(zoneGroupList, filename, "saved"
+ File.separator);
} else {
generateCombinationsFile(zoneGroupList, filename + ".py", "saved"
+ File.separator);
}
}
/**
* Called by both auto and saved functions to actually write file
*
* @param zoneGroupList
* @param filename
* @param loc
* @throws Exception
*/
public static void generateCombinationsFile(
List<List<String>> zoneGroupList, String filename, String loc)
throws Exception {
IFPClient ifpc = DataManager.getCurrentInstance().getClient();
SaveCombinationsFileRequest req = new SaveCombinationsFileRequest();
req.setFileName(FileUtil.join(loc, filename));
req.setCombos(zoneGroupList);
ifpc.makeRequest(req);
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext ctx = pm.getContext(LocalizationType.CAVE_STATIC,
LocalizationLevel.SITE);
pm.getFile(ctx, FileUtil.join("gfe", "combinations", filename));
}
}

View file

@ -20,6 +20,7 @@
package com.raytheon.viz.gfe.textformatter;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -33,7 +34,9 @@ import javax.xml.bind.annotation.XmlRootElement;
import jep.JepException;
import com.raytheon.uf.common.dataplugin.gfe.exception.GfeException;
import com.raytheon.uf.common.dataplugin.gfe.python.GfePyIncludeUtil;
import com.raytheon.uf.common.dataplugin.gfe.request.SaveCombinationsFileRequest;
import com.raytheon.uf.common.localization.IPathManager;
import com.raytheon.uf.common.localization.LocalizationContext;
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel;
@ -49,8 +52,9 @@ import com.raytheon.uf.common.serialization.SerializationException;
import com.raytheon.uf.common.serialization.SerializationUtil;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.util.FileUtil;
import com.raytheon.viz.gfe.core.DataManagerUIFactory;
import com.raytheon.viz.gfe.core.internal.IFPClient;
import com.raytheon.viz.gfe.textformatter.CombinationsFileUtil.ComboData.Entry;
/**
@ -60,7 +64,10 @@ import com.raytheon.viz.gfe.textformatter.CombinationsFileUtil.ComboData.Entry;
* SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jul 25, 2008 mnash Initial creation
* Jul 25, 2008 mnash Initial creation
* Sep 05, 2013 #2329 randerso Moved genereateAutoCombinationsFile here
* Cleaned up error handling
*
* </pre>
*
* @author mnash
@ -200,7 +207,7 @@ public class CombinationsFileUtil {
}
@SuppressWarnings("unchecked")
public static List<List<String>> init(String comboName) {
public static List<List<String>> init(String comboName) throws GfeException {
IPathManager pm = PathManagerFactory.getPathManager();
@ -211,7 +218,6 @@ public class CombinationsFileUtil {
File comboFile = new File(comboName);
comboName = comboFile.getName();
String comboPath = GfePyIncludeUtil.getCombinationsIncludePath();
String scriptPath = FileUtil.join(
GfePyIncludeUtil.getUtilitiesLF(baseContext).getFile()
.getPath(), "CombinationsInterface.py");
@ -221,13 +227,15 @@ public class CombinationsFileUtil {
map.put("comboName", comboName);
PythonScript python = null;
try {
python = new PythonScript(scriptPath,
PyUtil.buildJepIncludePath(comboPath));
python = new PythonScript(scriptPath, PyUtil.buildJepIncludePath(
GfePyIncludeUtil.getCombinationsIncludePath(),
GfePyIncludeUtil.getCommonPythonIncludePath()),
CombinationsFileUtil.class.getClassLoader());
Object com = python.execute("getCombinations", map);
combos = (List<List<String>>) com;
} catch (JepException e) {
statusHandler.handle(Priority.CRITICAL,
"Could not get combinations", e);
throw new GfeException("Error loading combinations file: "
+ comboName, e);
} finally {
if (python != null) {
python.dispose();
@ -235,4 +243,30 @@ public class CombinationsFileUtil {
}
return combos;
}
/**
* Generates combinations files based on just running the formatter
*
* @param zoneGroupList
* @param filename
* @throws Exception
* @throws IOException
*/
public static void generateAutoCombinationsFile(
List<List<String>> zoneGroupList, String filename) throws Exception {
IFPClient ifpc = DataManagerUIFactory.getCurrentInstance().getClient();
SaveCombinationsFileRequest req = new SaveCombinationsFileRequest();
req.setFileName(filename);
req.setCombos(zoneGroupList);
try {
statusHandler.info("Saving combinations file: " + filename);
ifpc.makeRequest(req);
statusHandler.info("Successfully saved combinations file: "
+ filename);
} catch (Exception e) {
statusHandler.error("Error saving combinations file: " + filename,
e);
throw e;
}
}
}

View file

@ -20,7 +20,6 @@
package com.raytheon.viz.gfe.textformatter;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.TimeZone;
import com.raytheon.uf.common.status.IUFStatusHandler;
@ -40,8 +39,9 @@ import com.raytheon.viz.gfe.tasks.TaskManager;
* SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Sep 8, 2008 njensen Initial creation
* Jan 15, 2010 3395 ryu Fix &quot;issued by&quot; functionality
* Sep 8, 2008 njensen Initial creation
* Jan 15, 2010 3395 ryu Fix &quot;issued by&quot; functionality
* Sep 05, 2013 2329 randerso Removed save of combinations file
*
* </pre>
*
@ -63,21 +63,20 @@ public class FormatterUtil {
* the formatter instance to use
* @param productName
* the name of the text product
* @param zoneList
* the list of zones to produce the product for
* @param dbId
* source database
* @param vtecMode
* VTEC mode
* @param finish
* listener to fire when formatter finishes generating product
*/
public static void runFormatterScript(TextProductManager productMgr,
String productName, List<List<String>> zoneList, String dbId,
String vtecMode, TextProductFinishListener finish) {
String productName, String dbId, String vtecMode,
TextProductFinishListener finish) {
try {
String filename = productMgr.getCombinationsFileName(productName);
boolean mapRequired = productMgr.mapRequired(productName);
if (filename != null && mapRequired) {
String filenameExt = filename + ".py";
CombinationsFileGenerator.generateAutoCombinationsFile(
zoneList, filenameExt);
productMgr.reloadModule(filename);
}
} catch (Exception e) {

View file

@ -47,7 +47,7 @@
<constraint constraintValue="grid" constraintType="EQUALS"/>
</mapping>
<mapping key="info.datasetId">
<constraint constraintValue="FFG-TUA,FFG-ACR,FFG-STR,FFG-RSA,FFG-ORN,FFG-RHA,FFG-KRF,FFG-MSR,FFG-TAR,FFG-PTR,FFG-TIR-HiRes,FFG-ALR,FFG-FWR"
<constraint constraintValue="FFG-TUA,FFG-ACR,FFG-STR,FFG-RSA,FFG-ORN,FFG-RHA,FFG-KRF,FFG-MSR,FFG-TAR,FFG-PTR,FFG-TIR,FFG-ALR,FFG-FWR"
constraintType="IN" />
</mapping>
</metadataMap>
@ -321,7 +321,7 @@
<constraint constraintValue="grid" constraintType="EQUALS"/>
</mapping>
<mapping key="info.datasetId">
<constraint constraintValue="FFG-TIR-HiRes" constraintType="EQUALS"/>
<constraint constraintValue="FFG-TIR" constraintType="EQUALS"/>
</mapping>
</metadataMap>
</resourceData>

View file

@ -246,19 +246,19 @@
menuText="1hr FFG" id="OH1hrFFG">
<dataURI>/grib/%/FFG-TIR/FFG0124hr/%</dataURI>
<substitute key="timespan" value="FFG0124hr"/>
<substitute key="model" value="FFG-TIR-HiRes"/>
<substitute key="model" value="FFG-TIR"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/hydro/FFGmosaic.xml"
menuText="3hr FFG" id="OH3hrFFG">
<dataURI>/grib/%/FFG-TIR-HiRes/FFG0324hr/%</dataURI>
<dataURI>/grib/%/FFG-TIR/FFG0324hr/%</dataURI>
<substitute key="timespan" value="FFG0324hr"/>
<substitute key="model" value="FFG-TIR-HiRes"/>
<substitute key="model" value="FFG-TIR"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/hydro/FFGmosaic.xml"
menuText="6hr FFG" id="OH6hrFFG">
<dataURI>/grib/%/FFG-TIR-HiRes/FFG0624hr/%</dataURI>
<dataURI>/grib/%/FFG-TIR/FFG0624hr/%</dataURI>
<substitute key="timespan" value="FFG0624hr"/>
<substitute key="model" value="FFG-TIR-HiRes"/>
<substitute key="model" value="FFG-TIR"/>
</contribute>
</contribute>
<contribute xsi:type="subMenu" menuText="SERFC" id="SERFCMenu">

View file

@ -48,7 +48,7 @@
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
locationURI="toolbar:org.eclipse.ui.main.toolbar?after=d2d-3">
<toolbar
id="plugins">
<command

View file

@ -28,6 +28,7 @@ import java.util.regex.Pattern;
import javax.jms.BytesMessage;
import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
@ -47,7 +48,7 @@ import com.raytheon.viz.texteditor.msgs.IWarngenObserver;
import com.raytheon.viz.texteditor.util.SiteAbbreviationUtil;
/**
* TODO Add Description
* Sends warning products to text workstation and text database.
*
* <pre>
*
@ -58,6 +59,7 @@ import com.raytheon.viz.texteditor.util.SiteAbbreviationUtil;
* 01Jun2010 2187 cjeanbap Added operational mode functionality
* 02Aug2010 2187 cjeanbap Update variable/method signature to be consistent.
* 04Oct2010 7193 cjeanbap Add time-to-live value to MessageProducer.
* Sep 13, 2013 2368 rjpeter Set delivery mode to PERSISTENT.
* </pre>
*
* @author mschenke
@ -65,209 +67,208 @@ import com.raytheon.viz.texteditor.util.SiteAbbreviationUtil;
*/
public class WarningSender implements IWarngenObserver {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(WarningSender.class);
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(WarningSender.class);
private String hostName = null;
private final String hostName = null;
private boolean notifyError;
private boolean notifyError;
private static final long MILLISECONDS_PER_SECOND = 1000;
private static final long MILLISECONDS_PER_SECOND = 1000;
private static final long SECONDS_PER_MINUTE = 60;
private static final long SECONDS_PER_MINUTE = 60;
private static final long TTL_MINUTES = 5;
private static final long TTL_MINUTES = 5;
private static Pattern PATTERN = Pattern.compile("(\\d{1,1})");
private static Pattern PATTERN = Pattern.compile("(\\d{1,1})");
private static final SimpleDateFormat sdf;
private static final SimpleDateFormat sdf;
static {
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
}
static {
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
}
/*
* (non-Javadoc) Incoming message was not a binary
*
* @see
* com.raytheon.viz.texteditor.msgs.IWarngenObserver#setTextWarngenDisplay
* (java.lang.String)
*/
@Override
public void setTextWarngenDisplay(String warning, boolean ne) {
this.notifyError = ne;
/*
* (non-Javadoc) Incoming message was not a binary
*
* @see
* com.raytheon.viz.texteditor.msgs.IWarngenObserver#setTextWarngenDisplay
* (java.lang.String)
*/
@Override
public void setTextWarngenDisplay(String warning, boolean ne) {
this.notifyError = ne;
String number = "0";
String host = TextWorkstationConstants.getId();
long t0 = System.currentTimeMillis();
String siteNode = SiteAbbreviationUtil.getSiteNode(LocalizationManager
.getInstance().getCurrentSite());
System.out.println("Get site node time: "
+ (System.currentTimeMillis() - t0));
if (host == null) {
statusHandler.handle(Priority.ERROR,
"Text Workstation host not set in preferences.");
} else {
Matcher m = PATTERN.matcher(host);
if (m.find()) {
number = m.group();
}
}
String number = "0";
String host = TextWorkstationConstants.getId();
long t0 = System.currentTimeMillis();
String siteNode = SiteAbbreviationUtil.getSiteNode(LocalizationManager
.getInstance().getCurrentSite());
statusHandler.debug("Get site node time: "
+ (System.currentTimeMillis() - t0));
if (host == null) {
statusHandler.handle(Priority.ERROR,
"Text Workstation host not set in preferences.");
} else {
Matcher m = PATTERN.matcher(host);
if (m.find()) {
number = m.group();
}
}
String id = siteNode + "WRKWG" + number;
boolean sentToTextDatabase = false;
String id = siteNode + "WRKWG" + number;
boolean sentToTextDatabase = false;
try {
boolean messageNotSent = true;
int connectCount = 0;
t0 = System.currentTimeMillis();
byte[] data = SerializationUtil.transformToThrift(id + ":"
+ warning);
while (messageNotSent && connectCount < 4) {
Session s = null;
MessageProducer mp = null;
Connection conn = null;
try {
conn = JMSConnection.getInstance().getFactory()
.createConnection();
s = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
mp = s.createProducer(s
.createQueue(TextWorkstationConstants
.getDestinationTextWorkstationQueueName()));
mp.setTimeToLive(TTL_MINUTES * SECONDS_PER_MINUTE
* MILLISECONDS_PER_SECOND);
BytesMessage m = s.createBytesMessage();
m.writeBytes(data);
mp.send(m);
long t1 = System.currentTimeMillis();
System.out.println(WarningSender.getCurTimeString() + ": "
+ id + " sent to text workstation in " + (t1 - t0)
+ "ms in " + (connectCount + 1)
+ (connectCount > 0 ? " tries" : " try"));
messageNotSent = false;
} catch (JMSException e) {
if (notifyError) {
statusHandler
.handle(Priority.PROBLEM,
"Error trying to send product ["
+ id
+ "] to Text Workstation. Attempting to reconnect. ",
e);
notifyError = false;
}
} finally {
if (mp != null) {
try {
mp.close();
mp = null;
} catch (Exception e) {
mp = null;
}
}
if (s != null) {
try {
s.close();
s = null;
} catch (Exception e) {
s = null;
}
}
if (conn != null) {
try {
conn.close();
conn = null;
} catch (Exception e) {
conn = null;
}
}
}
if (messageNotSent) {
if (!sentToTextDatabase) {
try {
sendToTextDatabase(id, warning);
sentToTextDatabase = true;
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM,
"Error trying to save product [" + id
+ "] to Text Database: ", e);
}
}
try {
boolean messageNotSent = true;
int connectCount = 0;
t0 = System.currentTimeMillis();
byte[] data = SerializationUtil.transformToThrift(id + ":"
+ warning);
while (messageNotSent && (connectCount < 4)) {
Session s = null;
MessageProducer mp = null;
Connection conn = null;
try {
conn = JMSConnection.getInstance().getFactory()
.createConnection();
s = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
mp = s.createProducer(s
.createQueue(TextWorkstationConstants
.getDestinationTextWorkstationQueueName()));
mp.setTimeToLive(TTL_MINUTES * SECONDS_PER_MINUTE
* MILLISECONDS_PER_SECOND);
BytesMessage m = s.createBytesMessage();
m.writeBytes(data);
m.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
mp.send(m);
long t1 = System.currentTimeMillis();
statusHandler.debug(id + " sent to text workstation in "
+ (t1 - t0) + "ms in " + (connectCount + 1)
+ (connectCount > 0 ? " tries" : " try"));
messageNotSent = false;
} catch (JMSException e) {
if (notifyError) {
statusHandler
.handle(Priority.PROBLEM,
"Error trying to send product ["
+ id
+ "] to Text Workstation. Attempting to reconnect. ",
e);
notifyError = false;
}
} finally {
if (mp != null) {
try {
mp.close();
mp = null;
} catch (Exception e) {
mp = null;
}
}
if (s != null) {
try {
s.close();
s = null;
} catch (Exception e) {
s = null;
}
}
if (conn != null) {
try {
conn.close();
conn = null;
} catch (Exception e) {
conn = null;
}
}
}
if (messageNotSent) {
if (!sentToTextDatabase) {
try {
sendToTextDatabase(id, warning);
sentToTextDatabase = true;
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM,
"Error trying to save product [" + id
+ "] to Text Database: ", e);
}
}
connectCount++;
switch (connectCount) {
case 1:
Thread.sleep(1000);
break;
case 2:
Thread.sleep(5 * 1000);
break;
case 3:
Thread.sleep(30 * 1000);
break;
case 4:
statusHandler.handle(Priority.PROBLEM,
"Could not reconnect (" + id
+ ") after 3 tries: ");
break;
}
}
}
connectCount++;
switch (connectCount) {
case 1:
Thread.sleep(1000);
break;
case 2:
Thread.sleep(5 * 1000);
break;
case 3:
Thread.sleep(30 * 1000);
break;
case 4:
statusHandler.handle(Priority.PROBLEM,
"Could not reconnect (" + id
+ ") after 3 tries: ");
break;
}
}
}
if (!sentToTextDatabase) {
try {
sendToTextDatabase(id, warning);
sentToTextDatabase = true;
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM,
"Error trying to save product [" + id
+ "] to Text Database: ", e);
}
}
} catch (UnknownHostException uhe) {
if (notifyError) {
statusHandler.handle(Priority.PROBLEM,
"unable to map hostname, " + hostName
+ ", to an ip address", uhe);
notifyError = false;
}
if (!sentToTextDatabase) {
try {
sendToTextDatabase(id, warning);
sentToTextDatabase = true;
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM,
"Error trying to save product [" + id
+ "] to Text Database: ", e);
}
}
} catch (UnknownHostException uhe) {
if (notifyError) {
statusHandler.handle(Priority.PROBLEM,
"unable to map hostname, " + hostName
+ ", to an ip address", uhe);
notifyError = false;
}
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM,
"Error trying to send product [" + id
+ "] to Text Workstation: ", e);
}
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM,
"Error trying to send product [" + id
+ "] to Text Workstation: ", e);
}
}
}
/**
* Saves a product to the text database.
*
* @param id
* @param warning
* @throws VizException
*/
public static void sendToTextDatabase(String id, String warning)
throws VizException {
CAVEMode mode = CAVEMode.getMode();
boolean operationalMode = (CAVEMode.OPERATIONAL.equals(mode)
|| CAVEMode.TEST.equals(mode) ? true : false);
/**
* Saves a product to the text database.
*
* @param id
* @param warning
* @throws VizException
*/
public static void sendToTextDatabase(String id, String warning)
throws VizException {
CAVEMode mode = CAVEMode.getMode();
boolean operationalMode = (CAVEMode.OPERATIONAL.equals(mode)
|| CAVEMode.TEST.equals(mode) ? true : false);
// Generate StdTextProduct and insert into db
long t0 = System.currentTimeMillis();
ThriftClient.sendRequest(new InsertStdTextProductRequest(id, warning,
operationalMode));
// Generate StdTextProduct and insert into db
long t0 = System.currentTimeMillis();
ThriftClient.sendRequest(new InsertStdTextProductRequest(id, warning,
operationalMode));
System.out.println(WarningSender.getCurTimeString() + ": " + id
+ " saved to textdb in " + (System.currentTimeMillis() - t0)
+ "ms");
}
statusHandler.debug(id + " saved to textdb in "
+ (System.currentTimeMillis() - t0) + "ms");
}
public static String getCurTimeString() {
String rval = null;
synchronized (sdf) {
rval = sdf.format(new Date());
}
return rval;
}
public static String getCurTimeString() {
String rval = null;
synchronized (sdf) {
rval = sdf.format(new Date());
}
return rval;
}
}

View file

@ -148,6 +148,7 @@ import com.vividsolutions.jts.geom.Polygon;
* Jul 29, 2013 DR 16352 D. Friedman Move 'result' to okPressed().
* Aug 6, 2013 2243 jsanchez Refreshed the follow up list every minute.
* Aug 15, 2013 DR 16418 D. Friedman Make dialog visibility match editable state.
* Sep 17, 2013 DR 16496 D. Friedman Make editable state more consistent.
* </pre>
*
* @author chammack
@ -1334,11 +1335,9 @@ public class WarngenDialog extends CaveSWTDialog implements
* Box was selected, allow editing of box only
*/
private void boxSelected() {
boxEditable = !polygonLocked;
trackEditable = true;
warngenLayer.getStormTrackState().editable = trackEditable;
warngenLayer.setBoxEditable(boxEditable);
warngenLayer.issueRefresh();
boxEditable = true;
trackEditable = false;
realizeEditableState();
}
/**
@ -1347,20 +1346,16 @@ public class WarngenDialog extends CaveSWTDialog implements
private void trackSelected() {
boxEditable = false;
trackEditable = true;
warngenLayer.getStormTrackState().editable = trackEditable;
warngenLayer.setBoxEditable(boxEditable);
warngenLayer.issueRefresh();
realizeEditableState();
}
/**
* Box and track was selected, allow editing of both
*/
private void boxAndTrackSelected() {
boxEditable = !polygonLocked;
boxEditable = true;
trackEditable = true;
warngenLayer.getStormTrackState().editable = trackEditable;
warngenLayer.setBoxEditable(boxEditable);
warngenLayer.issueRefresh();
realizeEditableState();
}
/**
@ -1615,7 +1610,6 @@ public class WarngenDialog extends CaveSWTDialog implements
* item from update list selected
*/
public void updateListSelected() {
warngenLayer.setOldWarningPolygon(null);
if (updateListCbo.getSelectionIndex() >= 0) {
AbstractWarningRecord oldWarning = null;
FollowupData data = (FollowupData) updateListCbo
@ -1666,6 +1660,7 @@ public class WarngenDialog extends CaveSWTDialog implements
return;
}
warngenLayer.setOldWarningPolygon(null);
bulletList.setEnabled(true);
durationList.setEnabled(true);
totalSegments = 0;
@ -2461,4 +2456,12 @@ public class WarngenDialog extends CaveSWTDialog implements
}
}
public void realizeEditableState() {
boolean layerEditable = warngenLayer.isEditable();
// TODO: Note there is no 'is track editing allowed' state yet.
warngenLayer.getStormTrackState().editable = layerEditable && trackEditable;
warngenLayer.setBoxEditable(layerEditable && boxEditable && !polygonLocked);
warngenLayer.issueRefresh();
}
}

View file

@ -188,6 +188,7 @@ import com.vividsolutions.jts.io.WKTReader;
* updated AreaHatcher's run().
* 07/26/2013 DR 16450 D. Friedman Fix logic errors when frame count is one.
* 08/19/2013 2177 jsanchez Set a GeneralGridGeometry object in the GeospatialDataList.
* 09/17/2013 DR 16496 D. Friedman Make editable state more consistent.
* </pre>
*
* @author mschenke
@ -3010,10 +3011,7 @@ public class WarngenLayer extends AbstractStormTrackResource {
final boolean editable = isEditable();
boxEditable = editable;
displayState.editable = editable;
if (editable) {
boxEditable = dialog.boxEditable();
displayState.editable = dialog.trackEditable();
}
dialog.realizeEditableState();
final WarngenDialog dlg = dialog;
dialog.getDisplay().asyncExec(new Runnable() {
@Override

View file

@ -40,8 +40,19 @@
<property name="taskExecutor" ref="genericThreadPool" />
</bean>
<bean id="jms-durable" class="org.apache.camel.component.jms.JmsComponent">
<constructor-arg ref="jmsDurableConfig" />
<property name="taskExecutor" ref="genericThreadPool" />
</bean>
<bean id="jmsGenericConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy" />
factory-bean="jmsConfig" factory-method="copy"/>
<bean id="jmsDurableConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy">
<property name="destinationResolver" ref="qpidDurableResolver" />
<property name="deliveryPersistent" value="true"/>
</bean>
<bean id="qpidNoDurableResolver" class="com.raytheon.uf.edex.esb.camel.spring.QpidDestinationNameResolver">
<property name="queueNamePrefix" value="direct://amq.direct/"/>
@ -71,6 +82,7 @@
<property name="templateConnectionFactory" ref="jmsPooledConnectionFactory" />
<property name="destinationResolver" ref="qpidNoDurableResolver" />
<property name="disableReplyTo" value="true" />
<property name="deliveryPersistent" value="false"/>
<!--
<property name="transacted" value="true" />
<property name="acknowledgementModeName" value="TRANSACTED"/>
@ -253,14 +265,14 @@
<route id="alertVizNotify">
<from uri="vm:edex.alertVizNotification" />
<bean ref="serializationUtil" method="transformToThrift" />
<to uri="jms-generic:topic:edex.alerts.msg?deliveryPersistent=false" />
<to uri="jms-generic:topic:edex.alerts.msg" />
</route>
<!-- Route to send text products to alarm/alert -->
<route id="alarmAlertNotify">
<from uri="vm:edex.alarmAlertNotification" />
<bean ref="serializationUtil" method="transformToThrift" />
<to uri="jms-generic:topic:edex.alarms.msg?deliveryPersistent=false" />
<to uri="jms-generic:topic:edex.alarms.msg" />
</route>
<!-- Route to periodically close any unused jms resources that have been pooled -->

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<NcInventoryDefinition xmlns:ns2="com.raytheon.uf.common.datadelivery.registry" xmlns:ns3="http://www.example.org/productType">
<inventoryName>FFG_TIR_HIRES</inventoryName>
<inventoryParameters>pluginName,info.ensembleId,info.secondaryId,dataTime</inventoryParameters>
<baseConstraints>
<mapping key="info.datasetId">
<constraint constraintValue="FFG-TIR" constraintType="EQUALS"/>
</mapping>
<mapping key="pluginName">
<constraint constraintValue="grid" constraintType="EQUALS"/>
</mapping>
</baseConstraints>
</NcInventoryDefinition>

View file

@ -121,7 +121,7 @@ class MasterInterface(object):
if self.isInstantiated(moduleName):
self.__instanceMap.__delitem__(moduleName)
if sys.modules.has_key(moduleName):
self.self.clearModuleAttributes(moduleName)
self.clearModuleAttributes(moduleName)
sys.modules.pop(moduleName)
if moduleName in self.scripts:
self.scripts.remove(moduleName)

View file

@ -1,826 +0,0 @@
####################################
## FLOOD ADVISORY FOLLOW-UP ZONES ##
####################################
## Created by Mike Dangelo 09-19-2011 at Alaska TIM for zones
## Edited by Mike Dangelo 01-26-2012 at CRH TIM
## Edited by Phil Kurimski 2-29-2012
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}
##
#if(${action} == "EXT")
#set($starttime = "000000T0000Z")
#set($extend = true)
#else
#set($starttime = ${dateUtil.format(${start}, ${timeFormat.ymdthmz})})
#set($extend = false)
#end
##
#if(${list.contains(${bullets}, "uss")})
#set($advType = "URBAN AND SMALL STREAM FLOOD ADVISORY")
#set($advTypeShort = "URBAN AND SMALL STREAM FLOODING")
#elseif(${list.contains(${bullets}, "small")})
#set($advType = "SMALL STREAM FLOOD ADVISORY")
#set($advTypeShort = "SMALL STREAM FLOODING")
#elseif(${list.contains(${bullets}, "arroyo")})
#set($advType = "ARROYO AND SMALL STREAM FLOOD ADVISORY")
#set($advTypeShort = "ARROYO AND SMALL STREAM FLOODING")
#elseif(${list.contains(${bullets}, "hydrologic")})
#set($advType = "HYDROLOGIC ADVISORY")
#set($advTypeShort = "MINOR FLOODING")
#else
#set($advType = "FLOOD ADVISORY")
#set($advTypeShort = "MINOR FLOODING")
#end
#if(${ic} == "SM")
#set($hycType = "FOR MELTING SNOW IN")
#elseif(${ic} == "RS")
#set($hycType = "FOR RAIN AND MELTING SNOW IN")
#elseif(${ic} == "IJ")
#set($hycType = "FOR ICE JAM FLOODING IN")
#elseif(${ic} == "IC")
#set($hycType = "FOR AN ICE JAM AND RAIN")
#elseif(${list.contains(${bullets}, "ic1")})
#set($hycType = "FOR RAPID RIVER RISES IN")
#elseif(${list.contains(${bullets}, "ic2")})
#set($hycType = "FOR MINOR FLOODING OF POOR DRAINAGE AREAS IN")
#end
#set($hycType = "")
#set($report = "!** warning basis **!")
#set($typeofevent = "")
#set($report2 = "")
#set($cause = "HEAVY RAIN")
#if(${list.contains(${bullets}, "rapidRiver")})
#set($report2 = ". RAPID RIVER RISES WILL RESULT IN MINOR FLOODING")
#set($hycType = "FOR RAPID RIVER RISES ")
#end
#if(${list.contains(${bullets}, "poorDrainage")})
#set($report2 = ". OVERFLOWING POOR DRAINAGE AREAS WILL RESULT IN MINOR FLOODING")
#set($hycType = "FOR MINOR FLOODING OF POOR DRAINAGE AREAS ")
#end
#if(${ic} == "SM")
#set($cause = "SNOW MELT")
#set($hycType = "FOR MELTING SNOW ")
#end
#if(${ic} == "RS")
#set($cause = "HEAVY RAIN AND SNOW MELT")
#set($hycType = "FOR RAIN AND MELTING SNOW ")
#end
#if(${ic} == "IJ")
#set($cause = "AN ICE JAM")
#set($hycType = "FOR ICE JAM FLOODING ")
#end
#if(${ic} == "IC")
#set($cause = "AN ICE JAM AND HEAVY RAIN")
#end
#if(${list.contains(${bullets}, "rapidRiver")})
#set($typeofevent = ". RAPID RIVER RISES ARE EXPECTED")
#end
#if(${list.contains(${bullets}, "poorDrainage")})
#set($typeofevent = ". OVERFLOWING POOR DRAINAGE AREAS WILL RESULT IN MINOR FLOODING")
#end
#if(${list.contains(${bullets}, "glacierOutburst")})
#set($report = "A GLACIER-DAMMED LAKEOUTBURST FLOOD WILL RESULT IN MINOR FLOODING AT !** LOCATION **!")
#end
#if(${list.contains(${bullets}, "groundWater")})
#set($report = "RISING GROUND WATER LEVELS WILL RESULT IN MINOR FLOODING AT !** LOCATION **!")
#end
#if(${list.contains(${bullets}, "satellite")})
#set($report = "SATELLITE ESTIMATES INDICATE HEAVY RAINFALL THAT WILL CAUSE ${advTypeShort}${typeofevent} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "satelliteGauge")})
#set($report = "SATELLITE ESTIMATES AND RAIN GAUGE DATA INDICATE HEAVY RAINFALL THAT WILL CAUSE ${advTypeShort}${typeofevent} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "doppler")})
#set($report = "DOPPLER RADAR INDICATED ${cause} THAT WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")})
#set($report = "DOPPLER RADAR INDICATED ${cause} DUE TO A THUNDERSTORM THAT WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "DOPPLER RADAR INDICATED ${cause} DUE TO A LINE OF THUNDERSTORMS THAT WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "dopplerGauge")})
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED ${cause} THAT WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "thunder")})
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED ${cause} DUE TO A THUNDERSTORM THAT WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED ${cause} DUE TO A LINE OF THUNDERSTORMS THAT WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "trainedSpotters")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "thunder")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED ${cause} IN !** LOCATION **! DUE TO A THUNDERSTORM THAT WILL CAUSE ${advTypeShort}${report2}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "actual")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${report2}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "glacierOutburst")})
#set($report = "A TRAINED SPOTTER REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO A GLACIER-DAMMED LAKE OUTBURST FLOOD")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "groundWater")})
#set($report = "A TRAINED SPOTTER REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO RISING GROUND WATER LEVELS")
#end
#if(${list.contains(${bullets}, "lawEnforcement")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "thunder")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${cause} IN !** LOCATION **! DUE TO A THUNDERSTORM IN THAT WILL CAUSE ${advTypeShort}${report2}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "actual")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${report2}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "glacierOutburst")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO A GLACIER-DAMMED LAKE OUTBURST FLOOD")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "groundWater")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO RISING GROUND WATER LEVELS")
#end
#if(${list.contains(${bullets}, "emergencyManagement")})
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${typeofevent}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "thunder")})
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} IN !** LOCATION **! DUE TO A THUNDERSTORM IN THAT WILL CAUSE ${advTypeShort}${typeofevent}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "actual")})
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${typeofevent}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${typeofevent}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "glacierOutburst")})
#set($report = "EMERGENCY MANAGEMENT REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO A GLACIER-DAMMED LAKE OUTBURST FLOOD")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "groundWater")})
#set($report = "EMERGENCY MANAGEMENT REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO RISING GROUND WATER LEVELS")
#end
#if(${list.contains(${bullets}, "public")})
#set($report = "THE PUBLIC REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "thunder")})
#set($report = "THE PUBLIC REPORTED ${advTypeShort} IN !** LOCATION **! DUE TO A THUNDERSTORM THAT WILL CAUSE ${advTypeShort}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "actual")})
#set($report = "THE PUBLIC REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "THE PUBLIC REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE MINOR FLOODING${report2}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "glacierOutburst")})
#set($report = "THE PUBLIC REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO A GLACIER-DAMMED LAKE OUTBURST FLOOD")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "groundWater")})
#set($report = "THE PUBLIC REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO RISING GROUND WATER LEVELS")
#end
#if(${list.contains(${bullets}, "doppler")} || ${list.contains(${bullets}, "dopplerGauge")})
#set($estimate = "UP TO !** Number **! INCHES OF RAIN HAS FALLEN IN THE PAST HOUR.")
#else
#set($estimate = "")
#end
##########################################
## FLOOD ADVISORY FOLLOW-UP HEADER INFO ##
##########################################
#if(${action}=="COR" && ${cancelareas})
#set($CORCAN = "true")
#else
#set($CORCAN = "false")
#end
#if(${action}!="CANCON" && ${CORCAN}!="true")
${WMOId} ${vtecOffice} 000000 ${BBBId}
FLS${siteId}
#if(${productClass}=="T")
TEST...FLOOD ADVISORY...TEST
#else
FLOOD ADVISORY
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
${ugcline}
/${productClass}.${action}.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${areas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#end
########################
## FLOOD ADVISORY CAN ##
########################
#if(${action}=="CAN")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} ${hycType}HAS BEEN CANCELLED FOR ##
##REMMED OUT FOR Alaska. This would output the headline in zone format
###zoneHeadlineLocList(${areas} true true true false)...
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${affectedCounties} true true true false)...
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
########### END NEW HEADLINE CODE ####################
#if(${list.contains(${bullets}, "recedingWater")})
THE HIGH WATER IS RECEDING...AND IS NO LONGER EXPECTED TO POSE A THREAT. PLEASE CONTINUE TO HEED ANY ROAD CLOSURES.
#end
#if(${list.contains(${bullets}, "rainEnded")})
THE HEAVY RAIN HAS ENDED...AND FLOODING IS NO LONGER EXPECTED TO POSE A THREAT.
#else
!** THE HEAVY RAIN HAS ENDED. !** OR **! THE FLOOD WATER IS RECEDING. THEREFORE...THE FLOODING THREAT HAS ENDED. **!
#end
#end
########################
## FLOOD ADVISORY EXP ##
########################
#if(${action}=="EXP")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} ${hycType}##
#if(${now.compareTo(${expire})} > -1)
EXPIRED AT ${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${localtimezone})} FOR ##
#else
WILL EXPIRE AT ${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${localtimezone})} FOR ##
#end
##REMMED OUT FOR Alaska. This would output the headline in zone format
###zoneHeadlineLocList(${areas} true true true false)...
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${affectedCounties} true true true false)...
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
########### END NEW HEADLINE CODE ####################
#if(${list.contains(${bullets}, "recedingWater")})
THE HIGH WATER IS RECEDING...AND IS NO LONGER EXPECTED TO POSE A THREAT. PLEASE CONTINUE TO HEED ANY ROAD CLOSURES.
#end
#if(${list.contains(${bullets}, "rainEnded")})
THE HEAVY RAIN HAS ENDED...AND FLOODING IS NO LONGER EXPECTED TO POSE A THREAT.
#end
#end
########################
## FLOOD ADVISORY CON ##
########################
#if(${action}=="CON" || ${action}=="COR")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} ${hycType}REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
##REMMED OUT FOR Alaska. This would output the headline in zone format
###zoneHeadlineLocList(${areas} true true true false)...
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${affectedCounties} true true true false)...
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
########### END NEW HEADLINE CODE ####################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
...!** warning basis **!
#else
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
...${report}. ${estimate}
#end
#set($phenomena = "FLASH FLOOD")
#set($warningType = "ADVISORY")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
## REMMED OUT FOR Alaska
## #locationsList("SOME LOCATIONS THAT WILL EXPERIENCE MINOR FLOODING INCLUDE" "THE FLOODING IS EXPECTED TO IMPACT MAINLY RURAL AREAS OF" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0) EXCLUDED FOR ALASKA
#if(${list.contains(${bullets}, "fcstPoint")})
FOR THE !** insert river name and forecast point **!...
AT ${dateUtil.format(${now}, ${timeFormat.clock}, ${localtimezone})} THE STAGE WAS !** xx.x **! FEET.
FLOOD STAGE IS !** xx.x **! FEET.
FORECAST... !** insert crest stage and time **!.
IMPACTS...!** discussion of expected impacts and flood path **!
#else
!** insert impacts and flood path **!
#end
#if(${list.contains(${bullets}, "addRainfall")})
ADDITIONAL RAINFALL OF !** Edit Amount **! INCHES IS EXPECTED OVER THE AREA. THIS ADDITIONAL RAIN WILL CAUSE MINOR FLOODING.
#end
#if(${list.contains(${bullets}, "specificPlace")})
MINOR FLOODING IS OCCURRING NEAR !** Enter Location **!.
#end
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
#####################
## CALL TO ACTIONS ##
#####################
##Check to see if we've selected any calls to action. In our .xml file
##we ended each CTA bullet ID with "CTA" for this reason as a 'trip'
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
#if(${list.contains(${bullets}, "dontdrownCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains(${bullets}, "urbanCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE ELEVATED LEVELS ON SMALL CREEKS AND STREAMS...AND PONDING OF WATER IN URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES AS WELL AS OTHER POOR DRAINAGE AREAS AND LOW LYING SPOTS.
#end
#if(${list.contains(${bullets}, "ruralCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES. ADDITIONALLY...COUNTRY ROADS AND FARMLANDS ALONG THE BANKS OF CREEKS...STREAMS AND OTHER LOW LYING AREAS ARE SUBJECT TO FLOODING.
#end
#if(${list.contains(${bullets}, "donotdriveCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "lowspotsCTA")})
IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS WHICH ARE POTENTIALLY DANGEROUS IN HEAVY RAIN. DO NOT ATTEMPT TO TRAVEL ACROSS FLOODED ROADS. FIND ALTERNATE ROUTES. IT TAKES ONLY A FEW INCHES OF SWIFTLY FLOWING WATER TO CARRY VEHICLES AWAY.
#end
#if(${list.contains(${bullets}, "powerCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains(${bullets}, "reportFloodingCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE FORECAST OFFICE.
#end
#if(${list.contains(${bullets}, "advisoryMeansCTA")})
A FLOOD ADVISORY MEANS RIVER OR STREAM FLOWS ARE ELEVATED OR PONDING OF WATER IN URBAN OR OTHER AREAS IS OCCURRING OR IS IMMINENT. KEEP AN EYE ON WATERWAYS AND BE PREPARED TO TAKE ACTION.
#end
#if(${ctaSelected} == "YES")
&&
#end
#################################### END OF CTA STUFF ###################################
#end
############################
## FLOOD ADVISORY CAN/CON ##
############################
#if(${action}=="CANCON")
${WMOId} ${vtecOffice} 000000 ${BBBId}
FLS${siteId}
#if(${productClass}=="T")
TEST...FLOOD ADVISORY...TEST
#else
FLOOD ADVISORY
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
${ugclinecan}
/${productClass}.CAN.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${cancelareas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#elseif(${CORCAN} == "true")
${WMOId} ${vtecOffice} 000000 ${BBBId}
FLS${siteId}
#if(${productClass}=="T")
TEST...FLOOD ADVISORY...TEST
#else
FLOOD ADVISORY
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
${ugclinecan}
/${productClass}.COR.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${cancelareas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} ${hycType}HAS BEEN CANCELLED FOR ##
##REMMED OUT FOR Alaska. This would output the headline in zone format
###zoneHeadlineLocList(${cancelareas} true true true false)...
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${cancelaffectedCounties} true true true false)...
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
########### END NEW HEADLINE CODE ####################
## One line explanation - user can delete the one they don't want
## or delete both and explain why manually
!** THE HEAVY RAIN HAS ENDED. THEREFORE...THE FLOODING THREAT HAS ENDED. **!
!** THE FLOOD WATER IS RECEDING. THEREFORE...THE FLOODING THREAT HAS ENDED. **!
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
${ugcline}
/${productClass}.CON.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${areas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} REMAINS IN EFFECT UNTIL ${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${localtimezone})} FOR ##
##REMMED OUT FOR Alaska. This would output the headline in zone format
###zoneHeadlineLocList(${areas} true true true false)...
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${affectedCounties} true true true false)...
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
########### END NEW HEADLINE CODE ####################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
...!** warning basis **!
#else
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
...${report}. ${estimate}
#end
#set($phenomena = "FLASH FLOOD")
#set($warningType = "ADVISORY")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
##locationsList("SOME LOCATIONS THAT WILL EXPERIENCE MINOR FLOODING INCLUDE" "THE FLOODING IS EXPECTED TO IMPACT MAINLY RURAL AREAS OF" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0) EXCLUDED FOR ALASKA
#if(${list.contains(${bullets}, "fcstPoint")})
FOR THE !** insert river name and forecast point **!...
AT ${dateUtil.format(${now}, ${timeFormat.clock}, ${localtimezone})} THE STAGE WAS !** xx.x **! FEET.
FLOOD STAGE IS !** xx.x **! FEET.
FORECAST... !** insert crest stage and time **!.
IMPACTS...!** discussion of expected impacts and flood path **!
#else
!** insert impacts and flood path **!
#end
#if(${list.contains(${bullets}, "addRainfall")})
ADDITIONAL RAINFALL OF !** Edit Amount **! INCHES IS EXPECTED OVER THE AREA. THIS ADDITIONAL RAIN WILL MAKE MINOR FLOODING.
#end
#if(${list.contains(${bullets}, "specificPlace")})
MINOR FLOODING IS OCCURRING NEAR !** Enter Location **!.
#end
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
#####################
## CALL TO ACTIONS ##
#####################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
#if(${list.contains(${bullets}, "dontdrownCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains(${bullets}, "urbanCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE ELEVATED LEVELS ON SMALL CREEKS AND STREAMS...AND PONDING OF WATER IN URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES AS WELL AS OTHER POOR DRAINAGE AREAS AND LOW LYING SPOTS.
#end
#if(${list.contains(${bullets}, "ruralCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES. ADDITIONALLY...COUNTRY ROADS AND FARMLANDS ALONG THE BANKS OF CREEKS...STREAMS AND OTHER LOW LYING AREAS ARE SUBJECT TO FLOODING.
#end
#if(${list.contains(${bullets}, "donotdriveCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "lowspotsCTA")})
IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS WHICH ARE POTENTIALLY DANGEROUS IN HEAVY RAIN. DO NOT ATTEMPT TO TRAVEL ACROSS FLOODED ROADS. FIND ALTERNATE ROUTES. IT TAKES ONLY A FEW INCHES OF SWIFTLY FLOWING WATER TO CARRY VEHICLES AWAY.
#end
#if(${list.contains(${bullets}, "powerCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains(${bullets}, "reportFloodingCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE FORECAST OFFICE.
#end
#if(${list.contains(${bullets}, "advisoryMeansCTA")})
A FLOOD ADVISORY MEANS RIVER OR STREAM FLOWS ARE ELEVATED...OR PONDING OF WATER IN URBAN OR OTHER AREAS IS OCCURRING OR IS IMMINENT. DO NOT ATTEMPT TO TRAVEL ACROSS FLOODED ROADS. FIND ALTERNATE ROUTES. IT TAKES ONLY A FEW INCHES OF SWIFTLY FLOWING WATER TO CARRY VEHICLES AWAY.
#end
#if(${ctaSelected} == "YES")
&&
#end
#################################### END OF CTA STUFF ###################################
#elseif(${CORCAN}=="true")
${WMOId} ${vtecOffice} 000000 ${BBBId}
FLS${siteId}
#if(${productClass}=="T")
TEST...FLOOD ADVISORY...TEST
#else
FLOOD ADVISORY
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
${ugclinecan}
/${productClass}.COR.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${cancelareas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#elseif(${CORCAN} == "true")
${WMOId} ${vtecOffice} 000000 ${BBBId}
FLS${siteId}
#if(${productClass}=="T")
TEST...FLOOD ADVISORY...TEST
#else
FLOOD ADVISORY
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
${ugclinecan}
/${productClass}.COR.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${cancelareas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} ${hycType}HAS BEEN CANCELLED FOR ##
##REMMED OUT FOR Alaska. This would output the headline in zone format
###zoneHeadlineLocList(${cancelareas} true true true false)...
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${cancelaffectedCounties} true true true false)...
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
########### END NEW HEADLINE CODE ####################
## One line explanation - user can delete the one they don't want
## or delete both and explain why manually
!** THE HEAVY RAIN HAS ENDED. THEREFORE...THE FLOODING THREAT HAS ENDED. **!
!** THE FLOOD WATER IS RECEDING. THEREFORE...THE FLOODING THREAT HAS ENDED. **!
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
${ugcline}
/${productClass}.COR.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${areas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} REMAINS IN EFFECT UNTIL ${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${localtimezone})} FOR ##
##REMMED OUT FOR Alaska. This would output the headline in zone format
###zoneHeadlineLocList(${areas} true true true false)...
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${affectedCounties} true true true false)...
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
########### END NEW HEADLINE CODE ####################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
...!** warning basis **!
#else
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
...${report}. ${estimate}
#end
#set($phenomena = "FLASH FLOOD")
#set($warningType = "ADVISORY")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
##locationsList("SOME LOCATIONS THAT WILL EXPERIENCE MINOR FLOODING INCLUDE" "THE FLOODING IS EXPECTED TO IMPACT MAINLY RURAL AREAS OF" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0) EXCLUDED FOR ALASKA
#if(${list.contains(${bullets}, "fcstPoint")})
FOR THE !** insert river name and forecast point **!...
AT ${dateUtil.format(${now}, ${timeFormat.clock}, ${localtimezone})} THE STAGE WAS !** xx.x **! FEET.
FLOOD STAGE IS !** xx.x **! FEET.
FORECAST... !** insert crest stage and time **!.
IMPACTS...!** discussion of expected impacts and flood path **!
#else
!** insert impacts and flood path **!
#end
#if(${list.contains(${bullets}, "addRainfall")})
ADDITIONAL RAINFALL OF !** Edit Amount **! INCHES IS EXPECTED OVER THE AREA. THIS ADDITIONAL RAIN WILL MAKE MINOR FLOODING.
#end
#if(${list.contains(${bullets}, "specificPlace")})
MINOR FLOODING IS OCCURRING NEAR !** Enter Location **!.
#end
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
#####################
## CALL TO ACTIONS ##
#####################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
#if(${list.contains(${bullets}, "dontdrownCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains(${bullets}, "urbanCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE ELEVATED LEVELS ON SMALL CREEKS AND STREAMS...AND PONDING OF WATER IN URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES AS WELL AS OTHER POOR DRAINAGE AREAS AND LOW LYING SPOTS.
#end
#if(${list.contains(${bullets}, "ruralCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES. ADDITIONALLY...COUNTRY ROADS AND FARMLANDS ALONG THE BANKS OF CREEKS...STREAMS AND OTHER LOW LYING AREAS ARE SUBJECT TO FLOODING.
#end
#if(${list.contains(${bullets}, "donotdriveCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "lowspotsCTA")})
IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS WHICH ARE POTENTIALLY DANGEROUS IN HEAVY RAIN. DO NOT ATTEMPT TO TRAVEL ACROSS FLOODED ROADS. FIND ALTERNATE ROUTES. IT TAKES ONLY A FEW INCHES OF SWIFTLY FLOWING WATER TO CARRY VEHICLES AWAY.
#end
#if(${list.contains(${bullets}, "powerCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains(${bullets}, "reportFloodingCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE FORECAST OFFICE.
#end
#if(${list.contains(${bullets}, "advisoryMeansCTA")})
A FLOOD ADVISORY MEANS RIVER OR STREAM FLOWS ARE ELEVATED...OR PONDING OF WATER IN URBAN OR OTHER AREAS IS OCCURRING OR IS IMMINENT. DO NOT ATTEMPT TO TRAVEL ACROSS FLOODED ROADS. FIND ALTERNATE ROUTES. IT TAKES ONLY A FEW INCHES OF SWIFTLY FLOWING WATER TO CARRY VEHICLES AWAY.
#end
#if(${ctaSelected} == "YES")
&&
#end
#end
####################################
## END OF FLOOD ADVISORY PRODUCTS ##
####################################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
#parse("forecasterName.vm")

View file

@ -1,348 +0,0 @@
<!-- Areal Flood Advisory Followup ZONES configuration -->
<!-- Created by Mike Dangelo 09-19-2011 at TIM Alaska to make Zones possible -->
<!-- Localized for AK by Ed Plumb,Mary-Beth Shereck,Aaron Jacobs 9/23/2011 -->
<!-- Edited by Mike Dangelo 01-26-2012 at CRH TIM
Phil Kurimski 2-29-2012
Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
Evan Bookbinder 09-10-2012 DR15179 Added areaSource object to allow for
county-based headlines in zone based products.
Added settings for locations shapefile
Evan Bookbinder 5-5-2013 fixed <type> variable under areaSource objects
-->
<warngenConfig>
<!-- Config distance/speed units -->
<unitDistance>mi</unitDistance>
<unitSpeed>mph</unitSpeed>
<!-- Maps to load on template selection. Refer to 'Maps' menu in CAVE.
The various menu items are also the different maps
that can be loaded with each template. -->
<maps>
<map>Forecast Zones</map>
<!-- <map>County Warning Areas</map> -->
<!-- <map>FFMP Small Stream Basin Links</map> -->
<!-- <map>Major Rivers</map> -->
</maps>
<!-- Followups: VTEC actions of allowable followups when this template is selected -->
<followups>
<followup>COR</followup>
<followup>CAN</followup>
<followup>CON</followup>
<followup>EXP</followup>
</followups>
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
<phensigs>
<phensig>FA.Y</phensig>
</phensigs>
<!-- Enables/disables user from selecting the Restart button the GUI -->
<enableRestart>false</enableRestart>
<!-- Enable/disables the system to lock text based on various patterns -->
<autoLockText>true</autoLockText>
<!-- durations: the list of possible durations of the warning -->
<!-- DURATIONS REALLY SERVE NO PURPOSE IN A FOLLOWUP BUT WILL CRASH WARNGEN IF REMVOED -->
<defaultDuration>30</defaultDuration>
<durations>
<duration>30</duration>
</durations>
<lockedGroupsOnFollowup>ic,advType</lockedGroupsOnFollowup>
<bulletActionGroups>
<bulletActionGroup>
<bullets>
<bullet bulletText="*********** SELECT A FOLLOWUP **********" bulletType="title"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="CAN" phen="FA" sig="Y">
<bullets>
<bullet bulletName="recedingWater" bulletText="receding water" />
<bullet bulletName="rainEnded" bulletText="heavy rain ended" />
<bullet bulletText="************* TYPE OF ADVISORY ***********" bulletType="title"/>
<bullet bulletName="general" bulletText="general (minor flooding)" bulletGroup="advType" parseString="&quot;-ARROYO&quot;,&quot;-SMALL STREAM FLOOD ADVISORY&quot;,&quot;FLOOD ADVISORY&quot;"/>
<bullet bulletName="small" bulletText="small stream" bulletGroup="advType" parseString="&quot;-URBAN AND&quot;,&quot;-ARROYO&quot;,&quot;SMALL STREAM FLOOD ADVISORY&quot;"/>
<bullet bulletName="uss" bulletText="urban and small stream" bulletGroup="advType" parseString="URBAN AND SMALL STREAM FLOOD ADVISORY"/>
<!-- <bullet bulletName="arroyo" bulletText="arroyo and small stream" bulletGroup="advType" parseString="ARROYO"/> -->
<!-- <bullet bulletName="hydrologic" bulletText="hydrologic" bulletGroup="advType" parseString="HYDROLOGIC ADVISORY"/> -->
<!-- <bullet bulletText="*********** HYDROLOGIC CONDITION (If applicable) *********** " bulletType="title"/> -->
<!-- <bullet bulletName="rapidRiver" bulletText="rapid river rises" bulletGroup="advEvent" parseString="RAPID RIVER RISES"/> -->
<!-- <bullet bulletName="poorDrainage" bulletText="minor flooding for poor drainage" bulletGroup="advEvent" parseString="FOR MINOR FLOODING OF POOR DRAINAGE AREAS IN"/> -->
</bullets>
</bulletActionGroup>
<bulletActionGroup action="EXP" phen="FA" sig="Y">
<bullets>
<bullet bulletName="recedingWater" bulletText="water receding" />
<bullet bulletName="rainEnded" bulletText="heavy rain ended" />
<bullet bulletText="************* TYPE OF ADVISORY ***********" bulletType="title"/>
<bullet bulletName="general" bulletText="general (minor flooding)" bulletGroup="advType" parseString="&quot;-ARROYO&quot;,&quot;-SMALL STREAM FLOOD ADVISORY&quot;,&quot;FLOOD ADVISORY&quot;"/>
<bullet bulletName="small" bulletText="small stream" bulletGroup="advType" parseString="&quot;-URBAN AND&quot;,&quot;-ARROYO&quot;,&quot;SMALL STREAM FLOOD ADVISORY&quot;"/>
<bullet bulletName="uss" bulletText="urban and small stream" bulletGroup="advType" parseString="URBAN AND SMALL STREAM FLOOD ADVISORY"/>
<!-- <bullet bulletName="arroyo" bulletText="arroyo and small stream" bulletGroup="advType" parseString="ARROYO"/> -->
<!-- <bullet bulletName="hydrologic" bulletText="hydrologic" bulletGroup="advType" parseString="HYDROLOGIC ADVISORY"/> -->
<!-- <bullet bulletText="*********** HYDROLOGIC CONDITION (If applicable) *********** " bulletType="title"/> -->
<!-- <bullet bulletName="rapidRiver" bulletText="rapid river rises" bulletGroup="advEvent" parseString="RAPID RIVER RISES"/> -->
<!-- <bullet bulletName="poorDrainage" bulletText="minor flooding for poor drainage" bulletGroup="advEvent" parseString="FOR MINOR FLOODING OF POOR DRAINAGE AREAS IN"/> -->
</bullets>
</bulletActionGroup>
<bulletActionGroup action="CON" phen="FA" sig="Y">
<bullets>
<bullet bulletText="************* TYPE OF ADVISORY ***********" bulletType="title"/>
<bullet bulletName="general" bulletText="general (minor flooding)" bulletGroup="advType" parseString="&quot;-ARROYO&quot;,&quot;-SMALL STREAM FLOOD ADVISORY&quot;,&quot;FLOOD ADVISORY&quot;" showString="&quot;-ARROYO&quot;,&quot;-SMALL STREAM FLOOD ADVISORY&quot;,&quot;FLOOD ADVISORY&quot;"/>
<bullet bulletName="small" bulletText="small stream" bulletGroup="advType" parseString="&quot;-URBAN AND&quot;,&quot;-ARROYO&quot;,&quot;SMALL STREAM FLOOD ADVISORY&quot;" showString="&quot;-URBAN AND&quot;,&quot;-ARROYO&quot;,&quot;SMALL STREAM FLOOD ADVISORY&quot;"/>
<bullet bulletName="uss" bulletText="urban and small stream" bulletGroup="advType" parseString="URBAN AND SMALL STREAM FLOOD ADVISORY" showString="URBAN AND SMALL STREAM FLOOD ADVISORY"/>
<!-- <bullet bulletName="arroyo" bulletText="arroyo and small stream" bulletGroup="advType" parseString="ARROYO" showString="ARROYO"/> -->
<!-- <bullet bulletName="hydrologic" bulletText="hydrologic" bulletGroup="advType" parseString="HYDROLOGIC ADVISORY" showString="HYDROLOGIC ADVISORY"/> -->
<bullet bulletText="*********** REPORT SOURCE (choose 1) **********" bulletType="title"/>
<bullet bulletName="satellite" bulletText="Satellite estimates indicate" bulletGroup="advSource" parseString="SATELLITE ESTIMATES INDICATE"/>
<bullet bulletName="satelliteGauge" bulletText="Satellite estimates and Rain Gauges indicate" bulletGroup="advSource" parseString="SATELLITE ESTIMATES AND"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="advSource" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="advSource" parseString="AUTOMATED "/>
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="advSource" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="advSource" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement reported" bulletGroup="advSource" parseString="LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency Management reported" bulletGroup="advSource" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (choose 1) *********** " bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorm(s)" bulletGroup="advEvent" parseString="FROM A THUNDERSTORM "/>
<bullet bulletName="actual" bulletText="Minor flooding occurring" bulletGroup="advEvent" parseString="REPORTED MINOR "/>
<bullet bulletName="plainRain" bulletText="Due to only heavy rain" bulletGroup="advEvent" parseString="DUE TO HEAVY RAIN "/>
<bullet bulletName="rapidRiver" bulletText="Rapid river rises" bulletGroup="advEvent" parseString="RAPID RIVER RISES "/>
<bullet bulletName="poorDrainage" bulletText="Minor flooding for poor drainage" bulletGroup="advEvent" parseString="FOR MINOR FLOODING OF POOR DRAINAGE AREAS IN"/>
<bullet bulletName="glacierOutburst" bulletText="Glacial Lake Outburst" bulletGroup="advEvent" parseString="GLACIER-DAMMED LAKE OUTBURST FLOOD"/>
<bullet bulletName="groundWater" bulletText="Ground water" bulletGroup="advEvent" parseString="GROUND WATER "/>
<bullet bulletText="*********** RAIN AMOUNT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="one inch so far" bulletGroup="rainamt" parseString="ONE INCH HAS FALLEN"/>
<bullet bulletName="rain2" bulletText="two inches so far" bulletGroup="rainamt" parseString="TWO INCHES HAVE FALLEN"/>
<bullet bulletName="rain3" bulletText="three inches so far" bulletGroup="rainamt" parseString="THREE INCHES HAVE FALLEN"/>
<bullet bulletName="rainEdit" bulletText="user defined amount" bulletGroup="rainamt" parseString="INCHES HAS FALLEN "/>
<bullet bulletText="*********** FORECAST AND IMPACT INFO ***********" bulletType="title"/>
<bullet bulletName="fcstPoint" bulletText="Flood area includes forecast point" parseString="FLOOD STAGE IS"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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="dontdrownCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="urbanCTA" bulletText="Urban flooding" parseString="AND PONDING OF WATER IN URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString="SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="donotdriveCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="lowspotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="powerCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
<bullet bulletName="advisoryMeansCTA" bulletText="A flood advisory means" parseString="A FLOOD ADVISORY MEANS RIVER OR STREAM FLOWS"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="COR" phen="FA" sig="Y">
<bullets>
<bullet bulletText="************* TYPE OF ADVISORY ***********" bulletType="title"/>
<bullet bulletName="general" bulletText="general (minor flooding)" bulletGroup="advType" parseString="&quot;-ARROYO&quot;,&quot;-SMALL STREAM FLOOD ADVISORY&quot;,&quot;FLOOD ADVISORY&quot;" showString="&quot;-ARROYO&quot;,&quot;-SMALL STREAM FLOOD ADVISORY&quot;,&quot;FLOOD ADVISORY&quot;"/>
<bullet bulletName="small" bulletText="small stream" bulletGroup="advType" parseString="&quot;-URBAN AND&quot;,&quot;-ARROYO&quot;,&quot;SMALL STREAM FLOOD ADVISORY&quot;" showString="&quot;-URBAN AND&quot;,&quot;-ARROYO&quot;,&quot;SMALL STREAM FLOOD ADVISORY&quot;"/>
<bullet bulletName="uss" bulletText="urban and small stream" bulletGroup="advType" parseString="URBAN AND SMALL STREAM FLOOD ADVISORY" showString="URBAN AND SMALL STREAM FLOOD ADVISORY"/>
<!-- <bullet bulletName="arroyo" bulletText="arroyo and small stream" bulletGroup="advType" parseString="ARROYO" showString="ARROYO"/> -->
<!-- <bullet bulletName="hydrologic" bulletText="hydrologic" bulletGroup="advType" parseString="HYDROLOGIC ADVISORY" showString="HYDROLOGIC ADVISORY"/> -->
<bullet bulletText="*********** REPORT SOURCE (choose 1) **********" bulletType="title"/>
<bullet bulletName="satellite" bulletText="Satellite estimates indicate" bulletGroup="advSource" parseString="SATELLITE ESTIMATES INDICATE"/>
<bullet bulletName="satelliteGauge" bulletText="Satellite estimates and Rain Gauges indicate" bulletGroup="advSource" parseString="SATELLITE ESTIMATES AND"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="advSource" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="advSource" parseString="AUTOMATED "/>
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="advSource" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="advSource" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement reported" bulletGroup="advSource" parseString="LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency Management reported" bulletGroup="advSource" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (choose 1) *********** " bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorm(s)" bulletGroup="advEvent" parseString="FROM A THUNDERSTORM "/>
<bullet bulletName="actual" bulletText="Minor flooding occurring" bulletGroup="advEvent" parseString="REPORTED MINOR "/>
<bullet bulletName="plainRain" bulletText="Due to only heavy rain" bulletGroup="advEvent" parseString="DUE TO HEAVY RAIN "/>
<bullet bulletName="rapidRiver" bulletText="Rapid river rises" bulletGroup="advEvent" parseString="RAPID RIVER RISES "/>
<bullet bulletName="poorDrainage" bulletText="Minor flooding for poor drainage" bulletGroup="advEvent" parseString="FOR MINOR FLOODING OF POOR DRAINAGE AREAS IN"/>
<bullet bulletName="glacierOutburst" bulletText="Glacial Lake Outburst" bulletGroup="advEvent" parseString="GLACIER-DAMMED LAKE OUTBURST FLOOD"/>
<bullet bulletName="groundWater" bulletText="Ground water" bulletGroup="advEvent" parseString="GROUND WATER "/>
<bullet bulletText="*********** RAIN AMOUNT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="one inch so far" bulletGroup="rainamt" parseString="ONE INCH HAS FALLEN"/>
<bullet bulletName="rain2" bulletText="two inches so far" bulletGroup="rainamt" parseString="TWO INCHES HAVE FALLEN"/>
<bullet bulletName="rain3" bulletText="three inches so far" bulletGroup="rainamt" parseString="THREE INCHES HAVE FALLEN"/>
<bullet bulletName="rainEdit" bulletText="user defined amount" bulletGroup="rainamt" parseString="INCHES HAS FALLEN "/>
<bullet bulletText="*********** FORECAST AND IMPACT INFO ***********" bulletType="title"/>
<bullet bulletName="fcstPoint" bulletText="Flood area includes forecast point" parseString="FLOOD STAGE IS"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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="dontdrownCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="urbanCTA" bulletText="Urban flooding" parseString="AND PONDING OF WATER IN URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString="SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="donotdriveCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="lowspotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="powerCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
<bullet bulletName="advisoryMeansCTA" bulletText="A flood advisory means" parseString="A FLOOD ADVISORY MEANS RIVER OR STREAM FLOWS"/>
</bullets>
</bulletActionGroup>
</bulletActionGroups>
<trackEnabled>false</trackEnabled>
<!-- Four variables below have been changed from the County-coded products -->
<!-- areaSource.areaField -->
<!-- areaSource.fipsField -->
<!-- pathcastConfig.areaField and -->
<!-- geospatialConfig.areaSource -->
<!-- Default areaSource object to generate zone based information -->
<areaSource variable="areas">
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<type>HATCHING</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>NAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<!-- <fipsField>STATE</fipsField> -->
<fipsField>STATE_ZONE</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Add in areaSource object to generate county-based headline if desired -->
<areaSource variable="affectedCounties">
<areaSource>County</areaSource>
<type>INTERSECT</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>COUNTYNAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<fipsField>FIPS</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Required, but unused by this template -->
<pathcastConfig>
<type>AREA</type>
<withinPolygon>true</withinPolygon>
<distanceThreshold>8.0</distanceThreshold>
<interval>5</interval>
<delta>5</delta>
<maxResults>4</maxResults>
<maxGroup>8</maxGroup>
<pointField>Name</pointField>
<!-- <areaField>COUNTYNAME</areaField> -->
<areaField>NAME</areaField>
<parentAreaField>STATE</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L" constraintType="IN" />
</mapping>
</filter>
</pathcastConfig>
<pointSource variable="cityList">
<pointField>NAME</pointField>
<type>AREA</type>
<inclusionPercent>1</inclusionPercent>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>30</maxResults>
<distanceThreshold>200</distanceThreshold>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2,3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
<sortBy>
<sort>warngenlev</sort>
<sort>population</sort>
<sort>distance</sort>
</sortBy>
</pointSource>
<!-- Required, but unused by this template -->
<pointSource variable="otherPoints">
<pointField>NAME</pointField>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>10</maxResults>
<distanceThreshold>200</distanceThreshold>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L" constraintType="IN" />
</mapping>
</filter>
</pointSource>
<!-- this "include file" tag will grab the Mile Marker XML pointSource tags,
and place into this template
-->
<include file="mileMarkers.xml"/>
<geospatialConfig>
<pointSource>WarnGenLoc</pointSource>
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<parentAreaSource>States</parentAreaSource>
<timezoneSource>TIMEZONES</timezoneSource>
<timezoneField>TIME_ZONE</timezoneField>
</geospatialConfig>
<pointSource variable="riverdrainages">
<pointSource>ffmp_basins</pointSource>
<geometryDecimationTolerance>0.064</geometryDecimationTolerance>
<pointField>streamname</pointField>
<filter>
<mapping key="cwa">
<constraint constraintValue="$warngenCWAFilter" constraintType="EQUALS" />
</mapping>
</filter>
<withinPolygon>true</withinPolygon>
</pointSource>
</warngenConfig>

View file

@ -1,374 +0,0 @@
############################
## FLOOD ADVISORY ZONES ##
############################
## Created by Mike Dangelo 9-21-2011 at Alaska TIM ##
## Mary-Beth Schreck, Ed Plumb, Aaron Jacobs 9-22-2011 at Alaska TIM
## Mike Dangelo 01-26-2012 at CRH TIM
## Phil Kurimski 2-29-2012
## Evan Bookbinder 4-25-2012 for OB 12.3.1 (MND)
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}
## Mike Dangelo 2-06-2013 default bullets for advType, advTypeShort, ic and hycType
##
#if(${action} == "EXT")
#set($starttime = "000000T0000Z")
#set($extend = true)
#else
#set($starttime = ${dateUtil.format(${start}, ${timeFormat.ymdthmz})})
#set($extend = false)
#end
##
#set($advType = "FLOOD ADVISORY")
#set($advTypeShort = "MINOR FLOODING")
#if(${list.contains(${bullets}, "general")})
#set($advType = "FLOOD ADVISORY")
#set($advTypeShort = "MINOR FLOODING")
#elseif(${list.contains(${bullets}, "small")})
#set($advType = "SMALL STREAM FLOOD ADVISORY")
#set($advTypeShort = "SMALL STREAM FLOODING")
#elseif(${list.contains(${bullets}, "uss")})
#set($advType = "URBAN AND SMALL STREAM FLOOD ADVISORY")
#set($advTypeShort = "URBAN AND SMALL STREAM FLOODING")
#set($extend = false)
#elseif(${list.contains(${bullets}, "arroyo")})
#set($advType = "ARROYO AND SMALL STREAM FLOOD ADVISORY")
#set($advTypeShort = "ARROYO AND SMALL STREAM FLOODING")
#set($extend = false)
#elseif(${list.contains(${bullets}, "hydrologic")})
#set($advType = "HYDROLOGIC ADVISORY")
#set($advTypeShort = "MINOR FLOODING")
#set($extend = false)
#end
##
#set($ic = "ER")
#set($hycType = "")
#if(${list.contains(${bullets}, "ER")})
#set($ic = "ER")
#set($hycType = "")
#elseif(${list.contains(${bullets}, "SM")})
#set($ic = "SM")
#set($hycType = "MELTING SNOW")
#elseif(${list.contains(${bullets}, "RS")})
#set($ic = "RS")
#set($hycType = "RAIN AND MELTING SNOW")
#elseif(${list.contains(${bullets}, "IJ")})
#set($ic = "IJ")
#set($hycType = "ICE JAM FLOODING")
#elseif(${list.contains(${bullets}, "IC")})
#set($ic = "IC")
#elseif(${list.contains(${bullets}, "rapidRiver")})
#set($hycType = "RAPID RIVER RISES")
#elseif(${list.contains(${bullets}, "poorDrainage")})
#set($hycType = "MINOR FLOODING OF POOR DRAINAGE AREAS")
#elseif(${list.contains(${bullets}, "GO")})
#set($ic = "GO")
#set($hycType = "A GLACIER-DAMMED LAKE OUTBURST")
#elseif(${list.contains(${bullets}, "OT")})
#set($ic = "OT")
#set($hycType = "GROUND WATER FLOODING")
#elseif(${list.contains(${bullets}, "DR")})
#set($ic = "DR")
#set($hycType = "DAM GATE RELEASE")
#end
##
${WMOId} ${vtecOffice} 000000 ${BBBId}
FLS${siteId}
#if(${productClass}=="T")
TEST...FLOOD ADVISORY...TEST
#else
FLOOD ADVISORY
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
${ugcline}
/${productClass}.${action}.${vtecOffice}.FA.Y.${etn}.${starttime}-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#headlineext(${officeLoc}, ${backupSite}, ${extend})
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
${advType} FOR...
#if(${hycType} != "")
##<L> ${hycType} IN...</L> (EXCLUDED FOR AK)
<L> ${hycType}...</L>
#end
##REMMED OUT FOR ALASKA
###firstBullet(${areas})
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###firstBullet(${affectedCounties})
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone})
#set($report = "!** warning basis **!")
#set($typeofevent = "")
#set($cause = "HEAVY RAIN")
#set($rainAmount = "")
#if(${list.contains(${bullets}, "SM")})
#set($cause = "SNOW MELT")
#end
#if(${list.contains(${bullets}, "RS")})
#set($cause = "HEAVY RAIN AND SNOW MELT")
#end
#if(${list.contains(${bullets}, "IJ")})
#set($cause = "AN ICE JAM")
#end
#if(${list.contains(${bullets}, "IC")})
#set($cause = "AN ICE JAM AND HEAVY RAIN")
#end
#if(${list.contains(${bullets}, "SM")})
#set($report = "MINOR FLOODING IS !** OCCURRING/EXPECTED **! DUE TO SNOW MELT")
#end
#if(${list.contains(${bullets}, "RS")})
#set($report = "MINOR FLOODING IS !** OCCURRING/EXPECTED **! DUE TO HEAVY RAIN AND SNOW MELT")
#end
#if(${list.contains(${bullets}, "IJ")})
#set($report = "MINOR FLOODING IS !** OCCURRING/EXPECTED **! DUE TO AN ICE JAM")
#end
#if(${list.contains(${bullets}, "IC")})
#set($report = "MINOR FLOODING IS !** OCCURRING/EXPECTED **! DUE TO AN ICE JAM AND HEAVY RAIN")
#end
#if(${list.contains(${bullets}, "rapidRiver")})
#set($typeofevent = ". RAPID RIVER RISES ARE EXPECTED")
#end
#if(${list.contains(${bullets}, "glacierOutburst")})
#set($report = "A GLACIER-DAMMED LAKEOUTBURST FLOOD WILL RESULT IN MINOR FLOODING AT !** LOCATION **!")
#end
#if(${list.contains(${bullets}, "groundWater")})
#set($report = "RISING GROUND WATER LEVELS WILL RESULT IN MINOR FLOODING AT !** LOCATION **!")
#end
#if(${list.contains(${bullets}, "poorDrainage")})
#set($typeofevent = ". OVERFLOWING POOR DRAINAGE AREAS WILL RESULT IN MINOR FLOODING")
#end
#if(${list.contains(${bullets}, "satellite")})
#set($report = "SATELLITE ESTIMATES INDICATE HEAVY RAINFALL THAT WILL CAUSE ${advTypeShort}${typeofevent} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "satelliteGauge")})
#set($report = "SATELLITE ESTIMATES AND RAIN GAUGE DATA INDICATE HEAVY RAINFALL THAT WILL CAUSE ${advTypeShort}${typeofevent} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "doppler")})
#set($report = "DOPPLER RADAR INDICATED ${cause} THAT WILL CAUSE ${advTypeShort}${typeofevent} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")})
#set($report = "DOPPLER RADAR INDICATED ${cause} DUE TO A THUNDERSTORM THAT WILL CAUSE ${advTypeShort}${typeofevent} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "DOPPLER RADAR INDICATED ${cause} DUE TO A LINE OF THUNDERSTORMS THAT WILL CAUSE ${advTypeShort}${typeofevent} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "dopplerGauge")})
#set($report = "AUTOMATED RAIN GAUGES INDICATED ${cause} THAT WILL CAUSE ${advTypeShort}${typeofevent} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "thunder")})
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED ${cause} DUE TO A THUNDERSTORM THAT WILL CAUSE ${advTypeShort}${typeofevent} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED ${cause} DUE TO A LINE OF THUNDERSTORMS THAT WILL CAUSE ${advTypeShort}${typeofevent} IN THE ADVISORY AREA")
#end
#if(${list.contains(${bullets}, "trainedSpotters")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${typeofevent}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "thunder")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED ${cause} IN !** LOCATION **! DUE TO A THUNDERSTORM THAT WILL CAUSE ${advTypeShort}${typeofevent}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "actual")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${typeofevent}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${typeofevent}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${typeofevent}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "thunder")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${cause} IN !** LOCATION **! DUE TO A THUNDERSTORM IN THAT WILL CAUSE ${advTypeShort}${typeofevent}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "actual")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${typeofevent}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${typeofevent}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")})
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${typeofevent}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "thunder")})
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} IN !** LOCATION **! DUE TO A THUNDERSTORM IN THAT WILL CAUSE ${advTypeShort}${typeofevent}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "actual")})
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${typeofevent}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${typeofevent}")
#end
#if(${list.contains(${bullets}, "public")})
#set($report = "THE PUBLIC REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${typeofevent}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "glacierOutburst")})
#set($report = "THE PUBLIC REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO A GLACIER-DAMMED LAKE OUTBURST FLOOD")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "groundWater")})
#set($report = "THE PUBLIC REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO RISING GROUND WATER LEVELS")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "glacierOutburst")})
#set($report = "A TRAINED SPOTTER REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO A GLACIER-DAMMED LAKE OUTBURST FLOOD")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "groundWater")})
#set($report = "A TRAINED SPOTTER REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO RISING GROUND WATER LEVELS")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "glacierOutburst")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO A GLACIER-DAMMED LAKE OUTBURST FLOOD")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "groundWater")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO RISING GROUND WATER LEVELS")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "glacierOutburst")})
#set($report = "EMERGENCY MANAGEMENT REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO A GLACIER-DAMMED LAKE OUTBURST FLOOD")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "groundWater")})
#set($report = "EMERGENCY MANAGEMENT REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO RISING GROUND WATER LEVELS")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "thunder")})
#set($report = "THE PUBLIC REPORTED ${advTypeShort} IN !** LOCATION **! DUE TO A THUNDERSTORM THAT WILL CAUSE ${advTypeShort}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "actual")})
#set($report = "THE PUBLIC REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${typeofevent}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "THE PUBLIC REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE MINOR FLOODING${typeofevent}")
#end
#if(${list.contains(${bullets}, "rain1")} )
#set($rainAmount = "UP TO ONE INCH OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rain2")} )
#set($rainAmount = "UP TO TWO INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rain3")} )
#set($rainAmount = "UP TO THREE INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rainEdit")} )
#set($rainAmount = "!** RAINFALL AMOUNTS **! INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "doppler")} || ${list.contains(${bullets}, "dopplerGauge")})
#set($estimate = "UP TO !** Number **! INCHES OF RAIN HAS FALLEN IN THE PAST HOUR.")
#else
#set($estimate = "")
#end
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
...${report}. ${estimate}${rainAmount}
#set($phenomena = "FLOOD")
#set($warningType = "ADVISORY")
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
## #locationsList("SOME LOCATIONS THAT WILL EXPERIENCE MINOR FLOODING INCLUDE" "THE FLOODING IS EXPECTED TO IMPACT MAINLY RURAL AREAS OF" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0) EXCLUDED FOR ALASKA
#if(${list.contains(${bullets}, "fcstPoint")})
FOR THE !** insert river name and forecast point **!...
AT ${dateUtil.format(${now}, ${timeFormat.clock}, ${localtimezone})} THE STAGE WAS !** xx.x **! FEET.
FLOOD STAGE IS !** xx.x **! FEET.
FORECAST... !** insert crest stage and time **!.
IMPACTS...!** discussion of expected impacts and flood path **!
#else
!** insert impacts and flood path **!
#end
#if(${list.contains(${bullets}, "addRainfall")})
ADDITIONAL RAINFALL OF !** Edit Amount **! INCHES IS EXPECTED OVER THE AREA. THIS ADDITIONAL RAIN WILL CAUSE MINOR FLOODING.
#end
#if(${list.contains(${bullets}, "specificPlace")})
MINOR FLOODING IS OCCURRING NEAR !** Enter Location **!.
#end
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
#####################
## CALL TO ACTIONS ##
#####################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
#if(${list.contains(${bullets}, "dontdrownCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains(${bullets}, "urbanCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE ELEVATED LEVELS ON SMALL CREEKS AND STREAMS...AND PONDING OF WATER IN URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES AS WELL AS OTHER POOR DRAINAGE AREAS AND LOW LYING SPOTS.
#end
#if(${list.contains(${bullets}, "ruralCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES. ADDITIONALLY...COUNTRY ROADS AND FARMLANDS ALONG THE BANKS OF CREEKS...STREAMS AND OTHER LOW LYING AREAS ARE SUBJECT TO FLOODING.
#end
#if(${list.contains(${bullets}, "donotdriveCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "lowspotsCTA")})
IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS WHICH ARE POTENTIALLY DANGEROUS IN HEAVY RAIN. DO NOT ATTEMPT TO TRAVEL ACROSS FLOODED ROADS. FIND ALTERNATE ROUTES. IT TAKES ONLY A FEW INCHES OF SWIFTLY FLOWING WATER TO CARRY VEHICLES AWAY.
#end
#if(${list.contains(${bullets}, "powerCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains(${bullets}, "reportFloodingCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE FORECAST OFFICE.
#end
#if(${list.contains(${bullets}, "advisoryMeansCTA")})
A FLOOD ADVISORY MEANS RIVER OR STREAM FLOWS ARE ELEVATED...OR PONDING OF WATER IN URBAN OR OTHER AREAS IS OCCURRING OR IS IMMINENT. DO NOT ATTEMPT TO TRAVEL ACROSS FLOODED ROADS. FIND ALTERNATE ROUTES. IT TAKES ONLY A FEW INCHES OF SWIFTLY FLOWING WATER TO CARRY VEHICLES AWAY.
#end
#if(${ctaSelected} == "YES")
&&
#end
#################################### END OF CTA STUFF ###################################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
#parse("forecasterName.vm")

View file

@ -1,404 +0,0 @@
<!-- Areal Flood Advisory ZONES configuration -->
<!-- Created by Mike Dangelo 09-19-2011 at TIM Alaska to make Zones possible
Mary-Beth Schreck, Ed Plumb, Aaron Jacobs 09-22-2011 at Alaska TIM
Mike Dangelo 01-26-2012 at CRH TIM
Phil Kurimski 02-29-2012
Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
Evan Bookbinder 09-10-2012 DR15179 Added areaSource object to allow for
county-based headlines in zone based products.
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
Added new areaSource object
Mike Dangelo 2-6-2013 new WarnGenLoc filename for geospatial config and default bullets for ic's
Evan Bookbinder 5-5-2013 fixed <type> variable under areaSource objects
-->
<warngenConfig>
<!-- Config distance/speed units -->
<unitDistance>mi</unitDistance>
<unitSpeed>mph</unitSpeed>
<!-- Maps to load on template selection. Refer to 'Maps' menu in CAVE.
The various menu items are also the different maps
that can be loaded with each template. -->
<maps>
<map>Forecast Zones</map>
<!-- <map>County Names</map> -->
<!-- <map>County Warning Areas</map> -->
<!-- <map>FFMP Small Stream Basin Links</map> -->
<!-- <map>Major Rivers</map> -->
</maps>
<!-- Followups: VTEC actions of allowable followups when this template is selected
Each followup will become available when the appropriate time range permits.
-->
<followups>
<followup>NEW</followup>
<followup>COR</followup>
<followup>EXT</followup>
</followups>
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
<phensigs>
<phensig>FA.Y</phensig>
</phensigs>
<!-- Enables/disables user from selecting the Restart button the GUI -->
<enableRestart>true</enableRestart>
<!-- Enable/disables the system to lock text based on various patterns -->
<autoLockText>true</autoLockText>
<!-- durations: the list of possible durations -->
<defaultDuration>180</defaultDuration>
<durations>
<duration>60</duration>
<duration>120</duration>
<duration>180</duration>
<duration>210</duration>
<duration>240</duration>
<duration>270</duration>
<duration>300</duration>
<duration>330</duration>
<duration>360</duration>
<duration>420</duration>
<duration>480</duration>
<duration>540</duration>
<duration>600</duration>
<duration>660</duration>
<duration>720</duration>
<duration>1440</duration>
<duration>2160</duration>
<duration>2880</duration>
<duration>3600</duration>
</durations>
<lockedGroupsOnFollowup>ic,advType</lockedGroupsOnFollowup>
<bulletActionGroups>
<bulletActionGroup action="NEW" phen="FA" sig="Y">
<bullets>
<bullet bulletText="************* TYPE OF ADVISORY ***********" bulletType="title"/>
<bullet bulletName="general" bulletText="general (minor flooding)" bulletGroup="advType" bulletDefault="true" parseString="&quot;-ARROYO&quot;,&quot;-SMALL STREAM FLOOD ADVISORY&quot;,&quot;FLOOD ADVISORY&quot;"/>
<bullet bulletName="small" bulletText="small stream" bulletGroup="advType" parseString="&quot;-URBAN AND&quot;,&quot;-ARROYO&quot;,&quot;SMALL STREAM FLOOD ADVISORY&quot;"/>
<bullet bulletName="uss" bulletText="urban and small stream" bulletGroup="advType" parseString="URBAN AND SMALL STREAM FLOOD ADVISORY"/>
<!-- <bullet bulletName="arroyo" bulletText="arroyo and small stream" bulletGroup="advType" parseString="ARROYO"/> -->
<!-- <bullet bulletName="hydrologic" bulletText="hydrologic" bulletGroup="advType" parseString="HYDROLOGIC ADVISORY"/> -->
<bullet bulletText="*********** PRIMARY CAUSE *********** " bulletType="title"/>
<bullet bulletName="ER" bulletText="Excessive Rain" bulletGroup="ic" bulletDefault="true" parseString=".ER."/>
<bullet bulletName="SM" bulletText="Snow melt" bulletGroup="ic" parseString=".SM."/>
<bullet bulletName="RS" bulletText="Excessive rain and snow melt" bulletGroup="ic" parseString=".RS."/>
<bullet bulletName="IJ" bulletText="Ice jam" bulletGroup="ic" parseString=".IJ."/>
<bullet bulletName="GO" bulletText="Glacial Lake Outburst" bulletGroup="ic" parseString=".GO."/>
<bullet bulletName="OT" bulletText="Ground water" bulletGroup="ic" parseString=".OT."/>
<bullet bulletName="DR" bulletText="Dam Gate Release" bulletGroup="ic" parseString=".DR."/>
<!-- <bullet bulletName="IC" bulletText="Ice jam and rain" bulletGroup="ic" parseString=".IC."/> -->
<bullet bulletText="*********** REPORT SOURCE (choose 1) **********" bulletType="title"/>
<bullet bulletName="satellite" bulletText="Satellite estimates indicate" bulletGroup="reportSource" parseString="SATELLITE ESTIMATES INDICATE"/>
<bullet bulletName="satelliteGauge" bulletText="Satellite estimates and Rain Gauges indicate" bulletGroup="reportSource" parseString="SATELLITE ESTIMATES AND"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="reportSource" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="reportSource" parseString="AUTOMATED "/>
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="reportSource" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="reportSource" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement reported" bulletGroup="reportSource" parseString="LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency Management reported" bulletGroup="reportSource" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (choose 1) *********** " bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorm(s)" bulletGroup="advEvent" parseString="FROM A THUNDERSTORM "/>
<bullet bulletName="actual" bulletText="Minor flooding occurring" bulletGroup="advEvent" parseString="REPORTED MINOR "/>
<bullet bulletName="plainRain" bulletText="Due to only heavy rain" bulletGroup="advEvent" parseString="DUE TO HEAVY RAIN "/>
<bullet bulletName="rapidRiver" bulletText="Rapid river rises" bulletGroup="advEvent" parseString="RAPID RIVER RISES "/>
<bullet bulletName="poorDrainage" bulletText="Minor flooding for poor drainage" bulletGroup="advEvent" parseString="FOR MINOR FLOODING OF POOR DRAINAGE AREAS IN"/>
<bullet bulletName="glacierOutburst" bulletText="Glacial Lake Outburst" bulletGroup="advEvent" parseString="GLACIER DAMMED LAKE OUTBURST FLOOD"/>
<bullet bulletName="groundWater" bulletText="Ground water" bulletGroup="advEvent" parseString="GROUND WATER"/>
<bullet bulletText="*********** RAIN AMOUNT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="one inch so far" bulletGroup="rainamt" parseString="ONE INCH "/>
<bullet bulletName="rain2" bulletText="two inches so far" bulletGroup="rainamt" parseString="TWO INCHES "/>
<bullet bulletName="rain3" bulletText="three inches so far" bulletGroup="rainamt" parseString="THREE INCHES "/>
<bullet bulletName="rainEdit" bulletText="user defined amount" bulletGroup="rainamt" parseString="INCHES HAS FALLEN "/>
<bullet bulletText="*********** FORECAST AND IMPACT INFO ***********" bulletType="title"/>
<bullet bulletName="fcstPoint" bulletText="Flood area includes forecast point" bulletDefault="true" parseString="FLOOD STAGE IS"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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="dontdrownCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="urbanCTA" bulletText="Urban flooding" parseString="AND PONDING OF WATER IN URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString="SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="donotdriveCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="lowspotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="powerCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
<bullet bulletName="advisoryMeansCTA" bulletText="A flood advisory means" parseString="A FLOOD ADVISORY MEANS RIVER OR STREAM FLOWS"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="COR" phen="FA" sig="Y">
<bullets>
<bullet bulletText="************* TYPE OF ADVISORY ***********" bulletType="title"/>
<bullet bulletName="general" bulletText="general (minor flooding)" bulletGroup="advType" parseString="&quot;-ARROYO&quot;,&quot;-SMALL STREAM FLOOD ADVISORY&quot;,&quot;FLOOD ADVISORY&quot;" showString="&quot;-ARROYO&quot;,&quot;-SMALL STREAM FLOOD ADVISORY&quot;,&quot;FLOOD ADVISORY&quot;"/>
<bullet bulletName="small" bulletText="small stream" bulletGroup="advType" parseString="&quot;-URBAN AND&quot;,&quot;-ARROYO&quot;,&quot;SMALL STREAM FLOOD ADVISORY&quot;" showString="&quot;-URBAN AND&quot;,&quot;-ARROYO&quot;,&quot;SMALL STREAM FLOOD ADVISORY&quot;"/>
<bullet bulletName="uss" bulletText="urban and small stream" bulletGroup="advType" parseString="URBAN AND SMALL STREAM FLOOD ADVISORY" showString="URBAN AND SMALL STREAM FLOOD ADVISORY"/>
<!-- <bullet bulletName="arroyo" bulletText="arroyo and small stream" bulletGroup="advType" parseString="ARROYO" showString="ARROYO"/> -->
<!-- <bullet bulletName="hydrologic" bulletText="hydrologic" bulletGroup="advType" parseString="HYDROLOGIC ADVISORY" showString="HYDROLOGIC ADVISORY"/> -->
<bullet bulletText="*********** PRIMARY CAUSE OTHER THAN HEAVY RAIN *********** " bulletType="title"/>
<bullet bulletName="SM" bulletText="Snow melt" bulletGroup="ic" parseString=".SM." showString=".SM."/>
<bullet bulletName="RS" bulletText="Excessive rain and snow melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="IJ" bulletText="Ice jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<bullet bulletName="GO" bulletText="Glacial Lake Outburst" bulletGroup="ic" parseString=".GO." showString=".GO."/>
<bullet bulletName="OT" bulletText="Ground water" bulletGroup="ic" parseString=".OT." showString=".OT."/>
<bullet bulletName="DR" bulletText="Dam Gate Flood Release" bulletGroup="ic" parseString=".DR." showString=".DR."/>
<!-- <bullet bulletName="IC" bulletText="Ice jam and rain" bulletGroup="ic" parseString=".IC." showString=".IC."/> -->
<bullet bulletText="*********** REPORT SOURCE (choose 1) **********" bulletType="title"/>
<bullet bulletName="satellite" bulletText="Satellite estimates indicate" bulletGroup="reportSource" parseString="SATELLITE ESTIMATES INDICATE"/>
<bullet bulletName="satelliteGauge" bulletText="Satellite estimates and Rain Gauges indicate" bulletGroup="reportSource" parseString="SATELLITE ESTIMATES AND"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="reportSource" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="reportSource" parseString="AUTOMATED "/>
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="reportSource" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="reportSource" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement reported" bulletGroup="reportSource" parseString="LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency Management reported" bulletGroup="reportSource" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (choose 1) *********** " bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorm(s)" bulletGroup="advEvent" parseString="FROM A THUNDERSTORM "/>
<bullet bulletName="actual" bulletText="Minor flooding occurring" bulletGroup="advEvent" parseString="REPORTED MINOR "/>
<bullet bulletName="plainRain" bulletText="Due to only heavy rain" bulletGroup="advEvent" parseString="DUE TO HEAVY RAIN "/>
<bullet bulletName="rapidRiver" bulletText="Rapid river rises" bulletGroup="advEvent" parseString="RAPID RIVER RISES "/>
<bullet bulletName="poorDrainage" bulletText="Minor flooding for poor drainage" bulletGroup="advEvent" parseString="FOR MINOR FLOODING OF POOR DRAINAGE AREAS IN"/>
<bullet bulletName="glacierOutburst" bulletText="Glacial Lake Outburst" bulletGroup="advEvent" parseString="GLACIER DAMMED LAKE OUTBURST FLOOD"/>
<bullet bulletName="groundWater" bulletText="Ground water" bulletGroup="advEvent" parseString="GROUND WATER"/>
<bullet bulletText="*********** RAIN AMOUNT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="one inch so far" bulletGroup="rainamt" parseString="ONE INCH "/>
<bullet bulletName="rain2" bulletText="two inches so far" bulletGroup="rainamt" parseString="TWO INCHES "/>
<bullet bulletName="rain3" bulletText="three inches so far" bulletGroup="rainamt" parseString="THREE INCHES "/>
<bullet bulletName="rainEdit" bulletText="user defined amount" bulletGroup="rainamt" parseString="INCHES HAS FALLEN "/>
<bullet bulletText="*********** FORECAST AND IMPACT INFO ***********" bulletType="title"/>
<bullet bulletName="fcstPoint" bulletText="Flood area includes forecast point" bulletDefault="true" parseString="FLOOD STAGE IS"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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="dontdrownCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="urbanCTA" bulletText="Urban flooding" parseString="AND PONDING OF WATER IN URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString="SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="donotdriveCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="lowspotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="powerCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
<bullet bulletName="advisoryMeansCTA" bulletText="A flood advisory means" parseString="A FLOOD ADVISORY MEANS RIVER OR STREAM FLOWS"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="EXT" phen="FA" sig="Y">
<bullets>
<bullet bulletText="************* TYPE OF ADVISORY ***********" bulletType="title"/>
<bullet bulletName="general" bulletText="general (minor flooding)" bulletGroup="advType" parseString="&quot;-ARROYO&quot;,&quot;-SMALL STREAM FLOOD ADVISORY&quot;,&quot;FLOOD ADVISORY&quot;" showString="&quot;-ARROYO&quot;,&quot;-SMALL STREAM FLOOD ADVISORY&quot;,&quot;FLOOD ADVISORY&quot;"/>
<bullet bulletName="small" bulletText="small stream" bulletGroup="advType" parseString="&quot;-URBAN AND&quot;,&quot;-ARROYO&quot;,&quot;SMALL STREAM FLOOD ADVISORY&quot;" showString="&quot;-URBAN AND&quot;,&quot;-ARROYO&quot;,&quot;SMALL STREAM FLOOD ADVISORY&quot;"/>
<bullet bulletName="uss" bulletText="urban and small stream" bulletGroup="advType" parseString="URBAN AND SMALL STREAM FLOOD ADVISORY" showString="URBAN AND SMALL STREAM FLOOD ADVISORY"/>
<!-- <bullet bulletName="arroyo" bulletText="arroyo and small stream" bulletGroup="advType" parseString="ARROYO" showString="ARROYO"/> -->
<!-- <bullet bulletName="hydrologic" bulletText="hydrologic" bulletGroup="advType" parseString="HYDROLOGIC ADVISORY" showString="HYDROLOGIC ADVISORY"/> -->
<bullet bulletText="*********** PRIMARY CAUSE OTHER THAN HEAVY RAIN *********** " bulletType="title"/>
<bullet bulletName="SM" bulletText="Snow melt" bulletGroup="ic" parseString=".SM." showString=".SM."/>
<bullet bulletName="RS" bulletText="Excessive rain and snow melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="IJ" bulletText="Ice jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<bullet bulletName="GO" bulletText="Glacial Lake Outburst" bulletGroup="ic" parseString=".GO." showString=".GO."/>
<bullet bulletName="OT" bulletText="Ground water" bulletGroup="ic" parseString=".OT." showString=".OT."/>
<bullet bulletName="DR" bulletText="Dam Gate Flood Release" bulletGroup="ic" parseString=".DR." showString=".DR."/>
<!-- <bullet bulletName="IC" bulletText="Ice jam and rain" bulletGroup="ic" parseString=".IC." showString=".IC."/> -->
<bullet bulletText="*********** REPORT SOURCE (choose 1) **********" bulletType="title"/>
<bullet bulletName="satellite" bulletText="Satellite estimates indicate" bulletGroup="reportSource" parseString="SATELLITE ESTIMATES INDICATE"/>
<bullet bulletName="satelliteGauge" bulletText="Satellite estimates and Rain Gauges indicate" bulletGroup="reportSource" parseString="SATELLITE ESTIMATES AND"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="reportSource" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="reportSource" parseString="AUTOMATED "/>
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="reportSource" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="reportSource" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement reported" bulletGroup="reportSource" parseString="LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency Management reported" bulletGroup="reportSource" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (choose 1) *********** " bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorm(s)" bulletGroup="advEvent" parseString="FROM A THUNDERSTORM "/>
<bullet bulletName="actual" bulletText="Minor flooding occurring" bulletGroup="advEvent" parseString="REPORTED MINOR "/>
<bullet bulletName="plainRain" bulletText="Due to only heavy rain" bulletGroup="advEvent" parseString="DUE TO HEAVY RAIN "/>
<bullet bulletName="rapidRiver" bulletText="Rapid river rises" bulletGroup="advEvent" parseString="RAPID RIVER RISES "/>
<bullet bulletName="poorDrainage" bulletText="Minor flooding for poor drainage" bulletGroup="advEvent" parseString="FOR MINOR FLOODING OF POOR DRAINAGE AREAS IN"/>
<bullet bulletName="glacierOutburst" bulletText="Glacial Lake Outburst" bulletGroup="advEvent" parseString="GLACIER DAMMED LAKE OUTBURST FLOOD"/>
<bullet bulletName="groundWater" bulletText="Ground water" bulletGroup="advEvent" parseString="GROUND WATER"/>
<bullet bulletText="*********** RAIN AMOUNT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="one inch so far" bulletGroup="rainamt" parseString="ONE INCH "/>
<bullet bulletName="rain2" bulletText="two inches so far" bulletGroup="rainamt" parseString="TWO INCHES "/>
<bullet bulletName="rain3" bulletText="three inches so far" bulletGroup="rainamt" parseString="THREE INCHES "/>
<bullet bulletName="rainEdit" bulletText="user defined amount" bulletGroup="rainamt" parseString="INCHES HAS FALLEN "/>
<bullet bulletText="*********** FORECAST AND IMPACT INFO ***********" bulletType="title"/>
<bullet bulletName="fcstPoint" bulletText="Flood area includes forecast point" bulletDefault="true" parseString="FLOOD STAGE IS"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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="dontdrownCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="urbanCTA" bulletText="Urban flooding" parseString="AND PONDING OF WATER IN URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString="SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="donotdriveCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="lowspotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="powerCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
<bullet bulletName="advisoryMeansCTA" bulletText="A flood advisory means" parseString="A FLOOD ADVISORY MEANS RIVER OR STREAM FLOWS"/>
</bullets>
</bulletActionGroup>
</bulletActionGroups>
<trackEnabled>false</trackEnabled>
<!-- Four variables below have been changed from the County-coded products -->
<!-- areaSource.areaField -->
<!-- areaSource.fipsField -->
<!-- pathcastConfig.areaField and -->
<!-- geospatialConfig.areaSource -->
<!-- Default areaSource object to generate zone based information -->
<areaSource variable="areas">
<areaSource>Zone</areaSource>
<!-- <areaSource>County</areaSource> -->
<type>HATCHING</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>NAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<fipsField>STATE_ZONE</fipsField>
<!-- <fipsField>STATE</fipsField> -->
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Add in areaSource object to generate county-based headline if desired -->
<areaSource variable="affectedCounties">
<areaSource>County</areaSource>
<type>INTERSECT</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>COUNTYNAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<fipsField>FIPS</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Required, but unused by this template -->
<pathcastConfig>
<type>AREA</type>
<inclusionPercent>1</inclusionPercent>
<withinPolygon>true</withinPolygon>
<distanceThreshold>8.0</distanceThreshold>
<interval>5</interval>
<delta>5</delta>
<maxResults>4</maxResults>
<maxGroup>8</maxGroup>
<pointField>Name</pointField>
<type>AREA</type>
<areaField>COUNTYNAME</areaField>
<!-- <areaField>NAME</areaField> -->
<parentAreaField>STATE</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
</pathcastConfig>
<pointSource variable="cityList">
<pointField>NAME</pointField>
<inclusionPercent>1</inclusionPercent>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>30</maxResults>
<distanceThreshold>200</distanceThreshold>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2,3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
<sortBy>
<sort>warngenlev</sort>
<sort>population</sort>
<sort>distance</sort>
</sortBy>
</pointSource>
<!-- Required, but unused by this template -->
<pointSource variable="otherPoints">
<pointField>NAME</pointField>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>10</maxResults>
<distanceThreshold>200</distanceThreshold>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
</pointSource>
<!-- this "include file" tag will grab the Mile Marker XML pointSource tags,
and place into this template -->
<include file="mileMarkers.xml"/>
<geospatialConfig>
<pointSource>WarnGenLoc</pointSource>
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<parentAreaSource>States</parentAreaSource>
<timezoneSource>TIMEZONES</timezoneSource>
<timezoneField>TIME_ZONE</timezoneField>
</geospatialConfig>
<pointSource variable="riverdrainages">
<pointSource>ffmp_basins</pointSource>
<geometryDecimationTolerance>0.064</geometryDecimationTolerance>
<pointField>streamname</pointField>
<filter>
<mapping key="cwa">
<constraint constraintValue="$warngenCWAFilter" constraintType="EQUALS" />
</mapping>
</filter>
<withinPolygon>true</withinPolygon>
</pointSource>
</warngenConfig>

View file

@ -1,436 +0,0 @@
### FLOOD WARNING FOLLOW UP in ZONES ######
###########################################
#######################################################################
## Created BY MIKE DANGELO 9-19-2011 at Alaska TIM for zones coding ##
## Edited by Phil kurimski 2-29-2012
## Edited by Mike Rega 5-02-2012 DR 14885-MND blank line
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}
#################################### SET SOME VARs ###################################
#set($hycType = "")
#set($floodReason = "")
#set($floodType = "FLOODING")
###OVERRIDE DEFAULT EXECESSIVE RAINFALL IF NECESSARY
#*
#if(${list.contains(${bullets}, "icrs")})
#set($hycType = "RAIN AND SNOW MELT")
#set($floodReason = " RAPID SNOW MELT IS ALSO OCCURRING AND WILL ADD TO THE ${floodType}.")
#elseif(${list.contains(${bullets}, "icsm")})
#set($hycType = "RAPID SNOW MELT")
#set($floodReason = " RAPID SNOW MELT IS OCCURRING AND WILL CAUSE ${floodType}.")
#elseif(${list.contains(${bullets}, "icij")})
#set($hycType = "ICE JAM FLOODING")
#set($floodReason = " AN ICE JAM IS OCCURRING AND WILL CAUSE ${floodType}.")
#elseif(${list.contains(${bullets}, "icicr")})
#set($hycType = "AN ICE JAM AND HEAVY RAIN")
#set($floodReason = " AN ICE JAM IS ALSO OCCURRING AND WILL CAUSE ${floodType}.")
#elseif(${list.contains(${bullets}, "icics")})
#set($hycType = "AN ICE JAM AND RAPID SNOW MELT")
#set($floodReason = " AN ICE JAM AND RAPID SNOW MELT ARE ALSO OCCURRING AND WILL CAUSE ${floodType}.")
#elseif(${list.contains(${bullets}, "icerr")})
#set($hycType = "RAPID RIVER RISES")
#end
*#
#if(${ic} == "SM")
#set($hycType = "RAPID SNOW MELT")
#set($floodReason = " RAPID SNOW MELT IS OCCURRING AND WILL CONTINUE TO CAUSE ${floodType}.")
#elseif(${ic} == "RS")
#set($hycType = "RAIN AND SNOW MELT")
#set($floodReason = " RAPID SNOW MELT IS ALSO OCCURRING AND WILL ADD TO THE ${floodType}.")
#elseif(${ic} == "IJ")
#set($hycType = "ICE JAM FLOODING")
#set($floodReason = " AN ICE JAM IS OCCURRING AND WILL CONTINUE TO CAUSE ${floodType}.")
#elseif(${ic} == "IC")
#set($hycType = "AN ICE JAM AND HEAVY RAIN")
#set($floodReason = " FLOODING DUE TO AN ICE JAM AND HEAVY RAIN WILL CONTINUE.")
#elseif(${ic} == "MC")
#set($hycType = "")
#set($floodReason = "")
#elseif(${ic} == "UU")
#set($hycType = "")
#set($floodReason = "")
#elseif(${ic} == "DM")
#set($hycType = "LEVEE FAILURE")
#set($floodReason = " FLOODING DUE TO A LEVEE FAILURE WILL CONTINUE.")
#elseif(${ic} == "DR")
#set($hycType = "DAM GATE RELEASE")
#set($floodReason = " FLOODING DUE TO A DAM GATE RELEASE.")
#elseif(${ic} == "GO")
#set($hycType = "GLACIER-DAMMED LAKE OUTBURST")
#set($floodReason = " FLOODING DUE TO A GLACIER-DAMMED LAKE OUTBURST.")
#elseif(${ic} == "OT")
#set($hycType = "GROUND WATER FLOODING")
#set($floodReason = " FLOODING DUE TO GROUND WATER.")
#end
##
######################################################################################
${WMOId} ${vtecOffice} 000000 ${BBBId}
FLS${siteId}
#if(${productClass}=="T")
TEST...FLOOD STATEMENT...TEST
#else
FLOOD STATEMENT
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${action}=="COR" && ${cancelareas})
#set($CORCAN = "true")
#else
#set($CORCAN = "false")
#end
#if(${action}=="CANCON")
${ugclinecan}
################### VTEC/COUNTY LINE ##################
/${productClass}.CAN.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${cancelareas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
#elseif(${CORCAN}=="true")
${ugclinecan}
################### VTEC/COUNTY LINE ##################
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${cancelareas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
#else
${ugcline}
################### VTEC/COUNTY LINE ##################
/${productClass}.${action}.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${areas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#################################################################
#################################################################
## LETS START WITH EXPIRATION AND CANCELLATION SEGMENTS #####
#################################################################
#################################################################
### CREATE PHRASING DEPENDING ON WHETHER WE ISSUE EXP PRIOR TO EXPIRATION TIME OR NOT
#if(${now.compareTo(${expire})} >= 0 && ${action}=="EXP" )
#set($expcanHLTag = "HAS EXPIRED")
#set($expcanBODYTag = "HAS BEEN ALLOWED TO EXPIRE")
#elseif(${action}=="EXP")
#set($expcanHLTag = "WILL EXPIRE AT ${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${localtimezone})}")
#set($expcanBODYTag = "WILL BE ALLOWED TO EXPIRE")
#elseif(${action}=="CAN" || ${action}=="CANCON" || ${CORCAN}=="true")
#set($expcanHLTag = "IS CANCELLED")
#set($expcanBODYTag = "HAS BEEN CANCELLED")
#end
################################
#### CREATE HEADLINES ##########
################################
## <areaSource>County</areaSource>
#if(${action}=="EXP" || ${action}=="CAN")
...THE FLOOD WARNING FOR ##
#if(${hycType} != "")
<L>${hycType}</L> IN ##
#end
##REMMED OUT FOR Alaska. This would output the headline in zone format
###zoneHeadlineLocList(${areas} true true true false)
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${affectedCounties} true true true false)
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!
${expcanHLTag}...
## SLIGHTLY DIFFERENT VARIABLE FOR PARTIAL CANCELLATION HEADLINE
#elseif(${action}=="CANCON" || ${CORCAN}=="true")
...THE FLOOD WARNING FOR ##
#if(${hycType} != "")
<L>${hycType}</L> IN ##
#end
##REMMED OUT FOR Alaska. This would output the headline in zone format
###zoneHeadlineLocList(${cancelareas} true true true false)
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${cancelaffectedCounties} true true true false)
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!
${expcanHLTag}...
#end
############################
## END CAN/EXP HEADLINE ####
############################
#######################################
## EXPIRATION/CANCELLATION STATEMENT ##
#######################################
#if(${action}=="EXP" || ${action} == "CAN" || ${action}=="CANCON" || ${CORCAN})
#if(${list.contains(${bullets}, "recedingWater")} && ${list.contains(${bullets}, "rainEnded")})
THE HEAVY RAIN HAS ENDED AND FLOOD WATERS HAVE RECEDED...NO LONGER POSING A THREAT TO LIFE OR PROPERTY. PLEASE CONTINUE TO HEED ANY ROAD CLOSURES.
#elseif(${list.contains(${bullets}, "recedingWater")})
FLOOD WATERS HAVE RECEDED...AND ARE NO LONGER EXPECTED TO POSE A THREAT TO LIFE OR PROPERTY. PLEASE CONTINUE TO HEED ANY ROAD CLOSURES.
#elseif(${list.contains(${bullets}, "rainEnded")})
THE HEAVY RAIN HAS ENDED...AND FLOODING IS NO LONGER EXPECTED TO POSE A THREAT.
#else
!** THE HEAVY RAIN HAS ENDED. !** OR **! THE FLOOD WATER IS RECEDING. THEREFORE...THE FLOODING THREAT HAS ENDED. **!
#end
#printcoords(${areaPoly}, ${list})
#end
#################################### END OF CAN STUFF ###################################
#### IF PARTIAL CANCELLATION, INSERT $$ AND 2ND UGC/MND SECTION PRIOR TO CON PORTION
#########################################################################################
#if(${action}=="CANCON")
${ugcline}
/${productClass}.CON.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${areas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#elseif(${CORCAN}=="true")
${ugcline}
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${areas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#end
############################
## CONTINUATION STATEMENT ##
############################
#if(${action}=="CANCON" || ${action}=="CON" || ${action}=="COR" || ${CORCAN}=="true")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE FLOOD WARNING ##
#if(${hycType} != "")
FOR <L>${hycType}</L> ##
#end
REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
##REMMED OUT FOR Alaska. This would output the headline in zone format
###zoneHeadlineLocList(${areas} true true true false)...
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${affectedCounties} true true true false)...
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
################################################
#################################
######## MAIN PARAGRAPH ###########
#################################
#set($rainAmount = "")
#if(${list.contains(${bullets}, "rain1")} )
#set($rainAmount = " UP TO ONE INCH OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rain2")} )
#set($rainAmount = " UP TO TWO INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rain3")} )
#set($rainAmount = " UP TO THREE INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rainEdit")} )
#set($rainAmount = " !** RAINFALL AMOUNTS **! INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#set($reportBy = "!**YOU DID NOT SELECT A /SOURCE/ BULLET. PLEASE CLOSE THIS WINDOW AND REGENERATE YOUR WARNING**!")
#if(${list.contains(${bullets}, "doppler")})
#set($reportBy = "DOPPLER RADAR INDICATED")
#elseif(${list.contains(${bullets}, "dopplerGauge")})
#set($reportBy = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED")
#elseif(${list.contains(${bullets}, "trainedSpotters")})
#set($reportBy = "TRAINED WEATHER SPOTTERS REPORTED")
#elseif(${list.contains(${bullets}, "lawEnforcement")})
#set($reportBy = "LOCAL LAW ENFORCEMENT REPORTED")
#elseif(${list.contains(${bullets}, "public")})
#set($reportBy = "THE PUBLIC REPORTED")
#elseif(${list.contains(${bullets}, "emergencyManagement")})
#set($reportBy = "EMERGENCY MANAGEMENT REPORTED")
#elseif(${list.contains(${bullets}, "satellite")})
#set($reportBy = "SATELLITE ESTIMATES INDICATED")
#elseif(${list.contains(${bullets}, "satelliteGauge")})
#set($reportBy = "SATELLITE ESTIMATES AND AUTOMATED RAIN GAUGES INDICATED")
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#set($cityListLead = "RUNOFF FROM THIS EXCESSIVE RAINFALL WILL CAUSE ${floodType} TO OCCUR. ")
#if(${list.contains(${bullets}, "thunder")})
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
${reportBy} SLOW MOVING THUNDERSTORMS WITH VERY HEAVY RAINFALL ACROSS THE WARNED AREA.${rainAmount}${floodReason}
#elseif(${list.contains(${bullets}, "plainRain")})
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
${reportBy} AN AREA OF VERY HEAVY RAINFALL ACROSS THE WARNED AREA.${rainAmount}${floodReason}
#elseif(${list.contains(${bullets}, "floodOccurring")})
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
${reportBy} ${floodType} ACROSS THE WARNED AREA.${rainAmount}${floodReason} !** ENTER SPECIFIC REPORTS OF FLOODING AND EXPECTED RAINFALL AMOUNTS **!
#elseif(${list.contains(${bullets}, "genericFlood")})
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
!** ENTER REASON AND FORECAST FOR FLOOD **!
#elseif(${list.contains(${bullets}, "glacierOutburst")})
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
${reportBy} FLOODING DUE TO A GLACIER-DAMMED LAKE OUTBURST ACROSS THE WARNED AREA.${rainAmount}
#elseif(${list.contains(${bullets}, "groundWater")})
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
${reportBy} FLOODING DUE TO GROUND WATER ACROSS THE WARNED AREA.${rainAmount}
#else
!**YOU DID NOT SELECT AN /EVENT/ BULLET. PLEASE CLOSE THIS WINDOW AND REGENERATE YOUR WARNING**!
#end
############################################
######## (CITY LIST) #########
############################################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#### THE THIRD ARGUMENT IS A NUMBER SPECIFYING THE NUMBER OF COLUMNS TO OUTPUT THE CITIES LIST IN
#### 0 IS A ... SEPARATED LIST, 1 IS ONE PER LINE, >1 IS A COLUMN FORMAT
#### IF YOU USE SOMETHING OTHER THAN "LOCATIONS IMPACTED INCLUDE" LEAD IN BELOW, MAKE SURE THE
#### ACCOMPANYING XML FILE PARSE STRING IS CHANGED TO MATCH!
${cityListLead}
## #locationsList("SOME LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE" "${floodType} IS EXPECTED TO OCCUR OVER MAINLY RURAL AREAS OF" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
########################################## END OF OPTIONAL FOURTH BULLET ##############################
######################################
###### WHERE ADDITIONAL INFO GOES ####
######################################
#if(${list.contains(${bullets}, "fcstPoint")})
FOR THE !** insert river name and forecast point **!:
AT ${dateUtil.format(${now}, ${timeFormat.clock}, ${localtimezone})} THE STAGE WAS !** xx.x **! FEET.
FLOOD STAGE IS !** xx.x **! FEET.
FORECAST... !** insert crest stage and time **!.
IMPACTS...!** discussion of expected impacts and flood path **!
#else
!** insert impacts and flood path **!
#end
#if(${list.contains(${bullets}, "addRainfall")})
ADDITIONAL RAINFALL AMOUNTS OF !** EDIT AMOUNT **! ARE POSSIBLE IN THE WARNED AREA.
#end
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
#################################### END OF ADDITIONAL STUFF ###################################
######################################
####### CALL TO ACTIONS ##############
######################################
##Check to see if we've selected any calls to action.
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
#if(${list.contains(${bullets}, "warningMeansCTA")})
A FLOOD WARNING MEANS THAT FLOODING IS IMMINENT OR HAS BEEN REPORTED. STREAM RISES WILL BE SLOW AND FLASH FLOODING IS NOT EXPECTED. HOWEVER...ALL INTERESTED PARTIES SHOULD TAKE NECESSARY PRECAUTIONS IMMEDIATELY.
#end
#if(${list.contains(${bullets}, "dontdrownCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains(${bullets}, "urbanCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE ELEVATED LEVELS ON SMALL CREEKS AND STREAMS...AND PONDING OF WATER IN URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES AS WELL AS OTHER POOR DRAINAGE AREAS AND LOW LYING SPOTS.
#end
#if(${list.contains(${bullets}, "ruralCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE ELEVATED LEVELS ON SMALL CREEKS AND STREAMS...AND PONDING OF WATER ON COUNTRY ROADS AND FARMLAND ALONG THE BANKS OF CREEKS AND STREAMS.
#end
#if(${list.contains(${bullets}, "USS_CTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES IN URBAN AREAS. ADDITIONALLY...COUNTRY ROADS AND FARMLANDS ALONG THE BANKS OF CREEKS...STREAMS AND OTHER LOW LYING AREAS ARE SUBJECT TO FLOODING.
#end
#if(${list.contains(${bullets}, "particularStreamCTA")})
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
#end
#if(${list.contains(${bullets}, "specificCTA")})
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
#end
#if(${list.contains(${bullets}, "nightCTA")})
BE ESPECIALLY CAUTIOUS AT NIGHT WHEN IT IS HARDER TO RECOGNIZE THE DANGERS OF FLOODING. IF FLOODING IS OBSERVED ACT QUICKLY. MOVE UP TO HIGHER GROUND TO ESCAPE FLOOD WATERS. DO NOT STAY IN AREAS SUBJECT TO FLOODING WHEN WATER BEGINS RISING.
#end
#if(${list.contains(${bullets}, "donotdriveCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "autoSafetyCTA")})
FLOODING IS OCCURRING OR IS IMMINENT. MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES. DO NOT ATTEMPT TO CROSS WATER COVERED BRIDGES...DIPS... OR LOW WATER CROSSINGS. NEVER TRY TO CROSS A FLOWING STREAM...EVEN A SMALL ONE...ON FOOT. TO ESCAPE RISING WATER FIND ANOTHER ROUTE OVER HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "camperCTA")})
FLOODING IS OCCURRING OR IS IMMINENT. IT IS IMPORTANT TO KNOW WHERE YOU ARE RELATIVE TO STREAMS...RIVERS...OR CREEKS WHICH CAN BECOME KILLERS IN HEAVY RAINS. CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS.
#end
#if(${list.contains(${bullets}, "lowspotsCTA")})
IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS WHICH ARE POTENTIALLY DANGEROUS IN HEAVY RAIN. DO NOT ATTEMPT TO TRAVEL ACROSS FLOODED ROADS. FIND ALTERNATE ROUTES. IT TAKES ONLY A FEW INCHES OF SWIFTLY FLOWING WATER TO CARRY VEHICLES AWAY.
#end
#if(${list.contains(${bullets}, "powerCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains(${bullets}, "reportFloodingCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE FORECAST OFFICE.
#end
#if(${ctaSelected} == "YES")
&&
#end
#################################### END OF CTA STUFF ###################################
##########################################
########BOTTOM OF THE PRODUCT#############
##########################################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
#end
$$
#parse("forecasterName.vm")

View file

@ -1,363 +0,0 @@
<!-- Areal Flood Warning Follow-up Statement configuration ZONES ENABLED-->
<!-- Created by Mike Dangelo 09-19-2011 at TIM Alaska to make Zones possible -->
<!-- Localized for AK by Aaron Jacobs 9/23/2011 -->
<!-- Edited by Mike 1/26/2012
Phil Kurimski 2-29-2012
Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
Evan Bookbinder 09-12-2012 DR15179 Added areaSource object to allow for
county-based headlines in zone based products.
Added settings for locations shapefile
Evan Bookbinder 5-5-2013 fixed <type> variable under areaSource objects
-->
<warngenConfig>
<!-- Config distance/speed units -->
<unitDistance>mi</unitDistance>
<unitSpeed>mph</unitSpeed>
<!-- Maps to load on template selection. Refer to 'Maps' menu in CAVE.
The various menu items are also the different maps
that can be loaded with each template. -->
<maps>
<map>Forecast Zones</map>
<!-- <map>County Warning Areas</map> -->
<!-- <map>FFMP Small Stream Basin Links</map> -->
<!-- <map>Major Rivers</map> -->
</maps>
<!-- Followups: VTEC actions of allowable followups when this template is selected
Each followup will become available when the appropriate time range permits.-->
<followups>
<followup>COR</followup>
<followup>CON</followup>
<followup>CAN</followup>
<followup>EXP</followup>
</followups>
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
<phensigs>
<phensig>FA.W</phensig>
</phensigs>
<!-- Enables/disables user from selecting the Restart button the GUI -->
<enableRestart>false</enableRestart>
<!-- Enable/disables the system to lock text based on various patterns -->
<autoLockText>true</autoLockText>
<!-- durations: the list of possible durations of the warning -->
<!-- DURATIONS REALLY SERVE NO PURPOSE IN A FOLLOWUP BUT WILL CRASH WARNGEN IF REMVOED -->
<defaultDuration>30</defaultDuration>
<durations>
<duration>30</duration>
</durations>
<lockedGroupsOnFollowup>ic</lockedGroupsOnFollowup>
<!-- bullets: User specified text generation options
- bulletName: an id that is passed to the template when a bullet
is selected. This should be unique
- bulletText: the text presented to the user in the selection list
- bulletType: "title" makes the bullet unselectable
"basin" correlates the item to a Geometry in the customlocations table
- bulletGroup: Only one bullet can be selected per bulletGroup
- parseString: this string must MATCH a unique phrase in the associated bulletText.
This will be used to highlight the appropriate bullet on a follow up-->
<bulletActionGroups>
<bulletActionGroup>
<bullets>
<bullet bulletText="*********** SELECT A FOLLOWUP **********" bulletType="title"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="CAN" phen="FA" sig="W">
<bullets>
<bullet bulletName="recedingWater" bulletText="Receding water" />
<bullet bulletName="rainEnded" bulletText="Heavy rain ended" />
</bullets>
</bulletActionGroup>
<bulletActionGroup action="EXP" phen="FA" sig="W">
<bullets>
<bullet bulletName="recedingWater" bulletText="Water receding" />
<bullet bulletName="rainEnded" bulletText="Heavy rain ended" />
</bullets>
</bulletActionGroup>
<bulletActionGroup action="CON" phen="FA" sig="W">
<bullets>
<!--
<bullet bulletName="smallstreams" bulletText="include small streams" bulletGroup="group1" parseString="SMALL STREAM FLOOD ADVISORY"/>
<bullet bulletName="urbansmallstreams" bulletText="include urban areas and small streams" bulletGroup="group1" parseString="URBAN AND SMALL STREAM FLOOD ADVISORY"/>
-->
<!--
<bullet bulletText="****** HYDROLOGIC CAUSES/CONDITIONS *******" bulletType="title"/>
<bullet bulletName="icer" bulletText="Excessive Rainfall" bulletGroup="ic" parseString="&quot;.ER.&quot;,&quot;-FOR RAPID RIVER RISES&quot;" showString="&quot;.ER.&quot;,&quot;-FOR RAPID RIVER RISES&quot;"/>
<bullet bulletName="icrs" bulletText="Rain and Snow Melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="icsm" bulletText="Snow Melt" bulletGroup="ic" parseString=".SM." showString=".SM."/>
<bullet bulletName="icij" bulletText="Ice Jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<bullet bulletName="icicr" bulletText="Ice Jam and Heavy Rain" bulletGroup="ic" parseString="&quot;.IC.&quot;,&quot;HEAVY RAIN&quot;" showString="&quot;.IC.&quot;,&quot;HEAVY RAIN&quot;"/>
<bullet bulletName="icics" bulletText="Ice Jam and Snow Melt" bulletGroup="ic" parseString="&quot;.IC.&quot;,&quot;SNOW MELT&quot;" showString="&quot;.IC.&quot;,&quot;SNOW MELT&quot;"/>
<bullet bulletName="icerr" bulletText="Rapid River Rises" bulletGroup="ic" parseString="&quot;.ER.&quot;,&quot;FOR RAPID RIVER RISES&quot;" showString="&quot;.ER.&quot;,&quot;FOR RAPID RIVER RISES&quot;"/>
-->
<bullet bulletText="*********** SOURCE (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED "/>
<bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES"/>
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE AND "/>
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Local law enforcement reported" bulletGroup="source" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" parseString="THUNDERSTORMS"/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="FROM HEAVY RAIN "/>
<bullet bulletName="floodOccurring" bulletText="Flooding occurring" bulletGroup="event" parseString="PRODUCING FLOODING "/>
<bullet bulletName="genericFlood" bulletText="Generic (provide reasoning)" bulletGroup="event" parseString="PRODUCING FLOODING "/>
<bullet bulletName="glacierOutburst" bulletText="Glacial Lake Outburst" bulletGroup="event" parseString="GLACIER-DAMMED LAKE OUTBURST"/>
<bullet bulletName="groundWater" bulletText="Ground water" bulletGroup="event" parseString="GROUND WATER"/>
<bullet bulletText="*********** RAIN SO FAR (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH HAS FALLEN"/>
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES HAVE FALLEN"/>
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES HAVE FALLEN"/>
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES HAS FALLEN "/>
<bullet bulletText="*********** FORECAST AND IMPACT INFO ***********" bulletType="title"/>
<bullet bulletName="fcstPoint" bulletText="Flood area includes forecast point" parseString="FLOOD STAGE IS"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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="warningMeansCTA" bulletText="A Flood Warning means" parseString="A FLOOD WARNING MEANS FLOODING IS OCCURRING"/>
<bullet bulletName="dontdrownCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="urbanCTA" bulletText="Urban flooding" parseString="AND PONDING OF WATER IN URBAN AREAS"/>
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString="AND PONDING OF WATER ON COUNTRY ROADS AND FARMLAND"/>
<bullet bulletName="USS_CTA" bulletText="Flooding of rural and urban areas" parseString="FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="specificCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nightCTA" bulletText="Nighttime flooding" parseString="BE ESPECIALLY CAUTIOUS AT NIGHT"/>
<bullet bulletName="donotdriveCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="autoSafetyCTA" bulletText="Automobile safety" parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperCTA" bulletText="Camper safety" parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowspotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="powerCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="COR" phen="FA" sig="W">
<bullets>
<!--
<bullet bulletName="smallstreams" bulletText="include small streams" bulletGroup="group1" parseString="SMALL STREAM FLOOD ADVISORY" showString="SMALL STREAM FLOOD ADVISORY"/>
<bullet bulletName="urbansmallstreams" bulletText="include urban areas and small streams" bulletGroup="group1" parseString="URBAN AND SMALL STREAM FLOOD ADVISORY" showString="URBAN AND SMALL STREAM FLOOD ADVISORY"/>
-->
<!--
<bullet bulletText="****** HYDROLOGIC CAUSES/CONDITIONS *******" bulletType="title"/>
<bullet bulletName="icer" bulletText="Excessive Rainfall" bulletGroup="ic" parseString="&quot;.ER.&quot;,&quot;-FOR RAPID RIVER RISES&quot;" showString="&quot;.ER.&quot;,&quot;-FOR RAPID RIVER RISES&quot;"/>
<bullet bulletName="icrs" bulletText="Rain and Snow Melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="icsm" bulletText="Snow Melt" bulletGroup="ic" parseString=".SM." showString=".SM."/>
<bullet bulletName="icij" bulletText="Ice Jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<bullet bulletName="icicr" bulletText="Ice Jam and Heavy Rain" bulletGroup="ic" parseString="&quot;.IC.&quot;,&quot;HEAVY RAIN&quot;" showString="&quot;.IC.&quot;,&quot;HEAVY RAIN&quot;"/>
<bullet bulletName="icics" bulletText="Ice Jam and Snow Melt" bulletGroup="ic" parseString="&quot;.IC.&quot;,&quot;SNOW MELT&quot;" showString="&quot;.IC.&quot;,&quot;SNOW MELT&quot;"/>
<bullet bulletName="icerr" bulletText="Rapid River Rises" bulletGroup="ic" parseString="&quot;.ER.&quot;,&quot;FOR RAPID RIVER RISES&quot;" showString="&quot;.ER.&quot;,&quot;FOR RAPID RIVER RISES&quot;"/>
-->
<bullet bulletText="*********** SOURCE (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED "/>
<bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES"/>
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE AND "/>
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Local law enforcement reported" bulletGroup="source" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" parseString="THUNDERSTORMS"/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="FROM HEAVY RAIN "/>
<bullet bulletName="floodOccurring" bulletText="Flooding occurring" bulletGroup="event" parseString="PRODUCING FLOODING "/>
<bullet bulletName="genericFlood" bulletText="Generic (provide reasoning)" bulletGroup="event" parseString="PRODUCING FLOODING "/>
<bullet bulletName="glacierOutburst" bulletText="Glacial Lake Outburst" bulletGroup="event" parseString="GLACIER-DAMMED LAKE OUTBURST"/>
<bullet bulletName="groundWater" bulletText="Ground water" bulletGroup="event" parseString="GROUND WATER"/>
<bullet bulletText="*********** RAIN SO FAR (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH HAS FALLEN"/>
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES HAVE FALLEN"/>
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES HAVE FALLEN"/>
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES HAS FALLEN "/>
<bullet bulletText="*********** FORECAST AND IMPACT INFO ***********" bulletType="title"/>
<bullet bulletName="fcstPoint" bulletText="Flood area includes forecast point" parseString="FLOOD STAGE IS"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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="warningMeansCTA" bulletText="A Flood Warning means" parseString="A FLOOD WARNING MEANS FLOODING IS OCCURRING"/>
<bullet bulletName="dontdrownCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="urbanCTA" bulletText="Urban flooding" parseString="AND PONDING OF WATER IN URBAN AREAS"/>
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString="AND PONDING OF WATER ON COUNTRY ROADS AND FARMLAND"/>
<bullet bulletName="USS_CTA" bulletText="Flooding of rural and urban areas" parseString="FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="specificCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nightCTA" bulletText="Nighttime flooding" parseString="BE ESPECIALLY CAUTIOUS AT NIGHT"/>
<bullet bulletName="donotdriveCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="autoSafetyCTA" bulletText="Automobile safety" parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperCTA" bulletText="Camper safety" parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowspotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="powerCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
</bulletActionGroups>
<trackEnabled>false</trackEnabled>
<!-- Four variables below have been changed from the County-coded products -->
<!-- areaSource.areaField -->
<!-- areaSource.fipsField -->
<!-- pathcastConfig.areaField and -->
<!-- geospatialConfig.areaSource -->
<!-- Default areaSource object to generate zone based information -->
<areaSource variable="areas">
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<type>HATCHING</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>NAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<!-- <fipsField>STATE</fipsField> -->
<fipsField>STATE_ZONE</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Add in areaSource object to generate county-based headline if desired -->
<areaSource variable="affectedCounties">
<areaSource>County</areaSource>
<type>INTERSECT</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>COUNTYNAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<fipsField>FIPS</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Required, but unused by this template -->
<pathcastConfig>
<withinPolygon>true</withinPolygon>
<distanceThreshold>8.0</distanceThreshold>
<interval>5</interval>
<delta>5</delta>
<maxResults>4</maxResults>
<maxGroup>8</maxGroup>
<pointField>Name</pointField>
<!-- <areaField>COUNTYNAME</areaField> -->
<areaField>NAME</areaField>
<type>AREA</type>
<parentAreaField>STATE</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L" constraintType="IN" />
</mapping>
</filter>
</pathcastConfig>
<pointSource variable="cityList">
<pointField>NAME</pointField>
<inclusionPercent>1</inclusionPercent>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>30</maxResults>
<distanceThreshold>200</distanceThreshold>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2,3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
<sortBy>
<sort>warngenlev</sort>
<sort>population</sort>
<sort>distance</sort>
</sortBy>
</pointSource>
<!-- Required, but unused by this template -->
<pointSource variable="otherPoints">
<pointField>NAME</pointField>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>10</maxResults>
<distanceThreshold>200</distanceThreshold>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L" constraintType="IN" />
</mapping>
</filter>
</pointSource>
<!-- this "include file" tag will grab the Mile Marker XML pointSource tags,
and place into this template
-->
<include file="mileMarkers.xml"/>
<geospatialConfig>
<pointSource>WarnGenLoc</pointSource>
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<parentAreaSource>States</parentAreaSource>
<timezoneSource>TIMEZONES</timezoneSource>
<timezoneField>TIME_ZONE</timezoneField>
</geospatialConfig>
<pointSource variable="riverdrainages">
<pointSource>ffmp_basins</pointSource>
<geometryDecimationTolerance>0.064</geometryDecimationTolerance>
<pointField>streamname</pointField>
<filter>
<mapping key="cwa">
<constraint constraintValue="$warngenCWAFilter" constraintType="EQUALS" />
</mapping>
</filter>
<withinPolygon>true</withinPolygon>
</pointSource>
</warngenConfig>

View file

@ -1,355 +0,0 @@
###############################################################################
## Created BY Mike Dangelo 9-19-2011 at Alaska TIM for zone code issuances ##
## Mary-Beth Schreck, Ed Plumb, Aaron Jacobs 9-23-2011 at Alaska TIM
## edited by Mike Dangelo 01-26-2012 at CRH TIM
## edited by Phil Kurimski 2-29-2012
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}
#################################### SET SOME VARIABLES ###################################
#if(${action} == "EXT")
#set($starttime = "000000T0000Z")
#set($extend = true)
#else
#set($starttime = ${dateUtil.format(${start}, ${timeFormat.ymdthmz})})
#set($extend = false)
#end
##
#if(${list.contains(${bullets}, "small")})
#set($advType = "SMALL STREAM FLOOD WARNING")
#elseif(${list.contains(${bullets}, "uss")})
#set($advType = "URBAN AND SMALL STREAM FLOOD WARNING")
#else
#set($advType = "FLOOD WARNING")
#end
#set($ic = "ER")
#set($hycType = "")
#if(${list.contains(${bullets}, "sm")})
#set($ic = "SM")
#set($hycType = "SNOW MELT")
#elseif(${list.contains(${bullets}, "rs")})
#set($ic = "RS")
#set($hycType = "RAIN AND SNOW MELT")
#elseif(${list.contains(${bullets}, "ij")})
#set($ic = "IJ")
#set($hycType = "AN ICE JAM")
#elseif(${list.contains(${bullets}, "ic")})
#set($ic = "IC")
#set($hycType = "AN ICE JAM WITH RAIN AND SNOW MELT")
#elseif(${list.contains(${bullets}, "go")})
#set($ic = "GO")
#set($hycType = "A GLACIER-DAMMED LAKE OUTBURST")
#elseif(${list.contains(${bullets}, "dm")})
#set($ic = "DM")
#set($hycType = "A LEVEE FAILURE")
#elseif(${list.contains(${bullets}, "dr")})
#set($ic = "DR")
#set($hycType = "A DAM GATE RELEASE")
#elseif(${list.contains(${bullets}, "OT")})
#set($ic = "OT")
#set($hycType = "GROUND WATER FLOODING")
#elseif(${list.contains(${bullets}, "mc")})
#set($ic = "MC")
#elseif(${list.contains(${bullets}, "uu")})
#set($ic = "UU")
#end
##
${WMOId} ${vtecOffice} 000000 ${BBBId}
FLW${siteId}
BULLETIN - EAS ACTIVATION REQUESTED
#if(${productClass}=="T")
TEST...FLOOD WARNING...TEST
#else
FLOOD WARNING
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
${ugcline}
/${productClass}.${action}.${vtecOffice}.FA.W.${etn}.${starttime}-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#headlineext(${officeLoc}, ${backupSite}, ${extend})
#################################
######## FIRST BULLET ###########
#################################
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
${advType} FOR...
#if(${hycType} != "")
## (EXCLUDED FOR AK)
##<L> ${hycType} IN...</L>
<L> ${hycType}...</L>
#end
##REMMED OUT FOR ALASKA
###firstBullet(${areas})
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###firstBullet(${affectedCounties})
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!
#################################
####### SECOND BULLET ###########
#################################
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone})
#set($typeofevent = "")
#set($report = "HEAVY RAIN THAT WILL CAUSE FLOODING.")
#set($rainAmount = "")
#if(${list.contains(${bullets}, "rapidRiver")})
#set($typeofevent = ". RAPID RIVER RISES ARE EXPECTED.")
#end
#if(${list.contains(${bullets}, "glacierOutburst")})
#set($report = "A GLACIER-DAMMED LAKE OUTBURST FLOOD WILL RESULT IN MINOR FLOODING AT !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "groundWater")})
#set($report = "RISING GROUND WATER LEVELS WILL RESULT IN MINOR FLOODING AT !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "satellite")})
#set($report = "SATELLITE ESTIMATES INDICATE HEAVY RAINFALL THAT WILL CAUSE ${advType}${typeofevent} IN THE WARNING AREA.")
#end
#if(${list.contains(${bullets}, "satelliteGauge")})
#set($report = "SATELLITE ESTIMATES AND RAIN GAUGE DATA INDICATE HEAVY RAINFALL THAT WILL CAUSE ${advType}${typeofevent} IN THE WARNING AREA.")
#end
#if(${list.contains(${bullets}, "doppler")})
#set($report = "DOPPLER RADAR INDICATED HEAVY RAIN THAT WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")})
#set($report = "DOPPLER RADAR INDICATED HEAVY RAIN DUE TO A THUNDERSTORM THAT WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "DOPPLER RADAR INDICATED HEAVY RAIN DUE TO A LINE OF THUNDERSTORMS. THE HEAVY RAIN WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "dopplerGauge")})
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED THAT HEAVY RAIN WAS FALLING OVER THE AREA. THAT HEAVY RAIN WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "thunder")})
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED THAT A THUNDERSTORM IS PRODUCING HEAVY RAIN OVER THE AREA. THAT RAIN WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED THAT A LINE OF THUNDERSTORMS IS PRODUCING HEAVY RAIN OVER THE AREA. THAT RAIN WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "thunder")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED HEAVY RAIN IN !** LOCATION **! DUE TO A THUNDERSTORM THAT WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "floodReport")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED FLOODING IN !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED HEAVY RAIN IN !** LOCATION **! THAT WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "thunder")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED HEAVY RAIN DUE TO A THUNDERSTORM OVER !** LOCATION **! THAT WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "floodReport")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED FLOODING IN !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED HEAVY RAIN IN !** LOCATION **! THAT WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "thunder")})
#set($report = "EMERGENCY MANAGEMENT REPORTED HEAVY RAIN DUE TO A THUNDERSTORM OVER !** LOCATION **! THAT WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "floodReport")})
#set($report = "EMERGENCY MANAGEMENT REPORTED FLOODING IN !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "EMERGENCY MANAGEMENT REPORTED HEAVY RAIN IN !** LOCATION **! THAT WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "thunder")})
#set($report = "THE PUBLIC REPORTED HEAVY RAIN IN !** LOCATION **! DUE TO A THUNDERSTORM. THE HEAVY RAIN WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "floodReport")})
#set($report = "THE PUBLIC REPORTED FLOODING IN !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "THE PUBLIC REPORTED HEAVY RAIN IN !** LOCATION **!. THAT HEAVY RAIN WILL CAUSE FLOODING.")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "glacierOutburst")})
#set($report = "THE PUBLIC REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO A GLACIER-DAMMED LAKE OUTBURST FLOOD.")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "groundWater")})
#set($report = "THE PUBLIC REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO RISING GROUND WATER LEVELS.")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "glacierOutburst")})
#set($report = "A TRAINED SPOTTER REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO A GLACIER-DAMMED LAKE OUTBURST FLOOD.")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "groundWater")})
#set($report = "A TRAINED SPOTTER REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO RISING GROUND WATER LEVELS.")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "glacierOutburst")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO A GLACIER-DAMMED LAKE OUTBURST FLOOD.")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "groundWater")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO RISING GROUND WATER LEVELS.")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "glacierOutburst")})
#set($report = "EMERGENCY MANAGEMENT REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO A GLACIER-DAMMED LAKE OUTBURST FLOOD.")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "groundWater")})
#set($report = "EMERGENCY MANAGEMENT REPORTED MINOR FLOODING IN !** LOCATION **! DUE TO RISING GROUND WATER LEVELS.")
#end
#if(${list.contains(${bullets}, "rain1")} )
#set($rainAmount = "UP TO ONE INCH OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rain2")} )
#set($rainAmount = "UP TO TWO INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rain3")} )
#set($rainAmount = "UP TO THREE INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rainEdit")} )
#set($rainAmount = "!** RAINFALL AMOUNTS **! INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#################################
######## THIRD BULLET ###########
#################################
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
...${report} ${rainAmount}
#############################################################
######## FOURTH BULLET (OPTIONAL IN FLOOD PRODUCTS) #########
#############################################################
#set($phenomena = "FLOOD")
#set($warningType = "WARNING")
#if(${list.contains(${bullets}, "listofcities")})
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
## #locationsList("SOME LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE" "FLOODING IS EXPECTED TO OCCUR OVER MAINLY RURAL AREAS OF" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0) EXCLUDED FOR ALASKA
#end
########################################## END OF FOURTH BULLET ##############################
######################################
###### WHERE ADD INFO GOES ###########
######################################
#if(${list.contains(${bullets}, "fcstPoint")})
FOR THE !** insert river name and forecast point **!:
AT ${dateUtil.format(${now}, ${timeFormat.clock}, ${localtimezone})} THE STAGE WAS !** xx.x **! FEET.
FLOOD STAGE IS !** xx.x **! FEET.
FORECAST... !** insert crest stage and time **!.
IMPACTS...!** discussion of expected impacts and flood path **!
#else
!** insert impacts and flood path **!
#end
#if(${list.contains(${bullets}, "addRainfall")})
ADDITIONAL RAINFALL AMOUNTS OF !** EDIT AMOUNT **! ARE POSSIBLE IN THE WARNED AREA.
#end
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
#################################### END OF ADDITIONAL STUFF ###################################
######################################
####### CALL TO ACTIONS ##############
######################################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
##
#if(${list.contains(${bullets}, "warningMeansCTA")})
A FLOOD WARNING MEANS THAT FLOODING IS IMMINENT OR HAS BEEN REPORTED. STREAM RISES WILL BE SLOW AND FLASH FLOODING IS NOT EXPECTED. HOWEVER...ALL INTERESTED PARTIES SHOULD TAKE NECESSARY PRECAUTIONS IMMEDIATELY.
#end
#if(${list.contains(${bullets}, "dontdrownCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains(${bullets}, "urbanCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE ELEVATED LEVELS ON SMALL CREEKS AND STREAMS...AND PONDING OF WATER IN URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES AS WELL AS OTHER POOR DRAINAGE AREAS AND LOW LYING SPOTS.
#end
#if(${list.contains(${bullets}, "ruralCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE ELEVATED LEVELS ON SMALL CREEKS AND STREAMS...AND PONDING OF WATER ON COUNTRY ROADS AND FARMLAND ALONG THE BANKS OF CREEKS AND STREAMS.
#end
#if(${list.contains(${bullets}, "USS_CTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES IN URBAN AREAS. ADDITIONALLY...COUNTRY ROADS AND FARMLANDS ALONG THE BANKS OF CREEKS...STREAMS AND OTHER LOW LYING AREAS ARE SUBJECT TO FLOODING.
#end
#if(${list.contains(${bullets}, "particularStreamCTA")})
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
#end
#if(${list.contains(${bullets}, "specificCTA")})
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
#end
#if(${list.contains(${bullets}, "nightCTA")})
BE ESPECIALLY CAUTIOUS AT NIGHT WHEN IT IS HARDER TO RECOGNIZE THE DANGERS OF FLOODING. IF FLOODING IS OBSERVED ACT QUICKLY. MOVE UP TO HIGHER GROUND TO ESCAPE FLOOD WATERS. DO NOT STAY IN AREAS SUBJECT TO FLOODING WHEN WATER BEGINS RISING.
#end
#if(${list.contains(${bullets}, "donotdriveCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "autoSafetyCTA")})
FLOODING IS OCCURRING OR IS IMMINENT. MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES. DO NOT ATTEMPT TO CROSS WATER COVERED BRIDGES...DIPS... OR LOW WATER CROSSINGS. NEVER TRY TO CROSS A FLOWING STREAM...EVEN A SMALL ONE...ON FOOT. TO ESCAPE RISING WATER FIND ANOTHER ROUTE OVER HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "camperCTA")})
FLOODING IS OCCURRING OR IS IMMINENT. IT IS IMPORTANT TO KNOW WHERE YOU ARE RELATIVE TO STREAMS...RIVERS...OR CREEKS WHICH CAN BECOME KILLERS IN HEAVY RAINS. CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS.
#end
#if(${list.contains(${bullets}, "lowspotsCTA")})
IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS WHICH ARE POTENTIALLY DANGEROUS IN HEAVY RAIN. DO NOT ATTEMPT TO TRAVEL ACROSS FLOODED ROADS. FIND ALTERNATE ROUTES. IT TAKES ONLY A FEW INCHES OF SWIFTLY FLOWING WATER TO CARRY VEHICLES AWAY.
#end
#if(${list.contains(${bullets}, "powerCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains(${bullets}, "reportFloodingCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE FORECAST OFFICE.
#end
#if(${ctaSelected} == "YES")
&&
#end
#################################### END OF CTA STUFF ###################################
##########################################
########BOTTOM OF THE PRODUCT#############
##########################################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
#parse("forecasterName.vm")

View file

@ -1,420 +0,0 @@
<!-- Areal Flood Warning configuration ZONES-->
<!-- Created by Mike Dangelo 09-19-2011 at TIM Alaska to make Zones possible -->
<!-- Localized for AK by Aaron Jacobs and Mary-Beth Schreck 9/23/2011 -->
<!-- Edited by Mike Dangelo 01-26-2012 at CRH TIM
Phil Kurimski 2-29-2012
Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
Evan Bookbinder 09-12-2012 DR15179 Added areaSource object to allow for
county-based headlines in zone based products.
Added settings for locations shapefile
Evan Bookbinder 5-5-2013 fixed <type> variable under areaSource objects
-->
<warngenConfig>
<!-- Config distance/speed units -->
<unitDistance>mi</unitDistance>
<unitSpeed>mph</unitSpeed>
<!-- OPTIONAL: Maps to load on template selection. Refer to 'Maps' menu in CAVE.
The various menu items are also the different maps
that can be loaded with each template. -->
<maps>
<map>Forecast Zones</map>
<map>County Warning Areas</map>
<!-- <map>FFMP Small Stream Basin Links</map> -->
<!-- <map>Major Rivers</map> -->
</maps>
<!-- Followups: VTEC actions of allowable followups when this template is selected
Each followup will become available when the appropriate time range permits.
-->
<followups>
<followup>NEW</followup>
<followup>COR</followup>
<followup>EXT</followup>
</followups>
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
<phensigs>
<phensig>FA.W</phensig>
</phensigs>
<!-- Enables/disables user from selecting the Restart button the GUI -->
<enableRestart>true</enableRestart>
<!-- Enable/disables the system to lock text based on various patterns -->
<autoLockText>true</autoLockText>
<!-- durations: the list of possible durations -->
<defaultDuration>180</defaultDuration>
<durations>
<duration>60</duration>
<duration>120</duration>
<duration>150</duration>
<duration>180</duration>
<duration>210</duration>
<duration>240</duration>
<duration>360</duration>
<duration>480</duration>
<duration>600</duration>
<duration>720</duration>
</durations>
<lockedGroupsOnFollowup>ic</lockedGroupsOnFollowup>
<bulletActionGroups>
<bulletActionGroup action="NEW" phen="FA" sig="W">
<bullets>
<bullet bulletText="************* TYPE OF WARNING ***********" bulletType="title"/>
<bullet bulletName="general" bulletText="General (flood warning)" bulletGroup="ttt" bulletDefault="true"/>
<bullet bulletName="small" bulletText="Small stream" bulletGroup="ttt" parseString="SMALL STREAM FLOOD WARNING"/>
<bullet bulletName="uss" bulletText="urban areas and small stream flood warning" bulletGroup="ttt" parseString="URBAN AND SMALL STREAM FLOOD WARNING"/>
<bullet bulletText="*** PRIMARY CAUSE OTHER THAN HEAVY RAIN ***" bulletType="title"/>
<bullet bulletName="sm" bulletText="Snow melt" bulletGroup="ic" parseString=".SM."/>
<bullet bulletName="rs" bulletText="Rain and snow melt" bulletGroup="ic" parseString=".RS."/>
<bullet bulletName="ij" bulletText="Ice Jam" bulletGroup="ic" parseString=".IJ."/>
<!--<bullet bulletName="ic" bulletText="Ice Jam/Rain/Snow Melt" bulletGroup="ic" parseString=".IC."/> -->
<bullet bulletName="go" bulletText="Glacial Lake Outburst" bulletGroup="ic" parseString=".GO."/>
<!--<bullet bulletName="dm" bulletText="Levee Failure" bulletGroup="ic" parseString=".DM."/> -->
<bullet bulletName="dr" bulletText="Dam Gate Release" bulletGroup="ic" parseString=".DR."/>
<!--<bullet bulletName="mc" bulletText="Multiple Causes" bulletGroup="ic" parseString=".MC."/> -->
<!--<bullet bulletName="uu" bulletText="Unknown Cause" bulletGroup="ic" parseString=".UU."/> -->
<bullet bulletName="OT" bulletText="Ground water" bulletGroup="ic" parseString=".OT."/>
<bullet bulletText="*********** REPORT SOURCE (Choose 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" bulletDefault="true" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED "/>
<bullet bulletName="satellite" bulletText="Satellite estimates indicate" bulletGroup="source" parseString="SATELLITE ESTIMATES INDICATE"/>
<bullet bulletName="satelliteGauge" bulletText="Satellite estimates and Rain Gauges indicate" bulletGroup="source" parseString="SATELLITE ESTIMATES AND"/>
<bullet bulletName="trainedSpotters" bulletText="trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement reported" bulletGroup="source" parseString="LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (Choose 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" bulletDefault="true" parseString="FROM A THUNDERSTORM "/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="FROM HEAVY RAIN "/>
<bullet bulletName="rapidRiver" bulletText="Rapid river rises" bulletGroup="event" parseString="RAPID RIVER RISES "/>
<bullet bulletName="glacierOutburst" bulletText="Glacial Lake Outburst" bulletGroup="event" parseString="GLACIER-DAMMED LAKE OUTBURST FLOOD"/>
<bullet bulletName="groundWater" bulletText="Ground water" bulletGroup="event" parseString="GROUND WATER"/>
<bullet bulletText="*********** RAIN AMOUNT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainamt" parseString="ONE INCH HAS FALLEN"/>
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainamt" parseString="TWO INCHES HAVE FALLEN"/>
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainamt" parseString="THREE INCHES HAVE FALLEN"/>
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainamt" parseString="INCHES HAVE FALLEN "/>
<bullet bulletText="*********** FORECAST AND IMPACT INFO ***********" bulletType="title"/>
<!-- <bullet bulletName="listofcities" bulletDefault="true" bulletText="Select for a list of cities" bulletGroup="pcast/> -->
<!-- <bullet bulletName="drainages" bulletText="automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/> -->
<bullet bulletName="fcstPoint" bulletText="Flood area includes forecast point" bulletDefault="true" parseString="FLOOD STAGE IS"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX is expected" parseString="ADDITIONAL RAINFALL AMOUNTS OF"/>
<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="****** CALLS TO ACTION (CHOOSE 1 OR MORE) ******" bulletType="title"/>
<bullet bulletName="warningMeansCTA" bulletText="A Flood Warning means" parseString="A FLOOD WARNING MEANS FLOODING IS OCCURRING"/>
<bullet bulletName="dontdrownCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="urbanCTA" bulletText="Urban flooding" parseString="AND PONDING OF WATER IN URBAN AREAS"/>
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString="AND PONDING OF WATER ON COUNTRY ROADS AND FARMLAND"/>
<bullet bulletName="USS_CTA" bulletText="Flooding of rural and urban areas" parseString="FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="specificCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nightCTA" bulletText="Nighttime flooding" parseString="BE ESPECIALLY CAUTIOUS AT NIGHT"/>
<bullet bulletName="donotdriveCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="autoSafetyCTA" bulletText="Automobile safety" parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperCTA" bulletText="Camper safety" parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowspotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="powerCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="COR" phen="FA" sig="W">
<bullets>
<bullet bulletText="************* TYPE OF WARNING ***********" bulletType="title"/>
<bullet bulletName="general" bulletText="General (flood warning)" bulletGroup="ttt" bulletDefault="true"/>
<bullet bulletName="small" bulletText="Small stream" bulletGroup="ttt" parseString="SMALL STREAM FLOOD WARNING" showString="SMALL STREAM FLOOD WARNING"/>
<bullet bulletName="uss" bulletText="urban areas and small stream flood warning" bulletGroup="ttt" parseString="URBAN AND SMALL STREAM FLOOD WARNING" showString="URBAN AND SMALL STREAM FLOOD WARNING"/>
<bullet bulletText="*** PRIMARY CAUSE OTHER THAN HEAVY RAIN ***" bulletType="title"/>
<bullet bulletName="sm" bulletText="Snow melt" bulletGroup="ic" parseString=".SM." showString=".SM."/>
<bullet bulletName="rs" bulletText="Rain and snow melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="ij" bulletText="Ice Jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<!--<bullet bulletName="ic" bulletText="Ice Jam/Rain/Snow Melt" bulletGroup="ic" parseString=".IC." showString=".IC."/> -->
<bullet bulletName="go" bulletText="Glacial Lake Outburst" bulletGroup="ic" parseString=".GO." showString=".GO."/>
<!--<bullet bulletName="dm" bulletText="Levee Failure" bulletGroup="ic" parseString=".DM." showString=".DM."/> -->
<bullet bulletName="dr" bulletText="Dam Gate Release" bulletGroup="ic" parseString=".DR." showString=".DR."/>
<!--<bullet bulletName="mc" bulletText="Multiple Causes" bulletGroup="ic" parseString=".MC." showString=".MC."/> -->
<!--<bullet bulletName="uu" bulletText="Unknown Cause" bulletGroup="ic" parseString=".UU." showString=".UU."/> -->
<bullet bulletName="OT" bulletText="Ground water" bulletGroup="ic" parseString=".OT." showString=".OT."/>
<bullet bulletText="*********** REPORT SOURCE (Choose 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" bulletDefault="true" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED "/>
<bullet bulletName="satellite" bulletText="Satellite estimates indicate" bulletGroup="source" parseString="SATELLITE ESTIMATES INDICATE"/>
<bullet bulletName="satelliteGauge" bulletText="Satellite estimates and Rain Gauges indicate" bulletGroup="source" parseString="SATELLITE ESTIMATES AND"/>
<bullet bulletName="trainedSpotters" bulletText="trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement reported" bulletGroup="source" parseString="LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (Choose 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" bulletDefault="true" parseString="FROM A THUNDERSTORM "/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="FROM HEAVY RAIN "/>
<bullet bulletName="rapidRiver" bulletText="Rapid river rises" bulletGroup="event" parseString="RAPID RIVER RISES "/>
<bullet bulletName="glacierOutburst" bulletText="Glacial Lake Outburst" bulletGroup="event" parseString="GLACIER-DAMMED LAKE OUTBURST FLOOD"/>
<bullet bulletName="groundWater" bulletText="Ground water" bulletGroup="event" parseString="GROUND WATER"/>
<bullet bulletText="*********** RAIN AMOUNT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainamt" parseString="ONE INCH HAS FALLEN"/>
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainamt" parseString="TWO INCHES HAVE FALLEN"/>
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainamt" parseString="THREE INCHES HAVE FALLEN"/>
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainamt" parseString="INCHES HAVE FALLEN "/>
<bullet bulletText="*********** FORECAST AND IMPACT INFO ***********" bulletType="title"/>
<!--
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE" showString="LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
-->
<!-- <bullet bulletName="drainages" bulletText="automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/> -->
<bullet bulletName="fcstPoint" bulletText="Flood area includes forecast point" bulletDefault="true" parseString="FLOOD STAGE IS"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX is expected" parseString="ADDITIONAL RAINFALL AMOUNTS OF"/>
<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="****** CALLS TO ACTION (CHOOSE 1 OR MORE) ******" bulletType="title"/>
<bullet bulletName="warningMeansCTA" bulletText="A Flood Warning means" parseString="A FLOOD WARNING MEANS FLOODING IS OCCURRING"/>
<bullet bulletName="dontdrownCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="urbanCTA" bulletText="Urban flooding" parseString="AND PONDING OF WATER IN URBAN AREAS"/>
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString="AND PONDING OF WATER ON COUNTRY ROADS AND FARMLAND"/>
<bullet bulletName="USS_CTA" bulletText="Flooding of rural and urban areas" parseString="FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="specificCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nightCTA" bulletText="Nighttime flooding" parseString="BE ESPECIALLY CAUTIOUS AT NIGHT"/>
<bullet bulletName="donotdriveCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="autoSafetyCTA" bulletText="Automobile safety" parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperCTA" bulletText="Camper safety" parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowspotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="powerCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="EXT" phen="FA" sig="W">
<bullets>
<bullet bulletText="************* TYPE OF WARNING ***********" bulletType="title"/>
<bullet bulletName="general" bulletText="General (flood warning)" bulletGroup="ttt" bulletDefault="true"/>
<bullet bulletName="small" bulletText="Small stream" bulletGroup="ttt" parseString="SMALL STREAM FLOOD WARNING" showString="SMALL STREAM FLOOD WARNING"/>
<bullet bulletName="uss" bulletText="urban areas and small stream flood warning" bulletGroup="ttt" parseString="URBAN AND SMALL STREAM FLOOD WARNING" showString="URBAN AND SMALL STREAM FLOOD WARNING"/>
<bullet bulletText="*** PRIMARY CAUSE OTHER THAN HEAVY RAIN ***" bulletType="title"/>
<bullet bulletName="sm" bulletText="Snow melt" bulletGroup="ic" parseString=".SM." showString=".SM."/>
<bullet bulletName="rs" bulletText="Rain and snow melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="ij" bulletText="Ice Jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<!--<bullet bulletName="ic" bulletText="Ice Jam/Rain/Snow Melt" bulletGroup="ic" parseString=".IC." showString=".IC."/> -->
<bullet bulletName="go" bulletText="Glacial Lake Outburst" bulletGroup="ic" parseString=".GO." showString=".GO."/>
<!--<bullet bulletName="dm" bulletText="Levee Failure" bulletGroup="ic" parseString=".DM." showString=".DM."/> -->
<bullet bulletName="dr" bulletText="Dam Gate Release" bulletGroup="ic" parseString=".DR." showString=".DR."/>
<!--<bullet bulletName="mc" bulletText="Multiple Causes" bulletGroup="ic" parseString=".MC." showString=".MC."/> -->
<!--<bullet bulletName="uu" bulletText="Unknown Cause" bulletGroup="ic" parseString=".UU." showString=".UU."/> -->
<bullet bulletName="OT" bulletText="Ground water" bulletGroup="ic" parseString=".OT." showString=".OT."/>
<bullet bulletText="*********** REPORT SOURCE (Choose 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" bulletDefault="true" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED "/>
<bullet bulletName="satellite" bulletText="Satellite estimates indicate" bulletGroup="source" parseString="SATELLITE ESTIMATES INDICATE"/>
<bullet bulletName="satelliteGauge" bulletText="Satellite estimates and Rain Gauges indicate" bulletGroup="source" parseString="SATELLITE ESTIMATES AND"/>
<bullet bulletName="trainedSpotters" bulletText="trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement reported" bulletGroup="source" parseString="LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (Choose 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" bulletDefault="true" parseString="FROM A THUNDERSTORM "/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="FROM HEAVY RAIN "/>
<bullet bulletName="rapidRiver" bulletText="Rapid river rises" bulletGroup="event" parseString="RAPID RIVER RISES "/>
<bullet bulletName="glacierOutburst" bulletText="Glacial Lake Outburst" bulletGroup="event" parseString="GLACIER-DAMMED LAKE OUTBURST FLOOD"/>
<bullet bulletName="groundWater" bulletText="Ground water" bulletGroup="event" parseString="GROUND WATER"/>
<bullet bulletText="*********** RAIN AMOUNT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainamt" parseString="ONE INCH HAS FALLEN"/>
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainamt" parseString="TWO INCHES HAVE FALLEN"/>
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainamt" parseString="THREE INCHES HAVE FALLEN"/>
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainamt" parseString="INCHES HAVE FALLEN "/>
<bullet bulletText="*********** FORECAST AND IMPACT INFO ***********" bulletType="title"/>
<!--
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE" showString="LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
-->
<!-- <bullet bulletName="drainages" bulletText="automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/> -->
<bullet bulletName="fcstPoint" bulletText="Flood area includes forecast point" bulletDefault="true" parseString="FLOOD STAGE IS"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX is expected" parseString="ADDITIONAL RAINFALL AMOUNTS OF"/>
<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="****** CALLS TO ACTION (CHOOSE 1 OR MORE) ******" bulletType="title"/>
<bullet bulletName="warningMeansCTA" bulletText="A Flood Warning means" parseString="A FLOOD WARNING MEANS FLOODING IS OCCURRING"/>
<bullet bulletName="dontdrownCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="urbanCTA" bulletText="Urban flooding" parseString="AND PONDING OF WATER IN URBAN AREAS"/>
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString="AND PONDING OF WATER ON COUNTRY ROADS AND FARMLAND"/>
<bullet bulletName="USS_CTA" bulletText="Flooding of rural and urban areas" parseString="FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="specificCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nightCTA" bulletText="Nighttime flooding" parseString="BE ESPECIALLY CAUTIOUS AT NIGHT"/>
<bullet bulletName="donotdriveCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="autoSafetyCTA" bulletText="Automobile safety" parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperCTA" bulletText="Camper safety" parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowspotsCTA" bulletText="Low spots in hilly terrain" parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="powerCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
</bulletActionGroups>
<trackEnabled>false</trackEnabled>
<!-- Four variables below have been changed from the County-coded products -->
<!-- areaSource.areaField -->
<!-- areaSource.fipsField -->
<!-- pathcastConfig.areaField and -->
<!-- geospatialConfig.areaSource -->
<!-- Default areaSource object to generate zone based information -->
<areaSource variable="areas">
<!-- <areaSource>Zone</areaSource> -->
<areaSource>Zone</areaSource>
<type>HATCHING</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>NAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<!-- <fipsField>STATE</fipsField> -->
<fipsField>STATE_ZONE</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Add in areaSource object to generate county-based headline if desired -->
<areaSource variable="affectedCounties">
<areaSource>County</areaSource>
<type>INTERSECT</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>COUNTYNAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<fipsField>FIPS</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Required, but unused by this template -->
<pathcastConfig>
<withinPolygon>true</withinPolygon>
<distanceThreshold>8.0</distanceThreshold>
<interval>5</interval>
<delta>5</delta>
<maxResults>4</maxResults>
<maxGroup>8</maxGroup>
<pointField>Name</pointField>
<type>AREA</type>
<!-- <areaField>COUNTYNAME</areaField> -->
<areaField>NAME</areaField>
<parentAreaField>STATE</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L" constraintType="IN" />
</mapping>
</filter>
</pathcastConfig>
<pointSource variable="cityList">
<pointField>NAME</pointField>
<inclusionPercent>1</inclusionPercent>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>30</maxResults>
<distanceThreshold>200</distanceThreshold>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2,3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
<sortBy>
<sort>warngenlev</sort>
<sort>population</sort>
<sort>distance</sort>
</sortBy>
</pointSource>
<!-- Required, but unused by this template -->
<pointSource variable="otherPoints">
<pointField>NAME</pointField>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>10</maxResults>
<distanceThreshold>200</distanceThreshold>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L" constraintType="IN" />
</mapping>
</filter>
</pointSource>
<!-- this "include file" tag will grab the Mile Marker XML pointSource tags,
and place into this template
-->
<include file="mileMarkers.xml"/>
<geospatialConfig>
<pointSource>WarnGenLoc</pointSource>
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<parentAreaSource>States</parentAreaSource>
<timezoneSource>TIMEZONES</timezoneSource>
<timezoneField>TIME_ZONE</timezoneField>
</geospatialConfig>
<pointSource variable="riverdrainages">
<pointSource>ffmp_basins</pointSource>
<geometryDecimationTolerance>0.064</geometryDecimationTolerance>
<pointField>streamname</pointField>
<filter>
<mapping key="cwa">
<constraint constraintValue="$warngenCWAFilter" constraintType="EQUALS" />
</mapping>
</filter>
<withinPolygon>true</withinPolygon>
</pointSource>
</warngenConfig>

View file

@ -1,184 +0,0 @@
####################################################################
## CUSTOM TEMPLATE ##
## History
## QINGLU LIN 8-14-2012 DR 14493 use corToNewMarker and TMLtime ##
####################################################################
${WMOId} ${vtecOffice} 000000
CUSTOM
${ugcline}
/${productClass}.${action}.${vtecOffice}.SS.W.${etn}.${dateUtil.format(${start}, ${timeFormat.ymdthmz})}-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
BULLETIN - EAS ACTIVATION REQUESTED
#if(${productClass}=="T")
TEST...CUSTOM WARNING...TEST
#else
CUSTOM WARNING
#end
NATIONAL WEATHER SERVICE ${officeShort}
${dateUtil.format(${start}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#headline(${officeLoc}, ${backupSite})
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
CUSTOM WARNING FOR...
#foreach (${area} in ${areas})
##
#if(${area.partOfArea})
#areaFormat(${area.partOfArea} true false) ##
#end
${area.name} ${area.areaNotation} IN #areaFormat(${area.partOfParentRegion} true false) ${area.parentRegion}...
#if(${list.size($area.points)} > 0)
#if(${list.size($area.points)} > 1)
THIS INCLUDES THE CITIES OF... #foreach (${city} in ${area.points})${city}... #end
#else
THIS INCLUDES THE CITY OF ${list.get(${area.points},0)}
#end
#end
#end
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
UNTIL ${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${localtimezone})}
#set($report = "")
#if(${list.contains($bullets, "much")})
#set ($report = "NATIONAL WEATHER SERVICE CUSTOM RADAR WAS TRACKING A CUSTOM THING")
#end
#set($closest = ${list.get($closestPoints, 0)})
#set($secondary = ${list.get($closestPoints, 1)})
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
AT ${dateUtil.format(${event}, ${timeFormat.clock}, ${localtimezone})}...${report} ##
#if($closest.roundedDistance <= 4)
OVER ##
#else
${closest.roundedDistance} MILES #direction(${closest.oppositeRoundedAzimuth}) OF ##
#end
${closest.name}##
#if($secondary)
...OR ${secondary.roundedDistance} MILES #direction(${secondary.oppositeRoundedAzimuth}) OF ${secondary.name}##
#end
#if($movementSpeed < 3 || ${stationary})
. ${reportType2} NEARLY STATIONARY.
#else
...MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH.
#end
## Determine if the pathcast goes over only rural areas
#set($ruralOnly = 1)
#foreach(${pc} in ${pathCast})
#if(${pc.points})
#set($ruralOnly = 0)
#end
#end
#set($numOtherCities = ${list.size($otherPoints)})
####################
## BEGIN PATHCAST ##
####################
#if(${pathCast} && ${ruralOnly} == 0)
#if(${stormType} == "line")
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
THE CUSTOM THING PRODUCING STORMS WILL BE NEAR...
#else
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
THE CUSTOM THING WILL BE NEAR...
#end
#set($numRural = 0)## indicates the number of rural points
#foreach (${pc} in ${pathCast})
#if(${pc.points})
#set($numRural = 0)
#set($numCities = ${list.size($pc.points)})
#set($count = 0)
##
#foreach (${city} in ${pc.points})
#if(${city.roundedDistance} < 3)
## close enough to not need azran, considered OVER the area
${city.name}##
#else
## needs azran information
${city.roundedDistance} MILES #direction(${city.oppositeRoundedAzimuth}) OF ${city.name}##
#end
#set($count = $count + 1)
#if($count == $numCities - 1)
AND ##
#elseif($count < $numCities)
...##
#end
#end
BY ${dateUtil.format(${pc.time}, ${timeFormat.clock}, ${localtimezone})}...
#else## Handle the rural cases
#set($numRural = $numRural + 1)
#if($numRural > 2)
RURAL ${pc.area} ${pc.areaNotation} AT ${dateUtil.format(${pc.time}, ${timeFormat.clock}, ${localtimezone})}...
#set($numRural = 0)
#end
#end
#end
#elseif(${otherPoints} && ${numOtherCities} > 0)
* OTHER LOCATIONS IN THE WARNING INCLUDE BUT ARE NOT LIMITED TO
#set($count = 0)
##
#foreach(${point} in ${otherPoints})
#set($count = $count + 1)
${point}##
#if($count == $numOtherCities - 1)
AND ##
#elseif($count < $numOtherCities)
...##
#end
#end
#else
* THE CUSTOM THING WILL OTHERWISE REMAIN OVER MAINLY RURAL AREAS OF THE INDICATED COUNTIES.
#end
####################
## ENDS PATHCAST ##
####################
#if(${list.contains($bullets, "more")})
IN ADDITION TO THE CUSTOM WARNING...
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
TIME...MOT...LOC ##
#if(${corToNewMarker})
${dateUtil.format(${TMLtime}, ${timeFormat.time})}Z ##
#else
${dateUtil.format(${event}, ${timeFormat.time})}Z ##
#end
${mathUtil.roundAndPad(${movementDirection})}DEG ##
${mathUtil.round(${movementInKnots})}KT ##
#foreach(${eventCoord} in ${eventLocation})
#llFormat(${eventCoord.y}) #llFormat(${eventCoord.x}) ##
#end
$$
!**NAME/INITIALS**!

View file

@ -1,239 +0,0 @@
<!-- Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
-->
<!-- Severe Thunderstorm Warning configuration -->
<warngenConfig>
<!-- Maps to load on template selection. Refer to 'Maps' menu in CAVE.
The various menu items are also the different maps
that can be loaded with each template. -->
<maps>
<!-- <map></map> -->
</maps>
<!-- Followups: VTEC actions of allowable followups when this template is selected -->
<followups>
</followups>
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
<phensigs>
<phensig>XX.W</phensig>
</phensigs>
<!-- Enables/disables user from selecting the Restart button the GUI -->
<enableRestart>true</enableRestart>
<!-- Enable/disables the system to lock text based on various patterns -->
<autoLockText>true</autoLockText>
<!-- Included watches: If a tornado watch or severe thunderstorm watch is to be
included with the warning product include torWatches and/or svrWatches,
respectively. Please refer to 'includedWatchAreaBuffer' in <areaConfig/>. -->
<includedWatches>
<includedWatch>torWatches</includedWatch>
<includedWatch>svrWatches</includedWatch>
</includedWatches>
<!-- durations: the list of possible durations of the warning -->
<defaultDuration>30</defaultDuration>
<durations>
<duration>10</duration>
<duration>15</duration>
<duration>20</duration>
<duration>25</duration>
<duration>30</duration>
<duration>40</duration>
<duration>45</duration>
<duration>50</duration>
<duration>60</duration>
<duration>75</duration>
<duration>90</duration>
</durations>
<bulletActionGroups>
<bulletActionGroup action="NEW">
<bullets>
<bullet bulletText="*********** BASIS FOR WARNING (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="much" bulletText="Custom basis" bulletDefault="true" parseText="NATIONAL WEATHER SERVICE CUSTOM RADAR WAS TRACKING A CUSTOM THING"/>
<bullet bulletText="*********** CALL TO ACTIONS (CHOOSE 1 OR MORE) **********" bulletType="title"/>
<bullet bulletName="more" bulletText="Custom CTA" bulletDefault="true" parseText="IN ADDITION TO THE CUSTOM WARNING"/>
</bullets>
</bulletActionGroup>
</bulletActionGroups>
<!-- areaConfig: specifies how the area portion of the warning is generated; Mainly used
for determining the impacting counties in the 1st bullet
- inclusionPercent: If an area greater than this percentage of area is covered, include it in the warning
- inclusionArea: If an area greater than this is covered, include it in the warning (Square Kilometers)
- inclusionAndOr: AND - both inclusionPercent and inclusionArea must pass in
order to be included. OR - either inclusionPercent or inclusionArea
can pass pass to be included.
- pointField: the column name in the pointSource that contains the name of the point
- sortBy: Can sort by 'name','parent','size',
- pointFilter: Controls which point (i.e. cities) to include in the 1st bullet based on
the 'WARNGENLEV' of the point. WARNGENLEV is a value from 1 to 3.
key: WARNGENLEV (Column name in the pointSource)
value: 1,2,or 3 (Can only be a single value), 0 does nothing
type: INCLUSIVE - include only points that match the value
EXCLUSIVE - exclude only points that match the value
For example: INCLUSIVE 1,will only include points that are WARNGENLEV 1,
EXCLUSIVE 3, will only include points that are WARNGENLEV 1 and 2
- fipsField: the name of the attribute that retrieves the fips
- areaNotationField: The column in the areaSource table that contains the key
used to map to the correct areaNotation. Look at countTypes.txt
- areaNotationTranslationFile: TranslationFile to look up an area
notation located in /edex/data/utility/common_static/base/warngen
- includedWatchAreaBuffer: The number of MILES the warning polygon will be increased to include nearby watches
- otherPoints: this configures the otherPoints object for the fourth bullet. It
uses the same pointSource as the areaConfig
- includeAreaPoints: true/false, don't add name if already available for 1st bullet
- includeClosePoints: true/false, don't add name if already available for 3rd bullet
- sortBy - Can sort the path cast by 'distance', 'name', 'population','warngenlev','lat','lon',
-->
<areaConfig>
<inclusionPercent>0.00</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>COUNTYNAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<fipsField>FIPS</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<key>WARNGENLEV</key>
<value>1</value>
<type>INCLUSIVE</type>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
<otherPoints>
<maxCount>50</maxCount>
<includeAreaPoints>true</includeAreaPoints>
<includeClosestPoints>true</includeClosestPoints>
<sortBy>
<sort>warngenlev</sort>
<sort>population</sort>
</sortBy>
</otherPoints>
</areaConfig>
<!-- closestPointsConfig: determines how the closest points to the storm
are generated. This configuration is usually applied to the 3rd bullet.
- numberOfPoints: number of closest points to generate
- unitDistance: the output unit
- unitSpeed: the output speed
- pointField: The field out of the area field that is used for naming
the point
- pointFilter: Controls which point (i.e. cities) to include in the 1st bullet based on
the 'WARNGENLEV' of the point. WARNGENLEV is a value from 1 to 3.
key: WARNGENLEV (Column name in the pointSource)
value: 1,2,or 3 (Can only be a single value), 0 does nothing
type: INCLUSIVE - include only points that match the value
EXCLUSIVE - exclude only points that match the value
For example: INCLUSIVE 1,will only include points that are WARNGENLEV 1,
EXCLUSIVE 3, will only include points that are WARNGENLEV 1 and 2
- sortBy: Can sort the path cast by 'distance', 'name', 'population','warngenlev','lat','lon',
-->
<closestPointsConfig>
<numberOfPoints>2</numberOfPoints>
<unitDistance>mi</unitDistance>
<unitSpeed>mph</unitSpeed>
<pointField>NAME</pointField>
<pointFilter>
<key>WARNGENLEV</key>
<value>0</value>
<type>EXCLUSIVE</type>
</pointFilter>
<sortBy>
<sort>distance</sort>
<sort>warngenlev</sort>
</sortBy>
</closestPointsConfig>
<!-- pathcastConfig: If present, this indicates a track product is generated
to determine the areas the storm will pass under. This is mainly for the
4th bullet and used if type 1 is selected. Refer to VM_global_library.vm for details.
- enabled: 0 to disable pathCast, 1 to enable pathCast
- defaultSpeedKt: Default speed in knots
- defaultDirection: Default Direction (0 degrees is South)
- nearThreshold: Specifies a distance in Miles that indicates how close
a storm can be to a location to be included in the path cast;
- interval: will round the minutes in the pathcast to the next interval set
- maxCount: max number of points can be included in each group
- pointField: the column name in the pointSource that contains the name of the point
- pointFilter: Controls which point to include based on the 'WARNGENLEV' of the point.
WARNGENLEV is a value from 1 to 3.
key: WARNGENLEV (Column name in the pointSource)
value: 1,2,or 3 (Can only be a single value), 0 does nothing
type: INCLUSIVE - include only points that match the value
EXCLUSIVE - exclude only points that match the value
For example: INCLUSIVE 1,will only include points that are WARNGENLEV 1,
EXCLUSIVE 3, will only include points that are WARNGENLEV 1 and 2
- areaField: the column name in the areaSource table that contains the name of the area
- parentAreaField: the column name in the area Source that contains the parent of the area (i.e. State)
- areaNotationField: The column in the areaSource table that contains the key
used to map to the correct areaNotation. Look at countTypes.txt
- areaNotationTranslationFile: TranslationFile to look up an area
notation located in /edex/data/utility/common_static/base/warngen
- sortBy: Can sort the path cast by 'distance', 'name', 'population','warngenlev','lat','lon'
-->
<pathcastConfig>
<withinPolygon>true</withinPolygon>
<defaultSpeedKt>20</defaultSpeedKt>
<defaultDirection>45</defaultDirection>
<nearThreshold>8.0</nearThreshold>
<interval>5</interval>
<maxCount>4</maxCount>
<maxGroup>8</maxGroup>
<pointField>Name</pointField>
<pointFilter>
<key>WARNGENLEV</key>
<value>0</value>
<type>EXCLUSIVE</type>
</pointFilter>
<areaField>COUNTYNAME</areaField>
<parentAreaField>STATE</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<sortBy>
<sort>distance</sort>
</sortBy>
</pathcastConfig>
<!-- this "include file" tag will grab the Mile Marker XML pointSource tags,
and place into this template
<include file="mileMarkers.xml"/>
-->
<!-- geospatialConfig: The geospatial configuration
- pointSource: the name of the table that reads the points from (i.e. City, MarineSites)
- areaSource: the name of the table that reads the areas from (i.e. County,MarineZones)
- timezoneSource: the name of the table that reads the time zones from
- timezoneField: the column name of the table that contains the name of the time zone
- maskSource: Table name of the CWAs
- maskFilter: Upon initialization will gather all the areas that have a WFO
that matches what CAVE is localized to
-->
<geospatialConfig>
<pointSource>City</pointSource>
<areaSource>County</areaSource>
<parentAreaSource>States</parentAreaSource>
<timezoneSource>TIMEZONES</timezoneSource>
<timezoneField>TIME_ZONE</timezoneField>
<maskSource>CWA</maskSource>
<maskFilter>
<key>WFO</key>
<value>$warngenCWAFilter</value>
<type>INCLUSIVE</type>
</maskFilter>
</geospatialConfig>
</warngenConfig>

View file

@ -1,311 +0,0 @@
##################################################################
## FLASH FLOOD/AREAL WARNING TEMPLATE FOR COUNTY-BASED PRODUCTS ##
##################################################################
## EDITED BY MIKE DANGELO 7-13-2011 ##
## Edited by Phil Kurimski 8-15-2011 for OB11.80-4 ##
## Overhauled by Evan Bookbinder 9-15-2011 for OB11.8.0-8 to combine FFW/FLW
##
#################################### SET SOME VARIABLES ###################################
#set ($hycType = "")
#set ($ic = "ER")
#set ($floodReason = "")
#set ($MNDPROD = "!** YOU DID NOT SELECT A WARNING TYPE! CLOSE THIS WINDOW AND REGENERATE YOUR WARNING **!")
#if(${list.contains($bullets, "ffwSelect")})
#set($MNDPROD = "FLASH FLOOD WARNING")
#set($EAS = "EAS ACTIVATION REQUEST")
#set($floodType = "FLASH FLOODING")
#set($pil = "FFW")
#set($vtecPhenSig = "FF.W")
#elseif(${list.contains($bullets, "fawSelect")})
#set($MNDPROD = "FLOOD WARNING")
#set($EAS = "IMMEDIATE BROADCAST REQUEST")
#set($floodType = "FLOODING")
#set($pil = "FLW")
#set($vtecPhenSig = "FA.W")
#end
##
#if(${action} == "EXT")
#set($starttime = "000000T0000Z")
#set($extend = true)
#else
#set($starttime = ${dateUtil.format(${start}, ${timeFormat.ymdthmz})})
#set($extend = false)
#end
##
###OVERRIDE DEFAULT EXECESSIVE RAINFALL IF NECESSARY
#if(${list.contains($bullets, "icrs")})
#set ($ic = "RS")
#set ($hycType = "RAIN AND SNOW MELT IN...")
#set ($floodReason = " RAPID SNOW MELT IS ALSO OCCURRING AND WILL ADD TO THE ${floodType}.")
#elseif(${list.contains($bullets, "icsm")})
#set ($ic = "SM")
#set ($hycType = "FOR RAPID SNOW MELT IN...")
#set ($floodReason = " RAPID SNOW MELT IS OCCURRING AND WILL CAUSE ${floodType}.")
#elseif(${list.contains($bullets, "icij")})
#set ($ic = "IJ")
#set ($hycType = "FOR ICE JAM FLOODING IN...")
#set ($floodReason = " AN ICE JAM IS OCCURRING AND WILL CAUSE ${floodType}.")
#elseif(${list.contains($bullets, "icicr")})
#set ($ic = "IC")
#set ($hycType = "FOR AN ICE JAM AND HEAVY RAIN IN...")
#set ($floodReason = " AN ICE JAM IS ALSO OCCURRING AND WILL CAUSE ${floodType}.")
#elseif(${list.contains($bullets, "icics")})
#set ($ic = "IC")
#set ($hycType = "FOR AN ICE JAM AND RAPID SNOW MELT IN...")
#set ($floodReason = " AN ICE JAM AND RAPID SNOW MELT ARE ALSO OCCURRING AND WILL CAUSE ${floodType}.")
#elseif(${list.contains($bullets, "icerr")})
#set ($ic = "ER")
#set ($hycType = "FOR RAPID RIVER RISES IN...")
#end
##
${WMOId} ${vtecOffice} 000000 ${BBBId}
${pil}${siteId}
#if(${specialCorText})
${specialCorText}
#else
${ugcline}
#################################### VTEC LINE ###################################
/${productClass}.${action}.${vtecOffice}.${vtecPhenSig}.${etn}.${starttime}-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#################################### MND HEADER ###################################
BULLETIN - ${EAS}
#if(${productClass}=="T")
TEST...${MNDPROD}...TEST
#else
${MNDPROD}
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#headlineext(${officeLoc}, ${backupSite}, ${extend})
#################################
######## FIRST BULLET ###########
#################################
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
${MNDPROD} FOR...
#if (${hycType} != "")
<L> ${hycType}</L>
#end
#firstBullet(${areas})
#################################
####### SECOND BULLET ###########
#################################
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone})
################################################
#################################
######## THIRD BULLET ###########
#################################
#set ($rainAmount = "")
#if(${list.contains($bullets, "rain1")} )
#set ($rainAmount = " UP TO ONE INCH OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains($bullets, "rain2")} )
#set ($rainAmount = " UP TO TWO INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains($bullets, "rain3")} )
#set ($rainAmount = " UP TO THREE INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains($bullets, "rainEdit")} )
#set ($rainAmount = " !** RAINFALL AMOUNTS **! INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#set ($reportBy = "!**YOU DID NOT SELECT A /SOURCE/ BULLET. PLEASE CLOSE THIS WINDOW AND REGENERATE YOUR WARNING**!")
#if(${list.contains($bullets, "doppler")})
#set ($reportBy = "NATIONAL WEATHER SERVICE DOPPLER RADAR INDICATED")
#elseif(${list.contains($bullets, "dopplerGauge")})
#set ($reportBy = "NATIONAL WEATHER SERVICE DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED")
#elseif(${list.contains($bullets, "trainedSpotters")})
#set ($reportBy = "TRAINED WEATHER SPOTTERS REPORTED")
#elseif(${list.contains($bullets, "lawEnforcement")})
#set ($reportBy = "LOCAL LAW ENFORCEMENT REPORTED")
#elseif(${list.contains($bullets, "public")})
#set ($reportBy = "THE PUBLIC REPORTED")
#elseif(${list.contains($bullets, "emergencyManagement")})
#set ($reportBy = "EMERGENCY MANAGEMENT REPORTED")
#elseif(${list.contains($bullets, "satellite")})
#set ($reportBy = "SATELLITE ESTIMATES INDICATED")
#elseif(${list.contains($bullets, "satelliteGauge")})
#set ($reportBy = "SATELLITE ESTIMATES AND AUTOMATED RAIN GAUGES INDICATED")
#end
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#set($cityListLead = "")
#if(${list.contains($bullets, "thunder")})
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
${reportBy} SLOW MOVING THUNDERSTORMS WITH VERY HEAVY RAINFALL ACROSS THE WARNED AREA.${rainAmount}${floodReason}
#set($cityListLead = "RUNOFF FROM THIS EXCESSIVE RAINFALL WILL CAUSE ${floodType} TO OCCUR. ")
#elseif(${list.contains($bullets, "plainRain")})
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
${reportBy} AN AREA OF VERY HEAVY RAINFALL ACROSS THE WARNED AREA.${rainAmount}${floodReason}
#set($cityListLead = "RUNOFF FROM THIS EXCESSIVE RAINFALL WILL CAUSE ${floodType} TO OCCUR. ")
#elseif(${list.contains($bullets, "floodOccurring")})
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
${reportBy} ${floodType} ACROSS THE WARNED AREA.${rainAmount}${floodReason} !** ENTER SPECIFIC REPORTS OF FLOODING AND EXPECTED RAINFALL AMOUNTS **!
#elseif(${list.contains($bullets, "genericFlood")})
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
!** ENTER REASON AND FORECAST FOR FLOOD **!
#else
"!**YOU DID NOT SELECT AN /EVENT/ BULLET. PLEASE CLOSE THIS WINDOW AND REGENERATE YOUR WARNING**!
#end
##########################################################################
## Flash Flood Emergency per NWS 10-922 Directive goes with third bullet #
##########################################################################
#if(${list.contains($bullets, "ffwEmergency")} )
#if(${list.contains($bullets, "ffwSelect")})
THIS IS A FLASH FLOOD EMERGENCY FOR !** LOCATION **!.
#else
!** YOU HAVE SELECTED FLASH FLOOD EMERGENCY BUT AN AREAL FLOOD WARNING. PLEASE CLOSE AND REGENERATE YOUR WARNING CORRECTLY **!
#end
#end
############################################
######## FOURTH BULLET (CITY LIST) #########
############################################
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#### THE THIRD ARGUMENT IS A NUMBER SPECIFYING THE NUMBER OF COLUMNS TO OUTPUT THE CITIES LIST IN
#### 0 IS A ... SEPARATED LIST, 1 IS ONE PER LINE, >1 IS A COLUMN FORMAT
#### IF YOU USE SOMETHING OTHER THAN "LOCATIONS IMPACTED INCLUDE" LEAD IN BELOW, MAKE SURE THE
#### ACCOMPANYING XML FILE PARSE STRING IS CHANGED TO MATCH!
${cityListLead}#locationsList("SOME LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE" "${floodType} IS EXPECTED TO OCCUR OVER MAINLY RURAL AREAS OF" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
########################################## END OF OPTIONAL FOURTH BULLET ##############################
######################################
###### WHERE ADDITIONAL INFO GOES ####
######################################
#if(${list.contains($bullets, "addRainfall")})
ADDITIONAL RAINFALL AMOUNTS OF !** EDIT AMOUNT **! ARE POSSIBLE IN THE WARNED AREA.
#end
#if(${list.contains($bullets, "drainages")})
#drainages(${riverdrainages})
#end
##############################################
###### mile markers ##############
##############################################
#parse("milemarkers.vm")
#################################### END OF ADDITIONAL STUFF ###################################
######################################
####### CALL TO ACTIONS ##############
######################################
##Check to see if we've selected any calls to action.
#foreach ($bullet in $bullets)
#if($bullet.endsWith("CTA"))
#set ($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
#if(${list.contains($bullets, "urbanFloodingCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES AS WELL AS OTHER DRAINAGE AREAS AND LOW LYING SPOTS.
#end
#if(${list.contains($bullets, "ruralFloodingCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...COUNTRY ROADS...AS WELL AS FARMLAND AS WELL AS OTHER DRAINAGE AREAS AND LOW LYING SPOTS.
#end
#if(${list.contains($bullets, "ruralUrbanCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES. ADDITIONALLY...COUNTRY ROADS AND FARMLANDS ALONG THE BANKS OF CREEKS...STREAMS AND OTHER LOW LYING AREAS ARE SUBJECT TO FLOODING.
#end
#if(${list.contains($bullets, "particularStreamCTA")})
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
#end
#if(${list.contains($bullets, "nighttimeCTA")})
BE ESPECIALLY CAUTIOUS AT NIGHT WHEN IT IS HARDER TO RECOGNIZE THE DANGERS OF FLOODING. IF ${floodType} IS OBSERVED ACT QUICKLY. MOVE UP TO HIGHER GROUND TO ESCAPE FLOOD WATERS. DO NOT STAY IN AREAS SUBJECT TO FLOODING WHEN WATER BEGINS RISING.
#end
#if(${list.contains($bullets, "dontDriveCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains($bullets, "turnAroundCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains($bullets, "autoSafetyCTA")})
FLOODING IS OCCURRING OR IS IMMINENT. MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES. DO NOT ATTEMPT TO CROSS WATER COVERED BRIDGES...DIPS... OR LOW WATER CROSSINGS. NEVER TRY TO CROSS A FLOWING STREAM...EVEN A SMALL ONE...ON FOOT. TO ESCAPE RISING WATER FIND ANOTHER ROUTE OVER HIGHER GROUND.
#end
#if(${list.contains($bullets, "camperSafetyCTA")})
FLOODING IS OCCURRING OR IS IMMINENT. IT IS IMPORTANT TO KNOW WHERE YOU ARE RELATIVE TO STREAMS...RIVERS...OR CREEKS WHICH CAN BECOME KILLERS IN HEAVY RAINS. CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS.
#end
#if(${list.contains($bullets, "lowSpotsCTA")})
IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS WHICH ARE POTENTIALLY DANGEROUS IN HEAVY RAIN. DO NOT ATTEMPT TO TRAVEL ACROSS FLOODED ROADS. FIND AN ALTERNATE ROUTE. IT TAKES ONLY A FEW INCHES OF SWIFTLY FLOWING WATER TO CARRY VEHICLES AWAY.
#end
#if(${list.contains($bullets, "ffwMeansCTA")})
A ${MNDPROD} MEANS THAT FLOODING IS IMMINENT OR OCCURRING. IF YOU ARE IN THE WARNING AREA MOVE TO HIGHER GROUND IMMEDIATELY. RESIDENTS LIVING ALONG STREAMS AND CREEKS SHOULD TAKE IMMEDIATE PRECAUTIONS TO PROTECT LIFE AND PROPERTY. DO NOT ATTEMPT TO CROSS SWIFTLY FLOWING WATERS OR WATERS OF UNKNOWN DEPTH BY FOOT OR BY AUTOMOBILE.
#end
#if(${list.contains($bullets, "powerFloodCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains($bullets, "reportFloodingCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE.
#end
#if(${ctaSelected} == "YES")
&&
#end
#################################### END OF CTA STUFF ###################################
##########################################
########BOTTOM OF THE PRODUCT#############
##########################################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
!**NAME/INITIALS**!
## example of a for-each loop which will include interstate/mile marker information
## #foreach (${local} in ${alpha})
## spot is ${local.name}...
## #end
########### EXAMPLES OF PARSE OR INCLUDE STATEMENTS ################################
## #parse ("test.vm")
## #include ("username.txt")
#end

View file

@ -1,353 +0,0 @@
<!-- Flash Flood/Areal Flood Warning configuration for County-based products-->
<!-- Modified by Mike Dangelo 07-12-2011
Modified by Phil Kurimski 08-15-2011 for 11.8.0-4
Overhauled by Evan Bookbinder 09-15-2011 for 118.0-8 Merged Templates
Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
-->
<warngenConfig>
<!-- Config distance/speed units -->
<unitDistance>mi</unitDistance>
<unitSpeed>mph</unitSpeed>
<!-- OPTIONAL: Maps to load on template selection. Refer to 'Maps' menu in CAVE.
The various menu items are also the different maps
that can be loaded with each template. -->
<maps>
<map>County Names</map>
<map>County Warning Areas</map>
<!-- <map>FFMP Small Stream Basin Links</map> -->
<!-- <map>Major Rivers</map> -->
</maps>
<!-- Followups: VTEC actions of allowable followups when this template is selected
Each followup will become available when the appropriate time range permits.
-->
<followups>
<followup>NEW</followup>
<followup>COR</followup>
<followup>EXT</followup>
</followups>
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
<phensigs>
<phensig>FF.W</phensig>
<phensig>FA.W</phensig>
</phensigs>
<!-- Enables/disables user from selecting the Restart button the GUI -->
<enableRestart>true</enableRestart>
<!-- Enable/disables the system to lock text based on various patterns -->
<autoLockText>true</autoLockText>
<!-- durations: the list of possible durations of the warning -->
<defaultDuration>360</defaultDuration>
<durations>
<duration>120</duration>
<duration>180</duration>
<duration>210</duration>
<duration>240</duration>
<duration>270</duration>
<duration>300</duration>
<duration>330</duration>
<duration>360</duration>
<duration>420</duration>
<duration>480</duration>
<duration>540</duration>
<duration>600</duration>
<duration>660</duration>
<duration>720</duration>
<duration>1440</duration>
<duration>2160</duration>
<duration>2880</duration>
<duration>3600</duration>
</durations>
<lockedGroupsOnFollowup>ic</lockedGroupsOnFollowup>
<bulletActionGroups>
<bulletActionGroup action="NEW">
<bullets>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletText="****** SELECT WARNING TYPE *******" bulletType="title"/>
<bullet bulletName="ffwSelect" bulletText="Flash Flood Warning (FFW)" bulletGroup="type" parseString="FLASH FLOOD"/>
<bullet bulletName="fawSelect" bulletText="Areal/Extended Flood Warning (FLW)" bulletGroup="type" parseString="&quot;-FLASH&quot;"/>
<bullet bulletText="****** HYDROLOGIC CAUSES/CONDITIONS *******" bulletType="title"/>
<bullet bulletName="icer" bulletText="Excessive Rainfall" bulletDefault="true" bulletGroup="ic" parseString="&quot;.ER.&quot;,&quot;-FOR RAPID RIVER RISES&quot;"/>
<bullet bulletName="icrs" bulletText="Rain and Snow Melt" bulletGroup="ic" parseString=".RS."/>
<bullet bulletName="icsm" bulletText="Snow Melt" bulletGroup="ic" parseString=".SM."/>
<bullet bulletName="icij" bulletText="Ice Jam" bulletGroup="ic" parseString=".IJ."/>
<bullet bulletName="icicr" bulletText="Ice Jam and Heavy Rain" bulletGroup="ic" parseString="&quot;.IC.&quot;,&quot;HEAVY RAIN&quot;"/>
<bullet bulletName="icics" bulletText="Ice Jam and Snow Melt" bulletGroup="ic" parseString="&quot;.IC.&quot;,&quot;SNOW MELT&quot;"/>
<bullet bulletName="icerr" bulletText="Rapid River Rises" bulletGroup="ic" parseString="&quot;.ER.&quot;,&quot;FOR RAPID RIVER RISES&quot;"/>
<bullet bulletText="*********** SOURCE (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" bulletDefault="true" parseString="NATIONAL WEATHER SERVICE DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED"/>
<!-- The following bullets will add satellite and gauges as a source. If you would like to use this
in your template uncomment out the next few lines. -->
<!-- <bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES"/>
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE AND "/> -->
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Local law enforcement reported" bulletGroup="source" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" bulletDefault="true" parseString="THUNDERSTORMS"/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="FROM HEAVY RAIN "/>
<bullet bulletName="floodOccurring" bulletText="Flooding occurring" bulletGroup="event" parseString="PRODUCING FLOODING "/>
<bullet bulletName="genericflood" bulletText="Generic (provide reasoning)" bulletGroup="event" parseString="PRODUCING FLOODING "/>
<bullet bulletText="*********** RAIN SO FAR (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH "/>
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES "/>
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES "/>
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES HAS FALLEN "/>
<bullet bulletText="*********** ADDITIONAL INFO ***********" bulletType="title"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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"/>
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
<!-- include file="testInclude.xml" /> -->
<bullet bulletName="urbanFloodingCTA" bulletText="Urban flooding..." parseString="SMALL CREEKS AND STREAMS...URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralFloodingCTA" bulletText="Rural flooding/small streams..." parseString="SMALL CREEKS AND STREAMS...COUNTRY ROADS...AS WELL AS FARMLAND"/>
<bullet bulletName="ruralUrbanCTA" bulletText="Flooding of rural and urban areas" parseString="HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="particularStreamCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding..." parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="dontDriveCTA" bulletText="Do not drive into water..." parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="turnAroundCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="autoSafetyCTA" bulletText="Vehicle safety..." parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperSafetyCTA" bulletText="Camper safety..." parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowSpotsCTA" bulletText="Low water crossings in hilly terrain..." parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="ffwMeansCTA" bulletText="A flood/flash flood warning means..." parseString="A FLASH FLOOD WARNING MEANS THAT"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles..." parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="EXT" phen="FF" sig="W">
<bullets>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletText="****** SELECT WARNING TYPE *******" bulletType="title"/>
<bullet bulletName="ffwSelect" bulletText="Flash Flood Warning (FFW)" parseString="FLASH FLOOD"/>
<bullet bulletName="fawSelect" bulletText="Areal/Extended Flood Warning (FLW)" parseString="&quot;-FLASH&quot;"/>
<bullet bulletText="****** HYDROLOGIC CAUSES/CONDITIONS *******" bulletType="title"/>
<bullet bulletName="icer" bulletText="Excessive Rainfall" bulletDefault="true" bulletGroup="ic" parseString="&quot;.ER.&quot;,&quot;-FOR RAPID RIVER RISES&quot;"/>
<bullet bulletName="icrs" bulletText="Rain and Snow Melt" bulletGroup="ic" parseString=".RS."/>
<bullet bulletName="icsm" bulletText="Snow Melt" bulletGroup="ic" parseString=".SM."/>
<bullet bulletName="icij" bulletText="Ice Jam" bulletGroup="ic" parseString=".IJ."/>
<bullet bulletName="icicr" bulletText="Ice Jam and Heavy Rain" bulletGroup="ic" parseString="&quot;.IC.&quot;,&quot;HEAVY RAIN&quot;"/>
<bullet bulletName="icics" bulletText="Ice Jam and Snow Melt" bulletGroup="ic" parseString="&quot;.IC.&quot;,&quot;SNOW MELT&quot;"/>
<bullet bulletName="icerr" bulletText="Rapid River Rises" bulletGroup="ic" parseString="&quot;.ER.&quot;,&quot;FOR RAPID RIVER RISES&quot;"/>
<bullet bulletText="*********** SOURCE (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" bulletDefault="true" parseString="NATIONAL WEATHER SERVICE DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED "/>
<!-- The following bullets will add satellite and gauges as a source. If you would like to use this
in your template uncomment out the next few lines. -->
<!-- <bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES"/>
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE AND "/> -->
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Local law enforcement reported" bulletGroup="source" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" bulletDefault="true" parseString="THUNDERSTORMS"/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="FROM HEAVY RAIN "/>
<bullet bulletName="flash" bulletText="Flooding occurring" bulletGroup="event" parseString="PRODUCING FLOODING "/>
<bullet bulletName="genericflood" bulletText="Generic (provide reasoning)" bulletGroup="event" parseString="PRODUCING FLOODING "/>
<bullet bulletText="*********** RAIN SO FAR (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH "/>
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES "/>
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES "/>
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES HAS FALLEN "/>
<bullet bulletText="*********** ADDITIONAL INFO ***********" bulletType="title"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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"/>
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
<!-- include file="testInclude.xml" /> -->
<bullet bulletName="urbanFloodingCTA" bulletText="Urban flooding..." parseString="SMALL CREEKS AND STREAMS...URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralFloodingCTA" bulletText="Rural flooding/small streams..." parseString="SMALL CREEKS AND STREAMS...COUNTRY ROADS...AS WELL AS FARMLAND"/>
<bullet bulletName="ruralUrbanCTA" bulletText="Flooding of rural and urban areas" parseString="HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="particularStreamCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding..." parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="dontDriveCTA" bulletText="Do not drive into water..." parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="turnAroundCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="autoSafetyCTA" bulletText="Vehicle safety..." parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperSafetyCTA" bulletText="Camper safety..." parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowSpotsCTA" bulletText="Low water crossings in hilly terrain..." parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="ffwMeansCTA" bulletText="A flood/flash flood warning means..." parseString="A FLASH FLOOD WARNING MEANS THAT"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles..." parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="EXT" phen="FA" sig="W">
<bullets>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletText="****** SELECT WARNING TYPE *******" bulletType="title"/>
<bullet bulletName="ffwSelect" bulletText="Flash Flood Warning (FFW)" parseString="FLASH FLOOD"/>
<bullet bulletName="fawSelect" bulletText="Areal/Extended Flood Warning (FLW)" parseString="&quot;-FLASH&quot;"/>
<bullet bulletText="****** HYDROLOGIC CAUSES/CONDITIONS *******" bulletType="title"/>
<bullet bulletName="icer" bulletText="Excessive Rainfall" bulletDefault="true" bulletGroup="ic" parseString="&quot;.ER.&quot;,&quot;-FOR RAPID RIVER RISES&quot;"/>
<bullet bulletName="icrs" bulletText="Rain and Snow Melt" bulletGroup="ic" parseString=".RS."/>
<bullet bulletName="icsm" bulletText="Snow Melt" bulletGroup="ic" parseString=".SM."/>
<bullet bulletName="icij" bulletText="Ice Jam" bulletGroup="ic" parseString=".IJ."/>
<bullet bulletName="icicr" bulletText="Ice Jam and Heavy Rain" bulletGroup="ic" parseString="&quot;.IC.&quot;,&quot;HEAVY RAIN&quot;"/>
<bullet bulletName="icics" bulletText="Ice Jam and Snow Melt" bulletGroup="ic" parseString="&quot;.IC.&quot;,&quot;SNOW MELT&quot;"/>
<bullet bulletName="icerr" bulletText="Rapid River Rises" bulletGroup="ic" parseString="&quot;.ER.&quot;,&quot;FOR RAPID RIVER RISES&quot;"/>
<bullet bulletText="*********** SOURCE (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" bulletDefault="true" parseString="NATIONAL WEATHER SERVICE DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED "/>
<!-- The following bullets will add satellite and gauges as a source. If you would like to use this
in your template uncomment out the next few lines. -->
<!-- <bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES"/>
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE AND "/> -->
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Local law enforcement reported" bulletGroup="source" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" bulletDefault="true" parseString="THUNDERSTORMS"/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="FROM HEAVY RAIN "/>
<bullet bulletName="flash" bulletText="Flooding occurring" bulletGroup="event" parseString="PRODUCING FLOODING "/>
<bullet bulletName="genericflood" bulletText="Generic (provide reasoning)" bulletGroup="event" parseString="PRODUCING FLOODING "/>
<bullet bulletText="*********** RAIN SO FAR (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH "/>
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES "/>
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES "/>
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES HAS FALLEN "/>
<bullet bulletText="*********** ADDITIONAL INFO ***********" bulletType="title"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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"/>
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
<!-- include file="testInclude.xml" /> -->
<bullet bulletName="urbanFloodingCTA" bulletText="Urban flooding..." parseString="SMALL CREEKS AND STREAMS...URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralFloodingCTA" bulletText="Rural flooding/small streams..." parseString="SMALL CREEKS AND STREAMS...COUNTRY ROADS...AS WELL AS FARMLAND"/>
<bullet bulletName="ruralUrbanCTA" bulletText="Flooding of rural and urban areas" parseString="HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="particularStreamCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding..." parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="dontDriveCTA" bulletText="Do not drive into water..." parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="turnAroundCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="autoSafetyCTA" bulletText="Vehicle safety..." parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperSafetyCTA" bulletText="Camper safety..." parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowSpotsCTA" bulletText="Low water crossings in hilly terrain..." parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="ffwMeansCTA" bulletText="A flood/flash flood warning means..." parseString="A FLASH FLOOD WARNING MEANS THAT"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles..." parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="COR" phen="FF" sig="W">
<bullets>
<bullet bulletText="**** CORRECTED PRODUCT. CLICK CREATE TEXT ****" bulletType="title"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="COR" phen="FA" sig="W">
<bullets>
<bullet bulletText="**** CORRECTED PRODUCT. CLICK CREATE TEXT ****" bulletType="title"/>
</bullets>
</bulletActionGroup>
</bulletActionGroups>
<areaConfig>
<inclusionPercent>0.00</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>COUNTYNAME</areaField>
<!-- <areaField>NAME</areaField> -->
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<fipsField>FIPS</fipsField>
<!-- <fipsField>STATE_ZONE</fipsField> -->
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaConfig>
<trackEnabled>false</trackEnabled>
<!-- DO NOT DELETE OR COMMENT OUT THIS pathcastConfig SECTION.
ALTHOUGH IT SERVES NO PURPOSE HERE, IT WILL CRASH WARNGEN IF REMOVED -->
<pathcastConfig>
<withinPolygon>true</withinPolygon>
<distanceThreshold>8.0</distanceThreshold>
<interval>5</interval>
<delta>5</delta>
<maxResults>4</maxResults>
<maxGroup>8</maxGroup>
<pointField>Name</pointField>
<areaField>COUNTYNAME</areaField>
<parentAreaField>STATE</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<sortBy>
<sort>distance</sort>
</sortBy>
</pathcastConfig>
<pointSource variable="cityList">
<pointField>NAME</pointField>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>30</maxResults>
<distanceThreshold>200</distanceThreshold>
<sortBy>
<sort>warngenlev</sort>
<sort>population</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2" constraintType="IN" />
</mapping>
</filter>
</pointSource>
<pointSource variable="otherPoints">
<pointField>NAME</pointField>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>10</maxResults>
<distanceThreshold>200</distanceThreshold>
<sortBy>
<sort>name</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="3" constraintType="EQUALS" />
</mapping>
</filter>
</pointSource>
<geospatialConfig>
<pointSource>City</pointSource>
<areaSource>County</areaSource>
<parentAreaSource>States</parentAreaSource>
<timezoneSource>TIMEZONES</timezoneSource>
<timezoneField>TIME_ZONE</timezoneField>
</geospatialConfig>
<pointSource variable="riverdrainages">
<pointSource>ffmp_basins</pointSource>
<geometryDecimationTolerance>0.064</geometryDecimationTolerance>
<pointField>streamname</pointField>
<filter>
<mapping key="cwa">
<constraint constraintValue="$warngenCWAFilter" constraintType="EQUALS" />
</mapping>
</filter>
<withinPolygon>true</withinPolygon>
</pointSource>
<include file="milemarkers.xml"/>
</warngenConfig>

View file

@ -1,456 +0,0 @@
####################################################
## FLASH FLOOD STATEMENT for ZONES ##
####################################################
## Modified by MIKE DANGELO 9-19-2011 at Alaska TIM ##
## Overhauled by Phil Kurimski 09-23-2011 to reflect work
## done in August.
## Edited by Mike Dangelo 01-26-2012 at CRH TIM
## Edited by Phil Kurimski 2-29-2012
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}
#################################### SET SOME VARs ###################################
#set($hycType = "")
#set($snowMelt = "")
#set($floodReason = "")
#set($floodType = "FLASH FLOODING")
#set($burnCTA = "")
###OVERRIDE DEFAULT EXECESSIVE RAINFALL IF NECESSARY
#if(${list.contains(${bullets}, "icrs")})
#set($hycType = "RAIN AND SNOW MELT")
#set($floodReason = " RAPID SNOW MELT IS ALSO OCCURRING AND WILL ADD TO THE ${floodType}.")
#end
##
######################################################################################
${WMOId} ${vtecOffice} 000000 ${BBBId}
FFS${siteId}
#if(${productClass}=="T")
TEST...FLASH FLOOD STATEMENT...TEST
#else
FLASH FLOOD STATEMENT
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${action}=="COR" && ${cancelareas})
#set($CORCAN = "true")
#else
#set($CORCAN = "false")
#end
#if(${action}=="CANCON")
${ugclinecan}
################### VTEC/COUNTY LINE ##################
/${productClass}.CAN.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${cancelareas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
#elseif(${CORCAN}=="true")
${ugclinecan}
################### VTEC/COUNTY LINE ##################
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${cancelareas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
#else
${ugcline}
################### VTEC/COUNTY LINE ##################
/${productClass}.${action}.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${areas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
#end
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#################################################################
#################################################################
## LETS START WITH EXPIRATION AND CANCELLATION SEGMENTS #####
#################################################################
#################################################################
### CREATE PHRASING DEPENDING ON WHETHER WE ISSUE EXP PRIOR TO EXPIRATION TIME OR NOT
#if(${now.compareTo(${expire})} >= 0 && ${action}=="EXP" )
#set($expcanHLTag = "HAS EXPIRED")
#set($expcanBODYTag = "HAS BEEN ALLOWED TO EXPIRE")
#elseif(${action}=="EXP")
#set($expcanHLTag = "WILL EXPIRE AT ${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${localtimezone})}")
#set($expcanBODYTag = "WILL BE ALLOWED TO EXPIRE")
#elseif(${action}=="CAN" || ${action}=="CANCON" || ${CORCAN}=="true")
#set($expcanHLTag = "IS CANCELLED")
#set($expcanBODYTag = "HAS BEEN CANCELLED")
#end
################################
#### CREATE HEADLINES ##########
################################
##
#if(${action}=="EXP" || ${action}=="CAN")
...THE FLASH FLOOD WARNING FOR ##
#if(${hycType} != "")
<L>${hycType}</L> IN ##
#end
##REMMED OUT FOR Alaska. This would output the headline in zone format
###headlineLocList(${areas} true true true false)
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${affectedCounties} true true true false)
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!
${expcanHLTag}...
## SLIGHTLY DIFFERENT VARIABLE FOR PARTIAL CANCELLATION HEADLINE
#elseif(${action}=="CANCON" || ${CORCAN}=="true")
...THE FLASH FLOOD WARNING FOR ##
#if(${hycType} != "")
<L>${hycType}</L> IN ##
#end
##REMMED OUT FOR Alaska. This would output the headline in zone format
###headlineLocList(${cancelareas} true true true false)
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${cancelaffectedCounties} true true true false)
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!
${expcanHLTag}...
#end
############################
## END CAN/EXP HEADLINE ####
############################
#######################################
## EXPIRATION/CANCELLATION STATEMENT ##
#######################################
#if(${action}=="EXP" || ${action} == "CAN" || ${action}=="CANCON" || ${CORCAN}=="true")
#if(${list.contains(${bullets}, "recedingWater")})
FLOOD WATERS HAVE RECEDED...AND ARE NO LONGER EXPECTED TO POSE A THREAT TO LIFE OR PROPERTY. PLEASE CONTINUE TO HEED ANY ROAD CLOSURES.
#elseif(${list.contains(${bullets}, "rainEnded")})
THE HEAVY RAIN HAS ENDED...AND FLOODING IS NO LONGER EXPECTED TO POSE A THREAT.
#else
!** THE HEAVY RAIN HAS ENDED. !** OR **! THE FLOOD WATER IS RECEDING. THEREFORE...THE FLOODING THREAT HAS ENDED. **!"
#end
#printcoords(${areaPoly}, ${list})
$$
#end
#################################### END OF CAN STUFF ###################################
#### IF PARTIAL CANCELLATION, INSERT 2ND UGC/MND SECTION PRIOR TO CON PORTION
#########################################################################################
#if(${action}=="CANCON")
${ugcline}
/${productClass}.CON.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${areas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#elseif(${CORCAN})
${ugcline}
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${areas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#end
############################
## CONTINUATION STATEMENT ##
############################
#if(${action}=="CANCON" || ${action}=="CON" || ${action}=="COR" || ${CORCAN}=="true")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...A FLASH FLOOD WARNING ##
#if(${hycType} != "")
FOR <L>${hycType}</L> ##
#end
REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
##REMMED OUT FOR Alaska. This would output the headline in zone format
###headlineLocList(${cancelareas} true true true false)...
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###headlineLocList(${cancelaffectedCounties} true true true false)...
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
###############################################################################
## Flash Flood Emergency per NWS 10-922 Directive goes after initial headline #
###############################################################################
#if(${list.contains(${bullets}, "ffwEmergency")})
...A FLASH FLOOD EMERGENCY FOR !**ENTER LOCATION**!...
#end
################################################
#################################
######## THIRD BULLET ###########
#################################
#set($reportType = "HEAVY RAIN")
#set($rainAmount = "")
#set($report = "HEAVY RAIN IS OCCURRING. !** ADD MORE DETAIL HERE **!")
#if(${list.contains(${bullets}, "flash")} )
#set($isExpected = "FLASH FLOODING IS ALREADY OCCURRING")
#else
#set($isExpected = "FLASH FLOODING IS EXPECTED TO BEGIN SHORTLY")
#end
#if(${list.contains(${bullets}, "burnScar")} )
#set($burnScar = "EXCESSIVE RAINFALL OVER THE BURN SCAR WILL RESULT IN DEBRIS FLOW MOVING THROUGH THE !** DRAINAGE **!. THE DEBRIS FLOW CAN CONSIST OF ROCK...MUD...VEGETATION AND OTHER LOOSE MATERIALS.")
#set($burnCTA = "PERSONS IN THE VICINITY OF !** DRAINAGE **! SHOULD EVACUATE IMMEDIATELY.")
#set($ctaSelected = "YES")
#elseif(${list.contains(${bullets}, "mudSlide")} )
#set($burnScar = "EXCESSIVE RAINFALL OVER THE WARNING AREA WILL CAUSE MUD SLIDES NEAR STEEP TERRAIN. THE MUD SLIDE CAN CONSIST OF ROCK...MUD...VEGETATION AND OTHER LOOSE MATERIALS.")
#set($burnCTA = "PERSONS IN THE VICINITY OF !** DRAINAGE **! SHOULD EVACUATE IMMEDIATELY.")
#set($ctaSelected = "YES")
#else
#set($burnScar = "")
#set($burnCTA = "")
#end
#if(${list.contains(${bullets}, "rain1")} )
#set($rainAmount = "UP TO ONE INCH OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rain2")} )
#set($rainAmount = "UP TO TWO INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rain3")} )
#set($rainAmount = "UP TO THREE INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rainEdit")} )
#set($rainAmount = "!** RAINFALL AMOUNTS **! INCHES OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "doppler")})
#set($report = "DOPPLER RADAR INDICATED HEAVY RAIN. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")})
#set($report = "DOPPLER RADAR INDICATED HEAVY RAIN DUE TO A THUNDERSTORM. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "DOPPLER RADAR INDICATED HEAVY RAIN DUE TO THUNDERSTORMS. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "dopplerGauge")})
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED THAT HEAVY RAIN WAS FALLING OVER THE AREA. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "thunder")})
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED THAT A THUNDERSTORM IS PRODUCING HEAVY RAIN OVER THE AREA. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED THAT A LINE OF THUNDERSTORMS IS PRODUCING HEAVY RAIN OVER THE AREA. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED HEAVY RAIN IN !** LOCATION **! ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "thunder")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED HEAVY RAIN IN !** LOCATION **! DUE TO A THUNDERSTORM. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "flash")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED FLASH FLOODING IN !** LOCATION **!. ${rainAmount}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED HEAVY RAIN IN !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED HEAVY RAIN OVER !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "thunder")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED HEAVY RAIN DUE TO A THUNDERSTORM OVER !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "flash")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED FLASH FLOODING IN !** LOCATION **!. ${rainAmount}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED HEAVY RAIN IN !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")})
#set($report = "EMERGENCY MANAGEMENT REPORTED HEAVY RAIN OVER !** LOCATION **! ")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "thunder")})
#set($report = "EMERGENCY MANAGEMENT REPORTED HEAVY RAIN DUE TO THUNDERSTORMS OVER !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "flash")})
#set($report = "EMERGENCY MANAGEMENT REPORTED FLASH FLOODING IN !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "EMERGENCY MANAGEMENT REPORTED HEAVY RAIN IN !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "public")})
#set($report = "HEAVY RAIN HAS BEEN REPORTED IN !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "thunder")})
#set($report = "HEAVY RAIN FROM THUNDERSTORMS HAS BEEN REPORTED IN !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "flash")})
#set($report = "FLASH FLOODING HAS BEEN REPORTED IN !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "HEAVY RAIN HAS BEEN REPORTED IN !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "satellite")})
#set($report = "SATELLITE ESTIMATES INDICATED HEAVY RAIN. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "satellite")} && ${list.contains(${bullets}, "thunder")})
#set($report = "SATELLITE ESTIMATES INDICATED HEAVY RAIN DUE TO A THUNDERSTORM. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "satellite")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "SATELLITE ESTIMATES INDICATED HEAVY RAIN DUE TO THUNDERSTORMS. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "satelliteGauge")})
#set($report = "SATELLITE ESTIMATES AND AUTOMATED RAIN GAUGES INDICATED THAT HEAVY RAIN WAS FALLING OVER THE AREA. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "satelliteGauge")} && ${list.contains(${bullets}, "thunder")})
#set($report = "SATELLITE ESTIMATES AND AUTOMATED RAIN GAUGES INDICATED THAT A THUNDERSTORM IS PRODUCING HEAVY RAIN OVER THE AREA. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "satelliteGauge")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "SATELLITE ESTIMATES AND AUTOMATED RAIN GAUGES INDICATED THAT A LINE OF THUNDERSTORMS IS PRODUCING HEAVY RAIN OVER THE AREA. ${rainAmount} ${isExpected}")
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
...${report}. ${snowMelt}
${burnScar}
############################################
######## (CITY LIST) #########
############################################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#### THE THIRD ARGUMENT IS A NUMBER SPECIFYING THE NUMBER OF COLUMNS TO OUTPUT THE CITIES LIST IN
#### 0 IS A ... SEPARATED LIST, 1 IS ONE PER LINE, >1 IS A COLUMN FORMAT
#### IF YOU USE SOMETHING OTHER THAN "LOCATIONS IMPACTED INCLUDE" LEAD IN BELOW, MAKE SURE THE
#### ACCOMPANYING XML FILE PARSE STRING IS CHANGED TO MATCH!
#locationsList("SOME LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE" ${floodType} 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
########################################## END OF OPTIONAL FOURTH BULLET ##############################
######################################
###### WHERE ADDITIONAL INFO GOES ####
######################################
#if(${list.contains(${bullets}, "addRainfall")})
ADDITIONAL RAINFALL AMOUNTS OF !** EDIT AMOUNT **! ARE POSSIBLE IN THE WARNED AREA.
#end
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
#################################### END OF ADDITIONAL STUFF ###################################
######################################
####### CALL TO ACTIONS ##############
######################################
##Check to see if we've selected any calls to action.
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
${burnCTA}
#if(${list.contains(${bullets}, "urbanFloodingCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES AS WELL AS OTHER DRAINAGE AREAS AND LOW LYING SPOTS.
#end
#if(${list.contains(${bullets}, "ruralFloodingCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...COUNTRY ROADS...AS WELL AS FARMLAND AS WELL AS OTHER DRAINAGE AREAS AND LOW LYING SPOTS.
#end
#if(${list.contains(${bullets}, "ruralUrbanCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES. ADDITIONALLY...COUNTRY ROADS AND FARMLANDS ALONG THE BANKS OF CREEKS...STREAMS AND OTHER LOW LYING AREAS ARE SUBJECT TO FLOODING.
#end
#if(${list.contains(${bullets}, "particularStreamCTA")})
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
#end
#if(${list.contains(${bullets}, "nighttimeCTA")})
BE ESPECIALLY CAUTIOUS AT NIGHT WHEN IT IS HARDER TO RECOGNIZE THE DANGERS OF FLOODING. IF FLASH FLOODING IS OBSERVED ACT QUICKLY. MOVE UP TO HIGHER GROUND TO ESCAPE FLOOD WATERS. DO NOT STAY IN AREAS SUBJECT TO FLOODING WHEN WATER BEGINS RISING.
#end
#if(${list.contains(${bullets}, "dontDriveCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "turnAroundCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains(${bullets}, "autoSafetyCTA")})
FLOODING IS OCCURRING OR IS IMMINENT. MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES. DO NOT ATTEMPT TO CROSS WATER COVERED BRIDGES...DIPS... OR LOW WATER CROSSINGS. NEVER TRY TO CROSS A FLOWING STREAM...EVEN A SMALL ONE...ON FOOT. TO ESCAPE RISING WATER FIND ANOTHER ROUTE OVER HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "camperSafetyCTA")})
FLOODING IS OCCURRING OR IS IMMINENT. IT IS IMPORTANT TO KNOW WHERE YOU ARE RELATIVE TO STREAMS...RIVERS...OR CREEKS WHICH CAN BECOME KILLERS IN HEAVY RAINS. CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS.
#end
#if(${list.contains(${bullets}, "lowSpotsCTA")})
IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS WHICH ARE POTENTIALLY DANGEROUS IN HEAVY RAIN. DO NOT ATTEMPT TO TRAVEL ACROSS FLOODED ROADS. FIND AN ALTERNATE ROUTE. IT TAKES ONLY A FEW INCHES OF SWIFTLY FLOWING WATER TO CARRY VEHICLES AWAY.
#end
#if(${list.contains(${bullets}, "ffwMeansCTA")})
A FLASH FLOOD WARNING MEANS THAT FLOODING IS IMMINENT OR OCCURRING. IF YOU ARE IN THE WARNING AREA MOVE TO HIGHER GROUND IMMEDIATELY. RESIDENTS LIVING ALONG STREAMS AND CREEKS SHOULD TAKE IMMEDIATE PRECAUTIONS TO PROTECT LIFE AND PROPERTY. DO NOT ATTEMPT TO CROSS SWIFTLY FLOWING WATERS OR WATERS OF UNKNOWN DEPTH BY FOOT OR BY AUTOMOBILE.
#end
#if(${list.contains(${bullets}, "powerFloodCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains(${bullets}, "reportFloodingCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE.
#end
#if(${ctaSelected} == "YES")
&&
#end
#################################### END OF CTA STUFF ###################################
##########################################
########BOTTOM OF THE PRODUCT#############
##########################################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
#end
#parse("forecasterName.vm")

View file

@ -1,332 +0,0 @@
<!-- Flash Flood Statement for Zones configuration -->
<!-- Created by Mike Dangelo 09-19-2011 at Alaska TIM -->
<!-- Modified by Phil Kurimski 09-23-2011 for burn scars and mud slides -->
<!-- Edited by Mike Dangelo 01-26-2012 at CRH TIM
Phil Kurimski 2-29-2012
Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
Evan Bookbinder 09-12-2012 DR15179 Added areaSource object to allow for
county-based headlines in zone based products.
Added settings for locations shapefile
Evan Bookbinder 01-07-2013 LockedGroupsOnFollowup tag
Evan Bookbinder 5-5-2013 fixed <type> variable under areaSource objects
-->
<warngenConfig>
<!-- Config distance/speed units -->
<unitDistance>mi</unitDistance>
<unitSpeed>mph</unitSpeed>
<!-- Maps to load on template selection. Refer to 'Maps' menu in CAVE.
The various menu items are also the different maps
that can be loaded with each template. -->
<maps>
<map>Forecast Zones</map>
<!-- <map>County Warning Areas</map> -->
<!-- <map>FFMP Small Stream Basin Links</map> -->
<!-- <map>Major Rivers</map> -->
</maps>
<!-- Followups: VTEC actions of allowable followups when this template is selected
Each followup will become available when the appropriate time range permits.
-->
<followups>
<followup>COR</followup>
<followup>CON</followup>
<followup>CAN</followup>
<followup>EXP</followup>
</followups>
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
<phensigs>
<phensig>FF.W</phensig>
</phensigs>
<!-- Enables/disables user from selecting the Restart button the GUI -->
<enableRestart>false</enableRestart>
<!-- Enable/disables the system to lock text based on various patterns -->
<autoLockText>true</autoLockText>
<!-- durations: the list of possible durations of the warning -->
<!-- DURATIONS REALLY SERVE NO PURPOSE BUT WILL CRASH WARNGEN IF REMVOED -->
<defaultDuration>30</defaultDuration>
<durations>
<duration>30</duration>
</durations>
<lockedGroupsOnFollowup>ic</lockedGroupsOnFollowup>
<bulletActionGroups>
<bulletActionGroup>
<bullets>
<bullet bulletText="*********** SELECT A FOLLOWUP **********" bulletType="title"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="CAN" phen="FF" sig="W">
<bullets>
<bullet bulletName="recedingWater" bulletText="Receding water" />
<bullet bulletName="rainEnded" bulletText="Heavy rain ended" />
</bullets>
</bulletActionGroup>
<bulletActionGroup action="EXP" phen="FF" sig="W">
<bullets>
<bullet bulletName="recedingWater" bulletText="Water receding" />
<bullet bulletName="rainEnded" bulletText="Heavy rain ended" />
</bullets>
</bulletActionGroup>
<bulletActionGroup action="CON" phen="FF" sig="W">
<bullets>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletName="icrs" bulletText="Also snow melt" parseString=".RS." showString=".RS."/>
<bullet bulletText="*********** SOURCE (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED "/>
<!-- The following bullets will add satellite and gauges as a source. If you would like to use this
in your template uncomment out the next few lines. -->
<bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES"/>
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE AND "/> -->
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Local law enforcement reported" bulletGroup="source" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" parseString="THUNDERSTORMS"/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="&quot;HEAVY RAIN&quot;,&quot;-THUNDERSTORM&quot;"/>
<bullet bulletName="flash" bulletText="Flooding occurring" bulletGroup="event" parseString="PRODUCING FLOODING"/>
<bullet bulletText="*********** (OPTIONAL) DEBRIS FLOW INFO **********" bulletType="title"/>
<bullet bulletName="burnScar" bulletText="Also Burn areas with debris flow" bulletGroup="addevent" parseString="BURN SCAR "/>
<bullet bulletName="mudSlide" bulletText="Mud Slides" bulletGroup="addevent" parseString="MUD SLIDE "/>
<bullet bulletText="*********** RAIN SO FAR (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS FALLEN"/>
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE FALLEN"/>
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE FALLEN"/>
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES HAS FALLEN "/>
<bullet bulletText="*********** ADDITIONAL INFO ***********" bulletType="title"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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"/>
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
<bullet bulletName="urbanFloodingCTA" bulletText="Urban flooding..." parseString="SMALL CREEKS AND STREAMS...URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralFloodingCTA" bulletText="Rural flooding/small streams..." parseString="SMALL CREEKS AND STREAMS...COUNTRY ROADS...AS WELL AS FARMLAND"/>
<bullet bulletName="ruralUrbanCTA" bulletText="Flooding of rural and urban areas" parseString="HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="particularStreamCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding..." parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="dontDriveCTA" bulletText="Do not drive into water..." parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="turnAroundCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="autoSafetyCTA" bulletText="Automobile safety..." parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperSafetyCTA" bulletText="Camper safety..." parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowSpotsCTA" bulletText="Low water crossings in hilly terrain..." parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="ffwMeansCTA" bulletText="A flood/flash flood warning means..." parseString="A FLASH FLOOD WARNING MEANS THAT"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles..." parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="COR" phen="FF" sig="W">
<bullets>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletName="icrs" bulletText="Also snow melt" parseString=".RS." showString=".RS."/>
<bullet bulletText="*********** SOURCE (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED "/>
<!-- The following bullets will add satellite and gauges as a source. If you would like to use this
in your template uncomment out the next few lines. -->
<bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES"/>
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE AND "/> -->
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Local law enforcement reported" bulletGroup="source" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" parseString="THUNDERSTORMS"/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="&quot;HEAVY RAIN&quot;,&quot;-THUNDERSTORM&quot;"/>
<bullet bulletName="flash" bulletText="Flooding occurring" bulletGroup="event" parseString="PRODUCING FLOODING"/>
<bullet bulletText="*********** (OPTIONAL) DEBRIS FLOW INFO **********" bulletType="title"/>
<bullet bulletName="burnScar" bulletText="Also Burn areas with debris flow" bulletGroup="addevent" parseString="BURN SCAR "/>
<bullet bulletName="mudSlide" bulletText="Mud Slides" bulletGroup="addevent" parseString="MUD SLIDE "/>
<bullet bulletText="*********** RAIN SO FAR (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS FALLEN"/>
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE FALLEN"/>
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE FALLEN"/>
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES HAS FALLEN "/>
<bullet bulletText="*********** ADDITIONAL INFO ***********" bulletType="title"/>
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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"/>
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
<bullet bulletName="urbanFloodingCTA" bulletText="Urban flooding..." parseString="SMALL CREEKS AND STREAMS...URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralFloodingCTA" bulletText="Rural flooding/small streams..." parseString="SMALL CREEKS AND STREAMS...COUNTRY ROADS...AS WELL AS FARMLAND"/>
<bullet bulletName="ruralUrbanCTA" bulletText="Flooding of rural and urban areas" parseString="HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="particularStreamCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding..." parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="dontDriveCTA" bulletText="Do not drive into water..." parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="turnAroundCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="autoSafetyCTA" bulletText="Automobile safety..." parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperSafetyCTA" bulletText="Camper safety..." parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowSpotsCTA" bulletText="Low water crossings in hilly terrain..." parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="ffwMeansCTA" bulletText="A flood/flash flood warning means..." parseString="A FLASH FLOOD WARNING MEANS THAT"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles..." parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
</bulletActionGroups>
<trackEnabled>false</trackEnabled>
<!-- Four variables below have been changed from the County-coded products -->
<!-- areaSource.areaField -->
<!-- areaSource.fipsField -->
<!-- pathcastConfig.areaField and -->
<!-- geospatialConfig.areaSource -->
<!-- Default areaSource object to generate zone based information -->
<areaSource variable="areas">
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<type>HATCHING</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>NAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<!-- <fipsField>STATE</fipsField> -->
<fipsField>STATE_ZONE</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Add in areaSource object to generate county-based headline if desired -->
<areaSource variable="affectedCounties">
<areaSource>County</areaSource>
<type>INTERSECT</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>COUNTYNAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<fipsField>FIPS</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Required, but unused by this template -->
<pathcastConfig>
<withinPolygon>true</withinPolygon>
<distanceThreshold>8.0</distanceThreshold>
<interval>5</interval>
<delta>5</delta>
<maxResults>4</maxResults>
<maxGroup>8</maxGroup>
<pointField>Name</pointField>
<type>AREA</type>
<!-- <areaField>COUNTYNAME</areaField> -->
<areaField>NAME</areaField>
<parentAreaField>STATE</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
</pathcastConfig>
<pointSource variable="cityList">
<pointField>NAME</pointField>
<inclusionPercent>1</inclusionPercent>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>30</maxResults>
<distanceThreshold>200</distanceThreshold>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2,3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
<sortBy>
<sort>warngenlev</sort>
<sort>population</sort>
<sort>distance</sort>
</sortBy>
</pointSource>
<!-- Required, but unused by this template -->
<pointSource variable="otherPoints">
<pointField>NAME</pointField>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>10</maxResults>
<distanceThreshold>200</distanceThreshold>
<sortBy>
<sort>name</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
</pointSource>
<!-- this "include file" tag will grab the Mile Marker XML pointSource tags,
and place into this template -->
<include file="mileMarkers.xml"/>
<geospatialConfig>
<pointSource>WarnGenLoc</pointSource>
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<parentAreaSource>States</parentAreaSource>
<timezoneSource>TIMEZONES</timezoneSource>
<timezoneField>TIME_ZONE</timezoneField>
</geospatialConfig>
<pointSource variable="riverdrainages">
<pointSource>ffmp_basins</pointSource>
<geometryDecimationTolerance>0.064</geometryDecimationTolerance>
<pointField>streamname</pointField>
<filter>
<mapping key="cwa">
<constraint constraintValue="$warngenCWAFilter" constraintType="EQUALS" />
</mapping>
</filter>
<withinPolygon>true</withinPolygon>
</pointSource>
</warngenConfig>

View file

@ -1,347 +0,0 @@
############################################################
## FLASH FLOOD WARNING TEMPLATE FOR COUNTY-BASED PRODUCTS ##
############################################################
## EDITED BY MIKE DANGELO 7-13-2011 ##
## Edited by Phil Kurimski 8-15-2011 for OB11.8 ##
## EDITED BY MIKE DANGELO 9-21-2011 at Alaska TIM ##
## EDITED BY PHIL KURIMSKI 9-23-2011 at Alaska TIM for burn scars and mud slides ##
## EDITED BY PHIL KURIMSKI 2-29-2012
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}
#################################### SET SOME VARIABLES ###################################
#set($hycType = "")
##
#if(${action} == "EXT")
#set($starttime = "000000T0000Z")
#set($extend = true)
#else
#set($starttime = ${dateUtil.format(${start}, ${timeFormat.ymdthmz})})
#set($extend = false)
#end
##
#if(${list.contains(${bullets}, "icrs")})
#set($ic = "RS")
#set($snowMelt = "RAPID SNOW MELT IS ALSO OCCURRING AND WILL ADD TO THE FLOODING.")
#set($hycType = "RAIN AND SNOW MELT IN...")
#else
#set($ic = "ER")
#set($snowMelt = "")
#end
##
${WMOId} ${vtecOffice} 000000 ${BBBId}
FFW${siteId}
${ugcline}
#################################### VTEC LINE ###################################
/${productClass}.${action}.${vtecOffice}.FF.W.${etn}.${starttime}-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#################################### MND HEADER ###################################
BULLETIN - EAS ACTIVATION REQUESTED
#if(${productClass}=="T")
TEST...FLASH FLOOD WARNING...TEST
#else
FLASH FLOOD WARNING
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#############################################################################
## Flash Flood Emergency Headline -- Coming soon to a warning near you! #
#############################################################################
###if(${list.contains(${bullets}, "ffwEmergency")} )
##...FLASH FLOOD EMERGENCY FOR !** LOCATION **!...
##
###end
#headlineext(${officeLoc}, ${backupSite}, ${extend})
#################################
######## FIRST BULLET ###########
#################################
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
FLASH FLOOD WARNING FOR...
#if(${hycType} != "")
<L> ${hycType}</L>
#end
##REMMED OUT FOR ALASKA
###firstBullet(${areas})
##REPLACE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY HEADLINE INSTEAD OF ZONES
###firstBullet(${affectedCounties})
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!
#################################
####### SECOND BULLET ###########
#################################
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone})
################################################
#################################
######## THIRD BULLET ###########
#################################
#set($report = "HEAVY RAIN IS OCCURRING. !** ADD MORE DETAIL HERE **!")
#if(${list.contains(${bullets}, "flash")} )
#set($isExpected = "FLASH FLOODING IS ALREADY OCCURRING.")
#else
#set($isExpected = "FLASH FLOODING IS EXPECTED TO BEGIN SHORTLY.")
#end
#if(${list.contains(${bullets}, "burnScar")} )
#set($burnScar = "EXCESSIVE RAINFALL OVER THE BURN SCAR WILL RESULT IN DEBRIS FLOW MOVING THROUGH THE !** DRAINAGE **!. THE DEBRIS FLOW CAN CONSIST OF ROCK...MUD...VEGETATION AND OTHER LOOSE MATERIALS.")
#set($burnCTA = "PERSONS IN THE VICINITY OF !** DRAINAGE **! SHOULD EVACUATE IMMEDIATELY.")
#set($ctaSelected = "YES")
#elseif(${list.contains(${bullets}, "mudSlide")} )
#set($burnScar = "EXCESSIVE RAINFALL OVER THE WARNING AREA WILL CAUSE MUD SLIDES NEAR STEEP TERRAIN. THE MUD SLIDE CAN CONSIST OF ROCK...MUD...VEGETATION AND OTHER LOOSE MATERIALS.")
#set($burnCTA = "PERSONS IN THE VICINITY OF !** DRAINAGE **! SHOULD EVACUATE IMMEDIATELY.")
#set($ctaSelected = "YES")
#else
#set($burnScar = "")
#set($burnCTA = "")
#end
#set($rainAmount = "")
#if(${list.contains(${bullets}, "rain1")} )
#set($rainAmount = "UP TO ONE INCH OF RAIN HAS ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rain2")} )
#set($rainAmount = "UP TO TWO INCHES OF RAIN HAVE ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rain3")} )
#set($rainAmount = "UP TO THREE INCHES OF RAIN HAVE ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "rainEdit")} )
#set($rainAmount = "!** RAINFALL AMOUNTS **! INCHES OF RAIN HAVE ALREADY FALLEN.")
#end
#if(${list.contains(${bullets}, "doppler")})
#set($report = "DOPPLER RADAR INDICATED HEAVY RAIN. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")})
#set($report = "DOPPLER RADAR INDICATED HEAVY RAIN DUE TO A THUNDERSTORM. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "DOPPLER RADAR INDICATED HEAVY RAIN DUE TO THUNDERSTORMS. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "dopplerGauge")})
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED THAT HEAVY RAIN WAS FALLING OVER THE AREA. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "thunder")})
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED THAT A THUNDERSTORM IS PRODUCING HEAVY RAIN OVER THE AREA. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED THAT A LINE OF THUNDERSTORMS IS PRODUCING HEAVY RAIN OVER THE AREA. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED HEAVY RAIN IN !** LOCATION **! ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "thunder")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED HEAVY RAIN IN !** LOCATION **! DUE TO A THUNDERSTORM. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "flash")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED FLASH FLOODING IN !** LOCATION **!. ${rainAmount}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "TRAINED WEATHER SPOTTERS REPORTED HEAVY RAIN IN !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED HEAVY RAIN OVER !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "thunder")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED HEAVY RAIN DUE TO A THUNDERSTORM OVER !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "flash")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED FLASH FLOODING IN !** LOCATION **!. ${rainAmount}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED HEAVY RAIN IN !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")})
#set($report = "EMERGENCY MANAGEMENT REPORTED HEAVY RAIN OVER !** LOCATION **! ")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "thunder")})
#set($report = "EMERGENCY MANAGEMENT REPORTED HEAVY RAIN DUE TO THUNDERSTORMS OVER !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "flash")})
#set($report = "EMERGENCY MANAGEMENT REPORTED FLASH FLOODING IN !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "EMERGENCY MANAGEMENT REPORTED HEAVY RAIN IN !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "public")})
#set($report = "HEAVY RAIN HAS BEEN REPORTED IN !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "thunder")})
#set($report = "HEAVY RAIN FROM THUNDERSTORMS HAS BEEN REPORTED IN !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "flash")})
#set($report = "FLASH FLOODING HAS BEEN REPORTED IN !** LOCATION **!.")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "plainRain")})
#set($report = "HEAVY RAIN HAS BEEN REPORTED IN !** LOCATION **!. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "satellite")})
#set($report = "SATELLITE ESTIMATES INDICATED HEAVY RAIN. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "satellite")} && ${list.contains(${bullets}, "thunder")})
#set($report = "SATELLITE ESTIMATES INDICATED HEAVY RAIN DUE TO A THUNDERSTORM. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "satellite")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "SATELLITE ESTIMATES INDICATED HEAVY RAIN DUE TO THUNDERSTORMS. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "satelliteGauge")})
#set($report = "SATELLITE ESTIMATES AND AUTOMATED RAIN GAUGES INDICATED THAT HEAVY RAIN WAS FALLING OVER THE AREA. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "satelliteGauge")} && ${list.contains(${bullets}, "thunder")})
#set($report = "SATELLITE ESTIMATES AND AUTOMATED RAIN GAUGES INDICATED THAT A THUNDERSTORM IS PRODUCING HEAVY RAIN OVER THE AREA. ${rainAmount} ${isExpected}")
#end
#if(${list.contains(${bullets}, "satelliteGauge")} && ${list.contains(${bullets}, "thunder")} && ${stormType} == "line")
#set($report = "SATELLITE ESTIMATES AND AUTOMATED RAIN GAUGES INDICATED THAT A LINE OF THUNDERSTORMS IS PRODUCING HEAVY RAIN OVER THE AREA. ${rainAmount} ${isExpected}")
#end
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...${report} ${snowMelt}
#wrapText("${burnScar} 2 2)
##########################################################################
## Flash Flood Emergency per NWS 10-922 Directive goes with third bullet #
##########################################################################
#if(${list.contains(${bullets}, "ffwEmergency")} )
#wrapText("THIS IS A FLASH FLOOD EMERGENCY FOR !** LOCATION **!. 2 2)
#end
#############################################################
######## FOURTH BULLET (OPTIONAL IN FLOOD PRODUCTS) #########
#############################################################
#set($phenomena = "FLASH FLOOD")
#set($floodType = "FLASH FLOODING")
#set($warningType = "WARNING")
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#### THE THIRD ARGUMENT IS A NUMBER SPECIFYING THE NUMBER OF COLUMNS TO OUTPUT THE CITIES LIST IN
#### 0 IS A ... SEPARATED LIST, 1 IS ONE PER LINE, >1 IS A COLUMN FORMAT
#### IF YOU USE SOMETHING OTHER THAN "LOCATIONS IMPACTED INCLUDE" LEAD IN BELOW, MAKE SURE THE
#### ACCOMPANYING XML FILE PARSE STRING IS CHANGED TO MATCH!
#locationsList("SOME LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE" ${floodType} 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
########################################## END OF OPTIONAL FOURTH BULLET ##############################
######################################
###### WHERE ADDITIONAL INFO GOES ####
######################################
#if(${list.contains(${bullets}, "addRainfall")})
ADDITIONAL RAINFALL AMOUNTS OF !** EDIT AMOUNT **! ARE POSSIBLE IN THE WARNED AREA.
#end
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
#################################### END OF ADDITIONAL STUFF ###################################
######################################
####### CALL TO ACTIONS ##############
######################################
##Check to see if we've selected any calls to action.
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
${burnCTA}
#if(${list.contains(${bullets}, "urbanFloodingCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES AS WELL AS OTHER DRAINAGE AREAS AND LOW LYING SPOTS.
#end
#if(${list.contains(${bullets}, "ruralFloodingCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...COUNTRY ROADS...AS WELL AS FARMLAND AS WELL AS OTHER DRAINAGE AREAS AND LOW LYING SPOTS.
#end
#if(${list.contains(${bullets}, "ruralUrbanCTA")})
EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES. ADDITIONALLY...COUNTRY ROADS AND FARMLANDS ALONG THE BANKS OF CREEKS...STREAMS AND OTHER LOW LYING AREAS ARE SUBJECT TO FLOODING.
#end
#if(${list.contains(${bullets}, "particularStreamCTA")})
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
#end
#if(${list.contains(${bullets}, "nighttimeCTA")})
BE ESPECIALLY CAUTIOUS AT NIGHT WHEN IT IS HARDER TO RECOGNIZE THE DANGERS OF FLOODING. IF FLASH FLOODING IS OBSERVED ACT QUICKLY. MOVE UP TO HIGHER GROUND TO ESCAPE FLOOD WATERS. DO NOT STAY IN AREAS SUBJECT TO FLOODING WHEN WATER BEGINS RISING.
#end
#if(${list.contains(${bullets}, "dontDriveCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "turnAroundCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains(${bullets}, "autoSafetyCTA")})
FLOODING IS OCCURRING OR IS IMMINENT. MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES. DO NOT ATTEMPT TO CROSS WATER COVERED BRIDGES...DIPS... OR LOW WATER CROSSINGS. NEVER TRY TO CROSS A FLOWING STREAM...EVEN A SMALL ONE...ON FOOT. TO ESCAPE RISING WATER FIND ANOTHER ROUTE OVER HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "camperSafetyCTA")})
FLOODING IS OCCURRING OR IS IMMINENT. IT IS IMPORTANT TO KNOW WHERE YOU ARE RELATIVE TO STREAMS...RIVERS...OR CREEKS WHICH CAN BECOME KILLERS IN HEAVY RAINS. CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS.
#end
#if(${list.contains(${bullets}, "lowSpotsCTA")})
IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS WHICH ARE POTENTIALLY DANGEROUS IN HEAVY RAIN. DO NOT ATTEMPT TO TRAVEL ACROSS FLOODED ROADS. FIND AN ALTERNATE ROUTE. IT TAKES ONLY A FEW INCHES OF SWIFTLY FLOWING WATER TO CARRY VEHICLES AWAY.
#end
#if(${list.contains(${bullets}, "ffwMeansCTA")})
A FLASH FLOOD WARNING MEANS THAT FLOODING IS IMMINENT OR OCCURRING. IF YOU ARE IN THE WARNING AREA MOVE TO HIGHER GROUND IMMEDIATELY. RESIDENTS LIVING ALONG STREAMS AND CREEKS SHOULD TAKE IMMEDIATE PRECAUTIONS TO PROTECT LIFE AND PROPERTY. DO NOT ATTEMPT TO CROSS SWIFTLY FLOWING WATERS OR WATERS OF UNKNOWN DEPTH BY FOOT OR BY AUTOMOBILE.
#end
#if(${list.contains(${bullets}, "powerFloodCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains(${bullets}, "reportFloodingCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE.
#end
#if(${ctaSelected} == "YES")
&&
#end
#################################### END OF CTA STUFF ###################################
##########################################
########BOTTOM OF THE PRODUCT#############
##########################################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
#parse("forecasterName.vm")

View file

@ -1,370 +0,0 @@
<!-- Flash Flood Warning configuration for ZONES-->
<!-- Modified by Mike Dangelo 07-12-2011 -->
<!-- Modified by Phil Kurimski 08-15-2011 for 11.8 -->
<!-- Modified by Mike Dangelo 09-22-2011 at Alaska TIM -->
<!-- Modified by Phil Kurimski 09-23-2011 for burn scars and mud slides -->
<!-- Modified by Mike Dangelo 01-26-2012 at CRH TIM
Phil Kurimski 2-29-2012
Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
Evan Bookbinder 09-12-2012 DR15179 Added areaSource object to allow for
county-based headlines in zone based products.
Added settings for locations shapefile
Evan Bookbinder 01-07-2013 LockedGroupsOnFollowup tag
Evan Bookbinder 5-5-2013 fixed <type> variable under areaSource objects
-->
<warngenConfig>
<!-- Config distance/speed units -->
<unitDistance>mi</unitDistance>
<unitSpeed>mph</unitSpeed>
<!-- OPTIONAL: Maps to load on template selection. Refer to 'Maps' menu in CAVE.
The various menu items are also the different maps
that can be loaded with each template. -->
<maps>
<map>Forecast Zones</map>
<map>Major Rivers</map>
</maps>
<!-- Followups: VTEC actions of allowable followups when this template is selected
Each followup will become available when the appropriate time range permits.
-->
<followups>
<followup>NEW</followup>
<followup>COR</followup>
<followup>EXT</followup>
</followups>
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
<phensigs>
<phensig>FF.W</phensig>
</phensigs>
<!-- Enables/disables user from selecting the Restart button the GUI -->
<enableRestart>true</enableRestart>
<!-- Enable/disables the system to lock text based on various patterns -->
<autoLockText>true</autoLockText>
<!-- Included watches: If a tornado watch or severe thunderstorm watch is to be
included with the warning product include torWatches and/or svrWatches,
respectively. Please refer to 'includedWatchAreaBuffer' in <areaConfig/>. -->
<includedWatches>
<includedWatch>torWatches</includedWatch>
<includedWatch>svrWatches</includedWatch>
</includedWatches>
<!-- durations: the list of possible durations of the warning -->
<defaultDuration>180</defaultDuration>
<durations>
<duration>30</duration>
<duration>60</duration>
<duration>90</duration>
<duration>120</duration>
<duration>180</duration>
<duration>240</duration>
<duration>360</duration>
<duration>480</duration>
</durations>
<lockedGroupsOnFollowup>ic</lockedGroupsOnFollowup>
<bulletActionGroups>
<bulletActionGroup action="NEW" phen="FF" sig="W">
<bullets>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletName="icrs" bulletText="Also snow melt" parseString=".RS."/>
<bullet bulletText="*********** SOURCE (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="doppler radar indicated" bulletGroup="source" bulletDefault="true" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED "/>
<bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES"/>
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE AND "/>
<bullet bulletName="trainedSpotters" bulletText="trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="local law enforcement reported" bulletGroup="source" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" parseString="THUNDERSTORMS"/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="&quot;HEAVY RAIN&quot;,&quot;-THUNDERSTORM&quot;"/>
<bullet bulletName="flash" bulletText="Flooding occurring" bulletGroup="event" parseString="PRODUCING FLOODING"/>
<bullet bulletText="*********** (OPTIONAL) DEBRIS FLOW INFO **********" bulletType="title"/>
<bullet bulletName="burnScar" bulletText="Also Burn areas with debris flow" bulletGroup="addevent" parseString="BURN SCAR "/>
<bullet bulletName="mudSlide" bulletText="Mud Slides" bulletGroup="addevent" parseString="MUD SLIDE "/>
<bullet bulletText="*********** RAIN SO FAR (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="one inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS FALLEN"/>
<bullet bulletName="rain2" bulletText="two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE FALLEN"/>
<bullet bulletName="rain3" bulletText="three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE FALLEN"/>
<bullet bulletName="rainEdit" bulletText="user defined amount" bulletGroup="rainAmt" parseString="INCHES HAVE FALLEN "/>
<bullet bulletText="*********** ADDITIONAL INFO ***********" bulletType="title"/>
<bullet bulletName="addRainfall" bulletText="additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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="urbanFloodingCTA" bulletText="Urban flooding..." parseString="SMALL CREEKS AND STREAMS...URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralFloodingCTA" bulletText="Rural flooding/small streams..." parseString="SMALL CREEKS AND STREAMS...COUNTRY ROADS...AS WELL AS FARMLAND"/>
<bullet bulletName="ruralUrbanCTA" bulletText="Flooding of rural and urban areas" parseString="HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="particularStreamCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding..." parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="dontDriveCTA" bulletText="Do not drive into water..." parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="turnAroundCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="autoSafetyCTA" bulletText="Automobile safety..." parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperSafetyCTA" bulletText="Camper safety..." parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowSpotsCTA" bulletText="low spots in hilly terrain..." parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="ffwMeansCTA" bulletText="A flash flood warning means..." parseString="A FLASH FLOOD WARNING MEANS THAT"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles..." parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="EXT" phen="FF" sig="W">
<bullets>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletName="icrs" bulletText="Also snow melt" parseString=".RS." showString=".RS."/>
<bullet bulletText="*********** SOURCE (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="doppler radar indicated" bulletGroup="source" bulletDefault="true" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED "/>
<bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES"/>
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE AND "/>
<bullet bulletName="trainedSpotters" bulletText="trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="local law enforcement reported" bulletGroup="source" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" parseString="THUNDERSTORMS"/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="&quot;HEAVY RAIN&quot;,&quot;-THUNDERSTORM&quot;"/>
<bullet bulletName="flash" bulletText="Flooding occurring" bulletGroup="event" parseString="PRODUCING FLOODING"/>
<bullet bulletText="*********** (OPTIONAL) DEBRIS FLOW INFO **********" bulletType="title"/>
<bullet bulletName="burnScar" bulletText="Also Burn areas with debris flow" bulletGroup="addevent" parseString="BURN SCAR "/>
<bullet bulletName="mudSlide" bulletText="Mud Slides" bulletGroup="addevent" parseString="MUD SLIDE "/>
<bullet bulletText="*********** RAIN SO FAR (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="one inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS FALLEN"/>
<bullet bulletName="rain2" bulletText="two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE FALLEN"/>
<bullet bulletName="rain3" bulletText="three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE FALLEN"/>
<bullet bulletName="rainEdit" bulletText="user defined amount" bulletGroup="rainAmt" parseString="INCHES HAVE FALLEN "/>
<bullet bulletText="*********** ADDITIONAL INFO ***********" bulletType="title"/>
<bullet bulletName="addRainfall" bulletText="additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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="urbanFloodingCTA" bulletText="Urban flooding..." parseString="SMALL CREEKS AND STREAMS...URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralFloodingCTA" bulletText="Rural flooding/small streams..." parseString="SMALL CREEKS AND STREAMS...COUNTRY ROADS...AS WELL AS FARMLAND"/>
<bullet bulletName="ruralUrbanCTA" bulletText="Flooding of rural and urban areas" parseString="HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="particularStreamCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding..." parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="dontDriveCTA" bulletText="Do not drive into water..." parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="turnAroundCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="autoSafetyCTA" bulletText="Automobile safety..." parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperSafetyCTA" bulletText="Camper safety..." parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowSpotsCTA" bulletText="low spots in hilly terrain..." parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="ffwMeansCTA" bulletText="A flash flood warning means..." parseString="A FLASH FLOOD WARNING MEANS THAT"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles..." parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="COR" phen="FF" sig="W">
<bullets>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletName="icrs" bulletText="Also snow melt" parseString=".RS." showString=".RS."/>
<bullet bulletText="*********** SOURCE (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="doppler radar indicated" bulletGroup="source" bulletDefault="true" parseString="DOPPLER RADAR"/>
<bullet bulletName="dopplerGauge" bulletText="doppler radar and automated gauges" bulletGroup="source" parseString="AUTOMATED "/>
<bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES"/>
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE AND "/>
<bullet bulletName="trainedSpotters" bulletText="trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="public reported" bulletGroup="source" parseString="THE PUBLIC REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="local law enforcement reported" bulletGroup="source" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="thunder" bulletText="Thunderstorms with heavy rainfall" bulletGroup="event" parseString="THUNDERSTORMS"/>
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString="&quot;HEAVY RAIN&quot;,&quot;-THUNDERSTORM&quot;"/>
<bullet bulletName="flash" bulletText="Flooding occurring" bulletGroup="event" parseString="PRODUCING FLOODING"/>
<bullet bulletText="*********** (OPTIONAL) DEBRIS FLOW INFO **********" bulletType="title"/>
<bullet bulletName="burnScar" bulletText="Also Burn areas with debris flow" bulletGroup="addevent" parseString="BURN SCAR "/>
<bullet bulletName="mudSlide" bulletText="Mud Slides" bulletGroup="addevent" parseString="MUD SLIDE "/>
<bullet bulletText="*********** RAIN SO FAR (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="rain1" bulletText="one inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS FALLEN"/>
<bullet bulletName="rain2" bulletText="two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE FALLEN"/>
<bullet bulletName="rain3" bulletText="three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE FALLEN"/>
<bullet bulletName="rainEdit" bulletText="user defined amount" bulletGroup="rainAmt" parseString="INCHES HAVE FALLEN "/>
<bullet bulletText="*********** ADDITIONAL INFO ***********" bulletType="title"/>
<bullet bulletName="addRainfall" bulletText="additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
<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="urbanFloodingCTA" bulletText="Urban flooding..." parseString="SMALL CREEKS AND STREAMS...URBAN AREAS...HIGHWAYS...STREETS AND UNDERPASSES"/>
<bullet bulletName="ruralFloodingCTA" bulletText="Rural flooding/small streams..." parseString="SMALL CREEKS AND STREAMS...COUNTRY ROADS...AS WELL AS FARMLAND"/>
<bullet bulletName="ruralUrbanCTA" bulletText="Flooding of rural and urban areas" parseString="HIGHWAYS AND UNDERPASSES"/>
<bullet bulletName="particularStreamCTA" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding..." parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="dontDriveCTA" bulletText="Do not drive into water..." parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="turnAroundCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="autoSafetyCTA" bulletText="Automobile safety..." parseString="MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="camperSafetyCTA" bulletText="Camper safety..." parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
<bullet bulletName="lowSpotsCTA" bulletText="low spots in hilly terrain..." parseString="IN HILLY TERRAIN THERE ARE HUNDREDS OF LOW WATER CROSSINGS"/>
<bullet bulletName="ffwMeansCTA" bulletText="A flash flood warning means..." parseString="A FLASH FLOOD WARNING MEANS THAT"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles..." parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
</bullets>
</bulletActionGroup>
</bulletActionGroups>
<trackEnabled>false</trackEnabled>
<!-- Four variables below have been changed from the County-coded products -->
<!-- areaSource.areaField -->
<!-- areaSource.fipsField -->
<!-- pathcast.Config.areaField and -->
<!-- geospatialConfig.areaSource -->
<!-- Default areaSource object to generate zone based information -->
<areaSource variable="areas">
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<type>HATCHING</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>NAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<!-- <fipsField>STATE</fipsField> -->
<fipsField>STATE_ZONE</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Add in areaSource object to generate county-based headline if desired -->
<areaSource variable="affectedCounties">
<areaSource>County</areaSource>
<type>INTERSECT</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>COUNTYNAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<fipsField>FIPS</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Required, but unused by this template -->
<pathcastConfig>
<withinPolygon>true</withinPolygon>
<distanceThreshold>8.0</distanceThreshold>
<interval>5</interval>
<delta>5</delta>
<maxResults>4</maxResults>
<maxGroup>8</maxGroup>
<pointField>Name</pointField>
<type>AREA</type>
<areaField>NAME</areaField>
<!-- <areaField>COUNTYNAME</areaField> -->
<parentAreaField>STATE</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
</pathcastConfig>
<pointSource variable="cityList">
<pointField>NAME</pointField>
<inclusionPercent>1</inclusionPercent>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>30</maxResults>
<distanceThreshold>200</distanceThreshold>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2,3" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
<sortBy>
<sort>warngenlev</sort>
<sort>population</sort>
<sort>distance</sort>
</sortBy>
</pointSource>
<!-- Required, but unused by this template -->
<pointSource variable="otherPoints">
<pointField>NAME</pointField>
<type>AREA</type>
<searchMethod>TRACK</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>50</maxResults>
<distanceThreshold>10</distanceThreshold>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
<sortBy>
<sort>distance</sort>
</sortBy>
</pointSource>
<!-- this "include file" tag will grab the Mile Marker XML pointSource tags,
and place into this template -->
<include file="mileMarkers.xml"/>
<!-- this "include file" tag will grab the Point Marker XML pointSource tags,
and place into this template -->
<!--<include file="pointMarkers.xml"/>
-->
<geospatialConfig>
<pointSource>WarnGenLoc</pointSource>
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<parentAreaSource>States</parentAreaSource>
<timezoneSource>TIMEZONES</timezoneSource>
<timezoneField>TIME_ZONE</timezoneField>
</geospatialConfig>
<pointSource variable="riverdrainages">
<pointSource>ffmp_basins</pointSource>
<geometryDecimationTolerance>0.064</geometryDecimationTolerance>
<pointField>streamname</pointField>
<filter>
<mapping key="cwa">
<constraint constraintValue="$warngenCWAFilter" constraintType="EQUALS" />
</mapping>
</filter>
<withinPolygon>true</withinPolygon>
</pointSource>
</warngenConfig>

View file

@ -1,815 +0,0 @@
#####################################################
## DAM BREAK FFW FOLLOW-UP ##
## CREATED BY PHIL KURIMSKI - WFO DTX ##
## VERSION AWIPS II 1.0 -- APR 14 2011 OB11.4 ##
## -- JUL 14 2011 OB11.7 ##
## -- AUG 18 2011 OB11.0.8-4 ##
## Evan Bookbinder -- SEP 16 2011 OB11.0.8-8 ##
## Phil Kurimski -- SEP 23 2011 OB11.0.8-8 ##
## Mike Rega -- MAY 03 2012 DR 14885 MND ##
#####################################################
##
#set($headline = "")
## set reportType2 to a default value in case nothing is selected for site specific
#set($reportType2 = "THE FAILURE OF")
#####################################################################
## set variables to be used in site specific dam break selections
#####################################################################
#set($addInfo = "")
#set($scenario = "")
#set($ruleofthumb = "")
#set($sitespecCTA = "")
#set($addInfo = "")
#set($volcanoCTA = "")
#if(${list.contains(${bullets}, "levee")})
#set($ic = "DM")
#set($hycType = "A LEVEE FAILURE")
#set($headline = "FOR A LEVEE FAILURE ")
#set($reportType1 = "A LEVEE ON THE !** **! RIVER AT !** **! FAILED CAUSING FLASH FLOODING OF IMMEDIATELY SURROUNDING AREAS")
#elseif(${list.contains(${bullets}, "floodgate")})
#set($ic = "DR")
#set($hycType = "A DAM FLOODGATE RELEASE")
#set($headline = "FOR A DAM FLOODGATE RELEASE ")
#set($reportType1 = "THE FLOODGATES ON THE !** **! DAM WERE OPENED CAUSING FLASH FLOODING DOWNSTREAM ON THE !** **! RIVER")
#elseif(${list.contains(${bullets}, "glacier")})
#set($ic = "GO")
#set($hycType = "A GLACIAL-DAMMED LAKE OUTBURST FLOODING")
#set($headline = "FOR A GLACIAL-DAMMED LAKE OUTBURST FLOODING ")
#set($reportType1 = "A GLACIER AT !** **! HAS MELTED...RELEASING LARGE QUANTITIES OF IMPOUNDED WATER AND CAUSING FLASH FLOODING !** **!")
#elseif(${list.contains(${bullets}, "icejam")})
#set($ic = "IJ")
#set($hycType = "ICE JAM FLOODING")
#set($headline = "FOR ICE JAM FLOODING ")
#set($reportType1 = "AN ICE JAM ON THE !** **! RIVER AT !** **! BROKE CAUSING FLASH FLOODING DOWNSTREAM")
#elseif(${list.contains(${bullets}, "rain")})
#set($ic = "RS")
#set($hycType = "EXTREMELY RAPID RAIN SNOW MELT")
#set($headline = "FOR EXTREMELY RAPID RAIN SNOW MELT ")
#set($reportType1 = "RAIN FALLING ON EXISTING SNOWPACK WAS GENERATING FLASH FLOODING FROM EXCESSIVE RUNOFF")
#elseif(${list.contains(${bullets}, "volcano")})
#set($ic = "SM")
#set($hycType = "VOLCANIC SNOW MELT")
#set($headline = "FOR VOLCANIC SNOW MELT ")
#set($reportType1 = "ACTIVITY OF THE !** **! VOLCANO WAS CAUSING RAPID SNOWMELT ON ITS SLOPES AND GENERATING FLASH FLOODING")
#elseif(${list.contains(${bullets}, "volcanoLahar")})
#set($ic = "SM")
#set($hycType = "VOLCANIC SNOW MELT")
#set($headline = "FOR VOLCANIC SNOW MELT ")
#set($ctaSelected = "YES")
#set($reportType1 = "ACTIVITY OF THE !** **! VOLCANO WAS CAUSING RAPID MELTING OF SNOW AND ICE ON THE MOUNTAIN. THIS WILL RESULT IN A TORRENT OF MUD...ASH...ROCK AND HOT WATER TO FLOW DOWN THE MOUNTAIN THROUGH !** DRAINAGE **! AND GENERATE FLASH FLOODING")
#set($volcanoCTA = "PERSONS IN THE VICINITY OF !** DRAINAGE **! SHOULD HEAD TO HIGHER GROUND IMMEDIATELY.")
#elseif(${list.contains(${bullets}, "dam")})
#set($ic = "DM")
#set($hycType = "A DAM FAILURE")
#set($headline = "FOR A DAM FAILURE ")
## The next line should be the headline but will not currently work
##set($headline = "FOR THE FAILURE OF !**DAM NAME**! ON !**STREAM NAME**! ")
#set($reportType1 = "THE !** **! DAM FAILED CAUSING FLASH FLOODING DOWNSTREAM ON THE !** **! RIVER")
#elseif(${list.contains(${bullets}, "siteimminent")})
#set($ic = "DM")
#set($hycType = "A DAM BREAK")
#set($headline = "FOR A DAM BREAK ")
## The next line should be the headline but will not currently work
##set($headline = "FOR THE IMMINENT FAILURE OF !**DAM NAME**! ON !**STREAM NAME**! ")
#set($reportType1 = "THE IMMINENT FAILURE OF !** **! DAM")
#set($reportType2 = "THE IMMINENT FAILURE OF")
#elseif(${list.contains(${bullets}, "sitefailed")})
#set($ic = "DM")
#set($hycType = "A DAM BREAK")
#set($headline = "FOR A DAM BREAK ")
## The next line should be the headline but will not currently work
##set($headline = "FOR THE FAILURE OF !**DAM NAME**! ON !**STREAM NAME**! ")
#set($reportType1 = "THE FAILURE OF !** **! DAM")
#set($reportType2 = "THE FAILURE OF")
#else
#set($ic = "ER")
#set($hycType = "EXCESSIVE RAIN")
#set($reportType1 = "EXCESSIVE RAIN CAUSING FLASH FLOODING WAS OCCURING OVER THE WARNED AREA")
#end
#set($endwarning = "THE WATER IS RECEDING...AND IS NO LONGER EXPECTED TO POSE A SIGNIFICANT THREAT. PLEASE CONTINUE TO HEED ALL ROAD CLOSURES.")
#if(${list.contains(${bullets}, "warnend1")})
#set($endwarning = "THE WATER IS RECEDING...AND IS NO LONGER EXPECTED TO POSE A SIGNIFICANT THREAT. PLEASE CONTINUE TO HEED ALL ROAD CLOSURES.")
#end
#if(${list.contains(${bullets}, "warnend2")})
#set($endwarning = "FLOODING ON THE !** **! RIVER HAS RECEDED AND IS NO LONGER EXPECTED TO POSE A SIGNIFICANT THREAT. PLEASE CONTINUE TO HEED ALL ROAD CLOSURES.")
#end
#if(${floodic})
#set($ic = ${floodic})
#end
#########################################################################
## Parse command to include a damInfo.vm file with site specific dam
## information. Sites can include this information in a separate file or
## include in the template per the coding below.
#########################################################################
##parse ("damInfo.vm")
#*
#########################################################################
## The next section is for site specific dams. Each site should take the
## example below and customize it for their dams with the information
## from the LLL-damInfo.txt file in AWIPS 1. If you have any questions
## please contact Phil Kurimski - WFO DTX
#########################################################################
#if(${list.contains(${bullets}, "BigRockDam")})
#set($riverName = "PHIL RIVER")
#set($damName = "BIG ROCK DAM")
#set($cityInfo = "EVAN...LOCATED ABOUT 3 MILES")
#end
#if(${list.contains(${bullets}, "BigRockhighfast")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT EVAN COULD EXCEED 18 FEET IN 16 MINUTES.")
#end
#if(${list.contains(${bullets}, "BigRockhighnormal")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT EVAN COULD EXCEED 23 FEET IN 31 MINUTES.")
#end
#if(${list.contains(${bullets}, "BigRockmediumfast")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT EVAN COULD EXCEED 14 FEET IN 19 MINUTES.")
#end
#if(${list.contains(${bullets}, "BigRockmediumnormal")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT EVAN COULD EXCEED 17 FEET IN 32 MINUTES.")
#end
#if(${list.contains(${bullets}, "BigRockruleofthumb")})
#set($ruleofthumb = "FLOOD WAVE ESTIMATE BASED ON THE DAM IN IDAHO: FLOOD INITIALLY HALF OF ORIGINAL HEIGHT BEHIND DAM AND 3-4 MPH; 5 MILES IN 1/2 HOURS; 10 MILES IN 1 HOUR; AND 20 MILES IN 9 HOURS.")
#end
#if(${list.contains(${bullets}, "BranchedOakDam")})
#set($riverName = "KELLS RIVER")
#set($damName = "BRANCHED OAK DAM")
#set($cityInfo = "DANGELO...LOCATED ABOUT 6 MILES")
#end
#if(${list.contains(${bullets}, "BranchedOakhighfast")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT DANGELO COULD EXCEED 19 FEET IN 32 MINUTES.")
#end
#if(${list.contains(${bullets}, "BranchedOakhighnormal")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT DANGELO COULD EXCEED 26 FEET IN 56 MINUTES.")
#end
#if(${list.contains(${bullets}, "BranchedOakmediumfast")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT DANGELO COULD EXCEED 14 FEET IN 33 MINUTES.")
#end
#if(${list.contains(${bullets}, "BranchedOakmediumnormal")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT DANGELO COULD EXCEED 20 FEET IN 60 MINUTES.")
#end
#if(${list.contains(${bullets}, "BranchedOakruleofthumb")})
#set($ruleofthumb = "FLOOD WAVE ESTIMATE BASED ON THE DAM IN IDAHO: FLOOD INITIALLY HALF OF ORIGINAL HEIGHT BEHIND DAM AND 3-4 MPH; 5 MILES IN 1/2 HOURS; 10 MILES IN 1 HOUR; AND 20 MILES IN 9 HOURS.")
#end
#######################################################################
## Look for site specific selections to override the 4th bullet and
## to set up the headlines and additional info used in the product.
## This loop assumes you end each site specific selection with
## the word "Dam". If you end with a different word you will need
## to modify the loop below.
########################################################################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("Dam")})
#set($ctaSelected = "YES")
#set($sitespecSelected = "YES")
#set($hycType = "THE ${riverName} BELOW ${damName}")
#set($headline = "FOR ${reportType2} ${damName} ON THE ${riverName} ")
#set($reportType1 = "${reportType2} ${damName} ON THE ${riverName}")
#set($addInfo = "THE NEAREST DOWNSTREAM TOWN IS ${cityInfo} FROM THE DAM.")
#set($sitespecCTA = "IF YOU ARE IN LOW LYING AREAS BELOW THE ${damName} YOU SHOULD MOVE TO HIGHER GROUND IMMEDIATELY.")
#end
#end
#######################################################################
## End of Site Specific Dam Information
#######################################################################
*#
####################################
## DAM BREAK FFW FOLLOW-UP HEADER ##
####################################
#if(${action}=="COR" && ${cancelareas})
#set($CORCAN = "true")
#else
#set($CORCAN = "false")
#end
#if(${action}!="CANCON" && ${CORCAN}!="true")
${WMOId} ${vtecOffice} 000000 ${BBBId}
FFS${siteId}
#if(${productClass}=="T")
TEST...FLASH FLOOD STATEMENT...TEST
#else
FLASH FLOOD STATEMENT
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
${ugcline}
/${productClass}.${action}.${vtecOffice}.FF.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.${floodseverity}.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${areas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#end
##########################
## DAM BREAK FFW CANCEL ##
##########################
#if(${action}=="CAN")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE FLASH FLOOD WARNING ${headline}HAS BEEN CANCELLED FOR ##
###zoneHeadlineLocList(${areas} true true true false)
##REPLACE THE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY VS. ZONE OUTPUT
#headlineLocList(${affectedCounties} true true true false)
...##
########### END NEW HEADLINE CODE ####################
## Explanation
${endwarning}
#end
#######################
## DAM BREAK FFW CON ##
#######################
#if(${action}=="CON" || (${action}=="COR" && ${CORCAN}=="false"))
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...A FLASH FLOOD WARNING ${headline}REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
###zoneHeadlineLocList(${areas} true true true false)
##REPLACE THE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY VS. ZONE OUTPUT
#headlineLocList(${affectedCounties} true true true false)
...##
########### END NEW HEADLINE CODE ####################
###############################################################################
## Flash Flood Emergency per NWS 10-922 Directive goes after initial headline #
###############################################################################
#if(${list.contains(${bullets}, "ffwEmergency")})
...THIS IS A FLASH FLOOD EMERGENCY FOR !**ENTER LOCATION**!...
#end
#####################################################
## Changed report to match selections in template
#####################################################
#set($report = "${reportType1}")
#if(${list.contains(${bullets}, "county")})
#set($report = "COUNTY DISPATCH REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "corps")})
#set($report = "CORPS OF ENGINEERS REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "damop")})
#set($report = "DAM OPERATORS REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "bureau")})
#set($report = "BUREAU OF RECLAMATION REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "public")})
#set($report = "THE PUBLIC REPORTED ${reportType1}")
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone}) ${report}.
#set($phenomena = "FLASH FLOOD")
#set($warningType = "WARNING")
##########################################################################
## Optional 4th bullet...comment out if needed.
##########################################################################
## This first if loop will override the locations impacted statement
## with the site specific information in the 4th bullet.
##########################################################################
#if(${sitespecSelected} == "YES")
${addInfo}
${scenario}
${ruleofthumb}
##########################################################################
## Continue with the regular 4th bullet information
##########################################################################
#elseif(${list.contains(${bullets}, "pathcast")})
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#pathCast("THE FLOOD WILL BE NEAR..." "THIS FLOODING" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
#elseif(${list.contains(${bullets}, "listofcities")})
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#### THE THIRD ARGUMENT IS A NUMBER SPECIFYING THE NUMBER OF COLUMNS TO OUTPUT THE CITIES LIST IN
#### 0 IS A ... SEPARATED LIST, 1 IS ONE PER LINE, >1 IS A COLUMN FORMAT
#### IF YOU USE SOMETHING OTHER THAN "LOCATIONS IMPACTED INCLUDE" LEAD IN BELOW, MAKE SURE THE
#### ACCOMPANYING XML FILE PARSE STRING IS CHANGED TO MATCH!
#locationsList("LOCATIONS IMPACTED INCLUDE..." "THIS FLOODING WILL AFFECT MAINLY RURAL AREAS OF" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
#end
############################ End of Optional 4th Bullet ###########################
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
#####################
## CALL TO ACTIONS ##
#####################
#######################################################################
## Check to see if we've selected any calls to action. In our .xml file
## we ended each CTA bullet ID with "CTA" for this reason as a 'trip'
#######################################################################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
##
${sitespecCTA}
${volcanoCTA}
#if(${list.contains(${bullets}, "floodMovingCTA")})
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
#end
#if(${list.contains(${bullets}, "taddCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains(${bullets}, "nighttimeCTA")})
BE ESPECIALLY CAUTIOUS AT NIGHT WHEN IT IS HARDER TO RECOGNIZE THE DANGERS OF FLOODING. IF FLOODING IS OBSERVED ACT QUICKLY. MOVE UP TO HIGHER GROUND TO ESCAPE FLOOD WATERS. DO NOT STAY IN AREAS SUBJECT TO FLOODING WHEN WATER BEGINS RISING.
#end
#if(${list.contains(${bullets}, "vehicleCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "warningMeansCTA")})
A FLASH FLOOD WARNING MEANS FLASH FLOODING IS OCCURRING OR IS IMMINENT. MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES. DO NOT ATTEMPT TO CROSS WATER COVERED BRIDGES...DIPS...OR LOW WATER CROSSINGS. NEVER TRY TO CROSS A FLOWING STREAM...EVEN A SMALL ONE...ON FOOT. TO ESCAPE RISING WATER MOVE UP TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "powerFloodCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains(${bullets}, "reportCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE FORECAST OFFICE.
#end
#if(${ctaSelected} == "YES")
&&
#end
#end
###########################
## DAM BREAK FFW CAN/CON ##
###########################
#if(${action}=="CANCON")
${WMOId} ${vtecOffice} 000000 ${BBBId}
FFS${siteId}
#if(${productClass}=="T")
TEST...FLASH FLOOD STATEMENT...TEST
#else
FLASH FLOOD STATEMENT
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
${ugclinecan}
/${productClass}.CAN.${vtecOffice}.FF.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.${floodseverity}.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${cancelareas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE FLASH FLOOD WARNING ${headline}HAS BEEN CANCELLED FOR ##
###zoneHeadlineLocList(${cancelareas} true true true false)
##REPLACE THE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY VS. ZONE OUTPUT
#headlineLocList(${cancelaffectedCounties} true true true false)
...##
########### END NEW HEADLINE CODE ####################
## Explanation
${endwarning}
#printcoords(${areaPoly}, ${list})
$$
${ugcline}
/${productClass}.CON.${vtecOffice}.FF.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.${floodseverity}.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${areas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...A FLASH FLOOD WARNING ${headline}REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
###zoneHeadlineLocList(${areas} true true true false)
##REPLACE THE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY VS. ZONE OUTPUT
#headlineLocList(${affectedCounties} true true true false)
...##
########### END NEW HEADLINE CODE ####################
###############################################################################
## Flash Flood Emergency per NWS 10-922 Directive goes after initial headline #
###############################################################################
#if(${list.contains(${bullets}, "ffwEmergency")})
...THIS IS A FLASH FLOOD EMERGENCY FOR !**ENTER LOCATION**!...
#end
#####################################################
## Changed report to match selections in template
#####################################################
#set($report = "${reportType1}")
#if(${list.contains(${bullets}, "county")})
#set($report = "COUNTY DISPATCH REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "corps")})
#set($report = "CORPS OF ENGINEERS REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "damop")})
#set($report = "DAM OPERATORS REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "bureau")})
#set($report = "BUREAU OF RECLAMATION REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "public")})
#set($report = "THE PUBLIC REPORTED ${reportType1}")
#end
## Storm current location description
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone}) ${report}.
#set($phenomena = "FLASH FLOOD")
#set($warningType = "WARNING")
##########################################################################
## Optional 4th bullet...comment out if needed.
##########################################################################
## This first if loop will override the locations impacted statement
## with the site specific information in the 4th bullet.
##########################################################################
#if(${sitespecSelected} == "YES")
${addInfo}
${scenario}
${ruleofthumb}
##########################################################################
## Continue with the regular 4th bullet information
##########################################################################
#elseif(${list.contains(${bullets}, "pathcast")})
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#pathCast("THE FLOOD WILL BE NEAR..." "THIS FLOODING" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat})
#elseif(${list.contains(${bullets}, "listofcities")})
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#### THE THIRD ARGUMENT IS A NUMBER SPECIFYING THE NUMBER OF COLUMNS TO OUTPUT THE CITIES LIST IN
#### 0 IS A ... SEPARATED LIST, 1 IS ONE PER LINE, >1 IS A COLUMN FORMAT
#### IF YOU USE SOMETHING OTHER THAN "LOCATIONS IMPACTED INCLUDE" LEAD IN BELOW, MAKE SURE THE
#### ACCOMPANYING XML FILE PARSE STRING IS CHANGED TO MATCH!
#locationsList("LOCATIONS IMPACTED INCLUDE..." "THIS FLOODING" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat})
#end
############################ End of Optional 4th Bullet ###########################
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
#if(${list.contains(${bullets}, "floodMoving")})
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
#end
#####################
## CALL TO ACTIONS ##
#####################
#######################################################################
## Check to see if we've selected any calls to action. In our .xml file
## we ended each CTA bullet ID with "CTA" for this reason as a 'trip'
#######################################################################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
##
${sitespecCTA}
${volcanoCTA}
#if(${list.contains(${bullets}, "taddCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains(${bullets}, "nighttimeCTA")})
BE ESPECIALLY CAUTIOUS AT NIGHT WHEN IT IS HARDER TO RECOGNIZE THE DANGERS OF FLOODING. IF FLOODING IS OBSERVED ACT QUICKLY. MOVE UP TO HIGHER GROUND TO ESCAPE FLOOD WATERS. DO NOT STAY IN AREAS SUBJECT TO FLOODING WHEN WATER BEGINS RISING.
#end
#if(${list.contains(${bullets}, "vehicleCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "warningMeansCTA")})
A FLASH FLOOD WARNING MEANS FLASH FLOODING IS OCCURRING OR IS IMMINENT. MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES. DO NOT ATTEMPT TO CROSS WATER COVERED BRIDGES...DIPS...OR LOW WATER CROSSINGS. NEVER TRY TO CROSS A FLOWING STREAM...EVEN A SMALL ONE...ON FOOT. TO ESCAPE RISING WATER MOVE UP TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "powerFloodCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains(${bullets}, "reportCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE FORECAST OFFICE.
#end
#if(${ctaSelected} == "YES")
&&
#end
#elseif(${CORCAN}=="true")
${WMOId} ${vtecOffice} 000000 ${BBBId}
FFS${siteId}
#if(${productClass}=="T")
TEST...FLASH FLOOD STATEMENT...TEST
#else
FLASH FLOOD STATEMENT
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
${ugclinecan}
/${productClass}.COR.${vtecOffice}.FF.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.${floodseverity}.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${cancelareas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE FLASH FLOOD WARNING ${headline}HAS BEEN CANCELLED FOR ##
###zoneHeadlineLocList(${cancelareas} true true true false)
##REPLACE THE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY VS. ZONE OUTPUT
#headlineLocList(${cancelaffectedCounties} true true true false)
...##
########### END NEW HEADLINE CODE ####################
## Explanation
${endwarning}
#printcoords(${areaPoly}, ${list})
$$
${ugcline}
/${productClass}.COR.${vtecOffice}.FF.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.${floodseverity}.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#set($zoneList = "")
#foreach (${area} in ${areas})
#set($zoneList = "${zoneList}${area.name}-")
#end
${zoneList}
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...A FLASH FLOOD WARNING ${headline}REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
###zoneHeadlineLocList(${areas} true true true false)
##REPLACE THE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY VS. ZONE OUTPUT
#headlineLocList(${affectedCounties} true true true false)
...##
########### END NEW HEADLINE CODE ####################
###############################################################################
## Flash Flood Emergency per NWS 10-922 Directive goes after initial headline #
###############################################################################
#if(${list.contains(${bullets}, "ffwEmergency")})
...THIS IS A FLASH FLOOD EMERGENCY FOR !**ENTER LOCATION**!...
#end
#####################################################
## Changed report to match selections in template
#####################################################
#set($report = "${reportType1}")
#if(${list.contains(${bullets}, "county")})
#set($report = "COUNTY DISPATCH REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "corps")})
#set($report = "CORPS OF ENGINEERS REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "damop")})
#set($report = "DAM OPERATORS REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "bureau")})
#set($report = "BUREAU OF RECLAMATION REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "public")})
#set($report = "THE PUBLIC REPORTED ${reportType1}")
#end
## Storm current location description
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone}) ${report}.
#set($phenomena = "FLASH FLOOD")
#set($warningType = "WARNING")
##########################################################################
## Optional 4th bullet...comment out if needed.
##########################################################################
## This first if loop will override the locations impacted statement
## with the site specific information in the 4th bullet.
##########################################################################
#if(${sitespecSelected} == "YES")
${addInfo}
${scenario}
${ruleofthumb}
##########################################################################
## Continue with the regular 4th bullet information
##########################################################################
#elseif(${list.contains(${bullets}, "pathcast")})
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#pathCast("THE FLOOD WILL BE NEAR..." "THIS FLOODING" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat})
#elseif(${list.contains(${bullets}, "listofcities")})
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#### THE THIRD ARGUMENT IS A NUMBER SPECIFYING THE NUMBER OF COLUMNS TO OUTPUT THE CITIES LIST IN
#### 0 IS A ... SEPARATED LIST, 1 IS ONE PER LINE, >1 IS A COLUMN FORMAT
#### IF YOU USE SOMETHING OTHER THAN "LOCATIONS IMPACTED INCLUDE" LEAD IN BELOW, MAKE SURE THE
#### ACCOMPANYING XML FILE PARSE STRING IS CHANGED TO MATCH!
#locationsList("LOCATIONS IMPACTED INCLUDE..." "THIS FLOODING" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat})
#end
############################ End of Optional 4th Bullet ###########################
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
#if(${list.contains(${bullets}, "floodMoving")})
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
#end
#####################
## CALL TO ACTIONS ##
#####################
#######################################################################
## Check to see if we've selected any calls to action. In our .xml file
## we ended each CTA bullet ID with "CTA" for this reason as a 'trip'
#######################################################################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
##
${sitespecCTA}
${volcanoCTA}
#if(${list.contains(${bullets}, "taddCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains(${bullets}, "nighttimeCTA")})
BE ESPECIALLY CAUTIOUS AT NIGHT WHEN IT IS HARDER TO RECOGNIZE THE DANGERS OF FLOODING. IF FLOODING IS OBSERVED ACT QUICKLY. MOVE UP TO HIGHER GROUND TO ESCAPE FLOOD WATERS. DO NOT STAY IN AREAS SUBJECT TO FLOODING WHEN WATER BEGINS RISING.
#end
#if(${list.contains(${bullets}, "vehicleCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "warningMeansCTA")})
A FLASH FLOOD WARNING MEANS FLASH FLOODING IS OCCURRING OR IS IMMINENT. MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES. DO NOT ATTEMPT TO CROSS WATER COVERED BRIDGES...DIPS...OR LOW WATER CROSSINGS. NEVER TRY TO CROSS A FLOWING STREAM...EVEN A SMALL ONE...ON FOOT. TO ESCAPE RISING WATER MOVE UP TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "powerFloodCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains(${bullets}, "reportCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE FORECAST OFFICE.
#end
#if(${ctaSelected} == "YES")
&&
#end
#end
#######################
## DAM BREAK FFW EXP ##
#######################
#if(${action}=="EXP")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE FLASH FLOOD WARNING ${headline}##
#if(${now.compareTo(${expire})} > -1)
EXPIRED AT ${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${localtimezone})} FOR ##
#else
WILL EXPIRE AT ${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${localtimezone})} FOR ##
#end
###zoneHeadlineLocList(${areas} true true true false)
##REPLACE THE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY VS. ZONE OUTPUT
#headlineLocList(${affectedCounties} true true true false)
...##
########### END NEW HEADLINE CODE ####################
## Explaination
${endwarning}
#end
##########################
## END OF DAM BREAK FFW ##
##########################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
#parse("forecasterName.vm")

View file

@ -1,467 +0,0 @@
<!-- Dam Break Follow-up Statement (FFS) configuration -->
<!-- Customized by Phil Kurimski WFO DTX 07-14-2011
Modified Evan Bookbinder 09-16-2011 OB11.0.8-8
Modified Phil Kurimski 09-23-2011 OB 11.0.8-8
Modified Phil Kurimski 01-26-2012 OB 12.1.1-1
Modified Phil Kurimski 02-29-2012 OB 12.2.1-3
Modified Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
Modified Phil Kurimski 04-27-2012
Evan Bookbinder 09-10-2012 DR15179 Added areaSource object to allow for
county-based headlines in zone based products.
Added settings for locations shapefile
Added new areaSource object
Evan Bookbinder 5-5-2013 fixed <type> variable under areaSource objects
-->
<warngenConfig>
<!-- Config distance/speed units -->
<unitDistance>mi</unitDistance>
<unitSpeed>mph</unitSpeed>
<!-- Maps to load on template selection. Refer to 'Maps' menu in CAVE.
The various menu items are also the different maps
that can be loaded with each template. -->
<maps>
<map>Forecast Zones</map>
<!-- <map>County Warning Areas</map> -->
<!-- <map>FFMP Small Stream Basin Links</map> -->
<!-- <map>Major Rivers</map> -->
</maps>
<!-- Followups: VTEC actions of allowable followups when this template is selected
Each followup will become available when the appropriate time range permits.
-->
<followups>
<followup>COR</followup>
<followup>CON</followup>
<followup>CAN</followup>
<followup>EXP</followup>
</followups>
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
<phensigs>
<phensig>FF.W</phensig>
</phensigs>
<!-- Enables/disables user from selecting the Restart button the GUI -->
<enableRestart>false</enableRestart>
<!-- Enables/disables the 'Dam Break Threat Area' button -->
<enableDamBreakThreat>true</enableDamBreakThreat>
<!-- Enable/disables the system to lock text based on various patterns -->
<autoLockText>true</autoLockText>
<!-- durations: the list of possible durations of the warning -->
<!-- THIS REALLY SERVES NO PURPOSE BUT WILL CRASH WARNGEN IF REMVOED -->
<defaultDuration>30</defaultDuration>
<durations>
<duration>30</duration>
</durations>
<!-- Customized several sections in bullet section including:
Added Flash Flood Emergency Headline
Changed the CTA Bullet names for easier parsing in the vm file
Added the Primary Cause to CAN and EXP sections for correct headlines -->
<lockedGroupsOnFollowup>dam,ic</lockedGroupsOnFollowup>
<bulletActionGroups>
<bulletActionGroup>
<bullets>
<bullet bulletText="*********** SELECT A FOLLOWUP **********" bulletType="title"/>
</bullets>
</bulletActionGroup>
<bulletActionGroup action="CAN" phen="FF" sig="W">
<bullets>
<bullet bulletText="*********** CAN SELECTED **********" bulletType="title"/>
<bullet bulletText="******** END OF WARNING STATEMENTS *******" bulletType="title"/>
<bullet bulletName="warnend1" bulletText="Generic Statement" bulletGroup="wEnd"/>
<bullet bulletName="warnend2" bulletText="River Flooding" bulletGroup="wEnd"/>
<bullet bulletText="" bulletType="title"/>
<bullet bulletText="******** PRIMARY CAUSE *******" bulletType="title"/>
<bullet bulletName="dam" bulletText="Dam failure - generic" bulletGroup="damic" parseString="A DAM FAILURE" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="levee" bulletText="Levee failure" bulletGroup="ic" parseString="A LEVEE FAILURE" showString="LEVEE FAILURE"/>
<bullet bulletName="floodgate" bulletText="Floodgate opening" bulletGroup="ic" parseString="A DAM FLOODGATE RELEASE" showString="A DAM FLOODGATE RELEASE"/>
<bullet bulletName="glacier" bulletText="Glacial-dammed lake outburst" bulletGroup="ic" parseString=".GO." showString=".GO."/>
<bullet bulletName="icejam" bulletText="Ice jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<bullet bulletName="rain" bulletText="Rapid rain induced snow melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="volcano" bulletText="Volcano induced snow melt" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;"/>
<bullet bulletName="volcanoLahar" bulletText="Volcano induced lahar/debris flow" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;"/>
<bullet bulletName="siteimminent" bulletText="Dam break - site specific (pick below) - imminent failure" bulletGroup="damic" parseString="THE IMMINENT FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="sitefailed" bulletText="Dam break - site specific (pick below) - failure has occurred" bulletGroup="damic" parseString="THE FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletText="" bulletType="title"/>
<!-- The following are examples on how to include site specific dams in your template
You can choose to do this by editing the template and listing each dam in the
template or listing the dams in a separate file and using the include command -->
<!-- The bullet names may need to be edited once AWIPS 2 is fixed to include damInfoBullets coding. -->
<!-- Note that Dam Names NEED to be in the CAN section to produce correct headline wording in the vm file -->
<bullet bulletText="****** DAM NAME ******" bulletType="title" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
</bullets>
<!-- The following are examples on how to include site specific dams in your template
You can choose to do this by editing the template and listing each dam in the
template or listing the dams in a separate file and using the include command -->
<!--include file="damInfoBullet.xml"/> -->
<!-- <damInfoBullets>
<damInfoBullet bulletGroup="dam" bulletText="Big Rock Dam (Fairfield County)" bulletName="BigRockDam" parseString="BIG ROCK" coords="LAT...LON 4109 7338 4116 7311 4116 7320"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BigRockhighfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BigRockhighnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BigRockmediumfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BigRockmediumnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BigRockruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
<damInfoBullet bulletGroup="dam" bulletText="Branched Oak Dam (Westchester County)" bulletName="BranchedOakDam" parseString="BRANCHED OAK" coords="LAT...LON 4106 7373 4097 7366 4090 7376 4102 7382"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BranchedOakhighfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BranchedOakhighnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BranchedOakmediumfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BranchedOakmediumnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BranchedOakruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
</damInfoBullets> -->
</bulletActionGroup>
<bulletActionGroup action="EXP" phen="FF" sig="W">
<bullets>
<bullet bulletText="*********** EXP SELECTED **********" bulletType="title"/>
<bullet bulletText="******** END OF WARNING STATEMENTS *******" bulletType="title"/>
<bullet bulletName="warnend1" bulletText="Generic Statement" bulletGroup="wEnd"/>
<bullet bulletName="warnend2" bulletText="River Flooding" bulletGroup="wEnd"/>
<bullet bulletText="" bulletType="title"/>
<bullet bulletText="******** PRIMARY CAUSE (choose 1) *******" bulletType="title"/>
<bullet bulletName="dam" bulletText="Dam failure - generic" bulletGroup="damic" parseString="A DAM FAILURE" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="levee" bulletText="Levee failure" bulletGroup="ic" parseString="A LEVEE FAILURE" showString="LEVEE FAILURE"/>
<bullet bulletName="floodgate" bulletText="Floodgate opening" bulletGroup="ic" parseString="A DAM FLOODGATE RELEASE" showString="A DAM FLOODGATE RELEASE"/>
<bullet bulletName="glacier" bulletText="Glacial-dammed lake outburst" bulletGroup="ic" parseString=".GO." showString=".GO."/>
<bullet bulletName="icejam" bulletText="Ice jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<bullet bulletName="rain" bulletText="Rapid rain induced snow melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="volcano" bulletText="Volcano induced snow melt" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;"/>
<bullet bulletName="volcanoLahar" bulletText="Volcano induced lahar/debris flow" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;"/>
<bullet bulletName="siteimminent" bulletText="Dam break - site specific (pick below) - imminent failure" bulletGroup="damic" parseString="THE IMMINENT FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="sitefailed" bulletText="Dam break - site specific (pick below) - failure has occurred" bulletGroup="damic" parseString="THE FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletText="" bulletType="title"/>
<!-- The following are examples on how to include site specific dams in your template
You can choose to do this by editing the template and listing each dam in the
template or listing the dams in a separate file and using the include command -->
<!-- The bullet names may need to be edited once AWIPS 2 is fixed to include damInfoBullets coding. -->
<!-- Note that Dam Names NEED to be in the EXP section to produce correct headline wording in the vm file -->
<bullet bulletText="****** DAM and DAM BREAK SCENARIOS ******" bulletType="title" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
</bullets>
<!-- The following are examples on how to include site specific dams in your template
You can choose to do this by editing the template and listing each dam in the
template or listing the dams in a separate file and using the include command -->
<!-- include file="damInfoBullet.xml"/> -->
<!-- <damInfoBullets>
<damInfoBullet bulletGroup="dam" bulletText="Big Rock Dam (Fairfield County)" bulletName="BigRockDam" parseString="BIG ROCK" coords="LAT...LON 4109 7338 4116 7311 4116 7320"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BigRockhighfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BigRockhighnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BigRockmediumfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BigRockmediumnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BigRockruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
<damInfoBullet bulletGroup="dam" bulletText="Branched Oak Dam (Westchester County)" bulletName="BranchedOakDam" parseString="BRANCHED OAK" coords="LAT...LON 4106 7373 4097 7366 4090 7376 4102 7382"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BranchedOakhighfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BranchedOakhighnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BranchedOakmediumfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BranchedOakmediumnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BranchedOakruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
</damInfoBullets> -->
</bulletActionGroup>
<bulletActionGroup action="CON" phen="FF" sig="W">
<bullets>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletText="******** PRIMARY CAUSE (choose 1) *******" bulletType="title"/>
<bullet bulletName="dam" bulletText="Dam failure - generic" bulletGroup="damic" parseString="A DAM FAILURE" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="levee" bulletText="Levee failure" bulletGroup="ic" parseString="A LEVEE FAILURE" showString="LEVEE FAILURE"/>
<bullet bulletName="floodgate" bulletText="Floodgate opening" bulletGroup="ic" parseString="A DAM FLOODGATE RELEASE" showString="A DAM FLOODGATE RELEASE"/>
<bullet bulletName="glacier" bulletText="Glacial-dammed lake outburst" bulletGroup="ic" parseString=".GO." showString=".GO."/>
<bullet bulletName="icejam" bulletText="Ice jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<bullet bulletName="rain" bulletText="Rapid rain induced snow melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="volcano" bulletText="Volcano induced snow melt" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;"/>
<bullet bulletName="volcanoLahar" bulletText="Volcano induced lahar/debris flow" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;"/>
<bullet bulletName="siteimminent" bulletText="Dam break - site specific (pick below) - imminent failure" bulletGroup="damic" parseString="THE IMMINENT FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="sitefailed" bulletText="Dam break - site specific (pick below) - failure has occurred" bulletGroup="damic" parseString="THE FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletText="" bulletType="title"/>
<bullet bulletText="************************************************************" bulletType="title"/>
<bullet bulletText="* The next two sections apply only if one of the dam break *"/>
<bullet bulletText="* causes was selected. Choose one reporter, one dam, and *"/>
<bullet bulletText="* optionally one associated scenario and the rule of thumb. *"/>
<bullet bulletText="****** DAM FAILURE REPORTED BY (choose 1) ******" bulletType="title"/>
<bullet bulletName="county" bulletText="County dispatch" bulletGroup="reportedBy" parseString="COUNTY DISPATCH REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement" bulletGroup="reportedBy" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="corps" bulletText="Corps of engineers" bulletGroup="reportedBy" parseString="CORPS OF ENGINEERS REPORTED"/>
<bullet bulletName="damop" bulletText="Dam operator" bulletGroup="reportedBy" parseString="DAM OPERATORS REPORTED"/>
<bullet bulletName="bureau" bulletText="Bureau of reclamation" bulletGroup="reportedBy" parseString="BUREAU OF RECLAMATION REPORTED"/>
<bullet bulletName="public" bulletText="The public" bulletGroup="reportedBy" parseString="THE PUBLIC REPORTED"/>
<bullet bulletText="************ (OPTIONAL) LOCATIONS IMPACTED **************" bulletType="title"/>
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="toggle4" parseString="WILL BE NEAR..."/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="toggle4" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="toggle4" parseString="LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE" showString="LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="toggle4" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="toggle4" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
<bullet bulletText="" bulletType="title"/>
<bullet bulletText="****** ADDITIONAL INFO ******" bulletType="title"/>
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES"/>
<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="taddCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="vehicleCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="warningMeansCTA" bulletText="A Flash Flood Warning means" parseString="A FLASH FLOOD WARNING MEANS FLASH FLOODING"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
<bullet bulletText="" bulletType="title"/>
<!-- The following are examples on how to include site specific dams in your template
You can choose to do this by editing the template and listing each dam in the
template or listing the dams in a separate file and using the include command -->
<!-- The bullet names may need to be edited once AWIPS 2 is fixed to include damInfoBullets coding. -->
<bullet bulletText="****** DAM and DAM BREAK SCENARIOS (choose 1) ******" bulletType="title" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
</bullets>
<!-- The following are examples on how to include site specific dams in your template
You can choose to do this by editing the template and listing each dam in the
template or listing the dams in a separate file and using the include command -->
<!-- include file="damInfoBullet.xml"/> -->
<!-- <damInfoBullets>
<damInfoBullet bulletGroup="dam" bulletText="Big Rock Dam (Fairfield County)" bulletName="BigRockDam" parseString="BIG ROCK" coords="LAT...LON 4109 7338 4116 7311 4116 7320"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BigRockhighfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BigRockhighnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BigRockmediumfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BigRockmediumnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BigRockruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
<damInfoBullet bulletGroup="dam" bulletText="Branched Oak Dam (Westchester County)" bulletName="BranchedOakDam" parseString="BRANCHED OAK" coords="LAT...LON 4106 7373 4097 7366 4090 7376 4102 7382"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BranchedOakhighfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BranchedOakhighnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BranchedOakmediumfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BranchedOakmediumnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BranchedOakruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
</damInfoBullets> -->
</bulletActionGroup>
<bulletActionGroup action="COR" phen="FF" sig="W">
<bullets>
<bullet bulletText="***CORRECTED PRODUCT. CLICK CREATE TEXT***" bulletType="title"/>
<bullet bulletText="" bulletType="title"/>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletText="******** PRIMARY CAUSE (choose 1) *******" bulletType="title"/>
<bullet bulletName="dam" bulletText="Dam failure - generic" bulletGroup="damic" parseString="A DAM FAILURE" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="levee" bulletText="Levee failure" bulletGroup="ic" parseString="A LEVEE FAILURE" showString="LEVEE FAILURE"/>
<bullet bulletName="floodgate" bulletText="Floodgate opening" bulletGroup="ic" parseString="A DAM FLOODGATE RELEASE" showString="A DAM FLOODGATE RELEASE"/>
<bullet bulletName="glacier" bulletText="Glacial-dammed lake outburst" bulletGroup="ic" parseString=".GO." showString=".GO."/>
<bullet bulletName="icejam" bulletText="Ice jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<bullet bulletName="rain" bulletText="Rapid rain induced snow melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="volcano" bulletText="Volcano induced snow melt" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;"/>
<bullet bulletName="volcanoLahar" bulletText="Volcano induced lahar/debris flow" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;"/>
<bullet bulletName="siteimminent" bulletText="Dam break - site specific (pick below) - imminent failure" bulletGroup="damic" parseString="THE IMMINENT FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="sitefailed" bulletText="Dam break - site specific (pick below) - failure has occurred" bulletGroup="damic" parseString="THE FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletText="" bulletType="title"/>
<bullet bulletText="************************************************************" bulletType="title"/>
<bullet bulletText="* The next two sections apply only if one of the dam break *"/>
<bullet bulletText="* causes was selected. Choose one reporter, one dam, and *"/>
<bullet bulletText="* optionally one associated scenario and the rule of thumb. *"/>
<bullet bulletText="****** DAM FAILURE REPORTED BY (choose 1) ******" bulletType="title"/>
<bullet bulletName="county" bulletText="County dispatch" bulletGroup="reportedBy" parseString="COUNTY DISPATCH REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement" bulletGroup="reportedBy" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="corps" bulletText="Corps of engineers" bulletGroup="reportedBy" parseString="CORPS OF ENGINEERS REPORTED"/>
<bullet bulletName="damop" bulletText="Dam operator" bulletGroup="reportedBy" parseString="DAM OPERATORS REPORTED"/>
<bullet bulletName="bureau" bulletText="Bureau of reclamation" bulletGroup="reportedBy" parseString="BUREAU OF RECLAMATION REPORTED"/>
<bullet bulletName="public" bulletText="The public" bulletGroup="reportedBy" parseString="THE PUBLIC REPORTED"/>
<bullet bulletText="************ (OPTIONAL) LOCATIONS IMPACTED **************" bulletType="title"/>
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="toggle4" parseString="WILL BE NEAR..."/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="toggle4" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="toggle4" parseString="LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE" showString="LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="toggle4" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="toggle4" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
<bullet bulletText="" bulletType="title"/>
<bullet bulletText="****** ADDITIONAL INFO ******" bulletType="title"/>
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES"/>
<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="taddCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="vehicleCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="warningMeansCTA" bulletText="A Flash Flood Warning means" parseString="A FLASH FLOOD WARNING MEANS FLASH FLOODING"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
<bullet bulletText="" bulletType="title"/>
<!-- The following are examples on how to include site specific dams in your template
You can choose to do this by editing the template and listing each dam in the
template or listing the dams in a separate file and using the include command -->
<!-- The bullet names may need to be edited once AWIPS 2 is fixed to include damInfoBullets coding. -->
<bullet bulletText="****** DAM and DAM BREAK SCENARIOS (choose 1) ******" bulletType="title" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
</bullets>
<!-- The following are examples on how to include site specific dams in your template
You can choose to do this by editing the template and listing each dam in the
template or listing the dams in a separate file and using the include command -->
<!-- include file="damInfoBullet.xml"/> -->
<!-- <damInfoBullets>
<damInfoBullet bulletGroup="dam" bulletText="Big Rock Dam (Fairfield County)" bulletName="BigRockDam" parseString="BIG ROCK" coords="LAT...LON 4109 7338 4116 7311 4116 7320"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BigRockhighfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BigRockhighnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BigRockmediumfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BigRockmediumnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BigRockruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
<damInfoBullet bulletGroup="dam" bulletText="Branched Oak Dam (Westchester County)" bulletName="BranchedOakDam" parseString="BRANCHED OAK" coords="LAT...LON 4106 7373 4097 7366 4090 7376 4102 7382"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BranchedOakhighfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BranchedOakhighnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BranchedOakmediumfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BranchedOakmediumnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BranchedOakruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
</damInfoBullets> -->
</bulletActionGroup>
</bulletActionGroups>
<trackEnabled>false</trackEnabled>
<!-- Four variables below have been changed from the County-coded products -->
<!-- areaSource.areaField -->
<!-- areaSource.fipsField -->
<!-- pathcastConfig.areaField and -->
<!-- geospatialConfig.areaSource -->
<!-- Default areaSource object to generate zone based information -->
<areaSource variable="areas">
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<type>HATCHING</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>NAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<!-- <fipsField>STATE</fipsField> -->
<fipsField>STATE_ZONE</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Add in areaSource object to generate county-based headline if desired -->
<areaSource variable="affectedCounties">
<areaSource>County</areaSource>
<type>INTERSECT</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>COUNTYNAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<fipsField>FIPS</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<pathcastConfig>
<inclusionPercent>1</inclusionPercent>
<withinPolygon>true</withinPolygon>
<distanceThreshold>8.0</distanceThreshold>
<interval>5</interval>
<delta>5</delta>
<maxResults>4</maxResults>
<maxGroup>8</maxGroup>
<pointField>Name</pointField>
<type>AREA</type>
<areaField>NAME</areaField>
<!-- <areaField>COUNTYNAME</areaField> -->
<parentAreaField>STATE</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
</pathcastConfig>
<pointSource variable="cityList">
<pointField>NAME</pointField>
<inclusionPercent>1</inclusionPercent>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>30</maxResults>
<distanceThreshold>200</distanceThreshold>
<sortBy>
<sort>warngenlev</sort>
<sort>population</sort>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2,3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
</pointSource>
<pointSource variable="otherPoints">
<pointField>NAME</pointField>
<type>AREA</type>
<inclusionPercent>1</inclusionPercent>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>10</maxResults>
<distanceThreshold>200</distanceThreshold>
<sortBy>
<sort>name</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
</pointSource>
<!-- this "include file" tag will grab the Mile Marker XML pointSource tags,
and place into this template
-->
<include file="mileMarkers.xml"/>
<geospatialConfig>
<pointSource>WarnGenLoc</pointSource>
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<parentAreaSource>States</parentAreaSource>
<timezoneSource>TIMEZONES</timezoneSource>
<timezoneField>TIME_ZONE</timezoneField>
</geospatialConfig>
<pointSource variable="riverdrainages">
<pointSource>ffmp_basins</pointSource>
<geometryDecimationTolerance>0.064</geometryDecimationTolerance>
<pointField>streamname</pointField>
<filter>
<mapping key="cwa">
<constraint constraintValue="$warngenCWAFilter" constraintType="EQUALS" />
</mapping>
</filter>
<withinPolygon>true</withinPolygon>
</pointSource>
</warngenConfig>

View file

@ -1,352 +0,0 @@
#################################################
## DAM BREAK FFW TEMPLATE ##
## CREATED BY PHIL KURIMSKI - WFO DTX ##
## VERSION AWIPS II 1.0 - APR 13 2011 OB11.4 ##
## VERSION AWIPS II 1.1 - JUL 14 2011 OB11.7 ##
## VERSION AWIPS II 1.2 - AUG 18 2011 OB11.8 ##
## VERSION AWIPS II 1.3 - SEP 23 2011 OB11.8 ##
## VERSION AWIPS II 1.4 - JUN 26 2013 OB13.4.1 ##
## to add "U" Unknown servity ##
#################################################
##
#if(${action} == "EXT")
#set($starttime = "000000T0000Z")
#set($extend = true)
#else
#set($starttime = ${dateUtil.format(${start}, ${timeFormat.ymdthmz})})
#set($extend = false)
#end
#if(${list.contains(${bullets}, "sev1")})
#set($sev = "1")
#elseif(${list.contains(${bullets}, "sev2")})
#set($sev = "2")
#elseif(${list.contains(${bullets}, "sev3")})
#set($sev = "3")
#else
#set($sev = "0")
#end
##
## set reportType2 to a default value in case nothing is selected for site specific
#set($reportType2 = "THE FAILURE OF")
#####################################################################
## set variables to be used in site specific dam break selections
#####################################################################
#set($addInfo = "")
#set($scenario = "")
#set($ruleofthumb = "")
#set($sitespecCTA = "")
#set($volcanoCTA = "")
#if(${list.contains(${bullets}, "levee")})
#set($ic = "DM")
#set($hycType = "A LEVEE FAILURE")
#set($reportType1 = "A LEVEE ON THE !** **! RIVER AT !** **! FAILED CAUSING FLASH FLOODING OF IMMEDIATELY SURROUNDING AREAS")
#elseif(${list.contains(${bullets}, "floodgate")})
#set($ic = "DR")
#set($hycType = "A DAM FLOODGATE RELEASE")
#set($reportType1 = "THE FLOODGATES ON THE !** **! DAM WERE OPENED CAUSING FLASH FLOODING DOWNSTREAM ON THE !** **! RIVER")
#elseif(${list.contains(${bullets}, "glacier")})
#set($ic = "GO")
#set($hycType = "A GLACIAL-DAMMED LAKE OUTBURST FLOODING")
#set($reportType1 = "A GLACIER AT !** **! HAS MELTED...RELEASING LARGE QUANTITIES OF IMPOUNDED WATER AND CAUSING FLASH FLOODING !** **!")
#elseif(${list.contains(${bullets}, "icejam")})
#set($ic = "IJ")
#set($hycType = "ICE JAM FLOODING")
#set($reportType1 = "AN ICE JAM ON THE !** **! RIVER AT !** **! BROKE CAUSING FLASH FLOODING DOWNSTREAM")
#elseif(${list.contains(${bullets}, "rain")})
#set($ic = "RS")
#set($hycType = "EXTREMELY RAPID RAIN SNOW MELT")
#set($reportType1 = "RAIN FALLING ON EXISTING SNOWPACK WAS GENERATING FLASH FLOODING FROM EXCESSIVE RUNOFF")
#elseif(${list.contains(${bullets}, "volcano")})
#set($ic = "SM")
#set($hycType = "VOLCANIC SNOW MELT")
#set($reportType1 = "ACTIVITY OF THE !** **! VOLCANO WAS CAUSING RAPID SNOWMELT ON ITS SLOPES AND GENERATING FLASH FLOODING")
#elseif(${list.contains(${bullets}, "volcanoLahar")})
#set($ic = "SM")
#set($hycType = "VOLCANIC SNOW MELT")
#set($ctaSelected = "YES")
#set($reportType1 = "ACTIVITY OF THE !** **! VOLCANO WAS CAUSING RAPID MELTING OF SNOW AND ICE ON THE MOUNTAIN. THIS WILL RESULT IN A TORRENT OF MUD...ASH...ROCK AND HOT WATER TO FLOW DOWN THE MOUNTAIN THROUGH !** DRAINAGE **! AND GENERATE FLASH FLOODING")
#set($volcanoCTA = "PERSONS IN THE VICINITY OF !** DRAINAGE **! SHOULD HEAD TO HIGHER GROUND IMMEDIATELY.")
#elseif(${list.contains(${bullets}, "dam")})
#set($ic = "DM")
#set($hycType = "A DAM FAILURE")
#set($reportType1 = "THE !** **! DAM FAILED CAUSING FLASH FLOODING DOWNSTREAM ON THE !** **! RIVER")
#set($addInfo = "!** **! DAM ON THE !** **! RIVER UPSTREAM FROM !** **! HAS GIVEN WAY AND HIGH WATERS ARE NOW MOVING TOWARD !** **!. AREAS DOWNSTREAM FROM THE DAM ALONG THE !** **! RIVER SHOULD BE PREPARED FOR FLOODING. TAKE NECESSARY PRECAUTIONS IMMEDIATELY")
#elseif(${list.contains(${bullets}, "siteimminent")})
#set($ic = "DM")
#set($hycType = "A DAM BREAK")
#set($reportType1 = "THE IMMINENT FAILURE OF !** **! DAM")
#set($reportType2 = "THE IMMINENT FAILURE OF")
#set($addInfo = "!** **! DAM ON THE !** **! RIVER UPSTREAM FROM !** **! HAS GIVEN WAY AND HIGH WATERS ARE NOW MOVING TOWARD !** **!. AREAS DOWNSTREAM FROM THE DAM ALONG THE !** **! RIVER SHOULD BE PREPARED FOR FLOODING. TAKE NECESSARY PRECAUTIONS IMMEDIATELY")
#elseif(${list.contains(${bullets}, "sitefailed")})
#set($ic = "DM")
#set($hycType = "A DAM BREAK")
#set($reportType1 = "THE FAILURE OF !** **! DAM")
#set($reportType2 = "THE FAILURE OF")
#set($addInfo = "!** **! DAM ON THE !** **! RIVER UPSTREAM FROM !** **! HAS GIVEN WAY AND HIGH WATERS ARE NOW MOVING TOWARD !** **!. AREAS DOWNSTREAM FROM THE DAM ALONG THE !** **! RIVER SHOULD BE PREPARED FOR FLOODING. TAKE NECESSARY PRECAUTIONS IMMEDIATELY")
#else
#set($ic = "ER")
#set($hycType = "EXCESSIVE RAIN")
#set($reportType1 = "EXCESSIVE RAIN CAUSING FLASH FLOODING WAS OCCURING OVER THE WARNED AREA")
#end
#########################################################################
## Parse command to include a damInfo.vm file with site specific dam
## information. Sites can include this information in a separate file or
## include in the template per the coding below.
#########################################################################
##parse ("damInfo.vm")
#*
#########################################################################
## The next section is for site specific dams. Each site should take the
## example below and customize it for their dams with the information
## from the LLL-damInfo.txt file in AWIPS 1. If you have any questions
## please contact Phil Kurimski - WFO DTX
#########################################################################
#if(${list.contains(${bullets}, "BigRockDam")})
#set($riverName = "PHIL RIVER")
#set($damName = "BIG ROCK DAM")
#set($cityInfo = "EVAN...LOCATED ABOUT 3 MILES")
#end
#if(${list.contains(${bullets}, "BigRockhighfast")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT EVAN COULD EXCEED 18 FEET IN 16 MINUTES.")
#end
#if(${list.contains(${bullets}, "BigRockhighnormal")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT EVAN COULD EXCEED 23 FEET IN 31 MINUTES.")
#end
#if(${list.contains(${bullets}, "BigRockmediumfast")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT EVAN COULD EXCEED 14 FEET IN 19 MINUTES.")
#end
#if(${list.contains(${bullets}, "BigRockmediumnormal")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT EVAN COULD EXCEED 17 FEET IN 32 MINUTES.")
#end
#if(${list.contains(${bullets}, "BigRockruleofthumb")})
#set($ruleofthumb = "FLOOD WAVE ESTIMATE BASED ON THE DAM IN IDAHO: FLOOD INITIALLY HALF OF ORIGINAL HEIGHT BEHIND DAM AND 3-4 MPH; 5 MILES IN 1/2 HOURS; 10 MILES IN 1 HOUR; AND 20 MILES IN 9 HOURS.")
#end
#if(${list.contains(${bullets}, "BranchedOakDam")})
#set($riverName = "KELLS RIVER")
#set($damName = "BRANCHED OAK DAM")
#set($cityInfo = "DANGELO...LOCATED ABOUT 6 MILES")
#end
#if(${list.contains(${bullets}, "BranchedOakhighfast")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT DANGELO COULD EXCEED 19 FEET IN 32 MINUTES.")
#end
#if(${list.contains(${bullets}, "BranchedOakhighnormal")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT DANGELO COULD EXCEED 26 FEET IN 56 MINUTES.")
#end
#if(${list.contains(${bullets}, "BranchedOakmediumfast")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT DANGELO COULD EXCEED 14 FEET IN 33 MINUTES.")
#end
#if(${list.contains(${bullets}, "BranchedOakmediumnormal")})
#set($scenario = "IF A COMPLETE FAILURE OF THE DAM OCCURS...THE WATER DEPTH AT DANGELO COULD EXCEED 20 FEET IN 60 MINUTES.")
#end
#if(${list.contains(${bullets}, "BranchedOakruleofthumb")})
#set($ruleofthumb = "FLOOD WAVE ESTIMATE BASED ON THE DAM IN IDAHO: FLOOD INITIALLY HALF OF ORIGINAL HEIGHT BEHIND DAM AND 3-4 MPH; 5 MILES IN 1/2 HOURS; 10 MILES IN 1 HOUR; AND 20 MILES IN 9 HOURS.")
#end
#######################################################################
## Look for site specific selections to override the 4th bullet and
## to set up the headlines and additional info used in the product.
## This loop assumes you end each site specific selection with
## the word "Dam". If you end with a different word you will need
## to modify the loop below.
########################################################################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("Dam")})
#set($ctaSelected = "YES")
#set($sitespecSelected = "YES")
#set($hycType = "THE ${riverName} BELOW ${damName}")
#set($reportType1 = "${reportType2} ${damName} ON THE ${riverName}")
#set($addInfo = "THE NEAREST DOWNSTREAM TOWN IS ${cityInfo} FROM THE DAM.")
#set($sitespecCTA = "IF YOU ARE IN LOW LYING AREAS BELOW THE ${damName} YOU SHOULD MOVE TO HIGHER GROUND IMMEDIATELY.")
#end
#end
#######################################################################
## End of Site Specific Dam Information
#######################################################################
*#
##
${WMOId} ${vtecOffice} 000000 ${BBBId}
FFW${siteId}
${ugcline}
/${productClass}.${action}.${vtecOffice}.FF.W.${etn}.${starttime}-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.${sev}.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
BULLETIN - EAS ACTIVATION REQUESTED
#if(${productClass}=="T")
TEST...FLASH FLOOD WARNING...TEST
#else
FLASH FLOOD WARNING
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#headlineext(${officeLoc}, ${backupSite}, ${extend})
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#######################################################################
## Put the hycType variable on the next line and included the word 'IN'
## to come in line with the 10-922 directive
#######################################################################
FLASH FLOOD WARNING FOR...
${hycType} IN...
###firstBullet(${areas})
##REPLACE THE LINE ABOVE WITH THE FOLLOWING IF YOU USE COUNTY VS. ZONE OUTPUT
#firstBullet(${affectedCounties})
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone})
#set($report = "${reportType1}")
#if(${list.contains(${bullets}, "county")})
#set($report = "COUNTY DISPATCH REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")})
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "corps")})
#set($report = "CORPS OF ENGINEERS REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "damop")})
#set($report = "DAM OPERATORS REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "bureau")})
#set($report = "BUREAU OF RECLAMATION REPORTED ${reportType1}")
#end
#if(${list.contains(${bullets}, "public")})
#set($report = "THE PUBLIC REPORTED ${reportType1}")
#end
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...${report}.
##########################################################################
## Flash Flood Emergency per NWS 10-922 Directive goes with third bullet #
##########################################################################
#if(${list.contains(${bullets}, "ffwEmergency")})
THIS IS A FLASH FLOOD EMERGENCY FOR !**ENTER LOCATION**!.
#end
#set($phenomena = "FLASH FLOOD")
#set($warningType = "WARNING")
##########################################################################
## Optional 4th bullet...comment out if not needed.
##########################################################################
## This first if loop will override the locations impacted statement
## with the site specific information in the 4th bullet.
##########################################################################
#if(${sitespecSelected} == "YES")
* ##
${addInfo}
${scenario}
${ruleofthumb}
##########################################################################
## Continue with the regular 4th bullet information
##########################################################################
#elseif(${list.contains(${bullets}, "pathcast")})
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#pathCast("THE FLOOD WILL BE NEAR..." "THIS FLOODING" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
#elseif(${list.contains(${bullets}, "listofcities")})
* ##
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#### THE THIRD ARGUMENT IS A NUMBER SPECIFYING THE NUMBER OF COLUMNS TO OUTPUT THE CITIES LIST IN
#### 0 IS A ... SEPARATED LIST, 1 IS ONE PER LINE, >1 IS A COLUMN FORMAT
#### IF YOU USE SOMETHING OTHER THAN "LOCATIONS IMPACTED INCLUDE" LEAD IN BELOW, MAKE SURE THE
#### ACCOMPANYING XML FILE PARSE STRING IS CHANGED TO MATCH!
#locationsList("LOCATIONS IMPACTED INCLUDE..." "THIS FLOODING" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
#end
############################ End of Optional 4th Bullet ###########################
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
#if(${list.contains(${bullets}, "floodMoving")})
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
#end
#####################
## CALL TO ACTIONS ##
#####################
#######################################################################
## Check to see if we've selected any calls to action. In our .xml file
## we ended each CTA bullet ID with "CTA" for this reason as a 'trip'
#######################################################################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
##
${sitespecCTA}
${volcanoCTA}
#if(${list.contains(${bullets}, "taddCTA")})
MOST FLOOD DEATHS OCCUR IN AUTOMOBILES. NEVER DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. FLOOD WATERS ARE USUALLY DEEPER THAN THEY APPEAR. JUST ONE FOOT OF FLOWING WATER IS POWERFUL ENOUGH TO SWEEP VEHICLES OFF THE ROAD. WHEN ENCOUNTERING FLOODED ROADS MAKE THE SMART CHOICE...TURN AROUND...DONT DROWN.
#end
#if(${list.contains(${bullets}, "nighttimeCTA")})
BE ESPECIALLY CAUTIOUS AT NIGHT WHEN IT IS HARDER TO RECOGNIZE THE DANGERS OF FLOODING. IF FLOODING IS OBSERVED ACT QUICKLY. MOVE UP TO HIGHER GROUND TO ESCAPE FLOOD WATERS. DO NOT STAY IN AREAS SUBJECT TO FLOODING WHEN WATER BEGINS RISING.
#end
#if(${list.contains(${bullets}, "vehicleCTA")})
DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY. THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY. MOVE TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "warningMeansCTA")})
A FLASH FLOOD WARNING MEANS FLASH FLOODING IS OCCURRING OR IS IMMINENT. MOST FLOOD RELATED DEATHS OCCUR IN AUTOMOBILES. DO NOT ATTEMPT TO CROSS WATER COVERED BRIDGES...DIPS...OR LOW WATER CROSSINGS. NEVER TRY TO CROSS A FLOWING STREAM...EVEN A SMALL ONE...ON FOOT. TO ESCAPE RISING WATER MOVE UP TO HIGHER GROUND.
#end
#if(${list.contains(${bullets}, "powerFloodCTA")})
DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS. ONLY A FEW INCHES OF RAPIDLY FLOWING WATER CAN QUICKLY CARRY AWAY YOUR VEHICLE.
#end
#if(${list.contains(${bullets}, "reportCTA")})
TO REPORT FLOODING...HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE FORECAST OFFICE.
#end
#if(${ctaSelected} == "YES")
&&
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
#parse("forecasterName.vm")

View file

@ -1,441 +0,0 @@
<!-- Flash Flood Warning configuration -->
<warngenConfig>
<!-- Customized by Phil Kurimski WFO DTX 08-18-2011 OB 11.0.8-4
Modified Evan Bookbinder 09-16-2011 OB 11.0.8-8
Modified Phil Kurimski 09-21-2011 OB 11.0.8-8
Modified Phil Kurimski 01-26-2012 OB 12.1.1-1
Modified Phil Kurimski 02-29-2012 OB 12.2.1-3
Modified Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
Modified Phil Kurimski 04-27-2012
Modified Evan Bookbinder 09-12-2012 DR15179 Added areaSource object to
allow for county-based headlines in zone based products.
Modified Evan Bookbinder 05-05-2013 fixed <type> variable under areaSource objects
Modified Evan Bookbinder 06-26-2013 Added "U" Unknown severity
-->
<!-- Config distance/speed units -->
<unitDistance>mi</unitDistance>
<unitSpeed>mph</unitSpeed>
<!-- Maps to load on template selection. Refer to 'Maps' menu in CAVE.
The various menu items are also the different maps
that can be loaded with each template. -->
<maps>
<map>Forecast Zones</map>
<!-- <map>County Warning Areas</map> -->
<!-- <map>FFMP Small Stream Basin Links</map> -->
<!-- <map>Major Rivers</map> -->
</maps>
<!-- Followups: VTEC actions of allowable followups when this template is selected
Each followup will become available when the appropriate time range permits. -->
<followups>
<followup>NEW</followup>
<followup>COR</followup>
<followup>EXT</followup>
</followups>
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
<phensigs>
<phensig>FF.W</phensig>
</phensigs>
<!-- Enables/disables user from selecting the Restart button the GUI -->
<enableRestart>true</enableRestart>
<!-- Enables/disables the 'Dam Break Threat Area' button -->
<enableDamBreakThreat>true</enableDamBreakThreat>
<!-- Enable/disables the system to lock text based on various patterns -->
<autoLockText>true</autoLockText>
<!-- durations: the list of possible durations -->
<defaultDuration>180</defaultDuration>
<durations>
<duration>30</duration>
<duration>40</duration>
<duration>45</duration>
<duration>50</duration>
<duration>60</duration>
<duration>90</duration>
<duration>120</duration>
<duration>150</duration>
<duration>180</duration>
<duration>210</duration>
<duration>240</duration>
<duration>270</duration>
<duration>300</duration>
<duration>360</duration>
</durations>
<!-- Customized several sections in bullet section including:
Added Flash Flood Emergency Headline
Changed the CTA Bullet names for easier parsing in the vm file -->
<lockedGroupsOnFollowup>dam,ic</lockedGroupsOnFollowup>
<bulletActionGroups>
<bulletActionGroup action="NEW" phen="FF" sig="W">
<bullets>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletText="******** FLOOD SEVERITY (choose 1) *******" bulletType="title"/>
<bullet bulletName="sevUnk" bulletText="Unknown" bulletDefault="true" bulletGroup="floodSeverity" floodSeverity="U"/>
<bullet bulletName="sev1" bulletText="Minor flood" bulletGroup="floodSeverity" floodSeverity="1"/>
<bullet bulletName="sev2" bulletText="Moderate flood" bulletGroup="floodSeverity" floodSeverity="2"/>
<bullet bulletName="sev3" bulletText="Major flood" bulletGroup="floodSeverity" floodSeverity="3"/>
<bullet bulletText="******** PRIMARY CAUSE (choose 1) *******" bulletType="title"/>
<bullet bulletName="dam" bulletText="Dam failure - generic" bulletGroup="damic" parseString="A DAM FAILURE" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="levee" bulletText="Levee failure" bulletGroup="ic" parseString="A LEVEE FAILURE" showString="LEVEE FAILURE"/>
<bullet bulletName="floodgate" bulletText="Floodgate opening" bulletGroup="ic" parseString="A DAM FLOODGATE RELEASE" showString="A DAM FLOODGATE RELEASE"/>
<bullet bulletName="glacier" bulletText="Glacial-dammed lake outburst" bulletGroup="ic" parseString=".GO." showString=".GO."/>
<bullet bulletName="icejam" bulletText="Ice jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<bullet bulletName="rain" bulletText="Rapid rain induced snow melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="volcano" bulletText="Volcano induced snow melt" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;"/>
<bullet bulletName="volcanoLahar" bulletText="Volcano induced lahar/debris flow" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;"/>
<bullet bulletName="siteimminent" bulletText="Dam break - site specific (pick below) - imminent failure" bulletGroup="damic" parseString="THE IMMINENT FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="sitefailed" bulletText="Dam break - site specific (pick below) - failure has occurred" bulletGroup="damic" parseString="THE FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletText="************************************************************" bulletType="title"/>
<bullet bulletText="* The next two sections apply only if one of the dam break *"/>
<bullet bulletText="* causes was selected. Choose one reporter, one dam, and *"/>
<bullet bulletText="* optionally one associated scenario and the rule of thumb. *"/>
<bullet bulletText="****** DAM FAILURE REPORTED BY (choose 1) ******" bulletType="title"/>
<bullet bulletName="county" bulletText="County dispatch" bulletGroup="reportedBy" bulletDefault="true" parseString="COUNTY DISPATCH REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement" bulletGroup="reportedBy" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="corps" bulletText="Corps of engineers" bulletGroup="reportedBy" parseString="CORPS OF ENGINEERS REPORTED"/>
<bullet bulletName="damop" bulletText="Dam operator" bulletGroup="reportedBy" parseString="DAM OPERATORS REPORTED"/>
<bullet bulletName="bureau" bulletText="Bureau of reclamation" bulletGroup="reportedBy" parseString="BUREAU OF RECLAMATION REPORTED"/>
<bullet bulletName="public" bulletText="Public" bulletGroup="reportedBy" parseString="THE PUBLIC REPORTED"/>
<bullet bulletText="************ (OPTIONAL) LOCATIONS IMPACTED **************" bulletType="title"/>
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast"/>
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
<bullet bulletText="****** CALLS TO ACTION (choose 1 or more) ******" bulletType="title"/>
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES"/>
<bullet bulletName="floodMoving" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
<bullet bulletName="taddCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="vehicleCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="warningMeansCTA" bulletText="A Flash Flood Warning means" parseString="A FLASH FLOOD WARNING MEANS FLASH FLOODING"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
<bullet bulletText="****** DAM and DAM BREAK SCENARIOS (choose 1) ******" bulletType="title" showString="DAM"/>
</bullets>
<!-- The following are examples on how to include site specific dams in your template
You can choose to do this by editing the template and listing each dam in the
template or listing the dams in a separate file and using the include command -->
<!-- include file="damInfoBullet.xml"/> -->
<!--<damInfoBullets>
<damInfoBullet bulletGroup="dam" bulletText="Big Rock Dam (Fairfield County)" bulletName="BigRockDam" parseString="BIG ROCK" coords="LAT...LON 4109 7338 4116 7311 4116 7320"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BigRockhighfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BigRockhighnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BigRockmediumfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BigRockmediumnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BigRockruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
<damInfoBullet bulletGroup="dam" bulletText="Branched Oak Dam (Westchester County)" bulletName="BranchedOakDam" parseString="BRANCHED OAK" coords="LAT...LON 4106 7373 4097 7366 4090 7376 4102 7382"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BranchedOakhighfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BranchedOakhighnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BranchedOakmediumfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BranchedOakmediumnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BranchedOakruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
</damInfoBullets> -->
</bulletActionGroup>
<bulletActionGroup action="COR" phen="FF" sig="W">
<bullets>
<bullet bulletText="***CORRECTED PRODUCT. CLICK CREATE TEXT***" bulletType="title"/>
<bullet bulletText="" bulletType="title"/>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletText="******** FLOOD SEVERITY (choose 1) *******" bulletType="title"/>
<bullet bulletName="sevUnk" bulletText="Unknown" bulletGroup="floodSeverity" floodSeverity="U"/>
<bullet bulletName="sev1" bulletText="Minor flood" bulletGroup="floodSeverity" floodSeverity="1"/>
<bullet bulletName="sev2" bulletText="Moderate flood" bulletGroup="floodSeverity" floodSeverity="2"/>
<bullet bulletName="sev3" bulletText="Major flood" bulletGroup="floodSeverity" floodSeverity="3"/>
<bullet bulletText="******** PRIMARY CAUSE (choose 1) *******" bulletType="title"/>
<bullet bulletName="dam" bulletText="Dam failure - generic" bulletGroup="damic" parseString="A DAM FAILURE" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="levee" bulletText="Levee failure" bulletGroup="ic" parseString="A LEVEE FAILURE" showString="LEVEE FAILURE"/>
<bullet bulletName="floodgate" bulletText="Floodgate opening" bulletGroup="ic" parseString="A DAM FLOODGATE RELEASE" showString="A DAM FLOODGATE RELEASE"/>
<bullet bulletName="glacier" bulletText="Glacial-dammed lake outburst" bulletGroup="ic" parseString=".GO." showString=".GO."/>
<bullet bulletName="icejam" bulletText="Ice jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<bullet bulletName="rain" bulletText="Rapid rain induced snow melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="volcano" bulletText="Volcano induced snow melt" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;"/>
<bullet bulletName="volcanoLahar" bulletText="Volcano induced lahar/debris flow" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;"/>
<bullet bulletName="siteimminent" bulletText="Dam break - site specific (pick below) - imminent failure" bulletGroup="damic" parseString="THE IMMINENT FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="sitefailed" bulletText="Dam break - site specific (pick below) - failure has occurred" bulletGroup="damic" parseString="THE FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletText="************************************************************" bulletType="title"/>
<bullet bulletText="* The next two sections apply only if one of the dam break *"/>
<bullet bulletText="* causes was selected. Choose one reporter, one dam, and *"/>
<bullet bulletText="* optionally one associated scenario and the rule of thumb. *"/>
<bullet bulletText="****** DAM FAILURE REPORTED BY (choose 1) ******" bulletType="title"/>
<bullet bulletName="county" bulletText="County dispatch" bulletGroup="reportedBy" bulletDefault="true" parseString="COUNTY DISPATCH REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement" bulletGroup="reportedBy" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="corps" bulletText="Corps of engineers" bulletGroup="reportedBy" parseString="CORPS OF ENGINEERS REPORTED"/>
<bullet bulletName="damop" bulletText="Dam operator" bulletGroup="reportedBy" parseString="DAM OPERATORS REPORTED"/>
<bullet bulletName="bureau" bulletText="Bureau of reclamation" bulletGroup="reportedBy" parseString="BUREAU OF RECLAMATION REPORTED"/>
<bullet bulletName="public" bulletText="The public" bulletGroup="reportedBy" parseString="THE PUBLIC REPORTED"/>
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
<bullet bulletText="************ (OPTIONAL) LOCATIONS IMPACTED **************" bulletType="title"/>
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE" showString="LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
<bullet bulletText="****** ADDITIONAL INFO ******" bulletType="title"/>
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES"/>
<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="taddCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="vehicleCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="warningMeansCTA" bulletText="A Flash Flood Warning means" parseString="A FLASH FLOOD WARNING MEANS FLASH FLOODING"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
<bullet bulletText="****** DAM and DAM BREAK SCENARIOS (choose 1) ******" bulletType="title" showString="DAM"/>
</bullets>
<!-- The following are examples on how to include site specific dams in your template
You can choose to do this by editing the template and listing each dam in the
template or listing the dams in a separate file and using the include command -->
<!-- include file="damInfoBullet.xml"/> -->
<!--<damInfoBullets>
<damInfoBullet bulletGroup="dam" bulletText="Big Rock Dam (Fairfield County)" bulletName="BigRockDam" parseString="BIG ROCK" coords="LAT...LON 4109 7338 4116 7311 4116 7320"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BigRockhighfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BigRockhighnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BigRockmediumfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BigRockmediumnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BigRockruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
<damInfoBullet bulletGroup="dam" bulletText="Branched Oak Dam (Westchester County)" bulletName="BranchedOakDam" parseString="BRANCHED OAK" coords="LAT...LON 4106 7373 4097 7366 4090 7376 4102 7382"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BranchedOakhighfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BranchedOakhighnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BranchedOakmediumfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BranchedOakmediumnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BranchedOakruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
</damInfoBullets> -->
</bulletActionGroup>
<bulletActionGroup action="EXT" phen="FF" sig="W">
<bullets>
<bullet bulletName="ffwEmergency" bulletText="**SELECT FOR FLASH FLOOD EMERGENCY**" parseString="FLASH FLOOD EMERGENCY"/>
<bullet bulletText="******** FLOOD SEVERITY (choose 1) *******" bulletType="title"/>
<bullet bulletName="sevUnk" bulletText="Unknown" bulletGroup="floodSeverity" floodSeverity="U"/>
<bullet bulletName="sev1" bulletText="Minor flood" bulletGroup="floodSeverity" floodSeverity="1"/>
<bullet bulletName="sev2" bulletText="Moderate flood" bulletGroup="floodSeverity" floodSeverity="2"/>
<bullet bulletName="sev3" bulletText="Major flood" bulletGroup="floodSeverity" floodSeverity="3"/>
<bullet bulletText="******** PRIMARY CAUSE (choose 1) *******" bulletType="title"/>
<bullet bulletName="dam" bulletText="Dam failure - generic" bulletGroup="damic" parseString="A DAM FAILURE" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="levee" bulletText="Levee failure" bulletGroup="ic" parseString="A LEVEE FAILURE" showString="LEVEE FAILURE"/>
<bullet bulletName="floodgate" bulletText="Floodgate opening" bulletGroup="ic" parseString="A DAM FLOODGATE RELEASE" showString="A DAM FLOODGATE RELEASE"/>
<bullet bulletName="glacier" bulletText="Glacial-dammed lake outburst" bulletGroup="ic" parseString=".GO." showString=".GO."/>
<bullet bulletName="icejam" bulletText="Ice jam" bulletGroup="ic" parseString=".IJ." showString=".IJ."/>
<bullet bulletName="rain" bulletText="Rapid rain induced snow melt" bulletGroup="ic" parseString=".RS." showString=".RS."/>
<bullet bulletName="volcano" bulletText="Volcano induced snow melt" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;-MELTING OF SNOW AND ICE&quot;,&quot;-TORRENT&quot;"/>
<bullet bulletName="volcanoLahar" bulletText="Volcano induced lahar/debris flow" bulletGroup="ic" parseString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;" showString="&quot;VOLCANIC SNOW MELT&quot;,&quot;MELTING OF SNOW AND ICE&quot;,&quot;TORRENT&quot;"/>
<bullet bulletName="siteimminent" bulletText="Dam break - site specific (pick below) - imminent failure" bulletGroup="damic" parseString="THE IMMINENT FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletName="sitefailed" bulletText="Dam break - site specific (pick below) - failure has occurred" bulletGroup="damic" parseString="THE FAILURE OF" showString="&quot;DAM&quot;,&quot;.DM.&quot;,&quot;-LEVEE&quot;"/>
<bullet bulletText="************************************************************" bulletType="title"/>
<bullet bulletText="* The next two sections apply only if one of the dam break *"/>
<bullet bulletText="* causes was selected. Choose one reporter, one dam, and *"/>
<bullet bulletText="* optionally one associated scenario and the rule of thumb. *"/>
<bullet bulletText="****** DAM FAILURE REPORTED BY (choose 1) ******" bulletType="title"/>
<bullet bulletName="county" bulletText="County dispatch" bulletGroup="reportedBy" bulletDefault="true" parseString="COUNTY DISPATCH REPORTED"/>
<bullet bulletName="lawEnforcement" bulletText="Law enforcement" bulletGroup="reportedBy" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
<bullet bulletName="corps" bulletText="Corps of engineers" bulletGroup="reportedBy" parseString="CORPS OF ENGINEERS REPORTED"/>
<bullet bulletName="damop" bulletText="Dam operator" bulletGroup="reportedBy" parseString="DAM OPERATORS REPORTED"/>
<bullet bulletName="bureau" bulletText="Bureau of reclamation" bulletGroup="reportedBy" parseString="BUREAU OF RECLAMATION REPORTED"/>
<bullet bulletName="public" bulletText="The public" bulletGroup="reportedBy" parseString="THE PUBLIC REPORTED"/>
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
<bullet bulletText="************ (OPTIONAL) LOCATIONS IMPACTED **************" bulletType="title"/>
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE" showString="LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
<bullet bulletText="****** ADDITIONAL INFO ******" bulletType="title"/>
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES"/>
<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="taddCTA" bulletText="Turn around...dont drown" parseString="MOST FLOOD DEATHS OCCUR IN AUTOMOBILES"/>
<bullet bulletName="nighttimeCTA" bulletText="Nighttime flooding" parseString="BE ESPECIALLY CAUTIOUS AT NIGHT WHEN"/>
<bullet bulletName="vehicleCTA" bulletText="Do not drive into water" parseString="DO NOT DRIVE YOUR VEHICLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY"/>
<bullet bulletName="warningMeansCTA" bulletText="A Flash Flood Warning means" parseString="A FLASH FLOOD WARNING MEANS FLASH FLOODING"/>
<bullet bulletName="powerFloodCTA" bulletText="Power of flood waters/vehicles" parseString="DO NOT UNDERESTIMATE THE POWER OF FLOOD WATERS"/>
<bullet bulletName="reportCTA" bulletText="Report flooding to local law enforcement" parseString="HAVE THE NEAREST LAW ENFORCEMENT AGENCY RELAY YOUR REPORT"/>
<bullet bulletText="****** DAM and DAM BREAK SCENARIOS (choose 1) ******" bulletType="title" showString="DAM"/>
</bullets>
<!-- The following are examples on how to include site specific dams in your template
You can choose to do this by editing the template and listing each dam in the
template or listing the dams in a separate file and using the include command -->
<!-- include file="damInfoBullet.xml"/> -->
<!--<damInfoBullets>
<damInfoBullet bulletGroup="dam" bulletText="Big Rock Dam (Fairfield County)" bulletName="BigRockDam" parseString="BIG ROCK" coords="LAT...LON 4109 7338 4116 7311 4116 7320"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BigRockhighfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BigRockhighnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BigRockmediumfast" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BigRockmediumnormal" parseString="COMPLETE FAILURE OF BIG ROCK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BigRockruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
<damInfoBullet bulletGroup="dam" bulletText="Branched Oak Dam (Westchester County)" bulletName="BranchedOakDam" parseString="BRANCHED OAK" coords="LAT...LON 4106 7373 4097 7366 4090 7376 4102 7382"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high fast" bulletName="BranchedOakhighfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - high normal" bulletName="BranchedOakhighnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium fast" bulletName="BranchedOakmediumfast" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="scenario" bulletText="scenario - medium normal" bulletName="BranchedOakmediumnormal" parseString="COMPLETE FAILURE OF BRANCHED OAK"/>
<damInfoBullet bulletGroup="ruleofthumb" bulletText="rule of thumb" bulletName="BranchedOakruleofthumb" parseString="FLOOD WAVE ESTIMATE"/>
</damInfoBullets> -->
</bulletActionGroup>
</bulletActionGroups>
<trackEnabled>false</trackEnabled>
<!-- Four variables below have been changed from the County-coded products -->
<!-- areaSource.areaField -->
<!-- areaSource.fipsField -->
<!-- pathcastConfig.areaField and -->
<!-- geospatialConfig.areaSource -->
<!-- Default areaSource object to generate zone based information -->
<areaSource variable="areas">
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<type>HATCHING</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>NAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<!-- <fipsField>STATE</fipsField> -->
<fipsField>STATE_ZONE</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<!-- Add in areaSource object to generate county-based headline if desired -->
<areaSource variable="affectedCounties">
<areaSource>COUNTY</areaSource>
<type>INTERSECT</type>
<inclusionPercent>0</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>COUNTYNAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<fipsField>FIPS</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaSource>
<pathcastConfig>
<inclusionPercent>1</inclusionPercent>
<type>AREA</type>
<withinPolygon>true</withinPolygon>
<distanceThreshold>8.0</distanceThreshold>
<interval>5</interval>
<delta>5</delta>
<maxResults>4</maxResults>
<maxGroup>8</maxGroup>
<pointField>Name</pointField>
<!-- <areaField>COUNTYNAME</areaField> -->
<areaField>NAME</areaField>
<parentAreaField>STATE</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
</pathcastConfig>
<pointSource variable="cityList">
<pointField>NAME</pointField>
<inclusionPercent>1</inclusionPercent>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>30</maxResults>
<distanceThreshold>200</distanceThreshold>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2,3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
<sortBy>
<sort>warngenlev</sort>
<sort>population</sort>
<sort>distance</sort>
</sortBy>
</pointSource>
<pointSource variable="otherPoints">
<pointField>NAME</pointField>
<inclusionPercent>1</inclusionPercent>
<type>AREA</type>
<searchMethod>POINTS</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>10</maxResults>
<distanceThreshold>200</distanceThreshold>
<sortBy>
<sort>distance</sort>
</sortBy>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="3,4" constraintType="IN" />
</mapping>
<mapping key="LANDWATER">
<constraint constraintValue="L,LW,LC" constraintType="IN" />
</mapping>
</filter>
</pointSource>
<!-- this "include file" tag will grab the Mile Marker XML pointSource tags,
and place into this template
-->
<include file="mileMarkers.xml"/>
<geospatialConfig>
<pointSource>WarnGenLoc</pointSource>
<!-- <areaSource>County</areaSource> -->
<areaSource>Zone</areaSource>
<parentAreaSource>States</parentAreaSource>
<timezoneSource>TIMEZONES</timezoneSource>
<timezoneField>TIME_ZONE</timezoneField>
</geospatialConfig>
<pointSource variable="riverdrainages">
<pointSource>ffmp_basins</pointSource>
<geometryDecimationTolerance>0.064</geometryDecimationTolerance>
<pointField>streamname</pointField>
<filter>
<mapping key="cwa">
<constraint constraintValue="$warngenCWAFilter" constraintType="EQUALS" />
</mapping>
</filter>
<withinPolygon>true</withinPolygon>
</pointSource>
</warngenConfig>

View file

@ -1,103 +0,0 @@
## new template jfrederick tim feb 2011
## sigwx alert for thunderstorms with wind and/or hail under
## severe limits
## county list needs to be sortable by state/parts of state/
##
## Qinglu Lin 12-27-2012 DR 15594. Appended true to headlineLocList's parameter list.
##
${WMOId} ${vtecOffice} 000000 ${BBBId}
SPS${siteId}
#if(${productClass}=="T")
TEST...SPECIAL WEATHER STATEMENT...TEST
#else
SPECIAL WEATHER STATEMENT
#end
NATIONAL WEATHER SERVICE ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
<L>#foreach (${area} in ${areas})
${area.name} ${area.stateabbr}-##
#end
</L>
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
THE NATIONAL WEATHER SERVICE IN ${officeLoc} HAS ISSUED A SPECIAL WEATHER STATEMENT EFFECTIVE ##
#secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR #headlineLocList(${areas} true true true false true).
#if(${stormType} == "line")
#set ($type1 = "THUNDERSTORMS")
#else
#set ($type1 = "A THUNDERSTORM")
#end
#if(${list.contains($bullets, "doppler")})
#set ($report = "NATIONAL WEATHER SERVICE DOPPLER RADAR INDICATED ${type1} ")
#end
#if(${list.contains($bullets, "spotter")})
#set ($report = "AMATEUR RADIO WEATHER SPOTTERS REPORTED !** **!")
#end
#if(${list.contains($bullets, "public")})
#set ($report = "THE PUBLIC REPORTED !** **! ")
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
AT ${dateUtil.format(${event}, ${timeFormat.clock}, ${localtimezone})}...${report} ##
#handleClosestPoints($list, $closestPoints, $otherClosestPoints, $stormType, "NEAR", 6, "MILES")
#if($movementSpeed < 3 || ${stationary})
. ${reportType2} NEARLY STATIONARY.
#else
...MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH.
#end
## calls to action
#if(${list.contains($bullets, "streamflooding")})
HEAVY RAINS MAY FLOOD LOW LYING AREAS SUCH AS DITCHES AND ##
UNDERPASSES. AVOID THESE AREAS AND DO NOT CROSS FLOODED ROADS ##
AS THEY MAY BE WASHED OUT. WATER LEVELS OF SMALL STREAMS AND ##
RIVERS MAY ALSO RISE...THEREFORE SEEK HIGHER GROUND IF THREATENED ##
BY FLOOD WATERS.
#end
#if(${list.contains($bullets, "intenselightning")})
INTENSE LIGHTNING IS REPORTED WITH THIS STORM. IF OUTDOORS...##
STAY AWAY FROM ISOLATED HIGH OBJECTS SUCH AS TREES. MOVE ##
INDOORS IF POSSIBLE. WHEN INDOORS...STAY AWAY FROM WINDOWS AND ##
DOORS AND AVOID USING TELEPHONES UNLESS IT IS AN EMERGENCY. ##
TRY TO UNPLUG UNNECESSARY ELECTRICAL APPLIANCES BEFORE THE ##
THUNDERSTORM APPROACHES.
#end
#############
## WATCHES ##
#############
#if(${list.contains($includedWatches, "torWatches")})
#inserttorwatches(${watches}, ${list}, ${secondtimezone}, ${dateUtil}, ${timeFormat})
#end
#if(${list.contains($includedWatches, "svrWatches")})
#insertsvrwatches(${watches}, ${list}, ${secondtimezone}, ${dateUtil}, ${timeFormat})
#end
########################
## LAT/LON, TML, SIGN ##
########################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
#tml(${start} ${movementDirection} ${movementInKnots} ${timeFormat} ${eventlocation})
$$
!**NAME/INITIALS**!

View file

@ -1,160 +0,0 @@
<!-- Special Weather Statement configuration -->
<!-- Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
-->
<warngenConfig>
<!-- Config distance/speed units -->
<unitDistance>mi</unitDistance>
<unitSpeed>mph</unitSpeed>
<!-- Maps to load on template selection. Refer to 'Maps' menu in CAVE.
The various menu items are also the different maps
that can be loaded with each template. -->
<maps>
</maps>
<!-- Followups: VTEC actions of allowable followups when this template is selected -->
<followups>
</followups>
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
<phensigs>
</phensigs>
<!-- Enables/disables user from selecting the Restart button the GUI -->
<enableRestart>true</enableRestart>
<!-- Enable/disables the system to lock text based on various patterns -->
<autoLockText>true</autoLockText>
<!-- Included watches: If a tornado watch or severe thunderstorm watch is to be
included with the warning product include torWatches and/or svrWatches,
respectively. Please refer to 'includedWatchAreaBuffer' in <areaConfig/>. -->
<includedWatches>
<includedWatch>torWatches</includedWatch>
<includedWatch>svrWatches</includedWatch>
</includedWatches>
<!-- durations: the list of possible durations of the warning -->
<defaultDuration>30</defaultDuration>
<durations>
<duration>10</duration>
<duration>15</duration>
<duration>20</duration>
<duration>25</duration>
<duration>30</duration>
<duration>40</duration>
<duration>45</duration>
<duration>50</duration>
<duration>60</duration>
<duration>75</duration>
</durations>
<bulletActionGroups>
<bulletActionGroup action="NEW">
<bullets>
<bullet bulletText="*********** BASIS FOR WARNING (CHOOSE 1) **********" bulletType="title"/>
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="group1" bulletDefault="true" parseString="NATIONAL WEATHER SERVICE DOPPLER RADAR INDICATED"/>
<bullet bulletName="spotter" bulletText="Radio spotters reported" bulletGroup="group1" parseString="AMATEUR RADIO WEATHER SPOTTERS REPORTED"/>
<bullet bulletName="public" bulletText="Public reported" bulletGroup="group1" parseString="THE PUBLIC REPORTED A TORNADO"/>
<bullet bulletText="*********** CALL TO ACTIONS (CHOOSE 1 OR MORE) **********" bulletType="title"/>
<bullet bulletName="streamflooding" bulletText="Urbansmall stream flooding" parseString="HEAVY RAINS MAY FLOOD LOW LYING"/>
<bullet bulletName="intenselightning" bulletText="Intense lightning" parseString="INTENSE LIGHTNING IS REPORTED"/>
</bullets>
</bulletActionGroup>
</bulletActionGroups>
<areaConfig>
<inclusionPercent>0.00</inclusionPercent>
<inclusionAndOr>AND</inclusionAndOr>
<inclusionArea>0</inclusionArea>
<areaField>COUNTYNAME</areaField>
<parentAreaField>NAME</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<feAreaField>FE_AREA</feAreaField>
<timeZoneField>TIME_ZONE</timeZoneField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<fipsField>FIPS</fipsField>
<pointField>NAME</pointField>
<sortBy>
<sort>parent</sort>
</sortBy>
<pointFilter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1" constraintType="EQUALS" />
</mapping>
</pointFilter>
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
</areaConfig>
<pointSource variable="otherPoints">
<pointField>NAME</pointField>
<searchMethod>TRACK</searchMethod>
<withinPolygon>true</withinPolygon>
<maxResults>50</maxResults>
<distanceThreshold>10</distanceThreshold>
<sortBy>
<sort>warngenlev</sort>
<sort>population</sort>
</sortBy>
</pointSource>
<pointSource variable="closestPoints">
<pointField>NAME</pointField>
<searchMethod>POINTS</searchMethod>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2" constraintType="IN" />
</mapping>
</filter>
<maxResults>1</maxResults>
<distanceThreshold>50</distanceThreshold>
<sortBy>
<sort>distance</sort>
<sort>warngenlev</sort>
</sortBy>
</pointSource>
<pointSource variable="otherClosestPoints">
<pointField>NAME</pointField>
<searchMethod>POINTS</searchMethod>
<filter>
<mapping key="WARNGENLEV">
<constraint constraintValue="1,2" constraintType="IN" />
</mapping>
</filter>
<maxResults>5</maxResults>
<distanceThreshold>100</distanceThreshold>
<sortBy>
<sort>distance</sort>
<sort>warngenlev</sort>
</sortBy>
</pointSource>
<pathcastConfig>
<withinPolygon>true</withinPolygon>
<distanceThreshold>8.0</distanceThreshold>
<interval>5</interval>
<delta>5</delta>
<maxResults>4</maxResults>
<maxGroup>8</maxGroup>
<pointField>Name</pointField>
<areaField>COUNTYNAME</areaField>
<parentAreaField>STATE</parentAreaField>
<areaNotationField>STATE</areaNotationField>
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
<sortBy>
<sort>distance</sort>
</sortBy>
</pathcastConfig>
<geospatialConfig>
<pointSource>City</pointSource>
<areaSource>County</areaSource>
<parentAreaSource>States</parentAreaSource>
<timezoneSource>TIMEZONES</timezoneSource>
<timezoneField>TIME_ZONE</timezoneField>
</geospatialConfig>
<include file="milemarkers.xml"/>
</warngenConfig>

View file

@ -47,7 +47,7 @@ class TextProduct(GenericHazards.TextProduct):
elif "_<MultiPil>" == "_WCZ":
Definition["subDomainUGCs"] = ["AKZ207","AKZ208","AKZ209","AKZ210",
"AKZ211","AKZ212","AKZ213","AKZ214",
"AKZ215","AKZ216","AKZ217"]
"AKZ215","AKZ216","AKZ217","AKZ227"]
# Header configuration items
Definition["productName"] = "AIR QUALITY ALERT" # name of product

View file

@ -46,7 +46,7 @@ class TextProduct(GenericHazards.TextProduct):
elif "_<MultiPil>" == "_WCZ":
Definition["subDomainUGCs"] = ["AKZ207","AKZ208","AKZ209","AKZ210",
"AKZ211","AKZ212","AKZ213","AKZ214",
"AKZ215","AKZ216","AKZ217"]
"AKZ215","AKZ216","AKZ217","AKZ227"]
# Header configuration items

View file

@ -46,7 +46,7 @@ class TextProduct(GenericHazards.TextProduct):
elif "_<MultiPil>" == "_WCZ":
Definition["subDomainUGCs"] = ["AKZ207","AKZ208","AKZ209","AKZ210",
"AKZ211","AKZ212","AKZ213","AKZ214",
"AKZ215","AKZ216","AKZ217"]
"AKZ215","AKZ216","AKZ217","AKZ227"]
# Header configuration items

View file

@ -55,7 +55,7 @@ class TextProduct(GenericHazards.TextProduct):
elif "_<MultiPil>" == "_WCZ":
Definition["subDomainUGCs"] = ["AKZ207","AKZ208","AKZ209","AKZ210",
"AKZ211","AKZ212","AKZ213","AKZ214",
"AKZ215","AKZ216","AKZ217"]
"AKZ215","AKZ216","AKZ217","AKZ227"]
# Header configuration items
Definition["productName"] = "URGENT - FIRE WEATHER MESSAGE" # name of product

View file

@ -46,7 +46,7 @@ class TextProduct(GenericHazards.TextProduct):
elif "_<MultiPil>" == "_WCZ":
Definition["subDomainUGCs"] = ["AKZ207","AKZ208","AKZ209","AKZ210",
"AKZ211","AKZ212","AKZ213","AKZ214",
"AKZ215","AKZ216","AKZ217"]
"AKZ215","AKZ216","AKZ217","AKZ227"]
# Header configuration items

View file

@ -62,7 +62,7 @@ class TextProduct(GenericReport.TextProduct):
elif "_<MultiPil>" == "_WCZ":
Definition["subDomainUGCs"] = ["AKZ207","AKZ208","AKZ209","AKZ210",
"AKZ211","AKZ212","AKZ213","AKZ214",
"AKZ215","AKZ216","AKZ217"]
"AKZ215","AKZ216","AKZ217","AKZ227"]
# product identifiers
Definition["productName"] = "SPECIAL WEATHER STATEMENT" # product name

View file

@ -65,7 +65,7 @@ if "<site>" == "AFG":
elif "_<MultiPil>" == "_WCZ":
Definition["subDomainUGCs"] = ["AKZ207","AKZ208","AKZ209","AKZ210",
"AKZ211","AKZ212","AKZ213","AKZ214",
"AKZ215","AKZ216","AKZ217"]
"AKZ215","AKZ216","AKZ217","AKZ227"]
# Header configuration items
#Definition["productName"] = "FIRE WEATHER PLANNING FORECAST" # name of product

View file

@ -63,7 +63,7 @@ if "<site>" == "AFG":
elif "_<MultiPil>" == "_WCZ":
Definition["subDomainUGCs"] = ["AKZ207","AKZ208","AKZ209","AKZ210",
"AKZ211","AKZ212","AKZ213","AKZ214",
"AKZ215","AKZ216","AKZ217"]
"AKZ215","AKZ216","AKZ217","AKZ227"]
#Definition["tempLocalEffects"] = 1 # Set to 1 to enable Temp and RH local effects AFTER
# creating AboveElev and BelowElev edit areas

View file

@ -53,6 +53,6 @@ if "<site>" == "AFG":
elif "_<MultiPil>" == "_WCZ":
Definition["subDomainUGCs"] = ["AKZ207","AKZ208","AKZ209","AKZ210",
"AKZ211","AKZ212","AKZ213","AKZ214",
"AKZ215","AKZ216","AKZ217"]
"AKZ215","AKZ216","AKZ217","AKZ227"]

View file

@ -53,5 +53,5 @@ if "<site>" == "AFG":
elif "_<MultiPil>" == "_WCZ":
Definition["subDomainUGCs"] = ["AKZ207","AKZ208","AKZ209","AKZ210",
"AKZ211","AKZ212","AKZ213","AKZ214",
"AKZ215","AKZ216","AKZ217"]
"AKZ215","AKZ216","AKZ217","AKZ227"]

View file

@ -75,7 +75,7 @@ if "<site>" == "AFG":
elif "_<MultiPil>" == "_WCZ":
Definition["subDomainUGCs"] = ["AKZ207","AKZ208","AKZ209","AKZ210",
"AKZ211","AKZ212","AKZ213","AKZ214",
"AKZ215","AKZ216","AKZ217"]
"AKZ215","AKZ216","AKZ217","AKZ227"]
#Definition["tempLocalEffects"] = 1 # Set to 1 to enable Temp and RH local effects AFTER
# creating Inland and Coastal edit areas
#Definition["windLocalEffects"] = 1 # Set to 1 to enable wind local effects AFTER

View file

@ -61,7 +61,7 @@ if "<site>" == "AFG":
elif "_<MultiPil>" == "_WCZ":
Definition["subDomainUGCs"] = ["AKZ207","AKZ208","AKZ209","AKZ210",
"AKZ211","AKZ212","AKZ213","AKZ214",
"AKZ215","AKZ216","AKZ217"]
"AKZ215","AKZ216","AKZ217","AKZ227"]
# Header configuration items
#Definition["productName"] = "ZONE FORECAST PRODUCT" # name of product

View file

@ -50,7 +50,7 @@
<!-- LDAD (watch/warn) triggered script runner -->
<route id="ldadWatchWarn">
<from uri="jms-generic:queue:watchwarn?destinationResolver=#qpidDurableResolver"/>
<from uri="jms-durable:queue:watchwarn"/>
<doTry>
<bean ref="ldadScriptRunner" method="runScripts" />
<doCatch>

View file

@ -76,7 +76,7 @@
<method bean="uriAggregator" method="hasUris" />
<bean ref="uriAggregator" method="sendQueuedUris" />
<bean ref="serializationUtil" method="transformToThrift" />
<to uri="jms-generic:topic:edex.alerts?timeToLive=60000&amp;deliveryPersistent=false"/>
<to uri="jms-generic:topic:edex.alerts?timeToLive=60000"/>
</filter>
</route>
</camelContext>

View file

@ -12,7 +12,7 @@
<bean id="airepDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="airep" />
<constructor-arg value="jms-dist:queue:Ingest.airep" />
<constructor-arg value="jms-dist:queue:Ingest.airep"/>
</bean>
<bean id="airepCamelRegistered" factory-bean="contextManager"
@ -33,13 +33,13 @@
<setHeader headerName="pluginName">
<constant>airep</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.airep" />
<to uri="jms-durable:queue:Ingest.airep" />
</route>
-->
<!-- Begin airep routes -->
<route id="airepIngestRoute">
<from uri="jms-generic:queue:Ingest.airep?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.airep"/>
<setHeader headerName="pluginName">
<constant>airep</constant>
</setHeader>

View file

@ -9,7 +9,7 @@
<bean id="binlightningDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="binlightning" />
<constructor-arg value="jms-dist:queue:Ingest.binlightning?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.binlightning" />
</bean>
<bean id="binlightningCamelRegistered" factory-bean="clusteredCamelContextMgr"
@ -31,13 +31,13 @@
<setHeader headerName="pluginName">
<constant>binlightning</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.binlightning" />
<to uri="jms-durable:queue:Ingest.binlightning" />
</route>
-->
<!-- Begin binlightning routes -->
<route id="binlightningIngestRoute">
<from uri="jms-generic:queue:Ingest.binlightning?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.binlightning"/>
<setHeader headerName="pluginName">
<constant>binlightning</constant>
</setHeader>

View file

@ -8,7 +8,7 @@
<bean id="bufrmosDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="bufrmos" />
<constructor-arg value="jms-dist:queue:Ingest.bufrmos?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.bufrmos" />
</bean>
<bean id="bufrmosCamelRegistered" factory-bean="contextManager"
@ -30,13 +30,13 @@
<setHeader headerName="pluginName">
<constant>bufrmos</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.bufrmos" />
<to uri="jms-durable:queue:Ingest.bufrmos" />
</route>
-->
<!-- Begin bufrmos routes -->
<route id="bufrmosIngestRoute">
<from uri="jms-generic:queue:Ingest.bufrmos?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.bufrmos" />
<setHeader headerName="pluginName">
<constant>bufrmos</constant>
</setHeader>

View file

@ -32,13 +32,13 @@
<setHeader headerName="pluginName">
<constant>bufrua</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.bufrua"/>
<to uri="jms-durable:queue:Ingest.bufrua"/>
</route>
-->
<!-- Begin BUFRUA routes -->
<route id="bufruaIngestRoute">
<from uri="jms-generic:queue:Ingest.bufrua?destinationResolver=#qpidDurableResolver"/>
<from uri="jms-durable:queue:Ingest.bufrua"/>
<setHeader headerName="pluginName">
<constant>bufrua</constant>
</setHeader>

View file

@ -29,13 +29,13 @@
<setHeader headerName="pluginName">
<constant>ccfp</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.ccfp" />
<to uri="jms-durable:queue:Ingest.ccfp" />
</route>
-->
<!-- Begin ccfp routes -->
<route id="ccfpIngestRoute">
<from uri="jms-generic:queue:Ingest.ccfp?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.ccfp"/>
<setHeader headerName="pluginName">
<constant>ccfp</constant>
</setHeader>

View file

@ -55,7 +55,7 @@
errorHandlerRef="errorHandler">
<route id="gfeParmIdCacheListenerEndpoint">
<from uri="jms-generic:topic:gfeGribNotification?concurrentConsumers=1" />
<from uri="jms-generic:topic:gfeGribNotification"/>
<doTry>
<bean ref="serializationUtil" method="transformFromThrift" />
<bean ref="parmIdFilter" method="updateParmIdCache" />
@ -87,7 +87,7 @@
</route>
<route id="rebuildD2DCacheAfterPurge">
<from uri="jms-generic:topic:pluginPurged" />
<from uri="jms-durable:topic:pluginPurged" />
<doTry>
<bean ref="d2dParmIdCache" method="pluginPurged" />
<doCatch>

View file

@ -464,9 +464,9 @@
<constructor-arg ref="jmsIscSendConfig" />
<property name="taskExecutor" ref="iscSendThreadPool" />
</bean>
<bean id="jmsIscSendConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy" />
<bean id="iscSendThreadPool"
<bean id="jmsIscSendConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsDurableConfig" factory-method="copy"/>
<bean id="iscSendThreadPool"
class="com.raytheon.uf.edex.esb.camel.spring.JmsThreadPoolTaskExecutor">
<property name="corePoolSize" value="2" />
<property name="maxPoolSize" value="2" />
@ -487,11 +487,11 @@
<!-- ISC Receive Beans -->
<bean id="jms-iscrec" class="org.apache.camel.component.jms.JmsComponent">
<constructor-arg ref="jmsIscReceiveConfig" />
<constructor-arg ref="jmsIscRecConfig" />
<property name="taskExecutor" ref="iscReceiveThreadPool" />
</bean>
<bean id="jmsIscReceiveConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy" />
<bean id="jmsIscRecConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsDurableConfig" factory-method="copy"/>
<bean id="iscReceiveThreadPool"
class="com.raytheon.uf.edex.esb.camel.spring.JmsThreadPoolTaskExecutor">
<property name="corePoolSize" value="2" />
@ -623,7 +623,7 @@
<!-- ISC Data Receive route -->
<route id="iscReceiveRoute">
<from uri="jms-iscrec:queue:gfeIscDataReceive?concurrentConsumers=2&amp;destinationResolver=#qpidDurableResolver" />
<from uri="jms-iscrec:queue:gfeIscDataReceive?concurrentConsumers=2"/>
<doTry>
<pipeline>
<bean ref="serializationUtil" method="transformFromThrift" />
@ -643,7 +643,7 @@
errorHandlerRef="errorHandler" autoStartup="false">
<route id="iscSendJobQueueAggr">
<from uri="jms-iscsend:queue:iscSendNotification?destinationResolver=#qpidDurableResolver" />
<from uri="jms-iscsend:queue:iscSendNotification" />
<doTry>
<bean ref="serializationUtil" method="transformFromThrift" />
<bean ref="iscSendQueue" method="addSendJobs" />

View file

@ -8,8 +8,8 @@
<constructor-arg ref="jmsSmartInitConfig" />
<property name="taskExecutor" ref="smartInitThreadPool" />
</bean>
<bean id="jmsSmartInitConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy" />
<bean id="jmsSmartInitConfig" class="org.apache.camel.component.jms.JmsConfiguration" factory-bean="jmsDurableConfig"
factory-method="copy"/>
<bean id="smartInitThreadPool"
class="com.raytheon.uf.edex.esb.camel.spring.JmsThreadPoolTaskExecutor">
<property name="corePoolSize" value="${smartinit.threadpoolsize}" />
@ -40,7 +40,7 @@
xmlns="http://camel.apache.org/schema/spring"
errorHandlerRef="errorHandler">
<route id="SPCWatch">
<from uri="jms-generic:queue:edex.spcWatch?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:edex.spcWatch"/>
<doTry>
<bean ref="spcWatch" method="handleSpcWatch" />
<doCatch>
@ -51,7 +51,7 @@
</route>
<route id="TPCWatch">
<from uri="jms-generic:queue:edex.tpcWatch?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:edex.tpcWatch"/>
<doTry>
<bean ref="tpcWatch" method="handleTpcWatch" />
<doCatch>
@ -78,7 +78,7 @@
<!-- gfeIngestNotification must be a singleton and has 4 threads to read due to throughput of messages during model run times -->
<route id="gfeIngestNotification">
<from uri="jms-generic:queue:gfeDataURINotification?destinationResolver=#qpidDurableResolver&amp;concurrentConsumers=4" />
<from uri="jms-durable:queue:gfeDataURINotification?concurrentConsumers=4" />
<doTry>
<bean ref="serializationUtil" method="transformFromThrift" />
<bean ref="gfeIngestFilter" method="filterDataURINotifications" />
@ -117,9 +117,9 @@
<!-- Convert the topic into a queue so only one consumer gets each message and we still have competing consumers. -->
<route id="gfeDataURINotificationQueueRoute">
<from uri="jms-gfe-notify:topic:edex.alerts" />
<from uri="jms-generic:topic:edex.alerts" />
<doTry>
<to uri="jms-generic:queue:gfeDataURINotification"/>
<to uri="jms-durable:queue:gfeDataURINotification"/>
<doCatch>
<exception>java.lang.Throwable</exception>
<to
@ -129,40 +129,6 @@
</route>
</camelContext>
<!-- Beans to define a custom jms connection which will allow a durable subscription -->
<bean id="gfeNotifyConnectionFactory" class="org.apache.qpid.client.AMQConnectionFactory">
<constructor-arg type="java.lang.String" value="amqp://guest:guest@gfeNotify/edex?brokerlist='tcp://${BROKER_ADDR}?retries='9999'&amp;connecttimeout='5000'&amp;connectdelay='5000''&amp;maxprefetch='0'&amp;sync_publish='all'&amp;sync_ack='true'"/>
</bean>
<bean id="gfeNotifyPooledConnectionFactory" class="com.raytheon.uf.common.jms.JmsPooledConnectionFactory">
<constructor-arg ref="gfeNotifyConnectionFactory"/>
<property name="provider" value="QPID"/>
<property name="reconnectInterval" value="5000"/>
<!-- After connection has been closed by thread keep it allocated for another 90 seconds in case thread needs it again -->
<property name="connectionHoldTime" value="90000"/>
<!-- Any resource that has been available in the pool for more than 1 minute will be closed -->
<property name="resourceRetention" value="60000"/>
<property name="maxSpareConnections" value="1"/>
</bean>
<bean id="gfeNotifyJmsConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy">
<property name="listenerConnectionFactory" ref="gfeNotifyPooledConnectionFactory" />
<property name="templateConnectionFactory" ref="gfeNotifyPooledConnectionFactory" />
</bean>
<bean id="gfeNotifyThreadPool"
class="com.raytheon.uf.edex.esb.camel.spring.JmsThreadPoolTaskExecutor">
<property name="corePoolSize" value="1" />
<property name="maxPoolSize" value="1" />
</bean>
<bean id="jms-gfe-notify" class="org.apache.camel.component.jms.JmsComponent">
<constructor-arg ref="gfeNotifyJmsConfig" />
<property name="taskExecutor" ref="gfeNotifyThreadPool" />
</bean>
<!-- end of custom JMS beans -->
<bean factory-bean="clusteredCamelContextMgr"
factory-method="register">
<constructor-arg ref="clusteredGfeIngestRoutes" />

View file

@ -21,7 +21,6 @@
package com.raytheon.edex.plugin.gfe.cache.d2dparms;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@ -72,6 +71,8 @@ import com.raytheon.uf.edex.site.SiteAwareRegistry;
* Mar 20, 2013 #1774 randerso Changed to use GFDD2DDao
* Apr 01, 2013 #1774 randerso Moved wind component checking to GfeIngestNotificaionFilter
* May 14, 2013 #2004 randerso Added DBInvChangeNotifications when D2D data is purged
* Sep 12, 2013 #2348 randerso Changed to send DBInvChangeNotifications in a batch instead
* of one at a time.
*
* </pre>
*
@ -325,10 +326,16 @@ public class D2DParmIdCache {
try {
D2DGridDatabase db = (D2DGridDatabase) GridParmManager
.getDb(dbIds.get(i));
ServerResponse<List<ParmID>> sr = db
.getParmList();
if (sr.isOkay()) {
parmIds.addAll(sr.getPayload());
if (db == null) {
statusHandler
.error("Unable to get parm list for: "
+ dbIds.get(i));
} else {
ServerResponse<List<ParmID>> sr = db
.getParmList();
if (sr.isOkay()) {
parmIds.addAll(sr.getPayload());
}
}
} catch (GfeException e) {
throw new PluginException(
@ -346,13 +353,8 @@ public class D2DParmIdCache {
putParmIDList(parmIds);
List<DatabaseID> currentDbInventory = this.getDatabaseIDs();
dbsToRemove.removeAll(currentDbInventory);
List<DBInvChangeNotification> invChgList = new ArrayList<DBInvChangeNotification>(
dbsToRemove.size());
for (DatabaseID dbId : dbsToRemove) {
invChgList.add(new DBInvChangeNotification(null, Arrays
.asList(dbId), siteID));
}
SendNotifications.send(invChgList);
SendNotifications.send(new DBInvChangeNotification(null,
dbsToRemove, siteID));
// inform GfeIngestNotificationFilter of removed dbs
GfeIngestNotificationFilter.purgeDbs(dbsToRemove);

View file

@ -88,7 +88,7 @@ import com.raytheon.uf.edex.site.notify.SendSiteActivationNotifications;
* activation.
* Mar 20, 2013 #1774 randerso Changed to use GFED2DDao
* May 02, 2013 #1969 randerso Moved updateDbs method into IFPGridDatabase
*
* Sep 13, 2013 2368 rjpeter Used durable jms settings.
* </pre>
*
* @author njensen
@ -115,7 +115,7 @@ public class GFESiteActivation implements ISiteActivationListener {
private boolean intialized = false;
private ExecutorService postActivationTaskExecutor = MoreExecutors
private final ExecutorService postActivationTaskExecutor = MoreExecutors
.getExitingExecutorService((ThreadPoolExecutor) Executors
.newCachedThreadPool());
@ -356,7 +356,7 @@ public class GFESiteActivation implements ISiteActivationListener {
GridDatabase db = GridParmManager.getDb(dbid);
// cluster locked since IFPGridDatabase can modify the grids
// based on changes to grid size, etc
if (db instanceof IFPGridDatabase && db.databaseIsValid()) {
if ((db instanceof IFPGridDatabase) && db.databaseIsValid()) {
((IFPGridDatabase) db).updateDbs();
}
}
@ -410,7 +410,7 @@ public class GFESiteActivation implements ISiteActivationListener {
long startTime = System.currentTimeMillis();
// wait for system startup or at least 3 minutes
while (!EDEXUtil.isRunning()
|| System.currentTimeMillis() > startTime + 180000) {
|| (System.currentTimeMillis() > (startTime + 180000))) {
try {
Thread.sleep(15000);
} catch (InterruptedException e) {
@ -420,7 +420,7 @@ public class GFESiteActivation implements ISiteActivationListener {
ClusterTask ct = ClusterLockUtils.lookupLock(TASK_NAME,
SMART_INIT_TASK_DETAILS + siteID);
if (ct.getLastExecution() + SMART_INIT_TIMEOUT < System
if ((ct.getLastExecution() + SMART_INIT_TIMEOUT) < System
.currentTimeMillis()) {
ct = ClusterLockUtils.lock(TASK_NAME,
SMART_INIT_TASK_DETAILS + siteID,
@ -467,7 +467,7 @@ public class GFESiteActivation implements ISiteActivationListener {
"Firing smartinit for " + id);
try {
producer.sendAsyncUri(
"jms-generic:queue:manualSmartInit",
"jms-durable:queue:manualSmartInit",
id
+ ":0::"
+ SmartInitRecord.SITE_ACTIVATION_INIT_PRIORITY);
@ -499,7 +499,7 @@ public class GFESiteActivation implements ISiteActivationListener {
long startTime = System.currentTimeMillis();
// wait for system startup or at least 3 minutes
while (!EDEXUtil.isRunning()
|| System.currentTimeMillis() > startTime + 180000) {
|| (System.currentTimeMillis() > (startTime + 180000))) {
try {
Thread.sleep(15000);
} catch (InterruptedException e) {

View file

@ -100,6 +100,12 @@ import com.raytheon.uf.edex.database.purge.PurgeLogger;
* Removed inventory from DBInvChangedNotification
* 05/03/13 #1974 randerso Fixed error logging to include stack trace
* 05/14/13 #2004 randerso Added methods to synch GridParmManager across JVMs
* 09/12/13 #2348 randerso Added logging when database are added/removed from dbMap
* Fixed the synchronization of dbMap with the database inventory
* Changed to call D2DGridDatabase.getDatabase instead of calling
* the constructor directly to ensure the data exists before creating
* the D2DGridDatabase object
*
* </pre>
*
* @author bphillip
@ -1016,10 +1022,10 @@ public class GridParmManager {
sr.addMessage("VersionPurge failed - couldn't get inventory");
return sr;
}
List<DatabaseID> databases = sr.getPayload();
List<DatabaseID> currentInv = sr.getPayload();
// sort the inventory by site, type, model, time (most recent first)
Collections.sort(databases);
Collections.sort(currentInv);
// process the inventory looking for "old" unwanted databases
String model = null;
@ -1027,7 +1033,7 @@ public class GridParmManager {
String type = null;
int count = 0;
int desiredVersions = 0;
for (DatabaseID dbId : databases) {
for (DatabaseID dbId : currentInv) {
// new series?
if (!dbId.getSiteId().equals(site)
|| !dbId.getDbType().equals(type)
@ -1055,11 +1061,31 @@ public class GridParmManager {
}
}
List<DatabaseID> newInv = getDbInventory(siteID).getPayload();
List<DatabaseID> additions = new ArrayList<DatabaseID>(newInv);
additions.removeAll(currentInv);
List<DatabaseID> deletions = new ArrayList<DatabaseID>(currentInv);
deletions.removeAll(newInv);
// kludge to keep dbMap in synch until GridParmManager/D2DParmICache
// merge/refactor
dbMap.keySet().retainAll(databases);
List<DatabaseID> toRemove = new ArrayList<DatabaseID>(dbMap.keySet());
toRemove.removeAll(newInv);
for (DatabaseID dbId : toRemove) {
statusHandler
.info("Synching GridParmManager with database inventory, removing "
+ dbId);
dbMap.remove(dbId);
createDbNotification(siteID, databases);
// add any removals to the deletions list
// so notifications go to the other JVMs
if (!deletions.contains(dbId)) {
deletions.add(dbId);
}
}
createDbNotification(siteID, additions, deletions);
return sr;
}
@ -1220,8 +1246,8 @@ public class GridParmManager {
// ingested
String d2dModelName = serverConfig
.d2dModelNameMapping(modelName);
db = new D2DGridDatabase(serverConfig, d2dModelName,
dbId.getModelTimeAsDate());
db = D2DGridDatabase.getDatabase(serverConfig,
d2dModelName, dbId.getModelTimeAsDate());
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM,
e.getLocalizedMessage(), e);
@ -1244,6 +1270,7 @@ public class GridParmManager {
}
if ((db != null) && db.databaseIsValid()) {
statusHandler.info("getDb called, adding " + dbId);
dbMap.put(dbId, db);
}
}
@ -1255,6 +1282,8 @@ public class GridParmManager {
while (iter.hasNext()) {
DatabaseID dbId = iter.next();
if (dbId.getSiteId().equals(siteID)) {
statusHandler.info("purgeDbCache(" + siteID + "), removing "
+ dbId);
iter.remove();
}
}
@ -1370,18 +1399,6 @@ public class GridParmManager {
return sr;
}
private static void createDbNotification(String siteID,
List<DatabaseID> prevInventory) {
List<DatabaseID> newInventory = getDbInventory(siteID).getPayload();
List<DatabaseID> additions = new ArrayList<DatabaseID>(newInventory);
additions.removeAll(prevInventory);
List<DatabaseID> deletions = new ArrayList<DatabaseID>(prevInventory);
deletions.removeAll(newInventory);
createDbNotification(siteID, additions, deletions);
}
private static void createDbNotification(String siteID,
List<DatabaseID> additions, List<DatabaseID> deletions) {
if (!additions.isEmpty() || !deletions.isEmpty()) {
@ -1400,6 +1417,7 @@ public class GridParmManager {
"Unable to purge model database: " + id, e);
}
}
statusHandler.info("deallocateDb called, removing " + id);
dbMap.remove(id);
}
@ -1429,6 +1447,9 @@ public class GridParmManager {
}
for (DatabaseID dbId : invChanged.getDeletions()) {
statusHandler
.info("DBInvChangeNotification deletion received, removing "
+ dbId);
dbMap.remove(dbId);
}
}

View file

@ -43,7 +43,6 @@ import com.raytheon.edex.plugin.gfe.db.dao.GFED2DDao;
import com.raytheon.edex.plugin.gfe.paraminfo.GridParamInfo;
import com.raytheon.edex.plugin.gfe.paraminfo.GridParamInfoLookup;
import com.raytheon.edex.plugin.gfe.paraminfo.ParameterInfo;
import com.raytheon.edex.plugin.gfe.server.GridParmManager;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.PluginException;
import com.raytheon.uf.common.dataplugin.gfe.GridDataHistory;
@ -107,6 +106,9 @@ import com.raytheon.uf.edex.database.DataAccessLayerException;
* 04/17/2013 #1913 randerso Added GFE level mapping to replace GridTranslator
* 05/02/2013 #1969 randerso Removed unnecessary updateDbs method
* 05/03/2013 #1974 randerso Fixed error handling when no D2D level mapping found
* 09/12/2013 #2348 randerso Removed code that called getDb from getD2DDatabaseIdsFromDb
* Added function to create a D2DGridDatabase object only if there is
* data in postgres for the desired model/reftime
*
* </pre>
*
@ -135,6 +137,33 @@ public class D2DGridDatabase extends VGridDatabase {
gfeModelName, modelTime);
}
/**
* Get a D2DGridDatabase if it is available
*
* @param config
* configuration for site
* @param dbId
* DatabaseID of desired database
* @return D2DGridDatabase or null if not available
*/
public static D2DGridDatabase getDatabase(IFPServerConfig config,
String d2dModelName, Date refTime) {
try {
GFED2DDao dao = new GFED2DDao();
List<Date> result = dao.getModelRunTimes(d2dModelName, -1);
if (result.contains(refTime)) {
D2DGridDatabase db = new D2DGridDatabase(config, d2dModelName,
refTime);
return db;
}
return null;
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
return null;
}
}
/**
* Retrieves DatabaseIDs for all model runs of a given d2dModelName
*
@ -178,15 +207,7 @@ public class D2DGridDatabase extends VGridDatabase {
for (Date date : result) {
DatabaseID dbId = null;
dbId = getDbId(d2dModelName, date, config);
try {
GridDatabase db = GridParmManager.getDb(dbId);
if ((db != null) && !dbInventory.contains(dbId)) {
dbInventory.add(dbId);
}
} catch (GfeException e) {
statusHandler.handle(Priority.PROBLEM,
e.getLocalizedMessage(), e);
}
dbInventory.add(dbId);
}
return dbInventory;
} catch (PluginException e) {
@ -285,10 +306,14 @@ public class D2DGridDatabase extends VGridDatabase {
/**
* Constructs a new D2DGridDatabase
*
* For internal use only. External code should call
* D2DGridDatabase.getDatabase(IFPServerConfig, String, Date) to ensure
* objects are only created if data is present
*
* @param dbId
* The database ID of this database
*/
public D2DGridDatabase(IFPServerConfig config, String d2dModelName,
private D2DGridDatabase(IFPServerConfig config, String d2dModelName,
Date refTime) throws GfeException {
super(config);

View file

@ -35,7 +35,7 @@ import com.raytheon.uf.common.serialization.comm.IRequestHandler;
import com.raytheon.uf.edex.core.EDEXUtil;
/**
* TODO Add Description
* Handler for SmartInitRequest.
*
* <pre>
*
@ -43,7 +43,7 @@ import com.raytheon.uf.edex.core.EDEXUtil;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Oct 12, 2010 dgilling Initial creation
*
* Sep 13, 2013 2368 rjpeter Used durable jms settings.
* </pre>
*
* @author dgilling
@ -93,7 +93,7 @@ public class SmartInitRequestHandler implements
.append(SmartInitRecord.MANUAL_SMART_INIT_PRIORITY);
EDEXUtil.getMessageProducer().sendAsyncUri(
"jms-generic:queue:manualSmartInit",
"jms-durable:queue:manualSmartInit",
manualInitString.toString());
} else {
sr.addMessage("No valid model data could be retrieved for model "

View file

@ -12,7 +12,7 @@
<bean id="goessoundingDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg ref="goessoundingPluginName" />
<constructor-arg value="jms-dist:queue:Ingest.goessounding?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.goessounding"/>
</bean>
<bean id="goessoundingCamelRegistered" factory-bean="contextManager"
@ -35,13 +35,13 @@
<setHeader headerName="pluginName">
<constant>goessounding</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.goessounding" />
<to uri="jms-durable:queue:Ingest.goessounding" />
</route>
-->
<!-- Begin GOES Sounding routes -->
<route id="goessndgIngestRoute">
<from uri="jms-generic:queue:Ingest.goessounding?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.goessounding"/>
<setHeader headerName="pluginName">
<constant>goessounding</constant>
</setHeader>

View file

@ -6,14 +6,11 @@
<bean id="gribDecoder" class="com.raytheon.edex.plugin.grib.GribDecoder" />
<bean id="ingest-grib" class="org.apache.camel.component.jms.JmsComponent">
<constructor-arg ref="jmsIngestGribConfig" />
<constructor-arg ref="jmsGribConfig" />
<property name="taskExecutor" ref="gribThreadPool" />
</bean>
<bean id="jmsIngestGribConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy">
</bean>
<bean id="jmsGribConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsDurableConfig" factory-method="copy"/>
<bean id="gribThreadPool"
class="com.raytheon.uf.edex.esb.camel.spring.JmsThreadPoolTaskExecutor">
<property name="corePoolSize" value="${grib-decode.count.threads}" />
@ -61,7 +58,7 @@
autoStartup="false">
<endpoint id="gribFileEndpoint" uri="file:${edex.home}/data/sbn/grib?noop=true&amp;idempotent=false" />
<endpoint id="gribJmsEndpoint" uri="ingest-grib:queue:Ingest.Grib?concurrentConsumers=${grib-decode.count.threads}&amp;destinationResolver=#qpidDurableResolver" />
<endpoint id="gribJmsEndpoint" uri="ingest-grib:queue:Ingest.Grib?concurrentConsumers=${grib-decode.count.threads}"/>
<route id="gribFileConsumerRoute">
<from ref="gribFileEndpoint" />

View file

@ -6,14 +6,11 @@
<bean id="gribDecoder" class="com.raytheon.edex.plugin.grib.GribDecoder" />
<bean id="ingest-grib" class="org.apache.camel.component.jms.JmsComponent">
<constructor-arg ref="jmsIngestGribConfig" />
<constructor-arg ref="jmsGribConfig" />
<property name="taskExecutor" ref="gribThreadPool" />
</bean>
<bean id="jmsIngestGribConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy">
</bean>
<bean id="jmsGribConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsDurableConfig" factory-method="copy"/>
<bean id="gribThreadPool"
class="com.raytheon.uf.edex.esb.camel.spring.JmsThreadPoolTaskExecutor">
<property name="corePoolSize" value="${grib-decode.count.threads}" />
@ -57,7 +54,7 @@
autoStartup="false">
<endpoint id="gribFileEndpoint" uri="file:${edex.home}/data/sbn/grib?noop=true&amp;idempotent=false" />
<endpoint id="gribJmsEndpoint" uri="ingest-grib:queue:Ingest.Grib?concurrentConsumers=${grib-decode.count.threads}&amp;destinationResolver=#qpidDurableResolver" />
<endpoint id="gribJmsEndpoint" uri="ingest-grib:queue:Ingest.Grib?concurrentConsumers=${grib-decode.count.threads}"/>
<route id="gribFileConsumerRoute">
<from ref="gribFileEndpoint" />

View file

@ -515,11 +515,6 @@
<datasetId>FFG-TIR</datasetId>
<dt>1</dt>
</info>
<info>
<title>FFG-TIR-HiRes</title>
<datasetId>FFG-TIR-HiRes</datasetId>
<dt>1</dt>
</info>
<info>
<title>QPE-TIR</title>
<datasetId>QPE-TIR</datasetId>

View file

@ -1084,16 +1084,6 @@
<name>FFG-TIR</name>
<center>9</center>
<subcenter>160</subcenter>
<grid>240160</grid>
<process>
<id>151</id>
</process>
</model>
<model>
<name>FFG-TIR-HiRes</name>
<center>9</center>
<subcenter>160</subcenter>
<grid>250160</grid>
<process>
<id>151</id>

View file

@ -21,11 +21,11 @@
<setHeader headerName="pluginName">
<constant>ldad</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.ldad" />
<to uri="jms-durable:queue:Ingest.ldad" />
</route>
<route id="ldadIngestRoute">
<from uri="jms-generic:queue:Ingest.ldad" />
<from uri="jms-durable:queue:Ingest.ldad" />
<multicast>
<try>
<to uri="direct-vm:ldadmesonetIngest" />

View file

@ -15,7 +15,7 @@
<bean id="ldadhydroDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="ldadhydro" />
<constructor-arg value="jms-dist:queue:Ingest.ldadhydro?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.ldadhydro" />
</bean>
<bean id="ldadhydroPointData" class="com.raytheon.edex.plugin.ldadhydro.dao.LdadhydroPointDataTransform"/>
@ -30,7 +30,7 @@
errorHandlerRef="errorHandler"
autoStartup="false">
<route id="ldadhydroIngestRoute">
<from uri="jms-generic:queue:Ingest.ldadhydro?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.ldadhydro"/>
<doTry>
<pipeline>
<bean ref="stringToFile" />

View file

@ -14,7 +14,7 @@
<bean id="ldadmanualDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="ldadmanual" />
<constructor-arg value="jms-dist:queue:Ingest.ldadmanual?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.ldadmanual"/>
</bean>
<bean id="ldadmanualCamelRegistered" factory-bean="contextManager"
@ -28,7 +28,7 @@
autoStartup="false">
<route id="ldadmanualIngestRoute">
<from uri="jms-generic:queue:Ingest.ldadmanual?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.ldadmanual"/>
<doTry>
<pipeline>
<bean ref="stringToFile" />

View file

@ -16,7 +16,7 @@
<bean id="ldadprofilerDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="ldadprofiler" />
<constructor-arg value="jms-dist:queue:Ingest.ldadprofiler?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.ldadprofiler"/>
</bean>
<bean id="ldadprofilerCamelRegistered" factory-bean="contextManager"
@ -37,13 +37,13 @@
<setHeader headerName="pluginName">
<constant>ldadprofiler</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.ldadprofiler" />
<to uri="jms-durable:queue:Ingest.ldadprofiler" />
</route>
-->
<!-- Begin ldadprofiler routes -->
<route id="ldadprofilerIngestRoute">
<from uri="jms-generic:queue:Ingest.ldadprofiler?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.ldadprofiler"/>
<doTry>
<pipeline>
<bean ref="stringToFile" />

View file

@ -22,7 +22,7 @@
<bean id="mdlsndgDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg ref="modelsoundingPluginName" />
<constructor-arg value="jms-dist:queue:Ingest.modelsounding?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.modelsounding"/>
</bean>
<bean id="modelsoundingCamelRegistered" factory-bean="contextManager"
@ -45,13 +45,13 @@
<setHeader headerName="pluginName">
<constant>modelsounding</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.modelsounding" />
<to uri="jms-durable:queue:Ingest.modelsounding" />
</route>
-->
<!-- Begin Model Sounding routes -->
<route id="modelsndgIngestRoute">
<from uri="jms-generic:queue:Ingest.modelsounding?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.modelsounding"/>
<setHeader headerName="pluginName">
<constant>modelsounding</constant>
</setHeader>

View file

@ -14,7 +14,7 @@
<bean id="obsDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="obs" />
<constructor-arg value="jms-dist:queue:Ingest.obs?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.obs"/>
</bean>
<bean id="obsCamelRegistered" factory-bean="contextManager"
@ -38,13 +38,13 @@
<setHeader headerName="pluginName">
<constant>obs</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.obs" />
<to uri="jms-durable:queue:Ingest.obs" />
</route>
-->
<!-- Begin METAR routes -->
<route id="metarIngestRoute">
<from uri="jms-generic:queue:Ingest.obs?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.obs"/>
<setHeader headerName="pluginName">
<constant>obs</constant>
</setHeader>

View file

@ -34,12 +34,12 @@
<setHeader headerName="pluginName">
<constant>pirep</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.pirep"/>
<to uri="jms-durable:queue:Ingest.pirep"/>
</route>
-->
<!-- Begin Pirep routes -->
<route id="pirepIngestRoute">
<from uri="jms-generic:queue:Ingest.pirep?destinationResolver=#qpidDurableResolver"/>
<from uri="jms-durable:queue:Ingest.pirep"/>
<setHeader headerName="pluginName">
<constant>pirep</constant>
</setHeader>

View file

@ -9,7 +9,7 @@
<bean id="poessoundingDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg ref="poessoundingPluginName" />
<constructor-arg value="jms-dist:queue:Ingest.poessounding?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.poessounding"/>
</bean>
<bean id="poessoundingCamelRegistered" factory-bean="contextManager"
@ -30,13 +30,13 @@
<setHeader headerName="pluginName">
<constant>poessounding</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.poessounding"/>
<to uri="jms-durable:queue:Ingest.poessounding"/>
</route>
-->
<!-- Begin poes Sounding routes -->
<route id="poessndgIngestRoute">
<from uri="jms-generic:queue:Ingest.poessounding?destinationResolver=#qpidDurableResolver"/>
<from uri="jms-durable:queue:Ingest.poessounding"/>
<setHeader headerName="pluginName">
<constant>poessounding</constant>
</setHeader>

View file

@ -9,7 +9,7 @@
<bean id="profilerDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg ref="profilerPluginName" />
<constructor-arg value="jms-dist:queue:Ingest.profiler?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.profiler"/>
</bean>
<bean id="profilerCamelRegistered" factory-bean="contextManager"
@ -30,13 +30,13 @@
<setHeader headerName="pluginName">
<constant>profiler</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.profiler"/>
<to uri="jms-durable:queue:Ingest.profiler"/>
</route>
-->
<!-- Begin Profiler routes -->
<route id="profilerIngestRoute">
<from uri="jms-generic:queue:Ingest.profiler?destinationResolver=#qpidDurableResolver"/>
<from uri="jms-durable:queue:Ingest.profiler"/>
<setHeader headerName="pluginName">
<constant>profiler</constant>
</setHeader>

View file

@ -6,12 +6,11 @@
<bean id="radarDecompressor" class="com.raytheon.edex.plugin.radar.RadarDecompressor"/>
<bean id="radarDecoder" class="com.raytheon.edex.plugin.radar.RadarDecoder"/>
<bean id="jms-radar" class="org.apache.camel.component.jms.JmsComponent">
<constructor-arg ref="jmsIngestRadarConfig" />
<constructor-arg ref="jmsRadarConfig" />
<property name="taskExecutor" ref="radarThreadPool" />
</bean>
<bean id="jmsIngestRadarConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy">
</bean>
<bean id="jmsRadarConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsDurableConfig" factory-method="copy"/>
<bean id="radarThreadPool"
class="com.raytheon.uf.edex.esb.camel.spring.JmsThreadPoolTaskExecutor">
<property name="corePoolSize" value="2" />
@ -54,7 +53,7 @@
<!-- Begin Radar routes -->
<route id="radarIngestRoute">
<from uri="jms-radar:queue:Ingest.Radar?destinationResolver=#qpidDurableResolver" />
<from uri="jms-radar:queue:Ingest.Radar"/>
<setHeader headerName="dataType">
<constant>radar-sbn</constant>
</setHeader>
@ -62,7 +61,7 @@
</route>
<route id="radarRadarServerIngestRoute">
<from uri="jms-radar:queue:Ingest.RadarRadarServer?destinationResolver=#qpidDurableResolver" />
<from uri="jms-radar:queue:Ingest.RadarRadarServer"/>
<setHeader headerName="dataType">
<constant>radar-local</constant>
</setHeader>

View file

@ -33,13 +33,13 @@
<setHeader headerName="pluginName">
<constant>recco</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.recco" />
<to uri="jms-durable:queue:Ingest.recco" />
</route>
-->
<!-- Begin RECCO routes -->
<route id="reccoIngestRoute">
<from uri="jms-generic:queue:Ingest.recco?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.recco"/>
<setHeader headerName="pluginName">
<constant>recco</constant>
</setHeader>

View file

@ -10,7 +10,7 @@
<bean id="redbookDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="redbook" />
<constructor-arg value="jms-dist:queue:Ingest.redbook?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.redbook"/>
</bean>
<!--
@ -38,13 +38,13 @@
<setHeader headerName="pluginName">
<constant>redbook</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.redbook" />
<to uri="jms-durable:queue:Ingest.redbook" />
</route>
-->
<!-- Begin Redbook routes -->
<route id="redbookIngestRoute">
<from uri="jms-generic:queue:Ingest.redbook?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.redbook"/>
<setHeader headerName="pluginName">
<constant>redbook</constant>
</setHeader>

View file

@ -4,11 +4,11 @@
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="jms-satellite" class="org.apache.camel.component.jms.JmsComponent">
<constructor-arg ref="jmsIngestSatelliteConfig" />
<constructor-arg ref="jmsSatelliteConfig" />
<property name="taskExecutor" ref="satelliteThreadPool" />
</bean>
<bean id="jmsIngestSatelliteConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy" />
<bean id="jmsSatelliteConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsDurableConfig" factory-method="copy"/>
<bean id="satelliteThreadPool"
class="com.raytheon.uf.edex.esb.camel.spring.JmsThreadPoolTaskExecutor">
<property name="corePoolSize" value="1" />
@ -47,13 +47,13 @@
<setHeader headerName="pluginName">
<constant>satellite</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.Satellite" />
<to uri="jms-durable:queue:Ingest.Satellite" />
</route>
-->
<!-- Begin Sat routes -->
<route id="satIngestRoute">
<from uri="jms-satellite:queue:Ingest.Satellite?destinationResolver=#qpidDurableResolver" />
<from uri="jms-satellite:queue:Ingest.Satellite"/>
<setHeader headerName="pluginName">
<constant>satellite</constant>
</setHeader>

View file

@ -13,7 +13,7 @@
<bean id="sfcobsDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="sfcobs" />
<constructor-arg value="jms-dist:queue:Ingest.sfcobs?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.sfcobs"/>
</bean>
<bean id="sfcobsCamelRegistered" factory-bean="contextManager"
@ -37,13 +37,13 @@
<setHeader headerName="pluginName">
<constant>sfcobs</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.sfcobs" />
<to uri="jms-durable:queue:Ingest.sfcobs" />
</route>
-->
<!-- Begin sfcobs routes -->
<route id="sfcobsIngestRoute">
<from uri="jms-generic:queue:Ingest.sfcobs?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.sfcobs"/>
<setHeader headerName="pluginName">
<constant>sfcobs</constant>
</setHeader>

View file

@ -4,11 +4,11 @@
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="jms-shef" class="org.apache.camel.component.jms.JmsComponent">
<constructor-arg ref="jmsIngestShefConfig" />
<constructor-arg ref="jmsShefConfig" />
<property name="taskExecutor" ref="shefThreadPool" />
</bean>
<bean id="jmsIngestShefConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy" />
<bean id="jmsShefConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsDurableConfig" factory-method="copy"/>
<bean id="shefThreadPool"
class="com.raytheon.uf.edex.esb.camel.spring.JmsThreadPoolTaskExecutor">
<property name="corePoolSize" value="3" />
@ -47,13 +47,13 @@
factory-method="register">
<constructor-arg value="shef" />
<constructor-arg
value="jms-dist:queue:Ingest.Shef?destinationResolver=#qpidDurableResolver" />
value="jms-dist:queue:Ingest.Shef"/>
</bean>
<bean id="shefHandleoupDistRegistry" factory-bean="handleoupDistributionSrv"
factory-method="register">
<constructor-arg value="shef" />
<constructor-arg value="jms-dist:queue:Ingest.Shef?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.Shef"/>
</bean>
<bean id="shefCamelRegistered" factory-bean="contextManager"
@ -80,7 +80,7 @@
<bean ref="manualProc" method="copyFileToArchive" />
<bean ref="manualProc" />
<to
uri="jms-generic:queue:Ingest.ShefManual?destinationResolver=#qpidDurableResolver" />
uri="jms-durable:queue:Ingest.ShefManual"/>
</route>
</camelContext>
@ -92,7 +92,7 @@
<!-- Begin shef routes -->
<route id="shefIngestRoute">
<from
uri="jms-shef:queue:Ingest.Shef?destinationResolver=#qpidDurableResolver" />
uri="jms-shef:queue:Ingest.Shef"/>
<setHeader headerName="pluginName">
<constant>shef</constant>
</setHeader>
@ -103,7 +103,7 @@
</route>
<route id="shefStagedRoute">
<from
uri="jms-shef:queue:Ingest.ShefStaged?destinationResolver=#qpidDurableResolver" />
uri="jms-shef:queue:Ingest.ShefStaged"/>
<setHeader headerName="pluginName">
<constant>shef</constant>
</setHeader>
@ -119,7 +119,7 @@
<split streaming="true">
<method bean="synopticToShef" method="iterate" />
<bean ref="synopticToShef" method="transform" />
<to uri="jms-generic:queue:Ingest.ShefStaged" />
<to uri="jms-durable:queue:Ingest.ShefStaged" />
</split>
</pipeline>
</route>
@ -134,7 +134,7 @@
<method bean="metarToShef" method="iterate" />
<bean ref="metarToShef" method="transformMetar" />
<to
uri="jms-generic:queue:Ingest.ShefStaged?destinationResolver=#qpidDurableResolver" />
uri="jms-durable:queue:Ingest.ShefStaged"/>
</split>
</pipeline>
</route>
@ -155,7 +155,7 @@
<route id="shefManualIngestRoute">
<from
uri="jms-shef:queue:Ingest.ShefManual?destinationResolver=#qpidDurableResolver" />
uri="jms-shef:queue:Ingest.ShefManual"/>
<setHeader headerName="pluginName">
<constant>shef</constant>
</setHeader>

View file

@ -9,13 +9,13 @@
<bean id="tafDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="taf" />
<constructor-arg value="jms-dist:queue:Ingest.taf?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.taf"/>
</bean>
<bean id="tafHandleoupDistRegistry" factory-bean="handleoupDistributionSrv"
factory-method="register">
<constructor-arg value="taf" />
<constructor-arg value="jms-dist:queue:Ingest.taf?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.taf"/>
</bean>
<bean id="tafCamelRegistered" factory-bean="contextManager"
@ -36,13 +36,13 @@
<setHeader headerName="pluginName">
<constant>taf</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.taf" />
<to uri="jms-durable:queue:Ingest.taf" />
</route>
-->
<!-- Begin TAF routes -->
<route id="tafIngestRoute">
<from uri="jms-generic:queue:Ingest.taf?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.taf"/>
<setHeader headerName="pluginName">
<constant>taf</constant>
</setHeader>
@ -69,7 +69,5 @@
</doCatch>
</doTry>
</route>
</camelContext>
</beans>

View file

@ -11,13 +11,13 @@
<bean id="textDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="text" />
<constructor-arg value="jms-dist:queue:Ingest.Text?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.Text"/>
</bean>
<bean id="textHandleoupDistRegistry" factory-bean="handleoupDistributionSrv"
factory-method="register">
<constructor-arg value="text" />
<constructor-arg value="jms-dist:queue:Ingest.Text?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.Text"/>
</bean>
<!-- define the bean that handles automatic faxing of products. -->
@ -28,12 +28,11 @@
<bean id="textVersionPurge" class="com.raytheon.edex.plugin.text.TextVersionPurge" depends-on="textRegistered"/>
<bean id="jms-text" class="org.apache.camel.component.jms.JmsComponent">
<constructor-arg ref="jmsIngestTextConfig" />
<constructor-arg ref="jmsTextConfig" />
<property name="taskExecutor" ref="textThreadPool" />
</bean>
<bean id="jmsIngestTextConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy">
</bean>
<bean id="jmsTextConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsDurableConfig" factory-method="copy"/>
<bean id="textThreadPool"
class="com.raytheon.uf.edex.esb.camel.spring.JmsThreadPoolTaskExecutor">
<property name="corePoolSize" value="2" />
@ -61,7 +60,7 @@
<setHeader headerName="pluginName">
<constant>text</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.Text" />
<to uri="jms-durable:queue:Ingest.Text" />
</route>
-->
@ -115,7 +114,7 @@
</route>
<route id="textUndecodedIngestRoute">
<from uri="jms-text:queue:Ingest.Text?destinationResolver=#qpidDurableResolver&amp;concurrentConsumers=2" />
<from uri="jms-text:queue:Ingest.Text?concurrentConsumers=2" />
<setHeader headerName="pluginName">
<constant>text</constant>
</setHeader>
@ -142,7 +141,7 @@
<route id="textToWatchWarnRoute">
<from uri="direct:textToWatchWarn" />
<bean ref="textDecoder" method="transformToProductIds" />
<to uri="jms-text:queue:watchwarn?destinationResolver=#qpidDurableResolver" />
<to uri="jms-text:queue:watchwarn" />
</route>
<route id="textSerializationRoute">
@ -151,7 +150,7 @@
<method bean="textDecoder" method="separator" />
<bean ref="textDecoder" method="transformToSimpleString" />
<bean ref="serializationUtil" method="transformToThrift"/>
<to uri="jms-text:topic:edex.alarms.msg?timeToLive=60000" />
<to uri="jms-generic:topic:edex.alarms.msg?timeToLive=60000" />
</split>
</route>

View file

@ -9,7 +9,7 @@
<bean id="textlightningDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="textlightning" />
<constructor-arg value="jms-dist:queue:Ingest.textlightning?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.textlightning"/>
</bean>
<bean id="textlightningCamelRegistered" factory-bean="contextManager"
@ -31,13 +31,13 @@
<setHeader headerName="pluginName">
<constant>textlightning</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.textlightning" />
<to uri="jms-durable:queue:Ingest.textlightning" />
</route>
-->
<!-- Begin textlightning routes -->
<route id="textlightningIngestRoute">
<from uri="jms-generic:queue:Ingest.textlightning?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:Ingest.textlightning"/>
<setHeader headerName="pluginName">
<constant>textlightning</constant>
</setHeader>

View file

@ -8,13 +8,13 @@
<bean id="warningDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="warning" />
<constructor-arg value="jms-dist:queue:Ingest.Warning?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.Warning"/>
</bean>
<bean id="warningHandleoupDistRegistry" factory-bean="handleoupDistributionSrv"
factory-method="register">
<constructor-arg value="warning" />
<constructor-arg value="jms-dist:queue:Ingest.Warning?destinationResolver=#qpidDurableResolver" />
<constructor-arg value="jms-dist:queue:Ingest.Warning"/>
</bean>
<bean id="warningCamelRegistered" factory-bean="contextManager"
@ -23,12 +23,11 @@
</bean>
<bean id="jms-warning" class="org.apache.camel.component.jms.JmsComponent">
<constructor-arg ref="jmsIngestWarningConfig" />
<constructor-arg ref="jmsWarningConfig" />
<property name="taskExecutor" ref="warningThreadPool" />
</bean>
<bean id="jmsIngestWarningConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy">
</bean>
<bean id="jmsWarningConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsDurableConfig" factory-method="copy"/>
<bean id="warningThreadPool"
class="com.raytheon.uf.edex.esb.camel.spring.JmsThreadPoolTaskExecutor">
<property name="corePoolSize" value="1" />
@ -49,7 +48,7 @@
<setHeader headerName="pluginName">
<constant>warning</constant>
</setHeader>
<to uri="jms-generic:queue:Ingest.Warning" />
<to uri="jms-durable:queue:Ingest.Warning" />
</route>
-->
@ -57,7 +56,7 @@
Warning routes
-->
<route id="warningIngestRoute">
<from uri="jms-warning:queue:Ingest.Warning?destinationResolver=#qpidDurableResolver" />
<from uri="jms-warning:queue:Ingest.Warning"/>
<setHeader headerName="pluginName">
<constant>warning</constant>
</setHeader>
@ -72,7 +71,7 @@
<to uri="jms-warning:queue:edex.tpcWatch" />
<filter>
<method bean="vtecFilter" method="hasVTEC" />
<to uri="jms-warning:queue:activeTablePending?destinationResolver=#qpidDurableResolver" />
<to uri="jms-warning:queue:activeTablePending"/>
</filter>
</multicast>
</pipeline>
@ -89,6 +88,5 @@
<bean ref="processUtil" method="log" />
<to uri="vm:stageNotification" />
</route>
</camelContext>
</beans>

View file

@ -11,7 +11,7 @@
autoStartup="false">
<route id="activeTablePendingRoute">
<from uri="jms-generic:queue:activeTablePending?destinationResolver=#qpidDurableResolver" />
<from uri="jms-durable:queue:activeTablePending"/>
<doTry>
<bean ref="activeTableSrv" method="vtecArrived" />
<doCatch>

View file

@ -30,9 +30,9 @@
<!-- technically with qpid should be able to make this a durable subscription and not need to forward to another queue -->
<doTry>
<multicast>
<to uri="jms-generic:queue:cpgsrvFiltering"/>
<to uri="jms-generic:queue:scanCpgsrvFiltering"/>
<to uri="jms-generic:queue:ffmpCpgsrvFiltering"/>
<to uri="jms-durable:queue:cpgsrvFiltering"/>
<to uri="jms-durable:queue:scanCpgsrvFiltering"/>
<to uri="jms-durable:queue:ffmpCpgsrvFiltering"/>
</multicast>
<doCatch>
<exception>java.lang.Throwable</exception>
@ -42,7 +42,7 @@
</route>
<route id="cpgsrvListenerRoute">
<!-- technically with qpid should be able to make this a durable subscription and not need to forward to another queue -->
<from uri="jms-generic:queue:cpgsrvFiltering?concurrentConsumers=5&amp;destinationResolver=#qpidDurableResolver"/>
<from uri="jms-durable:queue:cpgsrvFiltering?concurrentConsumers=5"/>
<doTry>
<pipeline>
<bean ref="serializationUtil" method="transformFromThrift" />

View file

@ -54,7 +54,7 @@
<route id="bandwidthManagerProcessWork">
<from
uri="jms-generic:queue:matureSubscriptions?destinationResolver=#qpidDurableResolver" />
uri="jms-durable:queue:matureSubscriptions"/>
<doTry>
<pipeline>
<bean ref="serializationUtil" method="transformFromThrift" />

View file

@ -6,7 +6,7 @@
<bean id="notificationHandler"
class="com.raytheon.uf.edex.datadelivery.event.handler.NotificationHandler">
<constructor-arg type="java.lang.String"
value="jms-generic:topic:notify.msg?destinationResolver=#qpidDurableResolver" />
value="jms-generic:topic:notify.msg"/>
<property name="notificationDao" ref="notificationDao" />
</bean>

View file

@ -2,13 +2,8 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="jmsIngestHarvesterConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy">
</bean>
<bean id="jms-harvester" class="org.apache.camel.component.jms.JmsComponent">
<constructor-arg ref="jmsIngestHarvesterConfig" />
<constructor-arg ref="jmsGenericConfig" />
<property name="taskExecutor" ref="harvesterThreadPool" />
</bean>
@ -29,11 +24,11 @@
errorHandlerRef="errorHandler">
<endpoint id="metaDataCron" uri="quartz://datadelivery/harvester/?cron=${metadata-process.cron}"/>
<endpoint id="harvesterProcessWorkEndpoint" uri="jms-harvester:queue:metaDataProcessWork?concurrentConsumers=${metadata-process.threads}&amp;destinationResolver=#qpidDurableResolver" />
<endpoint id="harvesterProcessWorkEndpoint" uri="jms-harvester:queue:metaDataProcessWork?concurrentConsumers=${metadata-process.threads}"/>
<route id="metaDataProcess">
<from uri="metaDataCron" />
<to uri="jms-harvester:queue:metaDataProcessWork?destinationResolver=#qpidDurableResolver" />
<to uri="jms-harvester:queue:metaDataProcessWork" />
</route>
<route id="metaDataProcessWork">

View file

@ -34,12 +34,12 @@
a new route and use moveFileToArchive -->
<route id="handleoupFilePush">
<from
uri="jms-generic:queue:Ingest.handleoup?destinationResolver=#qpidDurableResolver" />
uri="jms-durable:queue:Ingest.handleoup"/>
<doTry>
<bean ref="stringToFile" />
<bean ref="manualProc" />
<to
uri="jms-generic:queue:handleoup.dropbox?destinationResolver=#qpidDurableResolver" />
uri="jms-durable:queue:handleoup.dropbox"/>
<doCatch>
<exception>java.lang.Throwable</exception>
<to

Some files were not shown because too many files have changed in this diff Show more