Merge branch 'omaha_13.5.3' (13.5.2-8) into development

Conflicts:
	cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/comm/JMSConnection.java
	cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/localization/LocalizationInitializer.java
	cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/localization/LocalizationManager.java
	cave/com.raytheon.uf.viz.thinclient/src/com/raytheon/uf/viz/thinclient/localization/ThinClientLocalizationInitializer.java
	edexOsgi/build.edex/esb/conf/spring/edex.xml
	edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/cache/d2dparms/D2DParmIdCache.java
	edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/db/dao/GFEDao.java
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodAdvisoryFollowup_Zones.vm
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodAdvisoryFollowup_Zones.xml
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodAdvisory_Zones.vm
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodAdvisory_Zones.xml
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodWarningFollowup_Zones.vm
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodWarningFollowup_Zones.xml
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodWarning_Zones.vm
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodWarning_Zones.xml
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/customTemplate.vm
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/customTemplate.xml
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/ffwfaw.vm
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/ffwfaw.xml
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/flashFloodWarningFollowup_Zones.vm
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/flashFloodWarningFollowup_Zones.xml
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/flashFloodWarning_Zones.vm
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/flashFloodWarning_Zones.xml
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/nonConvectiveFlashFloodWarningFollowup_Zones.vm
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/nonConvectiveFlashFloodWarningFollowup_Zones.xml
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/nonConvectiveFlashFloodWarning_Zones.vm
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/nonConvectiveFlashFloodWarning_Zones.xml
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/sws_county.vm
	edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/sws_county.xml

Change-Id: I1006c3ccd0f643cc673813c4305470fd006da371

Former-commit-id: f141fdd5ab [formerly 9adbe25ceb] [formerly f141fdd5ab [formerly 9adbe25ceb] [formerly b6395cc834 [formerly 687a47c58a0db2bb82328ffd4e36e7b3fabca542]]]
Former-commit-id: b6395cc834
Former-commit-id: 0e7dccd18f [formerly 3abe952ca0]
Former-commit-id: 1895c9f914
This commit is contained in:
Richard Peter 2013-10-08 10:59:50 -05:00
commit bc32641181
84 changed files with 2668 additions and 9627 deletions

View file

@ -16,7 +16,8 @@ Require-Bundle: org.eclipse.ui;bundle-version="3.8.2",
com.raytheon.uf.common.time;bundle-version="1.12.1174",
com.raytheon.uf.common.util;bundle-version="1.12.1174",
com.raytheon.uf.viz.core;bundle-version="1.12.1174",
com.raytheon.uf.common.units;bundle-version="1.0.0"
com.raytheon.uf.common.units;bundle-version="1.0.0",
com.raytheon.uf.common.auth;bundle-version="1.12.1174"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Import-Package: org.apache.commons.compress.archivers,

View file

@ -1,3 +1,22 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.archive;
import org.eclipse.core.commands.AbstractHandler;
@ -6,7 +25,15 @@ import org.eclipse.core.commands.ExecutionException;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import com.raytheon.uf.common.archive.request.ArchiveAdminAuthRequest;
import com.raytheon.uf.common.auth.user.IUser;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.archive.ui.CaseCreationDlg;
import com.raytheon.uf.viz.core.auth.UserController;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.requests.ThriftClient;
/**
* Action to bring up the Archive Case Creation dialog..
@ -18,6 +45,7 @@ import com.raytheon.uf.viz.archive.ui.CaseCreationDlg;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 16, 2013 1966 rferrel Initial creation
* Oct 02, 2013 2326 rferrel Check for administration authorization.
*
* </pre>
*
@ -25,8 +53,14 @@ import com.raytheon.uf.viz.archive.ui.CaseCreationDlg;
* @version 1.0
*/
public class ArchiveCaseCreationDialogAction extends AbstractHandler {
private final IUFStatusHandler statusHandler = UFStatus
.getHandler(ArchiveCaseCreationDialogAction.class);
private CaseCreationDlg dialog;
/** Case Administration permission */
private final String PERMISSION = "archive.casecreation";
/*
* (non-Javadoc)
*
@ -36,16 +70,44 @@ public class ArchiveCaseCreationDialogAction extends AbstractHandler {
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
if (isAuthorized()) {
if (dialog == null || dialog.isDisposed()) {
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getShell();
Shell shell = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell();
dialog = new CaseCreationDlg(shell);
dialog.open();
} else {
dialog.bringToTop();
}
}
return null;
}
/**
* Is user authorized?
*
* @return true if authorized
*/
private boolean isAuthorized() {
IUser user = UserController.getUserObject();
String msg = user.uniqueId()
+ " does not have permission to access archive case creation dialog.";
ArchiveAdminAuthRequest request = new ArchiveAdminAuthRequest();
request.setRoleId(PERMISSION);
request.setNotAuthorizedMessage(msg);
request.setUser(user);
try {
Object o = ThriftClient.sendPrivilegedRequest(request);
if (o instanceof ArchiveAdminAuthRequest) {
ArchiveAdminAuthRequest r = (ArchiveAdminAuthRequest) o;
return r.isAuthorized();
}
} catch (VizException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
}
return false;
}
}

View file

@ -1,3 +1,22 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.archive;
import org.eclipse.core.commands.AbstractHandler;
@ -6,7 +25,15 @@ import org.eclipse.core.commands.ExecutionException;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import com.raytheon.uf.common.archive.request.ArchiveAdminAuthRequest;
import com.raytheon.uf.common.auth.user.IUser;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.archive.ui.ArchiveRetentionDlg;
import com.raytheon.uf.viz.core.auth.UserController;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.requests.ThriftClient;
/**
* Action to display the Archive Retention dialog.
@ -18,6 +45,7 @@ import com.raytheon.uf.viz.archive.ui.ArchiveRetentionDlg;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 16, 2013 1966 rferrel Initial creation
* Oct 02, 2013 2326 rferrel Check for administration authorization.
*
* </pre>
*
@ -25,8 +53,14 @@ import com.raytheon.uf.viz.archive.ui.ArchiveRetentionDlg;
* @version 1.0
*/
public class ArchiveRetentionDialogAction extends AbstractHandler {
private final IUFStatusHandler statusHandler = UFStatus
.getHandler(ArchiveRetentionDialogAction.class);
private ArchiveRetentionDlg dialog;
/** Retention Administration permission */
private final String PERMISSION = "archive.retention";
/*
* (non-Javadoc)
*
@ -36,15 +70,44 @@ public class ArchiveRetentionDialogAction extends AbstractHandler {
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
if (isAuthorized()) {
if (dialog == null || dialog.isDisposed()) {
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getShell();
Shell shell = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell();
dialog = new ArchiveRetentionDlg(shell);
dialog.open();
} else {
dialog.bringToTop();
}
}
return null;
}
/**
* Is user authorized?
*
* @return true if authorized
*/
private boolean isAuthorized() {
IUser user = UserController.getUserObject();
String msg = user.uniqueId()
+ " does not have permission to access archive retention dialog.";
ArchiveAdminAuthRequest request = new ArchiveAdminAuthRequest();
request.setRoleId(PERMISSION);
request.setNotAuthorizedMessage(msg);
request.setUser(user);
try {
Object o = ThriftClient.sendPrivilegedRequest(request);
if (o instanceof ArchiveAdminAuthRequest) {
ArchiveAdminAuthRequest r = (ArchiveAdminAuthRequest) o;
return r.isAuthorized();
}
} catch (VizException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
}
return false;
}
}

View file

@ -37,6 +37,7 @@ import org.eclipse.swt.widgets.Spinner;
import com.raytheon.uf.common.archive.config.ArchiveConstants.Type;
import com.raytheon.uf.common.archive.config.DisplayData;
import com.raytheon.uf.common.time.util.TimeUtil;
/**
* Archive retention dialog.
@ -53,6 +54,7 @@ import com.raytheon.uf.common.archive.config.DisplayData;
* Jul 24, 2013 #2220 rferrel Add recompute size button.
* Jul 24, 2013 #2221 rferrel Changes for select configuration.
* Aug 26, 2013 #2225 rferrel Make dialog perspective independent.
* Oct 01, 2013 #2147 rferrel Change getEnd() to pick up files with future time stamps.
*
* </pre>
*
@ -305,7 +307,10 @@ public class ArchiveRetentionDlg extends AbstractArchiveDlg {
@Override
protected Calendar getEnd() {
// display all elements so no end bound
return null;
Calendar endCal = TimeUtil.newCalendar();
// Back off an hour so latter rounding doesn't cause overflow.
endCal.setTimeInMillis(Long.MAX_VALUE - TimeUtil.MILLIS_PER_HOUR);
return endCal;
}
/*

View file

@ -50,6 +50,8 @@ import com.raytheon.uf.viz.core.localization.LocalizationManager;
* 7/1/06 chammack Initial Creation.
* Sep 12, 2012 1167 djohnson Add datadelivery servers.
* Jan 14, 2013 1469 bkowal Removed the hdf5 data directory.
* Aug 27, 2013 2295 bkowal Removed the jms server property; added
* jms connection string
*
* </pre>
*
@ -70,16 +72,10 @@ public final class VizApp {
private static String httpServer;
private static String jmsServer;
private static String jmsConnectionString;
private static String pypiesServer;
private static String dataDeliveryServer;
private static String dataDeliveryLcmServer;
private static String dataDeliveryQueryServer;
static {
ManagementFactory.getRuntimeMXBean().getName();
}
@ -240,12 +236,12 @@ public final class VizApp {
VizApp.httpServer = System.getProperty("awips.httpServer", httpServer);
}
public static String getJmsServer() {
return jmsServer;
public static String getJmsConnectionString() {
return jmsConnectionString;
}
public static void setJmsServer(String jmsServer) {
VizApp.jmsServer = jmsServer;
public static void setJmsConnectionString(String jmsConnectionString) {
VizApp.jmsConnectionString = jmsConnectionString;
}
public static String getPypiesServer() {

View file

@ -20,14 +20,13 @@
package com.raytheon.uf.viz.core.comm;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import javax.jms.ConnectionFactory;
import org.apache.qpid.client.AMQConnectionFactory;
import org.apache.qpid.url.URLSyntaxException;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.viz.core.VizApp;
/**
@ -44,16 +43,23 @@ import com.raytheon.uf.viz.core.VizApp;
* included in a url.
* May 09, 2013 1814 rjpeter Updated prefetch to 10.
* Aug 16, 2013 2169 bkowal CAVE will now synchronously acknowledge messages.
* Aug 27, 2013 2295 bkowal The entire connection string is now provided by EDEX; so, it
* no longer needs to be constructed. Replaced stacktrace
* printing with UFStatus.
* </pre>
*
* @author chammack
* @version 1.0
*/
public class JMSConnection {
private static final IUFStatusHandler statusHandler = UFStatus
.getHandler(JMSConnection.class);
private static final String WSID_PLACEHOLDER = "__WSID__";
private static JMSConnection instance;
private final String jndiProviderUrl;
private final String connectionUrl;
private AMQConnectionFactory factory;
@ -66,38 +72,27 @@ public class JMSConnection {
}
public JMSConnection() {
this(VizApp.getJmsServer());
this(VizApp.getJmsConnectionString());
}
public JMSConnection(String jndiProviderUrl) {
this.jndiProviderUrl = jndiProviderUrl;
public JMSConnection(String connectionUrl) {
this.connectionUrl = connectionUrl;
try {
// do not enable retry/connectdelay connection and factory will
// silently reconnect and user will never be notified qpid is down
// and cave/text workstation will just act like they are hung
// up to each individual component that opens a connection to handle
// reconnect
this.factory = new AMQConnectionFactory(
"amqp://guest:guest@"
+ URLEncoder.encode(VizApp.getWsId().toString(),
"UTF-8")
+ "/edex?brokerlist='"
+ this.jndiProviderUrl
+ "?connecttimeout='5000'&heartbeat='0''&maxprefetch='10'&sync_publish='all'&failover='nofailover'&sync_ack='true'");
} catch (URLSyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
String wsid = URLEncoder.encode(VizApp.getWsId().toString(),
"UTF-8");
this.factory = new AMQConnectionFactory(this.connectionUrl.replace(
WSID_PLACEHOLDER, wsid));
} catch (Exception e) {
statusHandler.fatal("Failed to connect to the JMS Server!", e);
}
}
/**
* @return the jndiProviderUrl
*
* @return the jms connection url
*/
public String getJndiProviderUrl() {
return jndiProviderUrl;
public String getConnectionUrl() {
return connectionUrl;
}
/**

View file

@ -50,6 +50,8 @@ import com.raytheon.uf.viz.core.exception.VizException;
* Sep 12, 2012 1167 djohnson Add datadelivery servers.
* Jan 14, 2013 1469 bkowal Removed the hdf5 data directory.
* Aug 02, 2013 2202 bsteffen Add edex specific connectivity checking.
* Aug 27, 2013 2295 bkowal The entire jms connection string is now
* provided by EDEX.
*
* </pre>
*
@ -126,7 +128,7 @@ public class LocalizationInitializer {
LocalizationManager.getInstance().getLocalizationServer(),
false);
VizApp.setHttpServer(resp.getHttpServer());
VizApp.setJmsServer(resp.getJmsServer());
VizApp.setJmsConnectionString(resp.getJmsConnectionString());
VizApp.setPypiesServer(resp.getPypiesServer());
VizServers.getInstance().setServerLocations(resp.getServerLocations());
}

View file

@ -93,6 +93,8 @@ import com.raytheon.uf.viz.core.requests.ThriftClient;
* Sep 12, 2012 1167 djohnson Add datadelivery servers.
* Jan 14, 2013 1469 bkowal Removed the hdf5 data directory.
* Aug 02, 2013 2202 bsteffen Add edex specific connectivity checking.
* Aug 27, 2013 2295 bkowal The entire jms connection string is now
* provided by EDEX.
*
* </pre>
*
@ -148,8 +150,8 @@ public class LocalizationManager implements IPropertyChangeListener {
this.overrideServer = false;
this.overrideSite = false;
try {
localizationStore = new ScopedPreferenceStore(new InstanceScope(),
"localization");
localizationStore = new ScopedPreferenceStore(
InstanceScope.INSTANCE, "localization");
localizationStore.addPropertyChangeListener(this);
loadHttpServer();
loadAlertServer();
@ -222,7 +224,7 @@ public class LocalizationManager implements IPropertyChangeListener {
GetServersResponse resp = ConnectivityManager.checkLocalizationServer(
currentServer, false);
VizApp.setHttpServer(resp.getHttpServer());
VizApp.setJmsServer(resp.getJmsServer());
VizApp.setJmsConnectionString(resp.getJmsConnectionString());
VizApp.setPypiesServer(resp.getPypiesServer());
VizServers.getInstance().setServerLocations(
resp.getServerLocations());
@ -910,40 +912,6 @@ public class LocalizationManager implements IPropertyChangeListener {
return responses;
}
/**
* Makes a request to the UtilitySrv
*
* @param request
* the request to make
* @return the responses from the request
* @throws VizException
*/
private AbstractUtilityResponse[] makeRequest(
PrivilegedUtilityRequestMessage request)
throws LocalizationOpFailedException {
AbstractUtilityResponse[] responseList = null;
UtilityResponseMessage localizationResponse = null;
try {
localizationResponse = (UtilityResponseMessage) ThriftClient
.sendLocalizationRequest(request);
} catch (VizException e) {
throw new LocalizationOpFailedException("Localization error", e);
}
if (localizationResponse != null) {
responseList = localizationResponse.getResponses();
for (AbstractUtilityResponse response : responseList) {
if (!response.successful()) {
throw new LocalizationOpFailedException(
response.getFormattedErrorMessage());
}
}
}
return responseList;
}
public boolean isOverrideServer() {
return overrideServer;
}

View file

@ -35,7 +35,9 @@ import com.raytheon.uf.viz.core.requests.ThriftClient;
import com.raytheon.uf.viz.thinclient.preferences.ThinClientPreferenceConstants;
/**
* TODO Add Description
* Listens to changes to the "Disable JMS" option in the Thin Client
* Preferences. Will automatically connect to and disconnect from the
* JMS Server as the option is updated.
*
* <pre>
*
@ -44,6 +46,8 @@ import com.raytheon.uf.viz.thinclient.preferences.ThinClientPreferenceConstants;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Nov 29, 2011 bsteffen Initial creation
* Aug 27, 2013 2295 bkowal The entire jms connection string is now
* provided by EDEX.
*
* </pre>
*
@ -96,13 +100,14 @@ public class ThinClientNotificationManagerJob extends NotificationManagerJob
if (disableJMS) {
disconnect(true);
} else {
if (VizApp.getJmsServer() == null) {
if (VizApp.getJmsConnectionString() == null) {
GetServersRequest req = new GetServersRequest();
GetServersResponse resp;
try {
resp = (GetServersResponse) ThriftClient
.sendLocalizationRequest(req);
VizApp.setJmsServer(resp.getJmsServer());
VizApp.setJmsConnectionString(resp
.getJmsConnectionString());
} catch (VizException e) {
statusHandler.handle(Priority.PROBLEM,
e.getLocalizedMessage(), e);

View file

@ -50,6 +50,8 @@ import com.raytheon.uf.viz.thinclient.ui.ThinClientConnectivityDialog;
* Dec 06, 2012 1396 njensen Added setting VizServers
* Jan 14, 2013 1469 bkowal Removed setting the hdf5 data directory
* Aug 02, 2013 2202 bsteffen Add edex specific connectivity checking.
* Aug 27, 2013 2295 bkowal The entire jms connection string is
* now provided by EDEX.
*
* </pre>
*
@ -90,7 +92,7 @@ public class ThinClientLocalizationInitializer extends LocalizationInitializer {
if (!disableJMS) {
GetServersResponse resp = ConnectivityManager.checkLocalizationServer(
servicesProxy, false);
VizApp.setJmsServer(resp.getJmsServer());
VizApp.setJmsConnectionString(resp.getJmsConnectionString());
}
VizApp.setHttpServer(servicesProxy);
VizApp.setPypiesServer(store
@ -100,12 +102,13 @@ public class ThinClientLocalizationInitializer extends LocalizationInitializer {
HttpClient.getInstance().setCompressRequests(compressRequests);
// use the proxy for all servers in VizServers
@SuppressWarnings("unchecked")
Map<String, String> serversMap = new DefaultedMap(servicesProxy);
VizServers.getInstance().setServerLocations(serversMap);
} else {
processGetServers();
if (disableJMS) {
VizApp.setJmsServer(null);
VizApp.setJmsConnectionString(null);
}
}
}

View file

@ -49,6 +49,7 @@ export EBXML_REGISTRY_FEDERATION_ENABLED=false
export HTTP_PORT=9581
export HTTP_SERVER=http://localhost:${HTTP_PORT}/services
export JMS_SERVER=tcp://localhost:5672
export JMS_VIRTUALHOST=edex
export RADAR_SERVER=tcp://localhost:8813
export DATADELIVERY_SERVER=http://${DATADELIVERY_HOST}:${EBXML_THRIFT_SERVICE_PORT}/services
export EBXML_REGISTRY_SERVICE=http://${EBXML_REGISTRY_HOST}:${EBXML_THRIFT_SERVICE_PORT}/services

View file

@ -111,6 +111,58 @@
<exclude>cpgsrv-spring.xml</exclude>
<exclude>.*sbn-simulator.*</exclude>
</mode>
<mode name="ingestHydro">
<include>distribution-spring.xml</include>
<include>manualIngest-common.xml</include>
<include>manualIngest-spring.xml</include>
<include>shef-ingest.xml</include>
<include>shef-common.xml</include>
<include>ohd-common.xml</include>
<include>alarmWhfs-spring.xml</include>
<include>arealffgGenerator-spring.xml</include>
<include>arealQpeGen-spring.xml</include>
<include>DPADecoder-spring.xml</include>
<include>dqcPreprocessor-spring.xml</include>
<include>floodArchiver-spring.xml</include>
<include>freezingLevel-spring.xml</include>
<include>hpeDHRDecoder-spring.xml</include>
<include>ihfsDbPurge-spring.xml</include>
<include>logFilePurger-spring.xml</include>
<include>mpeFieldgen-spring.xml</include>
<include>mpeHpeFilePurge-spring.xml</include>
<include>mpeLightningSrv-ingest.xml</include>
<include>mpeProcessGrib-spring.xml</include>
<include>ohdSetupService-spring.xml</include>
<include>pointDataRetrievel-spring.xml</include>
<include>q2FileProcessor-spring.xml</include>
<include>satpre-spring.xml</include>
<include>purge-logs.xml</include>
</mode>
<mode name="requestHydro">
<include>ohd-common.xml</include>
<include>database-common.xml</include>
<include>ohd-request.xml</include>
<include>alertviz-request.xml</include>
<include>auth-common.xml</include>
<include>auth-request.xml</include>
<include>menus-request.xml</include>
<include>utility-request.xml</include>
<include>management-common.xml</include>
<include>management-request.xml</include>
<include>manualIngest-common.xml</include>
<include>manualIngest-request.xml</include>
<include>nwsauth-request.xml</include>
<include>persist-request.xml</include>
<include>site-common.xml</include>
<include>site-request.xml</include>
<include>time-common.xml</include>
<include>units-common.xml</include>
<include>useradmin-common.xml</include>
<include>useradmin-request.xml</include>
<include>event-common.xml</include>
<include>eventbus-common.xml</include>
<include>edex-request.xml</include>
</mode>
<mode name="ingestGrib">
<include>time-common.xml</include>
<include>auth-common.xml</include>

View file

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

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

@ -0,0 +1,29 @@
#!/bin/bash
##
# This software was developed and / or modified by Raytheon Company,
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
#
# U.S. EXPORT CONTROLLED TECHNICAL DATA
# This software product contains export-restricted data whose
# export/transfer/disclosure is restricted by U.S. law. Dissemination
# to non-U.S. persons whether in the United States or abroad requires
# an export license or other authorization.
#
# Contractor Name: Raytheon Company
# Contractor Address: 6825 Pine Street, Suite 340
# Mail Stop B8
# Omaha, NE 68106
# 402.291.0100
#
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
# further licensing information.
##
export INIT_MEM=412 # in Meg
export MAX_MEM=796 # in Meg
export METADATA_POOL_MIN=4
export EDEX_DEBUG_PORT=5006
export EDEX_JMX_PORT=1617
export LOG4J_CONF=log4j-ingest.xml
export MGMT_PORT=9602

View file

@ -0,0 +1,36 @@
#!/bin/bash
##
# This software was developed and / or modified by Raytheon Company,
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
#
# U.S. EXPORT CONTROLLED TECHNICAL DATA
# This software product contains export-restricted data whose
# export/transfer/disclosure is restricted by U.S. law. Dissemination
# to non-U.S. persons whether in the United States or abroad requires
# an export license or other authorization.
#
# Contractor Name: Raytheon Company
# Contractor Address: 6825 Pine Street, Suite 340
# Mail Stop B8
# Omaha, NE 68106
# 402.291.0100
#
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
# further licensing information.
##
export INIT_MEM=128 # in Meg
if [ "$EDEX_ARCH" == "64-bit" ]; then
export MAX_MEM=1648 # in Meg
else
export MAX_MEM=880 # in Meg
fi
export SERIALIZE_POOL_MAX_SIZE=24
export SERIALIZE_STREAM_INIT_SIZE_MB=2
export SERIALIZE_STREAM_MAX_SIZE_MB=8
export JMS_POOL_MIN=8
export JMS_POOL_MAX=24
export EDEX_DEBUG_PORT=5005
export EDEX_JMX_PORT=1616
export MGMT_PORT=9601

View file

@ -101,6 +101,7 @@ import com.raytheon.uf.edex.database.query.DatabaseQuery;
* 08/08/13 DR16485 ryu Remove call to getDatabaseId() from getMaxInsertTimeByDbId()
* so new GFE databases aren't accidentally created.
* 08/05/13 #1571 randerso Added support for storing GridLocation and ParmStorageInfo in database
* 09/30/2013 #2147 rferrel Changes to archive hdf5 files.
*
* </pre>
*
@ -119,6 +120,7 @@ public class GFEDao extends DefaultPluginDao {
*/
public GFEDao() throws PluginException {
super("gfe");
this.pathProvider = new GFEPathProvider();
}
/**
@ -130,6 +132,7 @@ public class GFEDao extends DefaultPluginDao {
*/
public GFEDao(String pluginName) throws PluginException {
super(pluginName);
this.pathProvider = new GFEPathProvider();
}
/**

View file

@ -0,0 +1,97 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.edex.plugin.gfe.db.dao;
import java.io.File;
import com.raytheon.edex.plugin.gfe.server.database.GridDatabase;
import com.raytheon.uf.common.dataplugin.gfe.db.objects.GFERecord;
import com.raytheon.uf.common.dataplugin.gfe.util.GfeUtil;
import com.raytheon.uf.common.dataplugin.persist.DefaultPathProvider;
import com.raytheon.uf.common.dataplugin.persist.IPersistable;
/**
* Provider for GFE that uses the GfeUtil to get the HDF5 path and file names.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Sep 23, 2013 rferrel Initial creation
*
* </pre>
*
* @author rferrel
* @version 1.0
*/
public class GFEPathProvider extends DefaultPathProvider {
/**
* Constructor.
*/
public GFEPathProvider() {
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.dataplugin.persist.DefaultPathProvider#getHDFFileName
* (java.lang.String,
* com.raytheon.uf.common.dataplugin.persist.IPersistable)
*/
@Override
public String getHDFFileName(String pluginName, IPersistable persistable) {
String name = null;
if (persistable instanceof GFERecord) {
GFERecord gfeRecord = (GFERecord) persistable;
File hdf5File = GfeUtil.getHdf5File(GridDatabase.gfeBaseDataDir,
gfeRecord.getParmId(), gfeRecord.getTimeRange());
name = hdf5File.toString();
name = name.substring(name.lastIndexOf(File.separator) + 1);
}
return name;
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.dataplugin.persist.DefaultPathProvider#getHDFPath
* (java.lang.String,
* com.raytheon.uf.common.dataplugin.persist.IPersistable)
*/
@Override
public String getHDFPath(String pluginName, IPersistable persistable) {
String path = null;
path = super.getHDFPath(pluginName, persistable);
if (persistable instanceof GFERecord) {
GFERecord gfeRecord = (GFERecord) persistable;
File pathDir = GfeUtil.getHdf5Dir(GridDatabase.gfeBaseDataDir,
gfeRecord.getDbId());
path = pathDir.toString();
path = path.substring(pluginName.length() + 1);
}
return path;
}
}

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

@ -43,6 +43,8 @@ import com.raytheon.uf.common.util.registry.GenericRegistry;
* Jan 14, 2013 1469 bkowal No longer includes the hdf5 data directory
* in the response.
* May 28, 2013 1989 njensen Uses env variables instead of system props
* Aug 27, 2013 2295 bkowal Return the entire jms connection url in
* the response.
*
* </pre>
*
@ -61,18 +63,41 @@ public class GetServersHandler extends GenericRegistry<String, String>
GetServersResponse response = new GetServersResponse();
String httpServer = System.getenv("HTTP_SERVER");
String jmsServer = System.getenv("JMS_SERVER");
String jmsVirtualHost = System.getenv("JMS_VIRTUALHOST");
String pypiesServer = System.getenv("PYPIES_SERVER");
String jmsConnectionString = this.constructJMSConnectionString(
jmsServer, jmsVirtualHost);
logger.info("http.server=" + httpServer);
logger.info("jms.server=" + jmsServer);
logger.info("jms.virtualhost=" + jmsVirtualHost);
logger.info("pypies.server=" + pypiesServer);
logger.info("server locations=" + registry);
;
response.setHttpServer(httpServer);
response.setJmsServer(jmsServer);
response.setJmsConnectionString(jmsConnectionString);
response.setPypiesServer(pypiesServer);
response.setServerLocations(Collections.unmodifiableMap(this.registry));
return response;
}
// do not enable retry/connectdelay connection and factory will
// silently reconnect and user will never be notified qpid is down
// and cave/text workstation will just act like they are hung
// up to each individual component that opens a connection to handle
// reconnect
private String constructJMSConnectionString(String jmsServer,
String jmsVirtualHost) {
/* build the connection String that CAVE will use. */
StringBuilder stringBuilder = new StringBuilder(
"amqp://guest:guest@__WSID__/");
stringBuilder.append(jmsVirtualHost);
stringBuilder.append("?brokerlist='");
stringBuilder.append(jmsServer);
stringBuilder
.append("?connecttimeout='5000'&heartbeat='0''&maxprefetch='10'&sync_publish='all'&failover='nofailover'&sync_ack='true'");
return stringBuilder.toString();
}
}

View file

@ -7,9 +7,13 @@ Bundle-Vendor: RAYTHEON
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: com.raytheon.uf.common.archive.config,
com.raytheon.uf.common.archive.config.select,
com.raytheon.uf.common.archive.exception
com.raytheon.uf.common.archive.exception,
com.raytheon.uf.common.archive.request
Require-Bundle: com.raytheon.uf.common.util,
com.raytheon.uf.common.localization,
com.raytheon.uf.common.status,
org.apache.commons.io,
com.raytheon.uf.common.time
com.raytheon.uf.common.time,
com.raytheon.uf.common.serialization;bundle-version="1.12.1174",
com.raytheon.uf.common.serialization.comm;bundle-version="1.12.1174",
com.raytheon.uf.common.auth;bundle-version="1.12.1174"

View file

@ -42,6 +42,7 @@ import com.raytheon.uf.common.time.util.TimeUtil;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 6, 2013 #2224 rferrel Initial creation
* Oct 02, 2013 #2147 rferrel Allow Date to ignore hour in time stamp.
*
* </pre>
*
@ -160,7 +161,12 @@ public class CategoryDataSet {
if (timeIndices.length > 0) {
String[] indexValues = getDateGroupIndices().split("\\s*,\\s*");
for (int index = 0; index < timeIndices.length; ++index) {
timeIndices[index] = Integer.parseInt(indexValues[index]);
if (indexValues.length > index) {
timeIndices[index] = Integer
.parseInt(indexValues[index]);
} else {
timeIndices[index] = -1;
}
}
}
}
@ -233,8 +239,15 @@ public class CategoryDataSet {
.group(timeIndices[CategoryDataSet.MONTH_INDEX])) - 1;
int day = Integer.parseInt(matcher
.group(timeIndices[CategoryDataSet.DAY_INDEX]));
int hour = Integer.parseInt(matcher
// Default to last hour of the day.
int hour = 23;
if (timeIndices[CategoryDataSet.HOUR_INDEX] >= 0) {
hour = Integer.parseInt(matcher
.group(timeIndices[CategoryDataSet.HOUR_INDEX]));
}
fileCal.set(year, month, day, hour, 0, 0);
fileTime = fileCal.getTimeInMillis();
break;

View file

@ -0,0 +1,107 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.common.archive.request;
import com.raytheon.uf.common.auth.req.AbstractPrivilegedRequest;
import com.raytheon.uf.common.serialization.ISerializableObject;
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
/**
* Class with the serialized data for the Archive Admin.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Oct 02, 2013 2326 rferrel Initial creation
*
* </pre>
*
* @author rferrel
* @version 1.0
*/
@DynamicSerialize
public class ArchiveAdminAuthRequest extends AbstractPrivilegedRequest
implements ISerializableObject {
@DynamicSerializeElement
private String roleId = null;
@DynamicSerializeElement
private boolean authorized = false;
@DynamicSerializeElement
private String notAuthorizedMessage = "Not Authorized";
/**
* Constructor
*/
public ArchiveAdminAuthRequest() {
}
/**
* @param roleId
* the roleId to set
*/
public void setRoleId(String roleId) {
this.roleId = roleId;
}
/**
* @return the roleId
*/
public String getRoleId() {
return roleId;
}
/**
* @return the authorized
*/
public boolean isAuthorized() {
return authorized;
}
/**
* @param authorized
* the authorized to set
*/
public void setAuthorized(boolean authorized) {
this.authorized = authorized;
}
/**
* @return the notAuthorizedMessage
*/
public String getNotAuthorizedMessage() {
return notAuthorizedMessage;
}
/**
* @param notAuthorizedMessage
* the failureMessage to set
*/
public void setNotAuthorizedMessage(String notAuthorizedMessage) {
this.notAuthorizedMessage = notAuthorizedMessage;
}
}

View file

@ -25,6 +25,7 @@ package com.raytheon.uf.common.dataplugin.gfe.db.objects;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
@ -47,6 +48,7 @@ import org.hibernate.annotations.OnDeleteAction;
import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.common.dataplugin.annotations.DataURI;
import com.raytheon.uf.common.dataplugin.gfe.GridDataHistory;
import com.raytheon.uf.common.dataplugin.persist.IPersistable;
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
import com.raytheon.uf.common.time.DataTime;
@ -78,6 +80,7 @@ import com.raytheon.uf.common.time.TimeRange;
* May 13, 2013 1869 bsteffen Remove DataURI column from GFE.
* Jun 20, 2013 2127 rjpeter Added OnDelete annotation.
* Aug 30, 2013 2298 rjpeter Make getPluginName abstract
* Sep 20, 2013 2147 rferrel Changes to archive hdf5 files.
*
* </pre>
*
@ -96,7 +99,7 @@ import com.raytheon.uf.common.time.TimeRange;
"refTime", "forecastTime" }) })
@DynamicSerialize
@BatchSize(size = 500)
public class GFERecord extends PluginDataObject {
public class GFERecord extends PluginDataObject implements IPersistable {
private static final long serialVersionUID = 1L;
@ -283,4 +286,16 @@ public class GFERecord extends PluginDataObject {
public String getPluginName() {
return PLUGIN_NAME;
}
@Override
public Date getPersistenceTime() {
return getInsertTime().getTime();
}
@Override
public void setPersistenceTime(Date persistTime) {
Calendar pTime = Calendar.getInstance();
pTime.setTime(persistTime);
setInsertTime(pTime);
}
}

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

@ -36,6 +36,7 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
* Aug 6, 2009 mschenke Initial creation
* Sep 12, 2012 1167 djohnson Add datadelivery servers.
* Jan 14, 2013 1469 bkowal Removed the hdf5 data directory
* Aug 27, 2013 2995 bkowal Removed jms server; added jms connection string
*
* </pre>
*
@ -49,7 +50,7 @@ public class GetServersResponse {
private String httpServer;
@DynamicSerializeElement
private String jmsServer;
private String jmsConnectionString;
@DynamicSerializeElement
private String pypiesServer;
@ -65,12 +66,12 @@ public class GetServersResponse {
this.httpServer = httpServer;
}
public String getJmsServer() {
return jmsServer;
public String getJmsConnectionString() {
return jmsConnectionString;
}
public void setJmsServer(String jmsServer) {
this.jmsServer = jmsServer;
public void setJmsConnectionString(String jmsConnectionString) {
this.jmsConnectionString = jmsConnectionString;
}
public String getPypiesServer() {

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,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="src" path="/com.raytheon.uf.common.archive"/>
<classpathentry kind="src" path="/com.raytheon.uf.common.status"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry combineaccessrules="false" kind="src" path="/com.raytheon.uf.common.plugin.nwsauth"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View file

@ -6,4 +6,12 @@ Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: RAYTHEON
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: com.raytheon.uf.edex.archive.purge
Import-Package: com.raytheon.uf.common.archive.config
Import-Package: com.raytheon.uf.common.archive.config,
com.raytheon.uf.common.archive.request
Require-Bundle: com.raytheon.uf.common.auth;bundle-version="1.12.1174",
com.raytheon.uf.edex.auth;bundle-version="1.12.1174",
com.raytheon.uf.common.serialization.comm;bundle-version="1.12.1174",
com.raytheon.uf.common.status;bundle-version="1.12.1174",
com.raytheon.uf.common.serialization;bundle-version="1.12.1174",
com.raytheon.uf.common.util;bundle-version="1.12.1174",
com.raytheon.uf.common.localization;bundle-version="1.12.1174"

View file

@ -0,0 +1,13 @@
<beans xmlns="http://www.springframework.org/schema/beans"
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">
<bean id="archiveAdminAuthorization"
class="com.raytheon.uf.edex.archive.useradmin.ArchiveAdminPrivilegedRequestHandler" />
<bean factory-bean="handlerRegistry" factory-method="register">
<constructor-arg
value="com.raytheon.uf.common.archive.request.ArchiveAdminAuthRequest" />
<constructor-arg ref="archiveAdminAuthorization" />
</bean>
</beans>

View file

@ -0,0 +1,98 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.edex.archive.useradmin;
import com.raytheon.uf.common.archive.request.ArchiveAdminAuthRequest;
import com.raytheon.uf.common.auth.exception.AuthorizationException;
import com.raytheon.uf.common.auth.user.IUser;
import com.raytheon.uf.edex.auth.AuthManager;
import com.raytheon.uf.edex.auth.AuthManagerFactory;
import com.raytheon.uf.edex.auth.req.AbstractPrivilegedRequestHandler;
import com.raytheon.uf.edex.auth.resp.AuthorizationResponse;
import com.raytheon.uf.edex.auth.roles.IRoleStorage;
/**
* Handler for Archive Admin Privileged Requests.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Oct 02, 2013 2326 rferrel Initial creation.
*
* </pre>
*
* @author rferrel
* @version 1.0
*/
public class ArchiveAdminPrivilegedRequestHandler extends
AbstractPrivilegedRequestHandler<ArchiveAdminAuthRequest> {
/**
* Application name. This must match the application tag in the user role
* file.
*/
private static final String APPLICATION = "Data Archiving";
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.serialization.comm.IRequestHandler#handleRequest
* (com.raytheon.uf.common.serialization.comm.IServerRequest)
*/
@Override
public ArchiveAdminAuthRequest handleRequest(ArchiveAdminAuthRequest request)
throws Exception {
// If it reaches this point in the code, then the user is authorized, so
// just return the request object with authorized set to true
request.setAuthorized(true);
return request;
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.edex.auth.req.AbstractPrivilegedRequestHandler#authorized
* (com.raytheon.uf.common.auth.user.IUser,
* com.raytheon.uf.common.auth.req.AbstractPrivilegedRequest)
*/
@Override
public AuthorizationResponse authorized(IUser user,
ArchiveAdminAuthRequest request) throws AuthorizationException {
AuthManager manager = AuthManagerFactory.getInstance().getManager();
IRoleStorage roleStorage = manager.getRoleStorage();
boolean authorized = roleStorage.isAuthorized((request).getRoleId(),
user.uniqueId().toString(), APPLICATION);
if (authorized) {
return new AuthorizationResponse(authorized);
} else {
return new AuthorizationResponse(
(request).getNotAuthorizedMessage());
}
}
}

View file

@ -24,7 +24,8 @@
* Date Ticket# Engineer Description
* ============ ========== =========== ==========================
* Jun 20, 2013 1966 rferrel Initial creation
* Aug 05, 2012 2224 rferrel Changes to add dataSet tags.
* Aug 05, 2013 2224 rferrel Changes to add dataSet tags.
* Oct 01, 2013 2147 rfrrel Date time stamp no longer requires an hour field.
*
* @author rferrel
* @version 1.0
@ -69,7 +70,8 @@
EpochMS - The time stamp has one group in the patterns which is the epoch time in milliseconds.
File - No group is used to get the time stamp. Instead use the files date of last modification.
<dateGroupIndicies> - Required tag when <timeType> has any value but File.
Date - A comma separated list of 4 numbers which are in order the index for year, month, day and hour.
Date - A comma separated list of 3 or 4 numbers which are in order the index for year, month, day and hour.
When only 3 numbers the hour is value is 23.
EpochSec - A number which is the index for the epoch in seconds.
EpochMS - A number which is the index for the epoch in milliseconds.
File - Not needed since no group is used to get the time stamp.
@ -143,12 +145,16 @@
<name>GFE</name>
<extRetentionHours>168</extRetentionHours>
<dataSet>
<dirPattern>(gfe)/(.*)/.*</dirPattern>
<dirPattern>(gfe)/(.*)</dirPattern>
<filePattern>.*_(\d{4})(\d{2})(\d{2})_(\d{2}).*</filePattern>
<displayLabel>{2}</displayLabel>
<dirPattern>gfe/(.*)/(.*)/(\d{4})_(\d{2})_(\d{2})_(\d{2})\d{2}</dirPattern>
<displayLabel>{1} - {2}</displayLabel>
<dateGroupIndices>3,4,5,6</dateGroupIndices>
</dataSet>
<dataSet>
<dirPattern>gfe/(.*)/(Fcst|Official)</dirPattern>
<filePattern>.*_(\d{4})(\d{2})(\d{2})_.*</filePattern>
<displayLabel>{1} - {2}</displayLabel>
<dateGroupIndices>3,4,5</dateGroupIndices>
</dataSet>
</category>
<category>
<name>Local</name>

View file

@ -24,7 +24,8 @@
* Date Ticket# Engineer Description
* ============ ========== =========== ==========================
* Jun 20, 2013 1966 rferrel Initial creation
* Aug 05, 2012 2224 rferrel Changes to add dataSet tags.
* Aug 05, 2013 2224 rferrel Changes to add dataSet tags.
* Oct 01, 2013 2147 rfrrel Date time stamp no longer requires an hour field.
*
* @author rferrel
* @version 1.0
@ -45,7 +46,7 @@
<dataSet> - Required to have a least one. Each one contains a set of tags explained below.
<selectedDisplayNames> - A directory matching <dirPattern>. These are selected directories from the Retention GUI. The purger
will used the category's <extRetentionHours> instead of the Arhivie's <minRetentionHours>.
An optional tag; may have more then one.(NOTE these are set internally when a selection configuration
An optional tag; may have more then one. (NOTE these are set internally when a selection configuration
file is loaded. They should not appear in the configuration file.)
The <dataSet> contains ? types of tags:
<dirPattern> - Required to have at least one. A regex pattern for finding directories for this category.
@ -69,7 +70,8 @@
EpochMS - The time stamp has one group in the patterns which is the epoch time in milliseconds.
File - No group is used to get the time stamp. Instead use the files date of last modification.
<dateGroupIndicies> - Required tag when <timeType> has any value but File.
Date - A comma separated list of 4 numbers which are in order the index for year, month, day and hour.
Date - A comma separated list of 3 or 4 numbers which are in order the index for year, month, day and hour.
When only 3 numbers the hour is value is 23.
EpochSec - A number which is the index for the epoch in seconds.
EpochMS - A number which is the index for the epoch in milliseconds.
File - Not needed since no group is used to get the time stamp.
@ -107,19 +109,13 @@
<name>Observation</name>
<extRetentionHours>168</extRetentionHours>
<dataSet>
<dirPattern>(airep|airmet|taf)</dirPattern>
<dirPattern>(acars|airep|airmet|taf)</dirPattern>
<dirPattern>(bufrsigwx|sfcobs)/.*</dirPattern>
<displayLabel>{1}</displayLabel>
<timeType>Date</timeType>
<dateGroupIndices>2,3,4,5</dateGroupIndices>
<filePattern>[^/]*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
</dataSet>
<dataSet>
<dirPattern>(acars)/(.*)</dirPattern>
<displayLabel>{1}</displayLabel>
<filePattern>[^/]*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
finish this
</dataSet>
</category>
The first <dirPattern> looks for files matching the <filePattern> in the directories acars, airep, airmet or taf.
The second <dirPattern> expects to find the files in subdirectories of bufrsigwx or sfcobs such as bufrsigwx/SWH.

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<nwsRoleData xmlns:ns2="group">
<application>Data Archiving</application>
<!-- Archive Retention permission.-->
<permission id="archive.retention">
<description>
This permission allows the user to access Archive Retention.
</description>
</permission>
<!-- Archive Case Creation permission. -->
<permission id="archive.casecreation">
<description>
This permission allows the user to access Archive Case Creation.
</description>
</permission>
</nwsRoleData>

View file

@ -48,6 +48,8 @@ import com.raytheon.uf.edex.database.dao.DaoConfig;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 28, 2010 #5050 rjpeter Initial creation from SmartInitTransaction.
* Aug 26, 2013 #2272 bkowal Add a function to see if a cluster suffix has
* been specified via the environment.
*
* </pre>
*
@ -55,6 +57,16 @@ import com.raytheon.uf.edex.database.dao.DaoConfig;
* @version 1.0
*/
public class ClusterLockUtils {
/*
* An optional context suffix can be included in an EDEX properties file.
* This suffix will be appended to the details of each cluster task.
*/
public static final String CLUSTER_SUFFIX;
static {
CLUSTER_SUFFIX = System.getProperty("cluster.suffix") != null ? "-"
+ System.getProperty("cluster.suffix") : "";
}
public enum LockState {
SUCCESSFUL, ALREADY_RUNNING, FAILED, OLD;

View file

@ -40,6 +40,7 @@ import com.raytheon.uf.edex.database.cluster.ClusterTask;
* ------------ ---------- ----------- --------------------------
* Feb 19, 2010 njensen Initial creation
* Aug 21, 2013 DR 16521 D. Friedman Ensure endpoint URI is used for cluster entry
* Aug 26, 2013 DR 2272 bkowal Append an optional suffix to the cluster task details
*
* </pre>
*
@ -62,7 +63,7 @@ public class ClusteredQuartzEndpoint extends QuartzEndpoint {
@Override
public void onJobExecute(final JobExecutionContext jobExecutionContext)
throws JobExecutionException {
String jName = getEndpointUri();
String jName = getEndpointUri() + ClusterLockUtils.CLUSTER_SUFFIX;
long period = Math.abs(jobExecutionContext.getFireTime().getTime()
- jobExecutionContext.getNextFireTime().getTime()) / 2;
ClusterTask ct = ClusterLockUtils.lock(TASK, jName, period, false);

View file

@ -50,6 +50,7 @@ import com.raytheon.uf.edex.database.cluster.ClusterTask;
* Nov 10, 2010 5050 rjpeter Initial creation
* Jul 16, 2012 DR 15073 D. Friedman Stop consumers instead of whole context
* May 14, 2013 1989 njensen Camel 2.11 compatibility
* Aug 26, 2013 DR 2272 bkowal Append an optional suffix to the cluster task details
* </pre>
*
* @author rjpeter
@ -112,8 +113,9 @@ public class ClusteredContextManager {
}
public void checkClusteredContexts() {
String suffix = ClusterLockUtils.CLUSTER_SUFFIX;
for (CamelContext camelContext : clusteredContextList) {
String contextName = camelContext.getName();
String contextName = camelContext.getName() + suffix;
ClusterTask lock = ClusterLockUtils.lock(taskName, contextName,
myName, timeOutMillis, false);
boolean activateRoute = false;

View file

@ -1,3 +1,10 @@
/*
* main_nc2grib.c
*
* Created on: Aug 26, 2011
* Author: snaples
*/
/************************************************************************************
*
* nc2grib - GFE NetCDF to GRIB1 translator
@ -54,11 +61,18 @@
*
* Version 4 allows users to combine all GRIB messages into one file. This becomes useful
* when dealing with a lot of files for a parameter such as 1 hour QPF or temperature that
* goes out to num_hours hours.
* goes out to 240 hours.
*
* This is still a work in progress and code can always be improved to increase efficiency.
*
* Oct 2011 - PTilles - added read of new token for defining number of days of data to process
*
* Sep 2012 -Dan Stein - The original nc2grib program assumed the first variable in the
* NetCDF file (variable[0]) would be the data variable to be converted to grib format. The
* nc2grib tool was hard-coded to only look at variable[0]. In AWIPS-II, GFE began putting
* the history variable first and the data variable last, so nc2grib never found the data
* variable. The fix I implemented searches through all the variables in the NetCDF file
* to see wheter the data variable in question is present.
**********************************************************************************************/
#include <ctype.h>
#include <stdlib.h>
@ -79,9 +93,8 @@
#include "packgrib.h"
#include "getopt.h"
#include "cmapf.h"
#include "version_info.h"
#include "cmapf.h"
#define SECINHR 3600.
#define PATH_LEN 500
@ -106,7 +119,7 @@
*/
typedef struct {
char process[11];
char GFEParameterName[11];
char gfename[20];
int processid;
int gribnum;
@ -115,14 +128,14 @@ typedef struct {
int timeunit;
} mygfe2grib;
int getAppsDefaults(const char* strToken, char* strTokenValue);
int nc_getAppsDefaults(const char* strToken, char* strTokenValue);
/************************************************************************
* This function loads token value.
* If token is not available, return -1; otherwise return 0.
************************************************************************/
int getAppsDefaults(const char* strToken, char* strTokenValue)
int nc_getAppsDefaults(const char* strToken, char* strTokenValue)
{
int tokenLen, tokenValueLen;
@ -146,7 +159,7 @@ int timet_to_userformat_ansi(time_t timet, char *ansi, char *userformat);
int basetime_ansi_to_timet(char *ansi, time_t *timet);
int main (int argc, char *argv[])
int nc2grib_main (int argc, char *argv[])
{
extern char *optarg; /* these are for the getopt C library function */
@ -192,18 +205,16 @@ int main (int argc, char *argv[])
int numgfeparms=0;
char cnum[3] = {'\0'};
int num_hours = 0; /* (num_days * 24) */
/* number of days of data to process - read from token - previously hard coded as 10 */
/* default value = 10 - if token not found then default value used */
int num_days = 0;
int numgfiles=0; /* number of grib files for combining files into one if desired */
char *gfiles[240]; /* array of char pointers for holding grib filenames if combining files */
/* for reading the NetCDF file */
int cdfid; /* Netcdf id */
int NetCDF_ID; /* Netcdf id */
int ndims; /* number of dimensions */
int nvars; /* number of variables */
int numVars; /* number of variables */
int ngatts; /* number of attributes */
int recdim;
long start[] = {0, 0, 0}; /* start at first value */
@ -251,13 +262,13 @@ int main (int argc, char *argv[])
int *gridPointLL, *gridPointUR;
double x1, y1, x2, y2, lat1, lon1, lat2, lon2;
nc_type vt_type, dn_type, ll_type, d_type, g_type;
nc_type cdfvar_type;
nc_type varDataType;
int vt_len, ll_len, d_len, g_len;
int cdfvar_id, *gridSize;
int cdfvar_ndims;
int cdfvar_dims[MAX_VAR_DIMS];
int cdfvar_natts;
char varname[MAX_NC_NAME]={'\0'};
int variableID, *gridSize;
int numberOfVariableDimensions;
int dimensionIDVector[MAX_VAR_DIMS];
int numAttributes;
char variableName[MAX_NC_NAME]={'\0'};
char dimname[MAX_NC_NAME]={'\0'};
char siteID[MAX_NC_NAME]={'\0'};
char cdfunits[MAX_NC_NAME]={'\0'};
@ -350,6 +361,8 @@ int main (int argc, char *argv[])
output_buffer = (size_t *) malloc (sizeof(size_t)*odim); /* output buffer used when writing GRIB message */
int variableFound = FALSE; /* Is the variable present in the NetCDF file? Stein Sep 2012 */
/* output_buffer = (int *) malloc (sizeof(int)*odim); /* output buffer used when writing GRIB message */
if(output_buffer==NULL)
@ -365,7 +378,7 @@ int main (int argc, char *argv[])
/* parse command line arguments */
while ((c = getopt(argc, argv, ":n:i:t:o::b:p:g:Nfrqhv1V")) != -1) {
while ((c = getopt(argc, argv, ":n:i:t:o::b:p:g:Nfrqhv1")) != -1) {
switch (c) {
@ -697,10 +710,6 @@ int main (int argc, char *argv[])
case '1': /* process only one record of NetCDF, useful for debugging */
time1flag++;
break;
case 'V':
printf("version number = %s%s\n",VERSION_NAME,VERSION_NUMBER);
exit(0);
break;
case ':': /* for options that need an operand */
if(optopt != 'o')
{
@ -728,12 +737,8 @@ int main (int argc, char *argv[])
case '?':
printf("Unrecognized program command line option: -%c\n", optopt);
errflag++;
}
} /* while c = getopt */
}
if (errflag || helpflag || argc==1 || ( iflag==0 || pflag==0) )
@ -748,26 +753,8 @@ int main (int argc, char *argv[])
return USAGE;
}
/* Print CHPS build number */
printf("version number = %s%s\n",VERSION_NAME,VERSION_NUMBER);
if(getAppsDefaults("nc2g_num_days",cnum) == -1)
{
num_days = 10;
}
else
{
num_days = atoi(cnum);
}
num_hours = num_days * 24;
//numgfiles = num_hours;
char *gfiles[num_hours]; /* array of char pointers for holding grib filenames if combining files */
printf("\n number of days to process = %d \n", num_days);
if(getAppsDefaults("nc2g_app_dir",appsdir) == -1)
if(nc_getAppsDefaults("nc2g_app_dir",appsdir) == -1)
{
fprintf(stderr," ERROR: Invalid token value for token \"nc2g_app_dir\".\n\t Program exit.\n");
status=display_usage();
@ -795,7 +782,7 @@ int main (int argc, char *argv[])
*(gribdir+PATH_LEN)='\0';
if(getAppsDefaults("fewsgrib_dir",gribdir) == -1)
if(nc_getAppsDefaults("fewsgrib_dir",gribdir) == -1)
{
printf(" ERROR: Invalid token value for token \"fewsgrib_dir\".\n\t Program exit.");
status=display_usage();
@ -824,38 +811,30 @@ int main (int argc, char *argv[])
/**************************************************************************/
/* Read one line at a time from the gfe2grib.txt configuration file. It is
* an arguable point as to whether this is necessary or even adds to the
* functionality of the program. I believe all this information can be
* derived directly from the NetCDF file. djsiii 13 Sep 2012
*/
/* NOTE - THERE IS A PROBLEM HERE WITH COMMENTS - THIS CODE ONLY CHECKS FOR
* '#' CHARACTERS AT THE BEGINNING OF THE LINE.
*/
while (fgets(fileline, LINE_MAX, fp) != NULL)
{
if(fileline[0] != '#') /* check for comments */
{
sscanf(fileline,"%s%s%d%d%d%d%d",gfe2grib.process, gfe2grib.gfename, &gfe2grib.processid,
sscanf(fileline,"%s%s%d%d%d%d%d",gfe2grib.GFEParameterName, gfe2grib.gfename, &gfe2grib.processid,
&gfe2grib.gribnum,&gfe2grib.decscale, &gfe2grib.timerange, &gfe2grib.timeunit);
if(debugflag>0)
printf(" DEBUG: Read in from gfe2grib.txt %s %s %d %d %d %d %d \n",gfe2grib.process, gfe2grib.gfename, gfe2grib.processid,
printf(" DEBUG: Read in from gfe2grib.txt %s %s %d %d %d %d %d \n",gfe2grib.GFEParameterName, gfe2grib.gfename, gfe2grib.processid,
gfe2grib.gribnum,gfe2grib.decscale, gfe2grib.timerange, gfe2grib.timeunit);
/* if (strstr(gfe2grib.process, process)!=NULL) */ /* found a problem using this. try next if instead */
/* if (strstr(gfe2grib.GFEParameterName, process)!=NULL) */ /* found a problem using this. try next if instead */
if (!(strcmp(gfe2grib.process, process)))
if (!(strcmp(gfe2grib.GFEParameterName, process)))
{
found = 1;
break;
}
} /* If not a comment */
}
}
} /* While we haven't reach the end of the gfe2grib.txt file */
if (found==0)
@ -878,6 +857,7 @@ int main (int argc, char *argv[])
{
inpath=(char *) malloc(sizeof(char)*(FILE_LEN+1));
if(inpath==NULL)
{
printf(" ERROR: Something went wrong with memory allocation for the NetCDF input directory....exiting\n");
@ -886,7 +866,7 @@ int main (int argc, char *argv[])
*(inpath+FILE_LEN)='\0';
if(getAppsDefaults("netcdf_dir",inpath) == -1)
if(nc_getAppsDefaults("netcdf_dir",inpath) == -1)
{
printf(" ERROR: Invalid token value for token \"netcdf_dir\".\n\t Program exit.");
return APSDEFERR;
@ -896,8 +876,7 @@ int main (int argc, char *argv[])
printf(" Default path for the input NetCDF file not specified...Will use the following:\n" \
" %s\n",inpath);
}
} /* if inpath is NULL */
}
/***************************************************************************/
else if(debugflag)
printf(" Will attempt to read NetCDF file from this path:\n" \
@ -912,9 +891,9 @@ int main (int argc, char *argv[])
sprintf(fn,"%s/%s",inpath,infn);
cdfid = ncopen(fn,NC_NOWRITE);
NetCDF_ID=ncopen(fn,NC_NOWRITE);
if (cdfid==-1)
if (NetCDF_ID==-1)
{
printf("\n ERROR: Could not open the netcdf file: %s\n", fn);
return CDFERR;
@ -927,7 +906,7 @@ int main (int argc, char *argv[])
/* Inquire about the Netcdf file: No.of dimensions, No.of variables,
No. of global attributes etc.*/
ncinquire (cdfid, &ndims, &nvars, &ngatts, &recdim);
ncinquire (NetCDF_ID, &ndims, &numVars, &ngatts, &recdim);
/*************************************************************************/
/* debug */
@ -935,40 +914,92 @@ if (debugflag >0)
{
printf("\n Debug option on. Debug info from reading the netcdf file follows:\n\n");
printf (" Number of dimensions for this netcdf file is: %d\n",ndims);
printf (" Number of variables for this netcdf file is: %d\n",nvars);
printf (" Number of variables for this netcdf file is: %d\n",numVars);
printf (" Number of global attributes for this netcdf file is: %d\n",ngatts);
}
/*************************************************************************/
/**************************************************************************
* Sep 2012 - Stein The utility that takes GFE data and converts it to
* NetCDF format is ifpNetCDF. To the best of my knowledge, this utility
* always puts exactly one variable and exactly one history variable into
* each NetCDF file. The section of code below originally assumed that the
* germane variable (i.e. the non-history variable) was always the first one
* in the file. It was hard-coded to look at variableID 0.
*
* For whatever reason, this order was changed in AWIPS-II so that the
* history variable showed up first and the program wouldn't work. I was
* tasked with correcting this program to make it order independent. My
* solution was to loop through all the variables to see whether the
* variable we're looking for is in the NetCDF file. If it is, variableID
* is set to it's value. If not found, the program will exit as it did
* before.
*
* In addition to inserting the section of code below, I also
* changed a few variable names to make the code more understandable.
*************************************************************************/
cdfvar_id = 0; /* this should not change for this application as the first variable will be the one
that contains the QPF, Temp, etc. */
/* Below, I loop through all the variables, checking the name of each one
* against gfe2grib.gfename.
*/
ncvarinq (cdfid, cdfvar_id, varname, &cdfvar_type, &cdfvar_ndims, cdfvar_dims, &cdfvar_natts);
variableID = 0; /* Start with the 1st variable in the NetCDF file */
variableFound = FALSE; /* We haven't found it yet */
printf ("\n NetCDF variable name = %s\n",varname);
/***********************************************************************/
if (debugflag>0)
{
printf (" Number of %s dimensions - %d\n",varname, cdfvar_ndims);
printf (" Number of %s attributes - %d\n\n",varname, cdfvar_natts);
}
/**********************************************************************/
if (strstr(varname,gfe2grib.gfename)==NULL)
while ( (variableID < numVars) && (!variableFound) )
{
printf("ERROR: The parameter name in the GFE NetCDF file, %s, doe not match the one\n" \
/* Get Information about each variable from its ID (NetCDF variable
* inquiry).
*/
ncvarinq (NetCDF_ID, variableID, variableName, &varDataType, &numberOfVariableDimensions,
dimensionIDVector, &numAttributes);
/***********************************************************************/
if (debugflag)
{
printf ("\nNetCDF variable name = %s\n",variableName);
printf (" Number of %s dimensions - %d\n", variableName, numberOfVariableDimensions);
printf (" Number of %s attributes - %d\n\n", variableName, numAttributes);
}
/**********************************************************************/
if (strcmp(variableName, gfe2grib.gfename) == 0) /* Found it! */
{
variableFound = TRUE;
}
else /* Didn't find it - try the next variable */
{
++variableID; /* Increment variableID, look at the next variable */
}
} /* while ( (variableID < numVars) && (!variableFound) ) */
if (!variableFound) /* If the variable wasn't in the NetCDF file */
{
printf("ERROR: The parameter name in the GFE NetCDF file, %s, does not match the one\n" \
"associated with the process id in the gfe2grib.txt file.\n" \
"In gfe2grib.txt process ID %s is associated with GFE parameter name %s.\n" \
"Please specify the correct process ID and try again\n\n",varname,gfe2grib.process,gfe2grib.gfename);
"Please specify the correct process ID and try again\n\n",
variableName,gfe2grib.GFEParameterName,gfe2grib.gfename);
return CDFERR;
}
if(cdfvar_ndims==3) /* in some cases, this may not be true if file is produced from MPE/DQC */
/* Sep 2012 - Stein Aside from changing some variable names, this is the
* end of the section of code that I changed.
*/
if(numberOfVariableDimensions==3) /* in some cases, this may not be true if file is produced from MPE/DQC */
{
for (i=0; i<cdfvar_ndims; i++)
for (i=0; i<numberOfVariableDimensions; i++)
{
ncdiminq(cdfid,cdfvar_dims[i],dimname,&dim_size);
ncdiminq(NetCDF_ID,dimensionIDVector[i],dimname,&dim_size);
if (i==1)
y=dim_size;
@ -978,7 +1009,7 @@ if (debugflag>0)
{
printf("\n Number of dimensions is %d, which is too many dimensions for variable %s.\n" \
" Please ensure the NetCDF file is created properly for at most three dimensions, where\n" \
" the first dimension allows the NetCDF file to contain multiple records.\n",cdfvar_ndims,varname);
" the first dimension allows the NetCDF file to contain multiple records.\n",numberOfVariableDimensions,variableName);
return CDFERR;
}
@ -991,14 +1022,14 @@ if (debugflag >0)
}
}
else if (cdfvar_ndims==2)
else if (numberOfVariableDimensions==2)
{
for (i=0; i<cdfvar_ndims; i++)
for (i=0; i<numberOfVariableDimensions; i++)
{
ncdiminq(cdfid,cdfvar_dims[i],dimname,&dim_size);
ncdiminq(NetCDF_ID,dimensionIDVector[i],dimname,&dim_size);
if (i==0)
y=dim_size;
@ -1018,7 +1049,7 @@ if (debugflag >0)
printf("\n nc2grib is not coded to handle %d number of dimensions for variable %s.\n" \
" Please ensure the NetCDF file is created properly for two or three dimensions, where\n" \
" two dimensions indicates only 1 record of the variable and three dimensions allow\n" \
" the NetCDF file to contain multiple records.\n",cdfvar_ndims,varname);
" the NetCDF file to contain multiple records.\n",numberOfVariableDimensions,variableName);
return CDFERR;
}
@ -1032,59 +1063,59 @@ if (debugflag >0)
long count[]={1,y,x};
long count1r[]={y,x};
ncattinq(cdfid,cdfvar_id,"validTimes",&vt_type,&vt_len);
ncattinq(NetCDF_ID,variableID,"validTimes",&vt_type,&vt_len);
validTimes = (long *) malloc(vt_len * nctypelen(vt_type));
ncattget(cdfid, cdfvar_id, "validTimes", validTimes);
ncattget(NetCDF_ID, variableID, "validTimes", validTimes);
ncattget(cdfid, cdfvar_id, "descriptiveName", descriptName);
ncattget(NetCDF_ID, variableID, "descriptiveName", descriptName);
ncattget(cdfid, cdfvar_id, "siteID", siteID);
ncattget(NetCDF_ID, variableID, "siteID", siteID);
ncattget(cdfid, cdfvar_id, "units", cdfunits);
ncattget(NetCDF_ID, variableID, "units", cdfunits);
ncattget(cdfid, cdfvar_id, "projectionType", projection);
ncattget(NetCDF_ID, variableID, "projectionType", projection);
ncattinq(cdfid,cdfvar_id,"latLonLL",&ll_type,&ll_len);
ncattinq(NetCDF_ID,variableID,"latLonLL",&ll_type,&ll_len);
latlonLL = (double *) malloc(ll_len * nctypelen(ll_type));
ncattget(cdfid, cdfvar_id, "latLonLL", (void *) latlonLL);
ncattget(NetCDF_ID, variableID, "latLonLL", (void *) latlonLL);
latlonUR = (double *) malloc(ll_len * nctypelen(ll_type));
ncattget(cdfid, cdfvar_id, "latLonUR", (void *) latlonUR);
ncattget(NetCDF_ID, variableID, "latLonUR", (void *) latlonUR);
ncattinq(cdfid,cdfvar_id,"domainOrigin",&d_type,&d_len);
ncattinq(NetCDF_ID,variableID,"domainOrigin",&d_type,&d_len);
domainOrigin = (double *) malloc(d_len * nctypelen(d_type));
ncattget(cdfid, cdfvar_id, "domainOrigin", (void *) domainOrigin);
ncattget(NetCDF_ID, variableID, "domainOrigin", (void *) domainOrigin);
ncattinq(cdfid,cdfvar_id,"domainExtent",&d_type,&d_len);
ncattinq(NetCDF_ID,variableID,"domainExtent",&d_type,&d_len);
domainExtent = (double *) malloc(d_len * nctypelen(d_type));
ncattget(cdfid, cdfvar_id, "domainExtent", (void *) domainExtent);
ncattget(NetCDF_ID, variableID, "domainExtent", (void *) domainExtent);
ncattinq(cdfid,cdfvar_id,"gridSize",&g_type,&g_len);
ncattinq(NetCDF_ID,variableID,"gridSize",&g_type,&g_len);
gridSize = (int *) malloc(g_len * nctypelen(g_type));
ncattget(cdfid, cdfvar_id, "gridSize", (void *) gridSize);
ncattget(NetCDF_ID, variableID, "gridSize", (void *) gridSize);
ncattinq(cdfid,cdfvar_id,"gridPointLL",&g_type,&g_len);
ncattinq(NetCDF_ID,variableID,"gridPointLL",&g_type,&g_len);
gridPointLL = (int *) malloc(g_len * nctypelen(g_type));
ncattget(cdfid, cdfvar_id, "gridPointLL", (void *) gridPointLL);
ncattget(NetCDF_ID, variableID, "gridPointLL", (void *) gridPointLL);
ncattinq(cdfid,cdfvar_id,"gridPointUR",&g_type,&g_len);
ncattinq(NetCDF_ID,variableID,"gridPointUR",&g_type,&g_len);
gridPointUR = (int *) malloc(g_len * nctypelen(g_type));
ncattget(cdfid, cdfvar_id, "gridPointUR", (void *) gridPointUR);
ncattget(NetCDF_ID, variableID, "gridPointUR", (void *) gridPointUR);
/* initialize the array to missing value */
@ -1274,7 +1305,7 @@ if (debugflag >0)
grib_lbl[41]=0;
grib_lbl[42]=0;
ncattget(cdfid, cdfvar_id, "lonOrigin", &lonOrigin);
ncattget(NetCDF_ID, variableID, "lonOrigin", &lonOrigin);
grib_lbl[34]=lonOrigin*1000.; /* longitude of grid point orientation */
@ -1291,16 +1322,16 @@ if (debugflag >0)
grib_lbl[29]=(int) x;
grib_lbl[30]=(int) y;
ncattinq(cdfid,cdfvar_id,"latLonOrigin",&ll_type,&ll_len);
ncattinq(NetCDF_ID,variableID,"latLonOrigin",&ll_type,&ll_len);
latLonOrigin = (double *) malloc(ll_len * nctypelen(ll_type));
ncattget(cdfid, cdfvar_id, "latLonOrigin", latLonOrigin);
ncattget(NetCDF_ID, variableID, "latLonOrigin", latLonOrigin);
grib_lbl[34]=(*latLonOrigin)*1000.;
ncattget(cdfid, cdfvar_id, "stdParallelOne", &stdParallelOne);
ncattget(cdfid, cdfvar_id, "stdParallelTwo", &stdParallelTwo);
ncattget(NetCDF_ID, variableID, "stdParallelOne", &stdParallelOne);
ncattget(NetCDF_ID, variableID, "stdParallelTwo", &stdParallelTwo);
grib_lbl[39]=stdParallelOne*1000;
@ -1683,14 +1714,14 @@ if (debugflag>0)
if (esth > num_hours || esth < 0)
if (esth > 240 || esth < 0)
{
printf(" The estimated/observed time period is either less than 0 or greater than %d hours.\n" \
printf(" The estimated/observed time period is either less than 0 or greater than 10 days (240 hours).\n" \
" Therefore, valid times within the input NetCDF filename may not have been generated \n" \
" correctly. Or this is actually a forecast grid and the -b option should be used so it \n" \
" will be processed correctly. Check your options and ensure this is an estimate or observed grid\n" \
" You could also try to generate the file again.\n" \
" For debug esth = %d\n",num_hours, esth);
" For debug esth = %d\n",esth);
return FILEERR;
}
@ -1753,13 +1784,13 @@ if (debugflag>0)
printf(" DEBUG: fcsth = %d timediff=%f valid time = %ld basis time_t = %ld\n",fcsth, timediff,(*(validTimes+m+1)), basetime_t);
/*************************************************************/
if (fcsth > num_hours || fcsth < 0)
if (fcsth > 240 || fcsth < 0)
{
printf(" The forecast time is either less than 0 or greater than %d hours.\n" \
printf(" The forecast time is either less than 0 or greater than 10 days (240 hours).\n" \
" Therefore, the basis time may not be specified correctly or may need to be specified \n" \
" on the command line according to guidance. Please check your command options or \n" \
" or the NetCDF file creation and try again.\n" \
" for debug fcsth = %d\n",num_hours, fcsth);
" for debug fcsth = %d\n",fcsth);
return FILEERR;
}
@ -1806,18 +1837,18 @@ if (debugflag >0)
/* Get data for this time record */
if(cdfvar_ndims==3)
if(numberOfVariableDimensions==3)
{
start[0]=(long) (m/2);
status = ncvarget(cdfid,cdfvar_id,start,count,cdfvargrid);
status = ncvarget(NetCDF_ID,variableID,start,count,cdfvargrid);
}
else if (cdfvar_ndims==2)
else if (numberOfVariableDimensions==2)
{
start1r[0]=(long) (m/2);
status = ncvarget(cdfid,cdfvar_id,start1r,count1r,cdfvargrid);
status = ncvarget(NetCDF_ID,variableID,start1r,count1r,cdfvargrid);
}
if (status != NC_NOERR)
@ -1952,10 +1983,6 @@ if (debugflag >0)
}
/*************************************************************************/
/* I'm hoping this is where the "meat" of the conversion is taking place.
* I'm also hoping that everything else above is simply parameter checking.
* djsiii 13 Sep 2012
*/
status = packgrib(grib_lbl,pds_ext,&iplen,cdfvargrid,&idim,&xmissing,
output_buffer,&odim,&length);
@ -1967,7 +1994,7 @@ if (debugflag >0)
}
else
{
if(cdfvar_ndims==3)
if(numberOfVariableDimensions==3)
printf("\n Gribbing of data successful for record %ld\n",start[0]+1);
else
printf("\n Gribbing of data successful for record %ld\n",start1r[0]+1);
@ -2299,14 +2326,14 @@ if(debugflag>0)
/********************************************************************/
if(getAppsDefaults("pproc_bin",pprocbin) == -1)
if(nc_getAppsDefaults("pproc_bin",pprocbin) == -1)
{
printf(" ERROR: Invalid token value for token \"pproc_bin\".\n\t Program exit.");
return APSDEFERR;
}
/* fortran routine copygb_main_ */
sprintf(file_path,"%s/copygb.LX",pprocbin);
sprintf(tmpNPVUfn,"%s/%s",gribdir,"tmpNPVU.grb");
@ -2320,15 +2347,18 @@ if(debugflag>0)
/* the -X here causes copygb to print out expanded information about its operation */
sprintf(command,"%s -xg218 -X %s %s",file_path, outfn, tmpNPVUfn);
/* sprintf(command,"%s -xg218 -X %s %s",file_path, outfn, tmpNPVUfn); */
sprintf(command,"-xg218 -X %s %s", outfn, tmpNPVUfn);
else
sprintf(command,"%s -xg218 %s %s",file_path, outfn, tmpNPVUfn);
/* sprintf(command,"%s -xg218 %s %s",file_path, outfn, tmpNPVUfn); */
sprintf(command,"-xg218 %s %s", outfn, tmpNPVUfn);
/* first write out the main GRIB file using the copygb command without the header determined above
to a temporary holding file. This file will now contain the QPF forecast on GRID218 at 10km
resolution */
status = system(command);
copygb_main_(command);
/* status = system(command); */
}
else
{
@ -2654,7 +2684,7 @@ if (debugflag >0)
}
ncclose(cdfid);
ncclose(NetCDF_ID);
/* if user desires only 1 GRIB file, must combine all into one */
@ -2907,7 +2937,7 @@ int display_usage(void)
/* ============== Statements containing RCS keywords: */
{static char rcs_id1[] = "$Source: /fs/hseb/ob9d/ohd/pproc/src/nc2grib/RCS/main_nc2grib.c,v $";
static char rcs_id2[] = "$Id: main_nc2grib.c,v 1.3 2011/10/26 14:49:35 pst Exp $";}
static char rcs_id2[] = "$Id: main_nc2grib.c,v 1.2 2010/06/14 15:04:32 millerd Exp $";}
/* =================================================== */
}

View file

@ -0,0 +1,60 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core" 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-2.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="gpdDecoder" class="gov.noaa.nws.ncep.edex.plugin.gpd.decoder.GenericPointDataDecoder">
<property name="pluginName" value="gpd" />
</bean>
<bean id="gpdDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="gpd" />
<constructor-arg value="jms-dist:queue:ingest.gpd" />
</bean>
<bean id="gpdCamelRegistered" factory-bean="contextManager"
factory-method="register" depends-on="persistCamelRegistered">
<constructor-arg ref="gpd-camel"/>
</bean>
<camelContext id="gpd-camel"
xmlns="http://camel.apache.org/schema/spring"
errorHandlerRef="errorHandler"
autoStartup="false">
<endpoint id="gpdEndpoint" uri="file:${edex.home}/data/sbn/gpd?noop=true&amp;idempotent=false" />
<route id="gpdFileConsumerRoute">
<from ref="gpdEndpoint" />
<bean ref="fileToString" />
<setHeader headerName="pluginName">
<constant>gpd</constant>
</setHeader>
<to uri="jms-generic:queue:ingest.gpd" />
</route>
<route id="gpdIngestRoute">
<from uri="jms-generic:queue:ingest.gpd" />
<setHeader headerName="pluginName">
<constant>gpd</constant>
</setHeader>
<bean ref="stringToFile" />
<doTry>
<pipeline>
<bean ref="gpdDecoder" method="decodeGempakProdFmSbn" />
<!-- multicast>
<to uri="directvm:persistIndexAlert" />
</multicast-->
</pipeline>
<doCatch>
<exception>java.lang.Throwable</exception>
<to uri="log:ncuair?level=ERROR" />
</doCatch>
</doTry>
</route>
</camelContext>
</beans>

View file

@ -284,7 +284,8 @@ import org.apache.log4j.Logger;
//This method is much faster comparing to doBatchSeparate1. Only several header search is needed.
private void doBatchSeparate(byte[] data ) {
/* Regex used for separate the bulletins */
System.out.println("Ncuair doBatchSeparate: input file size is " + data.length);
int dataLen = data.length;
//System.out.println("Ncuair doBatchSeparate: input file size is " + dataLen);
final String BULLSEPARATOR = "\\x01\\r\\r\\n\\d{3} \\r\\r\\n"+ WMO_HEADER;
Pattern bullPattern;
bullPattern = Pattern.compile(BULLSEPARATOR);
@ -293,40 +294,58 @@ import org.apache.log4j.Logger;
String msg ;
int batchSize = 230000; //separate data to batch size around 230000
String batchStr;
while(charCount < data.length){
//int count=0;
while(charCount < dataLen){
lastCharCount = charCount;
charCount = charCount+ batchSize;
if(charCount < data.length){
//count++;
if(charCount < dataLen){
//System.out.println("1st substring begin @"+charCount);
msg = message.substring(charCount);
try {
// data bulletin is not ended at exactly 2300000 bytes for each batch
// therefore, find the next header of bulletin and chop batch data at there
Matcher bullMatcher = bullPattern.matcher(msg);
if (bullMatcher.find()) {
int start = bullMatcher.start();
charCount = charCount+ start;
batchStr= new String();
//System.out.println("2nd substring begin @"+lastCharCount+ " end @"+charCount);
batchStr = message.substring(lastCharCount,charCount);
records.add(batchStr);
}
else{
// no header find, should be the end of the data
batchStr= new String();
batchStr = message.substring(lastCharCount,data.length);
//System.out.println("3rd substring begin @"+lastCharCount+ " end @"+(dataLen-1));
batchStr = message.substring(lastCharCount,dataLen-1);
records.add(batchStr);
break;
}
}
catch (Exception e) {
if ( log.isInfoEnabled()) {
log.info ("doBatchSeparate exception !");
log.info ("doBatchSeparate exception !" + e);
}
break;
}
}
else{
// should be the last batch of the data, just add them without search next header
msg = message.substring(lastCharCount,data.length);
try{
//System.out.println("4th substring begin @"+lastCharCount+ " end @"+(dataLen-1));
msg = message.substring(lastCharCount,dataLen-1);
records.add(msg);
}
catch (Exception e) {
if ( log.isInfoEnabled()) {
log.info ("doBatchSeparate last batch exception !"+e);
}
}
break;
}
}

View file

@ -0,0 +1,223 @@
package gov.noaa.nws.ncep.ui.nsharp.display.rsc;
/**
*
*
* This code has been developed by the NCEP-SIB for use in the AWIPS2 system.
*
* <pre>
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------- ------- -------- -----------
* 09/2013 Chin Chen Initial coding
*
* </pre>
*
* @author Chin Chen
* @version 1.0
*/
import java.awt.Color;
import java.util.ArrayList;
import org.eclipse.swt.graphics.RGB;
import com.raytheon.uf.viz.core.IGraphicsTarget;
import com.raytheon.uf.viz.core.drawables.IDescriptor;
import com.raytheon.uf.viz.core.drawables.IShadedShape;
import com.raytheon.uf.viz.core.drawables.IWireframeShape;
import com.raytheon.uf.viz.core.drawables.PaintProperties;
import com.raytheon.viz.ui.color.IBackgroundColorChangedListener.BGColorMode;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.linearref.LengthIndexedLine;
import gov.noaa.nws.ncep.ui.pgen.display.DisplayElementFactory;
import gov.noaa.nws.ncep.ui.pgen.display.FillDisplayElement;
import gov.noaa.nws.ncep.ui.pgen.display.IDisplayable;
import gov.noaa.nws.ncep.ui.pgen.display.IVector;
import gov.noaa.nws.ncep.ui.pgen.display.LineDisplayElement;
/*
* Chin Note: This class extends from PGEN's DisplayElementFactory. Its purpose is only for
* Nsharp to draw wind barb in SkewT display. As skewT has its own log scale coordination.
* The key word, CHANGED, is used to mark changes from original PGEN code.
*/
public class NsharpDisplayElementFactory extends DisplayElementFactory {
public NsharpDisplayElementFactory(IGraphicsTarget target,
IDescriptor iDescriptor) {
super(target, iDescriptor);
// TODO Auto-generated constructor stub
}
@SuppressWarnings("deprecation")
private ArrayList<IDisplayable> createWindBarb(IVector vect) {
double sfactor = deviceScale * vect.getSizeScale() * 10.;
IWireframeShape mask = null;
Color bgColor = new Color(0,0,0); // default black
/*
* Create the List to be returned, and wireframe shape
*/
ArrayList<IDisplayable> slist = new ArrayList<IDisplayable>();
IWireframeShape barb = target.createWireframeShape(false, iDescriptor);
IShadedShape flags = target.createShadedShape(false, iDescriptor, false);
if ( vect.hasBackgroundMask() ) {
mask = target.createWireframeShape(false, iDescriptor);
RGB bg = backgroundColor.getColor(BGColorMode.EDITOR);
bgColor = new Color(bg.red, bg.green, bg.blue);
}
/*
* Get color for creating displayables.
*/
Color dspClr = getDisplayColor( vect.getColor() );
/*
* CHANGED: these 2 lines changed
*/
double[] start = { vect.getLocation().x, vect.getLocation().y, 0.0 };
//double[] start = iDescriptor.worldToPixel(tmp);
/*
* If calm wind, draw circle
*/
if ( vect.getSpeed() < 0.5 ) {
double[][] pts = calculateCircle(start,sfactor*0.1);
if ( vect.hasBackgroundMask() ) {
mask.addLineSegment(pts);
mask.compile();
slist.add( new LineDisplayElement(mask, bgColor, vect.getLineWidth() + (float)deviceScale) );
}
barb.addLineSegment(pts);
barb.compile();
slist.add( new LineDisplayElement(barb, dspClr, vect.getLineWidth()) );
return slist;
}
/*
* Compute the number of flags, whole barbs and half barbs
* needed to represent the wind speed.
*/
int speed = (int)Math.floor(vect.getSpeed() + 2.5);
int numflags = speed / 50;
int remainder = speed % 50;
int numbarbs = remainder / 10;
remainder = remainder % 10;
int halfbarbs = remainder / 5;
double MAX_SEGMENTS = 6.0; // Maximum number of segments on original size barb
int numsegs = (2 * numflags) + numbarbs + halfbarbs;
double segmentSpacing = sfactor / MAX_SEGMENTS;
double windLength = segmentSpacing * Math.max( MAX_SEGMENTS, numsegs);
double barbLength = sfactor /3.0;
/*
* find the end point of the wind barb
*/
//CHANGED:this line changed
double angle = -90.0 + vect.getDirection();
double[] end = new double[3];
end[0] = start[0] + (windLength * Math.cos(Math.toRadians(angle)) );
end[1] = start[1] + (windLength * Math.sin(Math.toRadians(angle)) );
end[2] = 0.0;
//System.out.println("X0="+start[0]+" Y0="+start[1]+" X1="+end[0]+" Y1="+ end[1]);
barb.addLineSegment(new double[][] {start, end});
if ( vect.hasBackgroundMask() ) mask.addLineSegment(new double[][] {start, end});
/*
* Create a LengthIndexedLine used to reference points along the path
* at specific distances
*/
LineString[] ls = toLineString(new Coordinate[] {new Coordinate(start[0],start[1]),
new Coordinate(end[0], end[1]) } );
LengthIndexedLine lil = new LengthIndexedLine(ls[0]);
double currentLoc = lil.getEndIndex(); // start from tail end
//TODO - orientation issues
double BARB_ANGLE = 70.0;
double barbAngle = angle + BARB_ANGLE;
if ( vect.getLocation().y < 0.0 ) barbAngle = angle - BARB_ANGLE;
double cosineBarbAngle = Math.cos(Math.toRadians(barbAngle));
double sineBarbAngle = Math.sin(Math.toRadians(barbAngle));
/*
* Process flags
*/
for ( int j=0; j<numflags; j++) {
Coordinate coords[] = new Coordinate[4];
coords[0] = lil.extractPoint(currentLoc);
coords[1] = lil.extractPoint(currentLoc-segmentSpacing);
double xtip = coords[1].x + ( barbLength * cosineBarbAngle );
double ytip = coords[1].y + ( barbLength * sineBarbAngle );
coords[2] = new Coordinate(xtip,ytip);
coords[3] = coords[0];
LineString[] oneFlag = toLineString(coords);
flags.addPolygonPixelSpace(oneFlag, new RGB( dspClr.getRed(), dspClr.getGreen(), dspClr.getBlue()));
if ( vect.hasBackgroundMask() ) mask.addLineSegment(toDouble(coords));
currentLoc -= 2 * segmentSpacing;
}
/*
* Process barbs
*/
for ( int j=0; j<numbarbs; j++) {
Coordinate coords[] = new Coordinate[2];
coords[0] = lil.extractPoint(currentLoc);
double xtip = coords[0].x + ( barbLength * cosineBarbAngle );
double ytip = coords[0].y + ( barbLength * sineBarbAngle );
coords[1] = new Coordinate(xtip,ytip);
double[][] pts = toDouble(coords);
barb.addLineSegment(pts);
if ( vect.hasBackgroundMask() ) mask.addLineSegment(pts);
currentLoc -= segmentSpacing;
}
/*
* Process half barbs
*/
for ( int j=0; j<halfbarbs; j++) {
Coordinate coords[] = new Coordinate[2];
coords[0] = lil.extractPoint(currentLoc);
double xtip = coords[0].x + ( 0.5 * barbLength * cosineBarbAngle );
double ytip = coords[0].y + ( 0.5 * barbLength * sineBarbAngle );
coords[1] = new Coordinate(xtip,ytip);
double[][] pts = toDouble(coords);
barb.addLineSegment(pts);
if ( vect.hasBackgroundMask() ) mask.addLineSegment(pts);
currentLoc -= segmentSpacing;
}
if ( vect.hasBackgroundMask() ) {
mask.compile();
slist.add( new LineDisplayElement(mask, bgColor, vect.getLineWidth() + (float)deviceScale) );
}
/*
*
*/
flags.compile();
FillDisplayElement fde = new FillDisplayElement(flags, vect.getColor().getAlpha());
slist.add(fde);
/*
* add shaft wireframe to return list
*/
barb.compile();
slist.add( new LineDisplayElement(barb, dspClr, vect.getLineWidth()) );
return slist;
}
@Override
//CHANGED from original PGEN code to just handle wind barbs creation
public ArrayList<IDisplayable> createDisplayElements(IVector vect,
PaintProperties paintProps) {
setScales(paintProps);
ArrayList<IDisplayable> slist = createWindBarb(vect);
return slist;
}
}

View file

@ -351,12 +351,15 @@ public class NsharpResourceHandler {
int stnIndex = stnElementList.indexOf(elm);
NsharpSoundingElementStateProperty stnTmElm = stnTimeSndTable.get(stnIndex).get(currentTimeElementListIndex).get(currentSndElementListIndex);
if(stnTmElm!=null){
stnTmElm.setCompColorIndex(colorIndex++);
stnTmElm.setCompColorIndex(colorIndex);
//if(colorIndex > NsharpConstants.LINE_COMP10)
// colorIndex = NsharpConstants.LINE_COMP1;
}
colorIndex++;
if(colorIndex > NsharpConstants.LINE_COMP10)
colorIndex = NsharpConstants.LINE_COMP1;
}
}
}
setCurSndProfileProp();
setCurrentSoundingLayerInfo();
resetData();
@ -387,12 +390,15 @@ public class NsharpResourceHandler {
int sndIndex = sndElementList.indexOf(elm);
NsharpSoundingElementStateProperty stnTmElm = stnTimeSndTable.get(currentStnElementListIndex).get(currentTimeElementListIndex).get(sndIndex);
if(stnTmElm!=null){
stnTmElm.setCompColorIndex(colorIndex++);
stnTmElm.setCompColorIndex(colorIndex);
//if(colorIndex > NsharpConstants.LINE_COMP10)
// colorIndex = NsharpConstants.LINE_COMP1;
}
colorIndex++;
if(colorIndex > NsharpConstants.LINE_COMP10)
colorIndex = NsharpConstants.LINE_COMP1;
}
}
}
setCurSndProfileProp();
setCurrentSoundingLayerInfo();
resetData();
@ -425,12 +431,15 @@ public class NsharpResourceHandler {
int tmIndex = timeElementList.indexOf(elm);
NsharpSoundingElementStateProperty stnTmElm = stnTimeSndTable.get(currentStnElementListIndex).get(tmIndex).get(currentSndElementListIndex);
if(stnTmElm!=null){
stnTmElm.setCompColorIndex(colorIndex++);
stnTmElm.setCompColorIndex(colorIndex);
//if(colorIndex > NsharpConstants.LINE_COMP10)
// colorIndex = NsharpConstants.LINE_COMP1;
}
colorIndex++;
if(colorIndex > NsharpConstants.LINE_COMP10)
colorIndex = NsharpConstants.LINE_COMP1;
}
}
}
setCurSndProfileProp();
setCurrentSoundingLayerInfo();
resetData();
@ -1201,6 +1210,9 @@ public class NsharpResourceHandler {
currentInsetPage = 1;
currentParcel = NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE;
currentParcelLayerPressure = NsharpNativeConstants.MU_LAYER;
currentTimeElementListIndex = -1;
currentStnElementListIndex = -1;
currentSndElementListIndex = -1;
resetData();
}
@ -1409,12 +1421,12 @@ public class NsharpResourceHandler {
Set<String> keyset= new HashSet<String>(soundMap.keySet());
for(String key: keyset) {
List<NcSoundingLayer> sndLy = soundMap.remove(key);
String newkey= key.replace("NAMS", "GOOGLE");
String newkey= key.replace("NCUAIR", "gpduair");
//String newkey= key.replace("GFSS", "NAMS");
//newkey = newkey.replace("KSLN", "KFSD");
//String newkey = key.replace("OAK", "KFSD");
soundMap.put(newkey, sndLy);
}
stnInfo.setSndType(stnInfo.getSndType().replace("NAMS", "GOOGLE"));
stnInfo.setSndType(stnInfo.getSndType().replace("NCUAIR", "gpduair"));
//stnInfo.setSndType(stnInfo.getSndType().replace("GFSS", "NAMS"));
}//*/
@ -1803,6 +1815,9 @@ public class NsharpResourceHandler {
case FIRST: //the oldest time, set to dataTimelineList.length, so in while loop, it starts from dataTimelineList.length-1
targetIndex = timeElementList.size();
break;
default:
break;
}
int counter=0;
@ -1824,6 +1839,8 @@ public class NsharpResourceHandler {
targetIndex--;
targetIndex = targetIndex % this.timeElementList.size();
break;
default:
break;
}
counter++;
if(counter >= timeElementList.size())
@ -1860,12 +1877,15 @@ public class NsharpResourceHandler {
int stnIndex = stnElementList.indexOf(elm);
NsharpSoundingElementStateProperty stnTmElm = stnTimeSndTable.get(stnIndex).get(targetIndex).get(currentSndElementListIndex);
if(stnTmElm != null){
stnTmElm.setCompColorIndex(colorIndex++);
stnTmElm.setCompColorIndex(colorIndex);
//if(colorIndex > NsharpConstants.LINE_COMP10)
// colorIndex = NsharpConstants.LINE_COMP1;
}
colorIndex++;
if(colorIndex > NsharpConstants.LINE_COMP10)
colorIndex = NsharpConstants.LINE_COMP1;
}
}
}
//no matter we find current stn or not
//we should get out of here
break;
@ -1897,12 +1917,12 @@ public class NsharpResourceHandler {
continue;
int sndIndex = sndElementList.indexOf(elm);
NsharpSoundingElementStateProperty stnTmElm = stnTimeSndTable.get(currentStnElementListIndex).get(targetIndex).get(sndIndex);
if(stnTmElm !=null){
stnTmElm.setCompColorIndex(colorIndex++);
if(stnTmElm!=null){
stnTmElm.setCompColorIndex(colorIndex);
}
colorIndex++;
if(colorIndex > NsharpConstants.LINE_COMP10)
colorIndex = NsharpConstants.LINE_COMP1;
}
}
}
//no matter we find current snd type for this stn or not
@ -1943,6 +1963,9 @@ public class NsharpResourceHandler {
currentStnElementListIndex++;
currentStnElementListIndex = currentStnElementListIndex % this.stnElementList.size();
break;
default:
break;
}
counter++;
//System.out.println("counter = "+ counter);
@ -1981,14 +2004,15 @@ public class NsharpResourceHandler {
continue;
int tmIndex = timeElementList.indexOf(elm);
NsharpSoundingElementStateProperty stnTmElm = stnTimeSndTable.get(currentStnElementListIndex).get(tmIndex).get(currentSndElementListIndex);
if(stnTmElm != null){
stnTmElm.setCompColorIndex(colorIndex++);
if(stnTmElm!=null){
stnTmElm.setCompColorIndex(colorIndex);
}
colorIndex++;
if(colorIndex > NsharpConstants.LINE_COMP10)
colorIndex = NsharpConstants.LINE_COMP1;
}
}
}
//no matter we find current time line for this stn or not
//we should get out of here
break;
@ -2020,12 +2044,12 @@ public class NsharpResourceHandler {
continue;
int sndIndex = sndElementList.indexOf(elm);
NsharpSoundingElementStateProperty stnTmElm = stnTimeSndTable.get(currentStnElementListIndex).get(currentTimeElementListIndex).get(sndIndex);
if(stnTmElm !=null){
stnTmElm.setCompColorIndex(colorIndex++);
if(stnTmElm!=null){
stnTmElm.setCompColorIndex(colorIndex);
}
colorIndex++;
if(colorIndex > NsharpConstants.LINE_COMP10)
colorIndex = NsharpConstants.LINE_COMP1;
}
}
}
//no matter we find current snd type for this stn or not
@ -2065,6 +2089,9 @@ public class NsharpResourceHandler {
currentSndElementListIndex++;
currentSndElementListIndex = currentSndElementListIndex % this.sndElementList.size();
break;
default:
break;
}
counter++;
//System.out.println("counter = "+ counter);
@ -2103,12 +2130,12 @@ public class NsharpResourceHandler {
continue;
int tmIndex = timeElementList.indexOf(elm);
NsharpSoundingElementStateProperty stnTmElm = stnTimeSndTable.get(currentStnElementListIndex).get(tmIndex).get(currentSndElementListIndex);
if(stnTmElm != null){
stnTmElm.setCompColorIndex(colorIndex++);
if(stnTmElm!=null){
stnTmElm.setCompColorIndex(colorIndex);
}
colorIndex++;
if(colorIndex > NsharpConstants.LINE_COMP10)
colorIndex = NsharpConstants.LINE_COMP1;
}
}
}
//no matter we find current time line for this stn or not
@ -2140,11 +2167,13 @@ public class NsharpResourceHandler {
for(NsharpOperationElement elm: stnElementList) {
int stnIndex = stnElementList.indexOf(elm);
NsharpSoundingElementStateProperty stnTmElm = stnTimeSndTable.get(stnIndex).get(currentTimeElementListIndex).get(currentSndElementListIndex);
if(stnTmElm != null){
stnTmElm.setCompColorIndex(colorIndex++);
if(stnTmElm!=null){
stnTmElm.setCompColorIndex(colorIndex);
}
colorIndex++;
if(colorIndex > NsharpConstants.LINE_COMP10)
colorIndex = NsharpConstants.LINE_COMP1;
}
}
}
//no matter we find current stn or not

View file

@ -861,7 +861,8 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource{
Color[] colors = new Color[1];
Color color = new Color(icolor.red, icolor.green, icolor.blue);
colors[0]= color;
DisplayElementFactory df = new DisplayElementFactory (target, this.descriptor);
//DisplayElementFactory df = new DisplayElementFactory (target, this.descriptor);
NsharpDisplayElementFactory df = new NsharpDisplayElementFactory (target, this.descriptor);
ArrayList<IDisplayable> elements = new ArrayList<IDisplayable> ();
float wbSize = graphConfigProperty.getWindBarbSize();
@ -909,7 +910,6 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource{
Vector vect= new Vector();
vect.setVectorType(VectorType.WIND_BARB);
vect.setArrowHeadSize(1.0);
dir= (dir+180.0f)%360.0f;
vect.setDirection(dir);
vect.setSpeed(spd);
vect.setSizeScale(curWbSize);

View file

@ -551,7 +551,7 @@ public class NsharpTimeStnPaneResource extends NsharpAbstractPaneResource{
if(numStnToShow <1)
numStnToShow=1;
}
int startIndex = (rscHandler.getCurStnIdPage()-1) * numStnToShow;
int startIndex = (rscHandler.getCurSndPage()-1) * numStnToShow;
if(startIndex<0)
startIndex =0;
int colorIndex;

View file

@ -99,7 +99,8 @@ import com.vividsolutions.jts.geom.Polygon;
* 03/12 #676 Q. Zhou Added Issue Office dropdown list.
* 08/12 #612 S. Gurung Fixed issue related to conversion of phenom Lat/Lon to prepended format
* 03/13 #928 B. Yin Made the button bar smaller.
* 04/29 #977 S. Gilbert PGEN Database support
* 04/13 #977 S. Gilbert PGEN Database support
* 09/13 TTR656 J. Wu Display for INTL_SIGMET converted from VGF.
* </pre>
*
* @author gzhang
@ -1395,9 +1396,13 @@ public class SigmetAttrDlg extends AttrDlg implements ISigmet {
final Coordinate[] coors = (elSelected == null) ? null : elSelected
.getPoints().toArray(new Coordinate[] {});
/*
* Added "trim()" since SIGMETs VGFs has no "editableAttrFromLine" and it is
* defaulted as " " when converted into XML - (J. Wu).
*/
if (coors != null) {
if (editableAttrFromLine == null
|| editableAttrFromLine.equals("")) {
|| editableAttrFromLine.trim().equals("")) {
coorsLatLon.append(getLatLonStringPrepend2(coors,
AREA.equals(((Sigmet) elSelected).getType())));
resetText(coorsLatLon.toString(), txtInfo);

View file

@ -7,6 +7,50 @@
*/
package gov.noaa.nws.ncep.ui.pgen.display;
import gov.noaa.nws.ncep.common.staticdata.SPCCounty;
import gov.noaa.nws.ncep.edex.common.stationTables.Station;
import gov.noaa.nws.ncep.ui.pgen.PgenUtil;
import gov.noaa.nws.ncep.ui.pgen.attrdialog.vaadialog.CcfpAttrDlg;
import gov.noaa.nws.ncep.ui.pgen.contours.ContourCircle;
import gov.noaa.nws.ncep.ui.pgen.contours.ContourLine;
import gov.noaa.nws.ncep.ui.pgen.contours.ContourMinmax;
import gov.noaa.nws.ncep.ui.pgen.display.ArrowHead.ArrowHeadType;
import gov.noaa.nws.ncep.ui.pgen.display.CornerPatternApplicator.CornerPattern;
import gov.noaa.nws.ncep.ui.pgen.display.FillPatternList.FillPattern;
import gov.noaa.nws.ncep.ui.pgen.display.IAvnText.AviationTextType;
import gov.noaa.nws.ncep.ui.pgen.display.IText.DisplayType;
import gov.noaa.nws.ncep.ui.pgen.display.IText.FontStyle;
import gov.noaa.nws.ncep.ui.pgen.display.IText.TextJustification;
import gov.noaa.nws.ncep.ui.pgen.display.IText.TextRotation;
import gov.noaa.nws.ncep.ui.pgen.display.PatternSegment.PatternType;
import gov.noaa.nws.ncep.ui.pgen.elements.AbstractDrawableComponent;
import gov.noaa.nws.ncep.ui.pgen.elements.Arc;
import gov.noaa.nws.ncep.ui.pgen.elements.ComboSymbol;
import gov.noaa.nws.ncep.ui.pgen.elements.DECollection;
import gov.noaa.nws.ncep.ui.pgen.elements.DrawableElement;
import gov.noaa.nws.ncep.ui.pgen.elements.Line;
import gov.noaa.nws.ncep.ui.pgen.elements.Symbol;
import gov.noaa.nws.ncep.ui.pgen.elements.SymbolLocationSet;
import gov.noaa.nws.ncep.ui.pgen.elements.Text;
import gov.noaa.nws.ncep.ui.pgen.elements.tcm.ITcm;
import gov.noaa.nws.ncep.ui.pgen.elements.tcm.ITcmFcst;
import gov.noaa.nws.ncep.ui.pgen.elements.tcm.ITcmWindQuarter;
import gov.noaa.nws.ncep.ui.pgen.elements.tcm.TcmFcst;
import gov.noaa.nws.ncep.ui.pgen.gfa.Gfa;
import gov.noaa.nws.ncep.ui.pgen.gfa.GfaClip;
import gov.noaa.nws.ncep.ui.pgen.gfa.IGfa;
import gov.noaa.nws.ncep.ui.pgen.sigmet.AbstractSigmet;
import gov.noaa.nws.ncep.ui.pgen.sigmet.CcfpInfo;
import gov.noaa.nws.ncep.ui.pgen.sigmet.ISigmet;
import gov.noaa.nws.ncep.ui.pgen.sigmet.SigmetInfo;
import gov.noaa.nws.ncep.ui.pgen.sigmet.VaaInfo;
import gov.noaa.nws.ncep.ui.pgen.sigmet.Volcano;
import gov.noaa.nws.ncep.ui.pgen.tca.BPGeography;
import gov.noaa.nws.ncep.ui.pgen.tca.ITca;
import gov.noaa.nws.ncep.ui.pgen.tca.TropicalCycloneAdvisory;
import gov.noaa.nws.ncep.ui.pgen.tca.WaterBreakpoint;
import gov.noaa.nws.ncep.viz.common.SnapUtil;
import java.awt.Color;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
@ -28,45 +72,6 @@ import org.eclipse.swt.graphics.Rectangle;
import org.geotools.referencing.GeodeticCalculator;
import org.geotools.referencing.datum.DefaultEllipsoid;
import gov.noaa.nws.ncep.common.staticdata.SPCCounty;
import gov.noaa.nws.ncep.edex.common.stationTables.Station;
import gov.noaa.nws.ncep.ui.pgen.PgenUtil;
import gov.noaa.nws.ncep.ui.pgen.display.CornerPatternApplicator.CornerPattern;
import gov.noaa.nws.ncep.ui.pgen.display.FillPatternList.FillPattern;
import gov.noaa.nws.ncep.ui.pgen.display.IAvnText.AviationTextType;
import gov.noaa.nws.ncep.ui.pgen.display.IText.DisplayType;
import gov.noaa.nws.ncep.ui.pgen.display.IText.FontStyle;
import gov.noaa.nws.ncep.ui.pgen.display.IText.TextJustification;
import gov.noaa.nws.ncep.ui.pgen.display.IText.TextRotation;
import gov.noaa.nws.ncep.ui.pgen.display.ArrowHead.ArrowHeadType;
import gov.noaa.nws.ncep.ui.pgen.elements.AbstractDrawableComponent;
import gov.noaa.nws.ncep.ui.pgen.elements.Arc;
import gov.noaa.nws.ncep.ui.pgen.elements.ComboSymbol;
import gov.noaa.nws.ncep.ui.pgen.elements.DECollection;
import gov.noaa.nws.ncep.ui.pgen.elements.DrawableElement;
import gov.noaa.nws.ncep.ui.pgen.elements.Line;
import gov.noaa.nws.ncep.ui.pgen.elements.Symbol;
import gov.noaa.nws.ncep.ui.pgen.elements.SymbolLocationSet;
import gov.noaa.nws.ncep.ui.pgen.elements.Text;
import gov.noaa.nws.ncep.ui.pgen.elements.tcm.ITcm;
import gov.noaa.nws.ncep.ui.pgen.elements.tcm.ITcmFcst;
import gov.noaa.nws.ncep.ui.pgen.elements.tcm.TcmFcst;
import gov.noaa.nws.ncep.ui.pgen.elements.tcm.ITcmWindQuarter;
import gov.noaa.nws.ncep.ui.pgen.gfa.Gfa;
import gov.noaa.nws.ncep.ui.pgen.gfa.GfaClip;
import gov.noaa.nws.ncep.ui.pgen.gfa.IGfa;
import gov.noaa.nws.ncep.ui.pgen.tca.BPGeography;
import gov.noaa.nws.ncep.ui.pgen.tca.ITca;
import gov.noaa.nws.ncep.ui.pgen.tca.TropicalCycloneAdvisory;
import gov.noaa.nws.ncep.ui.pgen.tca.WaterBreakpoint;
import gov.noaa.nws.ncep.ui.pgen.sigmet.*;//SigmetInfo;
import gov.noaa.nws.ncep.ui.pgen.attrdialog.vaadialog.CcfpAttrDlg;
import gov.noaa.nws.ncep.ui.pgen.display.PatternSegment.PatternType;
import gov.noaa.nws.ncep.ui.pgen.contours.ContourLine;
import gov.noaa.nws.ncep.ui.pgen.contours.ContourMinmax;
import gov.noaa.nws.ncep.ui.pgen.contours.ContourCircle;
import gov.noaa.nws.ncep.viz.common.SnapUtil;
import com.raytheon.uf.common.geospatial.util.WorldWrapCorrector;
import com.raytheon.uf.viz.core.DrawableString;
import com.raytheon.uf.viz.core.IExtent;
@ -76,21 +81,19 @@ import com.raytheon.uf.viz.core.IGraphicsTarget.TextStyle;
import com.raytheon.uf.viz.core.IGraphicsTarget.VerticalAlignment;
import com.raytheon.uf.viz.core.PixelExtent;
import com.raytheon.uf.viz.core.data.IRenderedImageCallback;
import com.raytheon.uf.viz.core.data.prep.IODataPreparer;
import com.raytheon.uf.viz.core.drawables.IDescriptor;
import com.raytheon.uf.viz.core.drawables.IFont;
import com.raytheon.uf.viz.core.drawables.IFont.Style;
import com.raytheon.uf.viz.core.drawables.IImage;
import com.raytheon.uf.viz.core.drawables.IShadedShape;
import com.raytheon.uf.viz.core.drawables.IWireframeShape;
import com.raytheon.uf.viz.core.drawables.PaintProperties;
import com.raytheon.uf.viz.core.drawables.IFont.Style;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.map.IMapDescriptor;
import com.raytheon.viz.core.rsc.jts.JTSCompiler;
import com.raytheon.viz.core.rsc.jts.JTSCompiler.PointStyle;
import com.raytheon.viz.ui.color.BackgroundColor;
import com.raytheon.viz.ui.color.IBackgroundColorChangedListener.BGColorMode;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryCollection;
@ -105,6 +108,7 @@ import com.vividsolutions.jts.linearref.LengthLocationMap;
import com.vividsolutions.jts.linearref.LinearLocation;
import com.vividsolutions.jts.linearref.LocationIndexedLine;
import com.vividsolutions.jts.operation.distance.DistanceOp;
//SigmetInfo;
/**
* This factory class is used to create IDisplayable elements from IMultiPoint
@ -132,6 +136,8 @@ import com.vividsolutions.jts.operation.distance.DistanceOp;
* 11/12 #901/917 J. Wu Set the symbol in GFA text box in proper location/size
* 05/13 Chin Chen use IDescriptor instead of IMapDescriptor for used by Nsharp wind barb drawing
* 07/13 #988 Archana added createDisplayElements() to add all symbols in the same color to a single wire-frame.
* 09/23/13 Chin Chen changed several private variables/methods to protected, for NsharpDisplayElementFactory now extend from
* this class
* </pre>
*
* @author sgilbert
@ -147,12 +153,12 @@ public class DisplayElementFactory {
/**
* Graphics Target used to create the Wireframe and Shaded shapes
*/
private IGraphicsTarget target;
protected IGraphicsTarget target;
/**
* Map Descriptor used for Lat/Lon to pixel coordinate transformations
*/
private IDescriptor/*IMapDescriptor*/ iDescriptor;
protected IDescriptor/*IMapDescriptor*/ iDescriptor;
private GeometryFactory gf;
/**
@ -167,7 +173,7 @@ public class DisplayElementFactory {
private IWireframeShape sym;
private ILine elem;
private double deviceScale = 25.0; // default scale factor for GL device
protected double deviceScale = 25.0; // default scale factor for GL device
private double symbolScale = 0.65;
private double screenToExtent = 1.0;
double screenToWorldRatio = 1.0;
@ -181,7 +187,7 @@ public class DisplayElementFactory {
private Color layerColor = null;
private Boolean layerFilled = false;
private BackgroundColor backgroundColor = BackgroundColor.getActivePerspectiveInstance();
protected BackgroundColor backgroundColor = BackgroundColor.getActivePerspectiveInstance();
class SymbolImageCallback implements IRenderedImageCallback {
private String patternName;
@ -3106,7 +3112,7 @@ public class DisplayElementFactory {
* @param coords - input data points
* @return data points in new format
*/
private double[][] toDouble( Coordinate[] coords) {
protected double[][] toDouble( Coordinate[] coords) {
double[][] dpts = new double[coords.length][3];
@ -3123,7 +3129,7 @@ public class DisplayElementFactory {
* @param coords - input data points
* @return data points in new format
*/
private LineString[] toLineString ( Coordinate[] coords ) {
protected LineString[] toLineString ( Coordinate[] coords ) {
LineString[] ls = new LineString[] { gf.createLineString(coords) };
return ls;
@ -3134,7 +3140,7 @@ public class DisplayElementFactory {
* @param coords - input data points
* @return data points in new format
*/
private LineString[] toLineString ( double[][] points ) {
protected LineString[] toLineString ( double[][] points ) {
Coordinate[] coords = new Coordinate[points.length];
for ( int j=0; j<points.length; j++) {
@ -3240,7 +3246,7 @@ public class DisplayElementFactory {
* the size of something from screen relative to pixel relative
* @param props The paint properties associated with the target
*/
private void setScales(PaintProperties props) {
protected void setScales(PaintProperties props) {
/*
* Sets the device scale factor based on the current pixel extent
@ -4031,7 +4037,7 @@ public class DisplayElementFactory {
}
private double[][] calculateCircle(double[] center, double radius) {
protected double[][] calculateCircle(double[] center, double radius) {
int numpts = 16;
double[][] arcpts =new double[numpts+1][3];
@ -4095,7 +4101,7 @@ public class DisplayElementFactory {
/**
* Get the colors for displaying an element.
*/
private Color[] getDisplayColors( Color[] clr ) {
protected Color[] getDisplayColors( Color[] clr ) {
Color[] newClr = new Color[ clr.length ];
@ -4115,7 +4121,7 @@ public class DisplayElementFactory {
/**
* Get the colors for displaying an element.
*/
private Color getDisplayColor( Color clr ) {
protected Color getDisplayColor( Color clr ) {
if ( layerMonoColor && layerColor != null ) {
return layerColor;

View file

@ -12,7 +12,7 @@ import gov.noaa.nws.ncep.ui.pgen.PgenUtil;
import gov.noaa.nws.ncep.ui.pgen.attrdialog.AttrSettings;
import gov.noaa.nws.ncep.ui.pgen.attrdialog.GfaAttrDlg;
import gov.noaa.nws.ncep.ui.pgen.attrdialog.OutlookAttrDlg;
import gov.noaa.nws.ncep.ui.pgen.controls.PgenFileManageDialog;
import gov.noaa.nws.ncep.ui.pgen.controls.StoreActivityDialog;
import gov.noaa.nws.ncep.ui.pgen.elements.Layer;
import gov.noaa.nws.ncep.ui.pgen.elements.Product;
import gov.noaa.nws.ncep.ui.pgen.elements.ProductInfo;
@ -71,6 +71,7 @@ import com.raytheon.uf.viz.core.exception.VizException;
* unless the user selects them.
* 06/12 TTR559 B. Yin Link the layer name to Outlook type
* 12/12 #937 J. Wu Update G_Airmet layers/hazard - "C&V"
* 09/13 ? J. Wu Use new "StoreActivityDialog" at exit.
*
* </pre>
*
@ -1274,18 +1275,17 @@ public class ProductManageDialog extends ProductDialog {
if ( confirmDlg.getReturnCode() == MessageDialog.OK ) {
PgenFileManageDialog file_dlg = null;
if ( file_dlg == null ) {
StoreActivityDialog storeDlg = null;
if ( storeDlg == null ) {
try {
file_dlg = new PgenFileManageDialog( shell, "Save" );
storeDlg = new StoreActivityDialog( shell, "Save As" );
}
catch (VizException e) {
e.printStackTrace();
}
}
if ( file_dlg != null ) file_dlg.open();
if ( storeDlg != null ) storeDlg.open();
}

View file

@ -74,6 +74,9 @@ import com.vividsolutions.jts.geom.Point;
* 04/13 #927 B. Yin Moved from the PgenSelectingTool class
* 05/13 #994 J. Wu Removed "DEL" - make it same as "Ctrl+X"
* 07/13 ? J. Wu Set the "otherTextLastUsed for GFA.
* 09/13 ? J. Wu Call buildVortext for GFA when mouse is
* down since GFA converted from VGF does not
* have vorText set.
*
* </pre>
*
@ -406,6 +409,10 @@ public class PgenSelectHandler extends InputHandlerDefaultImpl {
} else if(attrDlg instanceof GfaAttrDlg){
((GfaAttrDlg)attrDlg).setOtherTextLastUsed( elSelected.getForecastHours() );
((GfaAttrDlg)attrDlg).redrawHazardSpecificPanel();
if ( ((Gfa)elSelected).getGfaVorText() == null ||
((Gfa)elSelected).getGfaVorText().length() < 1 ) {
((Gfa)elSelected).setGfaVorText( Gfa.buildVorText( (Gfa)elSelected ) );
}
attrDlg.setAttrForDlg( elSelected );
((GfaAttrDlg)attrDlg).enableMoveTextBtn(true);
}

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

@ -47,7 +47,12 @@ wrapper.search.java.classpath.2=${QPID_HOME}/lib/opt/qpid-deps
# garbage collection settings
wrapper.java.additional.gc.1=-XX:+UseConcMarkSweepGC
wrapper.java.additional.gc.2=-XX:+HeapDumpOnOutOfMemoryError
wrapper.java.additional.gc.2=-XX:+CMSIncrementalMode
wrapper.java.additional.gc.3=-XX:NewSize=400m
wrapper.java.additional.gc.4=-XX:MaxNewSize=400m
wrapper.java.additional.gc.5=-XX:SurvivorRatio=4
wrapper.java.additional.gc.6=-XX:+HeapDumpOnOutOfMemoryError
wrapper.java.additional.gc.7=-XX:HeapDumpPath=/data/fxa/qpid
# the main qpid java class that will be started
wrapper.java.app.mainclass=org.apache.qpid.server.Main
@ -95,7 +100,7 @@ wrapper.console.format=M
wrapper.logfile=${QPID_HOME}/log/qpid-wrapper-YYYYMMDD.log
# Format of output for the log file. (See docs for formats)
wrapper.logfile.format=M
wrapper.logfile.format=LTM
# Log Level for log file output. (See docs for log levels)
wrapper.logfile.loglevel=INFO

View file

@ -85,28 +85,28 @@ if [ "${2}" = "-nobinlightning" ]; then
fi
if [ "${1}" = "-python-qpid" ]; then
# buildRPM "awips2"
# buildRPM "awips2-python-qpid"
# buildRPM "awips2-python"
# buildRPM "awips2-python-cherrypy"
buildRPM "awips2"
buildRPM "awips2-python-qpid"
buildRPM "awips2-python"
buildRPM "awips2-python-cherrypy"
buildRPM "awips2-python-dynamicserialize"
# buildRPM "awips2-python-nose"
# buildRPM "awips2-python-numpy"
# buildRPM "awips2-python-h5py"
# buildRPM "awips2-python-jimporter"
# buildRPM "awips2-python-matplotlib"
# buildRPM "awips2-python-pil"
# buildRPM "awips2-python-pmw"
# buildRPM "awips2-python-pupynere"
# buildRPM "awips2-python-scientific"
# buildRPM "awips2-python-scipy"
# buildRPM "awips2-python-tables"
# buildRPM "awips2-python-thrift"
# buildRPM "awips2-python-tpg"
# buildRPM "awips2-python-ufpy"
# buildRPM "awips2-python-werkzeug"
# buildRPM "awips2-python-pygtk"
# buildRPM "awips2-python-pycairo"
buildRPM "awips2-python-nose"
buildRPM "awips2-python-numpy"
buildRPM "awips2-python-h5py"
buildRPM "awips2-python-jimporter"
buildRPM "awips2-python-matplotlib"
buildRPM "awips2-python-pil"
buildRPM "awips2-python-pmw"
buildRPM "awips2-python-pupynere"
buildRPM "awips2-python-scientific"
buildRPM "awips2-python-scipy"
buildRPM "awips2-python-tables"
buildRPM "awips2-python-thrift"
buildRPM "awips2-python-tpg"
buildRPM "awips2-python-ufpy"
buildRPM "awips2-python-werkzeug"
buildRPM "awips2-python-pygtk"
buildRPM "awips2-python-pycairo"
if [ $? -ne 0 ]; then
exit 1
fi
@ -360,11 +360,9 @@ if [ "${1}" = "-ade" ]; then
fi
if [ "${1}" = "-viz" ]; then
buildRPM "awips2"
buildRPM "awips2-common-base"
# buildRPM "awips2-rcm"
buildRPM "awips2-rcm"
buildRPM "awips2-hydroapps-shared"
# buildRPM "awips2-notification"
buildCAVE
if [ $? -ne 0 ]; then
exit 1
@ -375,13 +373,11 @@ if [ "${1}" = "-viz" ]; then
fi
if [ "${1}" = "-edex" ]; then
#buildRPM "awips2"
#buildRPM "awips2-common-base"
buildRPM "awips2-common-base"
buildRPM "awips2-adapt-native"
#buildRPM "awips2-python-qpid"
# buildRPM "awips2-cli"
buildRPM "awips2-gfesuite-client"
buildRPM "awips2-gfesuite-server"
buildRPM "awips2-edex-environment"
# buildRPM "awips2-ncep-database"
# buildRPM "awips2-python-dynamicserialize"
buildEDEX
@ -417,6 +413,19 @@ if [ "${1}" = "-ldm" ]; then
exit 0
fi
if [ "${1}" = "-awips2" ]; then
buildRPM "awips2"
exit 0
fi
# Use the custom flag for selecting specific rpms to build
if [ "${1}" = "-custom" ]; then
#buildRPM "awips2-ldm"
exit 0
fi
if [ "${1}" = "-package" ]; then
repository_directory="awips2-repository-${AWIPSII_VERSION}-${AWIPSII_RELEASE}"
if [ -d ${WORKSPACE}/${repository_directory} ]; then

View file

@ -0,0 +1,456 @@
#!/bin/bash
function buildRPM()
{
# Arguments:
# ${1} == the name of the rpm.
lookupRPM "${1}"
if [ $? -ne 0 ]; then
echo "ERROR: '${1}' is not a recognized AWIPS II RPM."
exit 1
fi
/usr/bin/rpmbuild -ba \
--define '_topdir %(echo ${AWIPSII_TOP_DIR})' \
--define '_baseline_workspace %(echo ${WORKSPACE})' \
--define '_uframe_eclipse %(echo ${UFRAME_ECLIPSE})' \
--define '_awipscm_share %(echo ${AWIPSCM_SHARE})' \
--define '_build_root %(echo ${AWIPSII_BUILD_ROOT})' \
--define '_component_version %(echo ${AWIPSII_VERSION})' \
--define '_component_release %(echo ${AWIPSII_RELEASE})' \
--define '_component_build_date %(echo ${COMPONENT_BUILD_DATE})' \
--define '_component_build_time %(echo ${COMPONENT_BUILD_TIME})' \
--define '_component_build_system %(echo ${COMPONENT_BUILD_SYSTEM})' \
--buildroot ${AWIPSII_BUILD_ROOT} \
${RPM_SPECIFICATION}/component.spec
if [ $? -ne 0 ]; then
echo "ERROR: Failed to build RPM ${1}."
exit 1
fi
return 0
}
# This script will build all of the 32-bit rpms.
# Ensure that we are on a machine with the correct architecture.
architecture=`uname -i`
if [ ! "${architecture}" = "i386" ]; then
echo "ERROR: This build can only be performed on a 32-bit Operating System."
exit 1
fi
# Determine which directory we are running from.
path_to_script=`readlink -f $0`
dir=$(dirname $path_to_script)
common_dir=`cd ${dir}/../common; pwd;`
if [ $? -ne 0 ]; then
echo "ERROR: Unable to find the common functions directory."
exit 1
fi
# source the common functions.
source ${common_dir}/lookupRPM.sh
if [ $? -ne 0 ]; then
echo "ERROR: Unable to source the common functions."
exit 1
fi
source ${common_dir}/usage.sh
if [ $? -ne 0 ]; then
echo "ERROR: Unable to source the common functions."
exit 1
fi
source ${common_dir}/rpms.sh
if [ $? -ne 0 ]; then
echo "ERROR: Unable to source the common functions."
exit 1
fi
source ${common_dir}/systemInfo.sh
if [ $? -ne 0 ]; then
echo "ERROR: Unable to retrieve the system information."
exit 1
fi
# prepare the build environment.
source ${dir}/buildEnvironment.sh
if [ $? -ne 0 ]; then
echo "ERROR: Unable to prepare the build environment."
exit 1
fi
export LIGHTNING=true
# Determine if the optional '-nobinlightning' argument has been specified.
if [ "${2}" = "-nobinlightning" ]; then
LIGHTNING=false
fi
if [ "${1}" = "-python-qpid" ]; then
buildRPM "awips2"
buildRPM "awips2-python-qpid"
buildRPM "awips2-python"
buildRPM "awips2-python-cherrypy"
buildRPM "awips2-python-dynamicserialize"
buildRPM "awips2-python-nose"
buildRPM "awips2-python-numpy"
buildRPM "awips2-python-h5py"
buildRPM "awips2-python-jimporter"
buildRPM "awips2-python-matplotlib"
buildRPM "awips2-python-pil"
buildRPM "awips2-python-pmw"
buildRPM "awips2-python-pupynere"
buildRPM "awips2-python-scientific"
buildRPM "awips2-python-scipy"
buildRPM "awips2-python-tables"
buildRPM "awips2-python-thrift"
buildRPM "awips2-python-tpg"
buildRPM "awips2-python-ufpy"
buildRPM "awips2-python-werkzeug"
buildRPM "awips2-python-pygtk"
buildRPM "awips2-python-pycairo"
if [ $? -ne 0 ]; then
exit 1
fi
buildQPID
if [ $? -ne 0 ]; then
exit 1
fi
#buildRPM "awips2-ant"
#unpackHttpdPypies
if [ $? -ne 0 ]; then
exit 1
fi
#buildRPM "awips2-httpd-pypies"
#buildRPM "awips2-java"
#buildRPM "awips2-ldm"
#buildRPM "awips2-tools"
buildRPM "awips2-python-shapely"
exit 0
fi
if [ "${1}" = "-postgres" ]; then
buildRPM "awips2-postgres"
buildRPM "awips2-database-server-configuration"
buildRPM "awips2-database-standalone-configuration"
buildRPM "awips2-database"
buildRPM "awips2-maps-database"
buildRPM "awips2-pgadmin3"
buildRPM "awips2-data.hdf5-gfe.climo"
buildRPM "awips2-data.hdf5-topo"
buildRPM "awips2-notification"
buildRPM "awips2-tools"
exit 0
fi
if [ "${1}" = "-delta" ]; then
buildRPM "awips2-common-base"
buildCAVE
if [ $? -ne 0 ]; then
exit 1
fi
buildRPM "awips2-alertviz"
buildEDEX
if [ $? -ne 0 ]; then
exit 1
fi
buildRPM "awips2"
buildRPM "awips2-ncep-database"
buildRPM "awips2-gfesuite-client"
buildRPM "awips2-gfesuite-server"
buildRPM "awips2-python"
buildRPM "awips2-python-dynamicserialize"
buildRPM "awips2-python-ufpy"
buildRPM "awips2-python-qpid"
buildRPM "awips2-adapt-native"
buildRPM "awips2-aviation-shared"
buildRPM "awips2-cli"
buildRPM "awips2-database"
buildRPM "awips2-database-server-configuration"
buildRPM "awips2-database-standalone-configuration"
buildRPM "awips2-data.hdf5-gfe.climo"
buildRPM "awips2-hydroapps-shared"
buildRPM "awips2-localapps-environment"
buildRPM "awips2-maps-database"
buildRPM "awips2-notification"
buildRPM "awips2-pypies"
buildRPM "awips2-data.hdf5-topo"
buildRPM "awips2-data.gfe"
buildRPM "awips2-rcm"
buildRPM "awips2-edex-environment"
buildLocalizationRPMs
if [ $? -ne 0 ]; then
exit 1
fi
exit 0
fi
if [ "${1}" = "-full" ]; then
buildRPM "awips2-common-base"
buildCAVE
if [ $? -ne 0 ]; then
exit 1
fi
buildRPM "awips2-alertviz"
buildEDEX
if [ $? -ne 0 ]; then
exit 1
fi
buildRPM "awips2-python"
buildRPM "awips2-python-cherrypy"
buildRPM "awips2-python-dynamicserialize"
buildRPM "awips2-python-h5py"
buildRPM "awips2-python-jimporter"
buildRPM "awips2-python-matplotlib"
buildRPM "awips2-python-nose"
buildRPM "awips2-python-numpy"
buildRPM "awips2-python-pil"
buildRPM "awips2-python-pmw"
buildRPM "awips2-python-pupynere"
buildRPM "awips2-python-qpid"
buildRPM "awips2-python-scientific"
buildRPM "awips2-python-scipy"
buildRPM "awips2-python-tables"
buildRPM "awips2-python-thrift"
buildRPM "awips2-python-tpg"
buildRPM "awips2-python-ufpy"
buildRPM "awips2-python-werkzeug"
buildRPM "awips2-python-pygtk"
buildRPM "awips2-python-pycairo"
buildRPM "awips2"
buildRPM "awips2-adapt-native"
buildRPM "awips2-aviation-shared"
buildRPM "awips2-cli"
buildRPM "awips2-database"
buildRPM "awips2-database-server-configuration"
buildRPM "awips2-database-standalone-configuration"
buildRPM "awips2-data.hdf5-gfe.climo"
buildRPM "awips2-data.gfe"
buildRPM "awips2-gfesuite-client"
buildRPM "awips2-gfesuite-server"
buildRPM "awips2-hydroapps-shared"
buildRPM "awips2-localapps-environment"
buildRPM "awips2-ncep-database"
buildRPM "awips2-maps-database"
buildRPM "awips2-notification"
buildRPM "awips2-pypies"
buildRPM "awips2-data.hdf5-topo"
buildRPM "awips2-rcm"
buildLocalizationRPMs
if [ $? -ne 0 ]; then
exit 1
fi
buildQPID
if [ $? -ne 0 ]; then
exit 1
fi
buildRPM "awips2-ant"
unpackHttpdPypies
if [ $? -ne 0 ]; then
exit 1
fi
buildRPM "awips2-httpd-pypies"
buildJava
buildRPM "awips2-groovy"
#buildRPM "awips2-ldm"
buildRPM "awips2-postgres"
buildRPM "awips2-pgadmin3"
buildRPM "awips2-tools"
buildRPM "awips2-edex-environment"
buildRPM "awips2-openfire"
buildRPM "awips2-httpd-collaboration"
buildRPM "awips2-python-shapely"
exit 0
fi
if [ "${1}" = "-ade" ]; then
buildRPM "awips2-eclipse"
buildJava
buildRPM "awips2-ant"
buildRPM "awips2-python"
buildRPM "awips2-python-cherrypy"
buildRPM "awips2-python-dynamicserialize"
buildRPM "awips2-python-h5py"
buildRPM "awips2-python-jimporter"
buildRPM "awips2-python-matplotlib"
buildRPM "awips2-python-nose"
buildRPM "awips2-python-numpy"
buildRPM "awips2-python-pil"
buildRPM "awips2-python-pmw"
buildRPM "awips2-python-pupynere"
buildRPM "awips2-python-qpid"
buildRPM "awips2-python-scientific"
buildRPM "awips2-python-scipy"
buildRPM "awips2-python-tables"
buildRPM "awips2-python-thrift"
buildRPM "awips2-python-tpg"
buildRPM "awips2-python-ufpy"
buildRPM "awips2-python-werkzeug"
buildRPM "awips2-python-pygtk"
buildRPM "awips2-python-pycairo"
buildRPM "awips2-python-shapely"
buildQPID -ade
if [ $? -ne 0 ]; then
exit 1
fi
# Package the ade.
# Create the containing directory.
ade_directory="awips2-ade-${AWIPSII_VERSION}-${AWIPSII_RELEASE}"
if [ -d ${WORKSPACE}/${ade_directory} ]; then
rm -rf ${WORKSPACE}/${ade_directory}
if [ $? -ne 0 ]; then
exit 1
fi
fi
mkdir -p ${WORKSPACE}/${ade_directory}
if [ $? -ne 0 ]; then
exit 1
fi
# Copy the rpms to the directory.
cp -v ${AWIPSII_TOP_DIR}/RPMS/i386/* \
${AWIPSII_TOP_DIR}/RPMS/noarch/* \
${WORKSPACE}/${ade_directory}
if [ $? -ne 0 ]; then
exit 1
fi
awips2_ade_directory="${WORKSPACE}/rpms/awips2.ade"
# Copy the install and uninstall script to the directory.
cp -v ${awips2_ade_directory}/tar.ade/scripts/*.sh \
${WORKSPACE}/${ade_directory}
if [ $? -ne 0 ]; then
exit 1
fi
# Tar the directory.
pushd . > /dev/null 2>&1
cd ${WORKSPACE}
tar -cvf ${ade_directory}.tar ${ade_directory}
popd > /dev/null 2>&1
RC=$?
if [ ${RC} -ne 0 ]; then
exit 1
fi
exit 0
fi
if [ "${1}" = "-viz" ]; then
buildRPM "awips2-common-base"
buildRPM "awips2-rcm"
buildRPM "awips2-hydroapps-shared"
buildCAVE
if [ $? -ne 0 ]; then
exit 1
fi
buildRPM "awips2-alertviz"
exit 0
fi
if [ "${1}" = "-edex" ]; then
buildRPM "awips2-common-base"
buildRPM "awips2-adapt-native"
buildRPM "awips2-gfesuite-client"
buildRPM "awips2-gfesuite-server"
buildRPM "awips2-edex-environment"
# buildRPM "awips2-ncep-database"
# buildRPM "awips2-python-dynamicserialize"
buildEDEX
if [ $? -ne 0 ]; then
exit 1
fi
exit 0
fi
if [ "${1}" = "-localization" ]; then
buildLocalizationRPMs
if [ $? -ne 0 ]; then
exit 1
fi
exit 0
fi
if [ "${1}" = "-qpid" ]; then
buildQPID
if [ $? -ne 0 ]; then
exit 1
fi
exit 0
fi
if [ "${1}" = "-ldm" ]; then
buildRPM "awips2-ldm"
exit 0
fi
if [ "${1}" = "-awips2" ]; then
buildRPM "awips2"
exit 0
fi
# Use the custom flag for selecting specific rpms to build
if [ "${1}" = "-custom" ]; then
#buildRPM "awips2-ldm"
exit 0
fi
if [ "${1}" = "-package" ]; then
repository_directory="awips2-repository-${AWIPSII_VERSION}-${AWIPSII_RELEASE}"
if [ -d ${WORKSPACE}/${repository_directory} ]; then
rm -rf ${WORKSPACE}/${repository_directory}
if [ $? -ne 0 ]; then
exit 1
fi
fi
mkdir -p ${WORKSPACE}/${repository_directory}/${AWIPSII_VERSION}-${AWIPSII_RELEASE}
if [ $? -ne 0 ]; then
exit 1
fi
cp -r ${AWIPSII_TOP_DIR}/RPMS/* \
${WORKSPACE}/${repository_directory}/${AWIPSII_VERSION}-${AWIPSII_RELEASE}
if [ $? -ne 0 ]; then
exit 1
fi
rpms_directory="${WORKSPACE}/rpms"
comps_xml="${rpms_directory}/common/yum/arch.x86/comps.xml"
cp -v ${comps_xml} ${WORKSPACE}/${repository_directory}
if [ $? -ne 0 ]; then
exit 1
fi
pushd . > /dev/null
cd ${WORKSPACE}
tar -cvf ${repository_directory}.tar ${repository_directory}
RC=$?
popd > /dev/null
if [ ${RC} -ne 0 ]; then
exit 1
fi
exit 0
fi
usage
exit 0