Merge branch 'master_13.5.3' (13.5.2-7) into omaha_13.5.3
Conflicts: cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/gis/PortionsUtil.java edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/mileMarkers.vm edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/mileMarkers.xml Former-commit-id:1eb943d331
[formerly984785ce5e
] [formerlye45689dbc7
] [formerlyadd32a774f
[formerlye45689dbc7
[formerly b118718cd8766cf83df1a02079f92636964ca09e]]] Former-commit-id:add32a774f
Former-commit-id: 346bf1cefacad9a336319ff9af04ac8832f33e41 [formerlyc178e4543a
] Former-commit-id:aa2eda2c38
This commit is contained in:
commit
64d062aa4b
83 changed files with 5959 additions and 5649 deletions
|
@ -0,0 +1,41 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
|
||||
The <gridReprojectionRules> element consists of a sequence of
|
||||
<rule> elements with he following attributes, all of which are
|
||||
optional.
|
||||
|
||||
Only the highest priority localization level of this file will
|
||||
be used. The first rule in the file that matches is used.
|
||||
|
||||
Attribute Name Value Purpose
|
||||
===================== ===================== =======================
|
||||
modelName Regular expression Matches grid model name
|
||||
displayType " Matches display type (IMAGE, CONTOUR, STREAMLINE,
|
||||
BARB, ARROW, ICON, DUALARROW)
|
||||
srcProjection " Matches grid model's projection name
|
||||
dstProjection " Matches display projection name
|
||||
reproject ALWAYS|NEVER|TEST Controls re-projection. Default behavior (TEST)
|
||||
is to test if the mapping is not too distorted.
|
||||
|
||||
To prevent lat/lon grids from being re-projected, use the following rule.
|
||||
|
||||
<rule srcProjection="Equidistant_Cylindrical" reproject="NEVER" />
|
||||
|
||||
To prevent images from being re-projected, use the following rule.
|
||||
|
||||
<rule displayType="IMAGE" reproject="NEVER" />
|
||||
|
||||
Grid model projection names can be found examining the metadata
|
||||
database. Example:
|
||||
|
||||
select substring(crs from 'PROJECTION.*?,') from grid_info, gridcoverage
|
||||
where datasetid = 'GlobalWave' and grid_info.location_id = gridcoverage.id limit 1;
|
||||
|
||||
Display projection names can be found by examining scale bundle or procedure XML files.
|
||||
|
||||
-->
|
||||
<gridReprojectionRules>
|
||||
<rule srcProjection="Equidistant_Cylindrical" reproject="TEST" />
|
||||
<rule reproject="NEVER" />
|
||||
</gridReprojectionRules>
|
|
@ -53,6 +53,7 @@ import com.raytheon.uf.viz.core.datastructure.DataCubeContainer;
|
|||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.rsc.AbstractNameGenerator;
|
||||
import com.raytheon.uf.viz.core.rsc.DisplayType;
|
||||
import com.raytheon.uf.viz.core.rsc.IResourceDataChanged.ChangeType;
|
||||
import com.raytheon.uf.viz.core.rsc.LoadProperties;
|
||||
import com.raytheon.uf.viz.core.rsc.capabilities.DisplayTypeCapability;
|
||||
import com.raytheon.uf.viz.core.rsc.capabilities.ImagingCapability;
|
||||
|
@ -60,7 +61,7 @@ import com.raytheon.viz.grid.rsc.GridNameGenerator;
|
|||
import com.raytheon.viz.grid.rsc.GridNameGenerator.IGridNameResource;
|
||||
import com.raytheon.viz.grid.rsc.GridNameGenerator.LegendParameters;
|
||||
import com.raytheon.viz.grid.rsc.GridResourceData;
|
||||
import com.raytheon.viz.grid.util.ConformalityUtil;
|
||||
import com.raytheon.viz.grid.util.ReprojectionUtil;
|
||||
import com.raytheon.viz.grid.xml.FieldDisplayTypesFactory;
|
||||
import com.vividsolutions.jts.geom.Coordinate;
|
||||
|
||||
|
@ -81,6 +82,7 @@ import com.vividsolutions.jts.geom.Coordinate;
|
|||
* Jul 15, 2013 2107 bsteffen Fix sampling of grid vector arrows.
|
||||
* Aug 27, 2013 2287 randerso Removed 180 degree adjustment required by error
|
||||
* in Maputil.rotation
|
||||
* Sep 24, 2013 DR 15972 D. Friedman Make reprojection of grids configurable.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -94,6 +96,8 @@ public class D2DGridResource extends GridResource<GridResourceData> implements
|
|||
|
||||
private boolean reprojectedData = false;
|
||||
|
||||
private Boolean lastInterpolationState = null;
|
||||
|
||||
public D2DGridResource(GridResourceData resourceData,
|
||||
LoadProperties loadProperties) {
|
||||
super(resourceData, loadProperties);
|
||||
|
@ -103,7 +107,10 @@ public class D2DGridResource extends GridResource<GridResourceData> implements
|
|||
for (GridRecord record : resourceData.getRecords()) {
|
||||
addDataObject(record);
|
||||
}
|
||||
|
||||
if (this.hasCapability(ImagingCapability.class)) {
|
||||
lastInterpolationState = this.getCapability(ImagingCapability.class)
|
||||
.isInterpolationState();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -143,17 +150,15 @@ public class D2DGridResource extends GridResource<GridResourceData> implements
|
|||
return null;
|
||||
}
|
||||
}
|
||||
// For world wide lat lon grids we reproject, this is done to match A1,
|
||||
// but it also makes the wind barbs look more evenly spaced near the
|
||||
// pole.
|
||||
// For some grids, we may reproject (e.g., world-wide lat/lon grids),
|
||||
// this is done to match A1, but it also makes the wind barbs look
|
||||
// more evenly spaced near the pole.
|
||||
GridCoverage location = gridRecord.getLocation();
|
||||
GeneralGridData data = getData(dataRecs, location.getGridGeometry(),
|
||||
dataUnit);
|
||||
if (location != null && location.getSpacingUnit().equals("degree")) {
|
||||
if (!ConformalityUtil.testConformality(location.getGridGeometry(),
|
||||
descriptor.getGridGeometry())) {
|
||||
data = reprojectData(data);
|
||||
}
|
||||
if (ReprojectionUtil.shouldReproject(gridRecord,
|
||||
getDisplayType(), descriptor.getGridGeometry())) {
|
||||
data = reprojectData(data);
|
||||
}
|
||||
// Wind Direction(and possibly others) can be set so that we rotate the
|
||||
// direction to be relative to the north pole instead of grid relative.
|
||||
|
@ -318,4 +323,19 @@ public class D2DGridResource extends GridResource<GridResourceData> implements
|
|||
super.project(crs);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void resourceDataChanged(ChangeType type, Object updateObject) {
|
||||
super.resourceDataChanged(type, updateObject);
|
||||
if (type == ChangeType.CAPABILITY) {
|
||||
if (updateObject instanceof ImagingCapability && reprojectedData) {
|
||||
ImagingCapability capability = (ImagingCapability) updateObject;
|
||||
if (lastInterpolationState == null
|
||||
|| capability.isInterpolationState() != lastInterpolationState) {
|
||||
lastInterpolationState = capability.isInterpolationState();
|
||||
clearRequestedData();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -35,7 +35,8 @@ import org.opengis.referencing.operation.TransformException;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 06/19/2012 14988 D. Friedman Initial revision
|
||||
*
|
||||
* 09/24/2013 DR 15972 D. Friedman Do not require contiguous mapping.
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public class ConformalityUtil {
|
||||
|
@ -96,11 +97,17 @@ public class ConformalityUtil {
|
|||
if (! evaluateNonContig(evaluatedDomain)) {
|
||||
System.out.format("%s -> %s : not contiguous?\n", sourceGG, destGG);
|
||||
return false;
|
||||
/*
|
||||
* This test is not necessary for AWIPS II because it can cope
|
||||
* with non-contiguous mappings.
|
||||
*/
|
||||
/*
|
||||
} else if (maxRatio/minRatio > maxRatioRatio ||
|
||||
(minRatio > 0 && maxRatio/minRatio > maxRatioRatio) || // ?
|
||||
(minRatio < 0 && minRatio/maxRatio > maxRatioRatio)) {
|
||||
System.out.format("%s -> %s : not conformal enough somehow\n", sourceGG, destGG);
|
||||
return false;
|
||||
*/
|
||||
} else {
|
||||
System.out.format("%s -> %s : conformal enough (%f, %f)\n",
|
||||
sourceGG, destGG, rr, maxRatio/minRatio);
|
||||
|
|
|
@ -0,0 +1,159 @@
|
|||
package com.raytheon.viz.grid.util;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.geotools.coverage.grid.GeneralGridGeometry;
|
||||
import org.geotools.referencing.CRS;
|
||||
import org.geotools.referencing.operation.projection.MapProjection;
|
||||
import org.opengis.referencing.crs.CoordinateReferenceSystem;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.grid.GridRecord;
|
||||
import com.raytheon.uf.common.gridcoverage.GridCoverage;
|
||||
import com.raytheon.uf.common.localization.AutoUpdatingLocalizationFile;
|
||||
import com.raytheon.uf.common.localization.AutoUpdatingLocalizationFile.AutoUpdatingFileChangedListener;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
|
||||
import com.raytheon.uf.common.localization.exception.LocalizationException;
|
||||
import com.raytheon.uf.common.serialization.JAXBManager;
|
||||
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.core.rsc.DisplayType;
|
||||
import com.raytheon.viz.grid.xml.GridReprojectionRules;
|
||||
import com.raytheon.viz.grid.xml.GridReprojectionRules.Reproject;
|
||||
import com.raytheon.viz.grid.xml.GridReprojectionRules.Rule;
|
||||
|
||||
/**
|
||||
* Determines if a grid should be reprojected based display properties and
|
||||
* a configuration file.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ---------------- --------------------------
|
||||
* Sep 23, 2013 DR 15972 D. Friedman Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
public class ReprojectionUtil {
|
||||
private static final String RULES_PATH = "styleRules/gridReprojectionRules.xml";
|
||||
|
||||
private static final transient IUFStatusHandler statusHandler = UFStatus.getHandler(ReprojectionUtil.class);
|
||||
|
||||
private static ReprojectionUtil instance;
|
||||
|
||||
static ReprojectionUtil getInstance() {
|
||||
if (instance == null) {
|
||||
synchronized (ReprojectionUtil.class) {
|
||||
if (instance == null)
|
||||
instance = new ReprojectionUtil();
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
GridReprojectionRules rules;
|
||||
AutoUpdatingLocalizationFile file;
|
||||
boolean fileChanged = false;
|
||||
|
||||
public static boolean shouldReproject(GridRecord record, DisplayType displayType, GeneralGridGeometry dstGridGeometry) {
|
||||
GridReprojectionRules rules = getInstance().getRules();
|
||||
if (rules != null) {
|
||||
for (Rule rule : rules.getRules()) {
|
||||
if (matches(rule, record, displayType, dstGridGeometry)) {
|
||||
Reproject reproject = rule.getReproject();
|
||||
if (reproject == Reproject.ALWAYS) {
|
||||
return true;
|
||||
} else if (reproject == Reproject.NEVER) {
|
||||
return false;
|
||||
} else if (reproject == Reproject.TEST || reproject == null) {
|
||||
return !ConformalityUtil.testConformality(record
|
||||
.getLocation().getGridGeometry(),
|
||||
dstGridGeometry);
|
||||
} else {
|
||||
throw new RuntimeException(
|
||||
String.format("Unknown reprojection behavior "
|
||||
+ reproject));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean matches(Rule rule, GridRecord record, DisplayType displayType,
|
||||
GeneralGridGeometry dstGridGeometry) {
|
||||
return matches(rule.getModelName(), record.getDatasetId()) &&
|
||||
matches(rule.getSrcProjection(), getProjectionName(record.getLocation())) &&
|
||||
matches(rule.getDstProjection(), getProjectionName(dstGridGeometry)) &&
|
||||
matches(rule.getDisplayType(), displayType.toString());
|
||||
}
|
||||
|
||||
private static boolean matches(String pattern, String value) {
|
||||
if (pattern == null)
|
||||
return true;
|
||||
return Pattern.matches(pattern, value != null ? value : "");
|
||||
}
|
||||
|
||||
private static String getProjectionName(GridCoverage coverage) {
|
||||
return coverage != null ? getProjectionName(coverage.getCrs()) : null;
|
||||
}
|
||||
|
||||
private static String getProjectionName(GeneralGridGeometry gridGeometry) {
|
||||
return gridGeometry != null ? getProjectionName(gridGeometry.getCoordinateReferenceSystem()) : null;
|
||||
}
|
||||
|
||||
private static String getProjectionName(CoordinateReferenceSystem crs) {
|
||||
MapProjection projection = CRS.getMapProjection(crs);
|
||||
return projection != null ? projection.getName() : null;
|
||||
}
|
||||
|
||||
public GridReprojectionRules getRules() {
|
||||
try {
|
||||
synchronized(this) {
|
||||
if (checkFileChanged()) {
|
||||
GridReprojectionRules newRules = file.loadObject(
|
||||
new JAXBManager(GridReprojectionRules.class),
|
||||
GridReprojectionRules.class);
|
||||
if (newRules == null)
|
||||
throw new LocalizationException("No " + RULES_PATH + "found");
|
||||
rules = newRules;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
statusHandler.handle(
|
||||
Priority.PROBLEM,
|
||||
"Error occurred loading grid reproject rules",
|
||||
e);
|
||||
}
|
||||
return rules;
|
||||
}
|
||||
|
||||
private synchronized boolean checkFileChanged() throws LocalizationException {
|
||||
if (file == null) {
|
||||
file = new AutoUpdatingLocalizationFile(RULES_PATH, LocalizationType.CAVE_STATIC);
|
||||
file.addListener(new AutoUpdatingFileChangedListener() {
|
||||
@Override
|
||||
public void fileChanged(AutoUpdatingLocalizationFile file) {
|
||||
synchronized (ReprojectionUtil.this) {
|
||||
fileChanged = true;
|
||||
};
|
||||
}
|
||||
});
|
||||
return true;
|
||||
} else {
|
||||
/*
|
||||
* Only return true once per noticed file changed (and not after the
|
||||
* file has been read.) This is done to prevent a flood of AlertViz
|
||||
* errors if there is something wrong with the file.
|
||||
*/
|
||||
if (fileChanged) {
|
||||
fileChanged = false;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,85 @@
|
|||
package com.raytheon.viz.grid.xml;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
/**
|
||||
* Container for a list of rules that describe how gridded data should be
|
||||
* re-projected on various map projections.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ---------------- --------------------------
|
||||
* Sep 23, 2013 DR 15972 D. Friedman Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
@XmlRootElement()
|
||||
@XmlAccessorType(XmlAccessType.NONE)
|
||||
public class GridReprojectionRules {
|
||||
public static enum Reproject {
|
||||
ALWAYS, NEVER, TEST
|
||||
}
|
||||
|
||||
@XmlAccessorType(XmlAccessType.NONE)
|
||||
public static class Rule {
|
||||
@XmlAttribute
|
||||
private String modelName;
|
||||
@XmlAttribute
|
||||
private String displayType;
|
||||
@XmlAttribute
|
||||
private String srcProjection;
|
||||
@XmlAttribute
|
||||
private String dstProjection;
|
||||
@XmlAttribute
|
||||
private Reproject reproject;
|
||||
|
||||
public String getModelName() {
|
||||
return modelName;
|
||||
}
|
||||
public void setModelName(String modelName) {
|
||||
this.modelName = modelName;
|
||||
}
|
||||
public String getDisplayType() {
|
||||
return displayType;
|
||||
}
|
||||
public void setDisplayType(String displayType) {
|
||||
this.displayType = displayType;
|
||||
}
|
||||
public String getSrcProjection() {
|
||||
return srcProjection;
|
||||
}
|
||||
public void setSrcProjection(String srcProjection) {
|
||||
this.srcProjection = srcProjection;
|
||||
}
|
||||
public String getDstProjection() {
|
||||
return dstProjection;
|
||||
}
|
||||
public void setDstProjection(String dstProjection) {
|
||||
this.dstProjection = dstProjection;
|
||||
}
|
||||
public Reproject getReproject() {
|
||||
return reproject;
|
||||
}
|
||||
public void setReproject(Reproject reproject) {
|
||||
this.reproject = reproject;
|
||||
}
|
||||
}
|
||||
|
||||
@XmlElement(name = "rule")
|
||||
private List<Rule> rules = new ArrayList<GridReprojectionRules.Rule>(0);
|
||||
|
||||
public List<Rule> getRules() {
|
||||
return rules;
|
||||
}
|
||||
|
||||
}
|
|
@ -38,7 +38,7 @@ import com.vividsolutions.jts.geom.Geometry;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Aug 5, 2013 2177 jsanchez Initial creation
|
||||
* Sep 22, 2013 2177 jsanchez Updated logic.
|
||||
* Sep 22, 2013 2177 jsanchez Updated logic. Used GisUtil for very small portions.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -48,410 +48,412 @@ import com.vividsolutions.jts.geom.Geometry;
|
|||
|
||||
public class PortionsUtil {
|
||||
|
||||
private GridUtil gridUtil;
|
||||
private GridUtil gridUtil;
|
||||
|
||||
public PortionsUtil(WarngenLayer layer) throws Exception {
|
||||
gridUtil = new GridUtil(layer, layer.getLocalGridGeometry(),
|
||||
layer.getlocalToLatLon());
|
||||
}
|
||||
public PortionsUtil(WarngenLayer layer) throws Exception {
|
||||
gridUtil = new GridUtil(layer, layer.getLocalGridGeometry(),
|
||||
layer.getlocalToLatLon());
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines the the appropriate portion description for the warnedArea
|
||||
* intersecting the countyOrZone.
|
||||
*
|
||||
* @param entityID
|
||||
* @param countyOrZone
|
||||
* @param warnedArea
|
||||
* @param useExtreme
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public EnumSet<Direction> getPortions(String entityID,
|
||||
Geometry countyOrZone, Geometry warnedArea, boolean useExtreme)
|
||||
throws Exception {
|
||||
countyOrZone.getUserData();
|
||||
EntityData entityData = gridUtil.calculateGrids(countyOrZone,
|
||||
warnedArea);
|
||||
EnumSet<Direction> portions = null;
|
||||
if (warnedArea.getArea() < countyOrZone.getArea() * .01) {
|
||||
// this is for the case when only a "sliver" of the county or zone
|
||||
// is warned
|
||||
portions = getPointDesc(entityData.getMeanMask(), true);
|
||||
} else {
|
||||
portions = getAreaDesc(entityData.getMeanMask(),
|
||||
entityData.getCoverageMask(), entityData.getOctants(),
|
||||
useExtreme);
|
||||
}
|
||||
return suppressPortions(entityID, portions);
|
||||
}
|
||||
/**
|
||||
* Determines the the appropriate portion description for the warnedArea
|
||||
* intersecting the countyOrZone.
|
||||
*
|
||||
* @param entityID
|
||||
* @param countyOrZone
|
||||
* @param warnedArea
|
||||
* @param useExtreme
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public EnumSet<Direction> getPortions(String entityID,
|
||||
Geometry countyOrZone, Geometry warnedArea, boolean useExtreme)
|
||||
throws Exception {
|
||||
countyOrZone.getUserData();
|
||||
EntityData entityData = gridUtil.calculateGrids(countyOrZone,
|
||||
warnedArea);
|
||||
EnumSet<Direction> portions = null;
|
||||
if (entityData.getMeanMask() == 0 || entityData.getCoverageMask() == 0
|
||||
|| entityData.getMeanMask() == entityData.getCoverageMask()) {
|
||||
// This takes into account the warned areas that are very small
|
||||
// the convex hull of the warned area is used for case the
|
||||
// warnedArea is a geometry collection.
|
||||
portions = GisUtil.calculateLocationPortion(countyOrZone,
|
||||
warnedArea.convexHull(), useExtreme);
|
||||
} else {
|
||||
portions = getAreaDesc(entityData.getMeanMask(),
|
||||
entityData.getCoverageMask(), entityData.getOctants(),
|
||||
useExtreme);
|
||||
}
|
||||
return suppressPortions(entityID, portions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Looks up if the designated entity ID has an suppressed directions. For
|
||||
* example, a county or zone may not need to include the north and sound
|
||||
* direction description if it was included in the area.suppress file.
|
||||
*
|
||||
* @param entityID
|
||||
* @param portions
|
||||
* @return
|
||||
*/
|
||||
private EnumSet<Direction> suppressPortions(String entityID,
|
||||
EnumSet<Direction> portions) {
|
||||
Map<String, List<Direction>> suppressedCounties = SuppressMap
|
||||
.getInstance().getAreas();
|
||||
if (entityID != null && suppressedCounties != null
|
||||
&& !suppressedCounties.isEmpty()) {
|
||||
List<Direction> suppressedDirections = suppressedCounties
|
||||
.get(entityID.toUpperCase());
|
||||
if (suppressedDirections != null && !suppressedDirections.isEmpty()) {
|
||||
portions.removeAll(suppressedDirections);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Looks up if the designated entity ID has an suppressed directions. For
|
||||
* example, a county or zone may not need to include the north and sound
|
||||
* direction description if it was included in the area.suppress file.
|
||||
*
|
||||
* @param entityID
|
||||
* @param portions
|
||||
* @return
|
||||
*/
|
||||
private EnumSet<Direction> suppressPortions(String entityID,
|
||||
EnumSet<Direction> portions) {
|
||||
Map<String, List<Direction>> suppressedCounties = SuppressMap
|
||||
.getInstance().getAreas();
|
||||
if (entityID != null && suppressedCounties != null
|
||||
&& !suppressedCounties.isEmpty()) {
|
||||
List<Direction> suppressedDirections = suppressedCounties
|
||||
.get(entityID.toUpperCase());
|
||||
if (suppressedDirections != null && !suppressedDirections.isEmpty()) {
|
||||
portions.removeAll(suppressedDirections);
|
||||
}
|
||||
}
|
||||
|
||||
return portions;
|
||||
}
|
||||
return portions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Port from A1 code of GeoEntityLookupTable::getAreaDesc.
|
||||
*
|
||||
* @param meanMask
|
||||
* @param areaMask
|
||||
* @param octants
|
||||
* @param exYes
|
||||
*/
|
||||
private static EnumSet<Direction> getAreaDesc(int meanMask, int areaMask,
|
||||
int octants, boolean exYes) {
|
||||
EnumSet<Direction> portions = EnumSet.noneOf(Direction.class);
|
||||
/**
|
||||
* Port from A1 code of GeoEntityLookupTable::getAreaDesc.
|
||||
*
|
||||
* @param meanMask
|
||||
* @param areaMask
|
||||
* @param octants
|
||||
* @param exYes
|
||||
*/
|
||||
private static EnumSet<Direction> getAreaDesc(int meanMask, int areaMask,
|
||||
int octants, boolean exYes) {
|
||||
EnumSet<Direction> portions = EnumSet.noneOf(Direction.class);
|
||||
|
||||
// Test for case where we cannot do portions
|
||||
if (meanMask == 0 || areaMask == 0) {
|
||||
return portions;
|
||||
}
|
||||
// Test for case where we cannot do portions
|
||||
if (meanMask == 0 || areaMask == 0) {
|
||||
return portions;
|
||||
}
|
||||
|
||||
// The next block of code is the original port of A1 code but prevented
|
||||
// producing the correct result:
|
||||
// Test for case where area is completely within one subsection.
|
||||
// if (meanMask == areaMask) {
|
||||
// return getPointDesc(meanMask, exYes);
|
||||
// }
|
||||
// The next block of code is the original port of A1 code but prevented
|
||||
// producing the correct result:
|
||||
// Test for case where area is completely within one subsection.
|
||||
// if (meanMask == areaMask) {
|
||||
// return getPointDesc(meanMask, exYes);
|
||||
// }
|
||||
|
||||
// Test for central by not being near adjacent borders.
|
||||
// Another possible case of a stripe across the middle.
|
||||
if (octants == 0
|
||||
|| ((octants & CoverageConstants.EXTREME_YES) == 0)
|
||||
&& (meanMask & CoverageConstants.CENTER) == CoverageConstants.CENTER) {
|
||||
portions.add(Direction.CENTRAL);
|
||||
return portions;
|
||||
}
|
||||
// Test for central by not being near adjacent borders.
|
||||
// Another possible case of a stripe across the middle.
|
||||
if (octants == 0
|
||||
|| ((octants & CoverageConstants.EXTREME_YES) == 0)
|
||||
&& (meanMask & CoverageConstants.CENTER) == CoverageConstants.CENTER) {
|
||||
portions.add(Direction.CENTRAL);
|
||||
return portions;
|
||||
}
|
||||
|
||||
if ((octants & 0xFFFF) == 0xFFFF) {
|
||||
return portions;
|
||||
}
|
||||
if ((octants & 0xFFFF) == 0xFFFF) {
|
||||
return portions;
|
||||
}
|
||||
|
||||
// Identify quadrants in use, q is typical, qq is diagonal.
|
||||
int xoctant = octants >> 8;
|
||||
int xxoctant = octants >> 16;
|
||||
int nn, ss, ee, ww, ne, nw, se, sw;
|
||||
nn = ss = ee = ww = ne = nw = se = sw = 0;
|
||||
int omerge = xxoctant | xoctant | octants;
|
||||
if ((omerge & (CoverageConstants.NNE | CoverageConstants.ENE)) != 0) {
|
||||
ne = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.SSE | CoverageConstants.ESE)) != 0) {
|
||||
se = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.NNW | CoverageConstants.WNW)) != 0) {
|
||||
nw = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.SSW | CoverageConstants.WSW)) != 0) {
|
||||
sw = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.NNE | CoverageConstants.NNW)) != 0) {
|
||||
nn = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.SSE | CoverageConstants.SSW)) != 0) {
|
||||
ss = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.WNW | CoverageConstants.WSW)) != 0) {
|
||||
ww = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.ENE | CoverageConstants.ESE)) != 0) {
|
||||
ee = 1;
|
||||
}
|
||||
if ((areaMask & CoverageConstants.NORTH_SOUTH) == 0) {
|
||||
nn = ss = ne = nw = se = sw = 0;
|
||||
}
|
||||
if ((areaMask & CoverageConstants.EAST_WEST) == 0) {
|
||||
ee = ww = ne = nw = se = sw = 0;
|
||||
}
|
||||
int q = ne + nw + se + sw;
|
||||
int qq = nn + ss + ee + ww;
|
||||
// Identify quadrants in use, q is typical, qq is diagonal.
|
||||
int xoctant = octants >> 8;
|
||||
int xxoctant = octants >> 16;
|
||||
int nn, ss, ee, ww, ne, nw, se, sw;
|
||||
nn = ss = ee = ww = ne = nw = se = sw = 0;
|
||||
int omerge = xxoctant | xoctant | octants;
|
||||
if ((omerge & (CoverageConstants.NNE | CoverageConstants.ENE)) != 0) {
|
||||
ne = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.SSE | CoverageConstants.ESE)) != 0) {
|
||||
se = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.NNW | CoverageConstants.WNW)) != 0) {
|
||||
nw = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.SSW | CoverageConstants.WSW)) != 0) {
|
||||
sw = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.NNE | CoverageConstants.NNW)) != 0) {
|
||||
nn = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.SSE | CoverageConstants.SSW)) != 0) {
|
||||
ss = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.WNW | CoverageConstants.WSW)) != 0) {
|
||||
ww = 1;
|
||||
}
|
||||
if ((omerge & (CoverageConstants.ENE | CoverageConstants.ESE)) != 0) {
|
||||
ee = 1;
|
||||
}
|
||||
if ((areaMask & CoverageConstants.NORTH_SOUTH) == 0) {
|
||||
nn = ss = ne = nw = se = sw = 0;
|
||||
}
|
||||
if ((areaMask & CoverageConstants.EAST_WEST) == 0) {
|
||||
ee = ww = ne = nw = se = sw = 0;
|
||||
}
|
||||
int q = ne + nw + se + sw;
|
||||
int qq = nn + ss + ee + ww;
|
||||
|
||||
// Identify extremes in use.
|
||||
int nnx, ssx, eex, wwx;
|
||||
nnx = ssx = eex = wwx = 0;
|
||||
if ((areaMask & CoverageConstants.XNORTH) != 0) {
|
||||
nnx = 1;
|
||||
}
|
||||
if ((areaMask & CoverageConstants.XSOUTH) != 0) {
|
||||
ssx = 1;
|
||||
}
|
||||
if ((areaMask & CoverageConstants.XWEST) != 0) {
|
||||
wwx = 1;
|
||||
}
|
||||
if ((areaMask & CoverageConstants.XEAST) != 0) {
|
||||
eex = 1;
|
||||
}
|
||||
int xxx = nnx + ssx + eex + wwx;
|
||||
// Identify extremes in use.
|
||||
int nnx, ssx, eex, wwx;
|
||||
nnx = ssx = eex = wwx = 0;
|
||||
if ((areaMask & CoverageConstants.XNORTH) != 0) {
|
||||
nnx = 1;
|
||||
}
|
||||
if ((areaMask & CoverageConstants.XSOUTH) != 0) {
|
||||
ssx = 1;
|
||||
}
|
||||
if ((areaMask & CoverageConstants.XWEST) != 0) {
|
||||
wwx = 1;
|
||||
}
|
||||
if ((areaMask & CoverageConstants.XEAST) != 0) {
|
||||
eex = 1;
|
||||
}
|
||||
int xxx = nnx + ssx + eex + wwx;
|
||||
|
||||
// Modify masks based on whether we can use extreme.
|
||||
if ((octants & CoverageConstants.EXTREME_NO) != 0
|
||||
&& (areaMask & CoverageConstants.EXTREME) != 0) {
|
||||
areaMask &= CoverageConstants.NOT_EXTREME;
|
||||
meanMask &= CoverageConstants.NOT_EXTREME;
|
||||
}
|
||||
// Modify masks based on whether we can use extreme.
|
||||
if ((octants & CoverageConstants.EXTREME_NO) != 0
|
||||
&& (areaMask & CoverageConstants.EXTREME) != 0) {
|
||||
areaMask &= CoverageConstants.NOT_EXTREME;
|
||||
meanMask &= CoverageConstants.NOT_EXTREME;
|
||||
}
|
||||
|
||||
// Possible case of a stripe across the middle
|
||||
if (q == 0) {
|
||||
;// Only one direction encoded
|
||||
} else if (q == 2 && nw == se || q == 2 && ne == sw || qq == 2
|
||||
&& nn == ss || qq == 2 && ee == ww) {
|
||||
if ((meanMask & CoverageConstants.CENTRAL) == CoverageConstants.CENTRAL
|
||||
|| nnx == ssx && wwx == eex) {
|
||||
portions.add(Direction.CENTRAL);
|
||||
return portions;
|
||||
}
|
||||
return getPointDesc2(meanMask, exYes, nn, ss, ee, ww);
|
||||
}
|
||||
// Possible case of a stripe across the middle
|
||||
if (q == 0) {
|
||||
;// Only one direction encoded
|
||||
} else if (q == 2 && nw == se || q == 2 && ne == sw || qq == 2
|
||||
&& nn == ss || qq == 2 && ee == ww) {
|
||||
if ((meanMask & CoverageConstants.CENTRAL) == CoverageConstants.CENTRAL
|
||||
|| nnx == ssx && wwx == eex) {
|
||||
portions.add(Direction.CENTRAL);
|
||||
return portions;
|
||||
}
|
||||
return getPointDesc2(meanMask, exYes, nn, ss, ee, ww);
|
||||
}
|
||||
|
||||
// Modify masks based on whether we can use central.
|
||||
if (xxx > 2 || nnx != ssx && wwx != eex) {
|
||||
areaMask &= CoverageConstants.NOT_CENTRAL;
|
||||
meanMask &= CoverageConstants.NOT_CENTRAL;
|
||||
}
|
||||
// Modify masks based on whether we can use central.
|
||||
if (xxx > 2 || nnx != ssx && wwx != eex) {
|
||||
areaMask &= CoverageConstants.NOT_CENTRAL;
|
||||
meanMask &= CoverageConstants.NOT_CENTRAL;
|
||||
}
|
||||
|
||||
// All quadrants in use.
|
||||
if (q == 4 && qq == 4) {
|
||||
return EnumSet.noneOf(Direction.class);
|
||||
}
|
||||
// All quadrants in use.
|
||||
if (q == 4 && qq == 4) {
|
||||
return EnumSet.noneOf(Direction.class);
|
||||
}
|
||||
|
||||
// Only one typical quadrant in use.
|
||||
if (q == 1) {
|
||||
return getPointDesc2(meanMask, exYes, nn, ss, ee, ww);
|
||||
}
|
||||
// Only one typical quadrant in use.
|
||||
if (q == 1) {
|
||||
return getPointDesc2(meanMask, exYes, nn, ss, ee, ww);
|
||||
}
|
||||
|
||||
// Further modify masks based on whether we can use central.
|
||||
if (xxx >= 2) {
|
||||
areaMask &= CoverageConstants.NOT_CENTRAL;
|
||||
meanMask &= CoverageConstants.NOT_CENTRAL;
|
||||
}
|
||||
// Further modify masks based on whether we can use central.
|
||||
if (xxx >= 2) {
|
||||
areaMask &= CoverageConstants.NOT_CENTRAL;
|
||||
meanMask &= CoverageConstants.NOT_CENTRAL;
|
||||
}
|
||||
|
||||
// No more than two quadrants of any kind in use, or all quadrants.
|
||||
if (q < 3 && qq < 3) {
|
||||
if (nnx != ssx && wwx != eex
|
||||
|| (meanMask & CoverageConstants.CENTRAL) != 0) {
|
||||
return getPointDesc2(meanMask, exYes, nn, ss, ee, ww);
|
||||
// No more than two quadrants of any kind in use, or all quadrants.
|
||||
if (q < 3 && qq < 3) {
|
||||
if (nnx != ssx && wwx != eex
|
||||
|| (meanMask & CoverageConstants.CENTRAL) != 0) {
|
||||
return getPointDesc2(meanMask, exYes, nn, ss, ee, ww);
|
||||
|
||||
} else {
|
||||
return getPointDesc2(areaMask, exYes, nn, ss, ee, ww);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return getPointDesc2(areaMask, exYes, nn, ss, ee, ww);
|
||||
}
|
||||
}
|
||||
|
||||
// Three typical quadrants in use.
|
||||
if (q == 3 && qq != 3) {
|
||||
// Three typical quadrants in use.
|
||||
if (q == 3 && qq != 3) {
|
||||
|
||||
if (ne == 0) {
|
||||
// The next line is the original port of A1 code but prevented
|
||||
// producing the correct result:
|
||||
// if (ne == 0 && (xxoctant & (SSW | WSW)) != 0) {
|
||||
portions.add(Direction.SOUTH);
|
||||
portions.add(Direction.WEST);
|
||||
if (ne == 0) {
|
||||
// The next line is the original port of A1 code but prevented
|
||||
// producing the correct result:
|
||||
// if (ne == 0 && (xxoctant & (SSW | WSW)) != 0) {
|
||||
portions.add(Direction.SOUTH);
|
||||
portions.add(Direction.WEST);
|
||||
|
||||
} else if (se == 0) {
|
||||
// The next line is the original port of A1 code but prevented
|
||||
// producing the correct result:
|
||||
// } else if (se == 0 && (xxoctant & (NNW | WNW)) != 0) {
|
||||
portions.add(Direction.NORTH);
|
||||
portions.add(Direction.WEST);
|
||||
} else if (se == 0) {
|
||||
// The next line is the original port of A1 code but prevented
|
||||
// producing the correct result:
|
||||
// } else if (se == 0 && (xxoctant & (NNW | WNW)) != 0) {
|
||||
portions.add(Direction.NORTH);
|
||||
portions.add(Direction.WEST);
|
||||
|
||||
} else if (nw == 0) {
|
||||
// The next line is the original port of A1 code but prevented
|
||||
// producing the correct result:
|
||||
// } else if (nw == 0 && (xxoctant & (SSE | ESE)) != 0) {
|
||||
portions.add(Direction.SOUTH);
|
||||
portions.add(Direction.EAST);
|
||||
} else if (nw == 0) {
|
||||
// The next line is the original port of A1 code but prevented
|
||||
// producing the correct result:
|
||||
// } else if (nw == 0 && (xxoctant & (SSE | ESE)) != 0) {
|
||||
portions.add(Direction.SOUTH);
|
||||
portions.add(Direction.EAST);
|
||||
|
||||
} else if (sw == 0) {
|
||||
// The next line is the original port of A1 code but prevented
|
||||
// producing the correct result:
|
||||
// } else if (sw == 0 && (xxoctant & (NNE | ENE)) != 0) {
|
||||
portions.add(Direction.NORTH);
|
||||
portions.add(Direction.EAST);
|
||||
}
|
||||
// The next line is the original port of A1 code but prevented
|
||||
// producing the correct result:
|
||||
// return getPointDesc(meanMask, exYes);
|
||||
}
|
||||
} else if (sw == 0) {
|
||||
// The next line is the original port of A1 code but prevented
|
||||
// producing the correct result:
|
||||
// } else if (sw == 0 && (xxoctant & (NNE | ENE)) != 0) {
|
||||
portions.add(Direction.NORTH);
|
||||
portions.add(Direction.EAST);
|
||||
}
|
||||
// The next line is the original port of A1 code but prevented
|
||||
// producing the correct result:
|
||||
// return getPointDesc(meanMask, exYes);
|
||||
}
|
||||
|
||||
// Three diagonal quadrants in use.
|
||||
if (qq == 3 && portions.isEmpty()) {
|
||||
if (nn == 0) {
|
||||
portions.add(Direction.SOUTH);
|
||||
} else if (ss == 0) {
|
||||
portions.add(Direction.NORTH);
|
||||
} else if (ww == 0) {
|
||||
portions.add(Direction.EAST);
|
||||
} else if (ee == 0) {
|
||||
portions.add(Direction.WEST);
|
||||
}
|
||||
}
|
||||
// Three diagonal quadrants in use.
|
||||
if (qq == 3 && portions.isEmpty()) {
|
||||
if (nn == 0) {
|
||||
portions.add(Direction.SOUTH);
|
||||
} else if (ss == 0) {
|
||||
portions.add(Direction.NORTH);
|
||||
} else if (ww == 0) {
|
||||
portions.add(Direction.EAST);
|
||||
} else if (ee == 0) {
|
||||
portions.add(Direction.WEST);
|
||||
}
|
||||
}
|
||||
|
||||
// add extreme for three quadrant case.
|
||||
if (!portions.isEmpty()) {
|
||||
if (exYes && ((areaMask & CoverageConstants.EXTREME)) != 0) {
|
||||
portions.add(Direction.EXTREME);
|
||||
}
|
||||
return portions;
|
||||
}
|
||||
// add extreme for three quadrant case.
|
||||
if (!portions.isEmpty()) {
|
||||
if (exYes && ((areaMask & CoverageConstants.EXTREME)) != 0) {
|
||||
portions.add(Direction.EXTREME);
|
||||
}
|
||||
return portions;
|
||||
}
|
||||
|
||||
// All of either type of quadrant in use.
|
||||
if (q == 4 || qq == 4) {
|
||||
return EnumSet.noneOf(Direction.class);
|
||||
}
|
||||
// All of either type of quadrant in use.
|
||||
if (q == 4 || qq == 4) {
|
||||
return EnumSet.noneOf(Direction.class);
|
||||
}
|
||||
|
||||
// Case of a pure simple direction.
|
||||
nn = areaMask & CoverageConstants.NORTHERN;
|
||||
ss = areaMask & CoverageConstants.SOUTHERN;
|
||||
ee = areaMask & CoverageConstants.EASTERN;
|
||||
ww = areaMask & CoverageConstants.WESTERN;
|
||||
if (ss != 0 && nn != 0 || q == 0) {
|
||||
if (ee == 0 && ww != 0) {
|
||||
portions.add(Direction.WEST);
|
||||
}
|
||||
if (ww == 0 && ee != 0) {
|
||||
portions.add(Direction.EAST);
|
||||
}
|
||||
} else if (ee != 0 && ww != 0 || q == 0) {
|
||||
if (nn == 0 && ss != 0) {
|
||||
portions.add(Direction.SOUTH);
|
||||
}
|
||||
if (ss == 0 && nn != 0) {
|
||||
portions.add(Direction.NORTH);
|
||||
}
|
||||
}
|
||||
// Case of a pure simple direction.
|
||||
nn = areaMask & CoverageConstants.NORTHERN;
|
||||
ss = areaMask & CoverageConstants.SOUTHERN;
|
||||
ee = areaMask & CoverageConstants.EASTERN;
|
||||
ww = areaMask & CoverageConstants.WESTERN;
|
||||
if (ss != 0 && nn != 0 || q == 0) {
|
||||
if (ee == 0 && ww != 0) {
|
||||
portions.add(Direction.WEST);
|
||||
}
|
||||
if (ww == 0 && ee != 0) {
|
||||
portions.add(Direction.EAST);
|
||||
}
|
||||
} else if (ee != 0 && ww != 0 || q == 0) {
|
||||
if (nn == 0 && ss != 0) {
|
||||
portions.add(Direction.SOUTH);
|
||||
}
|
||||
if (ss == 0 && nn != 0) {
|
||||
portions.add(Direction.NORTH);
|
||||
}
|
||||
}
|
||||
|
||||
// add extreme for simple direction case.
|
||||
if (!portions.isEmpty()) {
|
||||
if (exYes && ((areaMask & CoverageConstants.EXTREME)) != 0) {
|
||||
portions.add(Direction.EXTREME);
|
||||
}
|
||||
return portions;
|
||||
}
|
||||
// add extreme for simple direction case.
|
||||
if (!portions.isEmpty()) {
|
||||
if (exYes && ((areaMask & CoverageConstants.EXTREME)) != 0) {
|
||||
portions.add(Direction.EXTREME);
|
||||
}
|
||||
return portions;
|
||||
}
|
||||
|
||||
// Catch with the point descriptor one last time
|
||||
return getPointDesc2(meanMask, exYes, nn, ss, ee, ww);
|
||||
}
|
||||
// Catch with the point descriptor one last time
|
||||
return getPointDesc2(meanMask, exYes, nn, ss, ee, ww);
|
||||
}
|
||||
|
||||
/**
|
||||
* Port from A1 code of GeoEntityLookupTable::getPointDesc.
|
||||
*
|
||||
* @param mask
|
||||
* @param exYes
|
||||
* @return
|
||||
*/
|
||||
private static EnumSet<Direction> getPointDesc(int mask, boolean exYes) {
|
||||
EnumSet<Direction> portions = EnumSet.noneOf(Direction.class);
|
||||
/**
|
||||
* Port from A1 code of GeoEntityLookupTable::getPointDesc.
|
||||
*
|
||||
* @param mask
|
||||
* @param exYes
|
||||
* @return
|
||||
*/
|
||||
private static EnumSet<Direction> getPointDesc(int mask, boolean exYes) {
|
||||
EnumSet<Direction> portions = EnumSet.noneOf(Direction.class);
|
||||
|
||||
int cc = mask & CoverageConstants.CENTRAL;
|
||||
if (cc == CoverageConstants.CENTRAL) {
|
||||
portions.add(Direction.CENTRAL);
|
||||
return portions;
|
||||
}
|
||||
|
||||
int cc = mask & CoverageConstants.CENTRAL;
|
||||
if (cc == CoverageConstants.CENTRAL) {
|
||||
portions.add(Direction.CENTRAL);
|
||||
return portions;
|
||||
}
|
||||
if ((mask & CoverageConstants.NORTH_SOUTH) == 0) {
|
||||
;
|
||||
} else if ((mask & CoverageConstants.SOUTHERN) == (mask & CoverageConstants.NORTH_SOUTH)) {
|
||||
portions.add(Direction.SOUTH);
|
||||
} else if ((mask & CoverageConstants.NORTHERN) == (mask & CoverageConstants.NORTH_SOUTH)) {
|
||||
portions.add(Direction.NORTH);
|
||||
}
|
||||
|
||||
if ((mask & CoverageConstants.NORTH_SOUTH) == 0) {
|
||||
;
|
||||
} else if ((mask & CoverageConstants.SOUTHERN) == (mask & CoverageConstants.NORTH_SOUTH)) {
|
||||
portions.add(Direction.SOUTH);
|
||||
} else if ((mask & CoverageConstants.NORTHERN) == (mask & CoverageConstants.NORTH_SOUTH)) {
|
||||
portions.add(Direction.NORTH);
|
||||
}
|
||||
if ((mask & CoverageConstants.EAST_WEST) == 0) {
|
||||
;
|
||||
} else if ((mask & CoverageConstants.WESTERN) == (mask & CoverageConstants.EAST_WEST)) {
|
||||
portions.add(Direction.WEST);
|
||||
} else if ((mask & CoverageConstants.EASTERN) == (mask & CoverageConstants.EAST_WEST)) {
|
||||
portions.add(Direction.EAST);
|
||||
}
|
||||
|
||||
if ((mask & CoverageConstants.EAST_WEST) == 0) {
|
||||
;
|
||||
} else if ((mask & CoverageConstants.WESTERN) == (mask & CoverageConstants.EAST_WEST)) {
|
||||
portions.add(Direction.WEST);
|
||||
} else if ((mask & CoverageConstants.EASTERN) == (mask & CoverageConstants.EAST_WEST)) {
|
||||
portions.add(Direction.EAST);
|
||||
}
|
||||
if (portions.isEmpty()) {
|
||||
return portions;
|
||||
}
|
||||
|
||||
if (portions.isEmpty()) {
|
||||
return portions;
|
||||
}
|
||||
if (cc != 0) {
|
||||
portions.add(Direction.CENTRAL);
|
||||
}
|
||||
|
||||
if (cc != 0) {
|
||||
portions.add(Direction.CENTRAL);
|
||||
}
|
||||
if (exYes && ((int) (mask & CoverageConstants.EXTREME) != 0)) {
|
||||
portions.add(Direction.EXTREME);
|
||||
}
|
||||
|
||||
if (exYes && ((int) (mask & CoverageConstants.EXTREME) != 0)) {
|
||||
portions.add(Direction.EXTREME);
|
||||
}
|
||||
return portions;
|
||||
}
|
||||
|
||||
return portions;
|
||||
}
|
||||
/**
|
||||
* This method is not a direct port from A1. The original getPointDesc did
|
||||
* not produce the expected results. This method is a modified version of
|
||||
* getPointDesct that uses the calculated qq values instead of just the
|
||||
* meanMask.
|
||||
*
|
||||
* @param mask
|
||||
* @param exYes
|
||||
* @return
|
||||
*/
|
||||
private static EnumSet<Direction> getPointDesc2(int mask, boolean exYes,
|
||||
int nn, int ss, int ee, int ww) {
|
||||
EnumSet<Direction> portions = EnumSet.noneOf(Direction.class);
|
||||
|
||||
/**
|
||||
* This method is not a direct port from A1. The original getPointDesc did
|
||||
* not produce the expected results. This method is a modified version of
|
||||
* getPointDesct that uses the calculated qq values instead of just the
|
||||
* meanMask.
|
||||
*
|
||||
* @param mask
|
||||
* @param exYes
|
||||
* @return
|
||||
*/
|
||||
private static EnumSet<Direction> getPointDesc2(int mask, boolean exYes,
|
||||
int nn, int ss, int ee, int ww) {
|
||||
EnumSet<Direction> portions = EnumSet.noneOf(Direction.class);
|
||||
if (mask == 0) {
|
||||
return portions;
|
||||
}
|
||||
|
||||
if (mask == 0) {
|
||||
return portions;
|
||||
}
|
||||
int counter = 0;
|
||||
if (nn != 0 && ss != 0) {
|
||||
;
|
||||
} else if (ss != 0) {
|
||||
portions.add(Direction.SOUTH);
|
||||
counter++;
|
||||
} else if (nn != 0) {
|
||||
portions.add(Direction.NORTH);
|
||||
counter++;
|
||||
}
|
||||
|
||||
int counter = 0;
|
||||
if (nn != 0 && ss != 0) {
|
||||
;
|
||||
} else if (ss != 0) {
|
||||
portions.add(Direction.SOUTH);
|
||||
counter++;
|
||||
} else if (nn != 0) {
|
||||
portions.add(Direction.NORTH);
|
||||
counter++;
|
||||
}
|
||||
if (ee != 0 && ww != 0) {
|
||||
;
|
||||
} else if (ww != 0) {
|
||||
portions.add(Direction.WEST);
|
||||
counter++;
|
||||
} else if (ee != 0) {
|
||||
portions.add(Direction.EAST);
|
||||
counter++;
|
||||
}
|
||||
|
||||
if (ee != 0 && ww != 0) {
|
||||
;
|
||||
} else if (ww != 0) {
|
||||
portions.add(Direction.WEST);
|
||||
counter++;
|
||||
} else if (ee != 0) {
|
||||
portions.add(Direction.EAST);
|
||||
counter++;
|
||||
}
|
||||
if (portions.isEmpty()) {
|
||||
return portions;
|
||||
}
|
||||
|
||||
if (portions.isEmpty()) {
|
||||
return portions;
|
||||
}
|
||||
int cc = mask & CoverageConstants.CENTRAL;
|
||||
boolean useCentral = counter < 2;
|
||||
if (useCentral && cc != 0) {
|
||||
portions.add(Direction.CENTRAL);
|
||||
}
|
||||
|
||||
int cc = mask & CoverageConstants.CENTRAL;
|
||||
boolean useCentral = counter < 2;
|
||||
if (useCentral && cc != 0) {
|
||||
portions.add(Direction.CENTRAL);
|
||||
}
|
||||
if (exYes && ((int) (mask & CoverageConstants.EXTREME) != 0)) {
|
||||
portions.add(Direction.EXTREME);
|
||||
}
|
||||
|
||||
if (exYes && ((int) (mask & CoverageConstants.EXTREME) != 0)) {
|
||||
portions.add(Direction.EXTREME);
|
||||
}
|
||||
|
||||
return portions;
|
||||
}
|
||||
return portions;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
# ------------ ---------- ----------- --------------------------
|
||||
# 10/20/08 njensen Initial Creation.
|
||||
# 01/17/13 1486 dgilling Make a new-style class.
|
||||
# 09/23/13 16614 njensen Fixed reload method
|
||||
#
|
||||
#
|
||||
#
|
||||
|
@ -120,7 +121,8 @@ class MasterInterface(object):
|
|||
if self.isInstantiated(moduleName):
|
||||
self.__instanceMap.__delitem__(moduleName)
|
||||
if sys.modules.has_key(moduleName):
|
||||
sys.modules.__delitem__(moduleName)
|
||||
self.self.clearModuleAttributes(moduleName)
|
||||
sys.modules.pop(moduleName)
|
||||
if moduleName in self.scripts:
|
||||
self.scripts.remove(moduleName)
|
||||
|
||||
|
@ -128,7 +130,8 @@ class MasterInterface(object):
|
|||
# we may be overriding something in self.scripts, so let's
|
||||
# force an import here
|
||||
if moduleName in self.scripts:
|
||||
sys.modules.__delitem__(moduleName)
|
||||
self.clearModuleAttributes(moduleName)
|
||||
sys.modules.pop(moduleName)
|
||||
__import__(moduleName)
|
||||
if not moduleName in self.scripts:
|
||||
self.scripts.append(moduleName)
|
||||
|
@ -140,14 +143,27 @@ class MasterInterface(object):
|
|||
|
||||
def reloadModule(self, moduleName):
|
||||
if sys.modules.has_key(moduleName):
|
||||
# Because the user might have removed items
|
||||
# From the python documentation:
|
||||
# "When a module is reloaded, its dictionary (containing the module's
|
||||
# global variables) is retained. Redefinitions of names will override the
|
||||
# old definitions, so this is generally not a problem. If the new version
|
||||
# of a module does not define a name that was defined by the old
|
||||
# version, the old definition remains."
|
||||
#
|
||||
#
|
||||
# Because the user might have removed items
|
||||
# from the module's dictionary, we cannot trust reload() to
|
||||
# remove old items. We will manually remove everything
|
||||
# remove old items. We will manually remove everything
|
||||
# but built-ins to ensure everything gets re-initialized when
|
||||
# reload() is called.
|
||||
self.clearModuleAttributes(moduleName)
|
||||
reload(sys.modules[moduleName])
|
||||
|
||||
def clearModuleAttributes(self, moduleName):
|
||||
if sys.modules.has_key(moduleName):
|
||||
mod = sys.modules[moduleName]
|
||||
modGlobalsToRemove = [k for k in mod.__dict__ if not k.startswith('_')]
|
||||
for k in modGlobalsToRemove:
|
||||
for k in modGlobalsToRemove:
|
||||
mod.__dict__.pop(k)
|
||||
reload(mod)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
##### Evan Bookbinder 02-06-2013 Added WrapText macro to handle customization of indents
|
||||
##### like the ~ and % characters in A1.
|
||||
##### Evan Bookbinder 05-05-2013 handleClosesPoints and 3rd bullet changes (OVER & now)
|
||||
##### Evan Bookbinder 09-20-2013 Fixed rural area otherPoints in pathcast section, added rural phrase
|
||||
####################################################################################################
|
||||
#*
|
||||
Mile Marker Test Code
|
||||
|
@ -31,7 +32,7 @@ $simplify is a boolean value (true or false)
|
|||
|
||||
### AUTHORS: EVAN BOOKBINDER & MIKE DANGELO
|
||||
### PURPOSE: OUTPUT MILE MARKER, ROAD, INTERSECTION INFO
|
||||
#macro(mmarkers$markers $id $name $type $simplify)
|
||||
#macro(mmarkers $markers $id $name $type $simplify)
|
||||
#set($size = ${list.size($markers)})
|
||||
#if(${type.length()} > 0)
|
||||
#set($singType = "${type} ")
|
||||
|
@ -415,6 +416,7 @@ ${mathUtil.round(${motspd})}KT ##
|
|||
########END MACRO
|
||||
|
||||
#macro(handleClosestPoints $list, $points1, $points2, $stormType, $nearText, $nearThreshold, $overText, $overThreshold, $units, $useSecondRef)
|
||||
#if(${list.size($points1)} > 0)
|
||||
#if(${stormType} == "line")
|
||||
#set($used = [])
|
||||
#set($used1 = [])
|
||||
|
@ -463,6 +465,10 @@ ${location}##
|
|||
${location}##
|
||||
#end
|
||||
#end
|
||||
#else
|
||||
###NO POINTS FOUND
|
||||
OVER ${noLocPhrase} OF !** ENTER STORM DOT COUNTY/ZONE PORTION **!
|
||||
#end
|
||||
#end
|
||||
########END MACRO
|
||||
|
||||
|
@ -517,7 +523,7 @@ ${closestPoint.roundedDistance} ${units} #direction(${closestPoint.oppositeRound
|
|||
### CHECK FOR DUPLICATE COUNTY NAMES WITHIN A CWA
|
||||
#parse("dupCounties.vm")
|
||||
#foreach (${area} in ${areas})
|
||||
#if(${list.contains($dupcounties, "${area.fips}")})
|
||||
#if(${list.contains($dupcounties, "${area.state_zone}")})
|
||||
#set($useStates = true)
|
||||
#end
|
||||
#end
|
||||
|
@ -584,8 +590,10 @@ THE ##
|
|||
#end
|
||||
${prevCounty}##
|
||||
#if((${prevCountyType} != ${area.areaNotation} || ${useStates} == true) && ${prevStateAbbrev} != "DC")
|
||||
#if(${prevCountyType.length()} > 0)
|
||||
${prevCountyType}##
|
||||
#end
|
||||
#end
|
||||
#if(${useStates} == true && ${prevStateAbbrev} != "DC")
|
||||
IN ##
|
||||
#areaFormat(${prevPartOfState} ${useCentralState} ${useExtremeState} true)##
|
||||
|
@ -603,12 +611,16 @@ ${prevCounty}##
|
|||
#if(${prevCountyType} != ${area.areaNotation} || ${useStates} == true)
|
||||
#if(${countyCount} > 1)
|
||||
#if(${prevCountiesType})
|
||||
#if(${prevCountiesType.length()} > 0)
|
||||
${prevCountiesType}##
|
||||
#end
|
||||
#end
|
||||
#elseif(${prevCountyType})
|
||||
#if(${prevCountyType.length()} > 0)
|
||||
${prevCountyType}##
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
#if(${useStates} == true && ${prevStateAbbrev} != "DC")
|
||||
IN ##
|
||||
#areaFormat(${prevPartOfState} ${useCentralState} ${useExtremeState} true)##
|
||||
|
@ -632,12 +644,16 @@ ${prevCounty}##
|
|||
#if(${prevStateAbbrev} != "DC" && (${prevCountyType} != ${area.areaNotation} || (${prevCountyType} != ${area.areaNotation} || ((${prevState} != ${area.parentRegion} || ${prevPartOfState} != ${partOfState}) && ${useStates} == true))))
|
||||
#if(${countyCount} > 1)
|
||||
#if(${prevCountiesType})
|
||||
#if(${prevCountiesType.length()} > 0)
|
||||
${prevCountiesType}##
|
||||
#end
|
||||
#end
|
||||
#elseif(${prevCountyType})
|
||||
#if(${prevCountyType.length()} > 0)
|
||||
${prevCountyType}##
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
#if((${prevCountyType} != ${area.areaNotation} || ((${prevState} != ${area.parentRegion} || ${prevPartOfState} != ${partOfState}) && ${useStates} == true)) && ${prevStateAbbrev} != "DC")
|
||||
IN ##
|
||||
#areaFormat(${prevPartOfState} ${useCentralState} ${useExtremeState} true)##
|
||||
|
@ -652,9 +668,9 @@ THE ##
|
|||
#end
|
||||
${area.name}##
|
||||
#if(${area.areasNotation})
|
||||
#if(${countyCount} >= 1)
|
||||
#if(${countyCount} >= 1 && ${area.areasNotation.length()} > 0)
|
||||
${area.areasNotation}##
|
||||
#else
|
||||
#elseif(${area.areasNotation.length()} > 0)
|
||||
${area.areaNotation}##
|
||||
#end
|
||||
#end
|
||||
|
@ -677,7 +693,10 @@ THE ##
|
|||
#if(${area.partOfArea})
|
||||
#areaFormat(${area.partOfArea} ${useCentralCounty} ${useExtremeCounty} true)##
|
||||
#end
|
||||
${area.name} ${area.areaNotation}##
|
||||
${area.name}##
|
||||
#if(${area.areasNotation.length()} > 0)
|
||||
${area.areaNotation}##
|
||||
#end
|
||||
#if(${useStates} == true && ${area.stateabbr} != "DC")
|
||||
IN ##
|
||||
#areaFormat(${partOfState} ${useCentralState} ${useExtremeState} true)##
|
||||
|
@ -858,7 +877,11 @@ THE ##
|
|||
#end
|
||||
${prevZone}##
|
||||
#if(${useStates} == true && ${prevStateAbbrev} != "DC")
|
||||
#if(${prevStateAbbrev.length()} > 0)
|
||||
IN ##
|
||||
#else
|
||||
IN ##
|
||||
#end
|
||||
#areaFormat(${prevPartOfState} ${useCentralState} ${useExtremeState} true)##
|
||||
${prevState}##
|
||||
#end
|
||||
|
@ -872,7 +895,11 @@ THE ##
|
|||
#end
|
||||
${prevZone}##
|
||||
#if(${useStates} == true && ${prevStateAbbrev} != "DC")
|
||||
#if(${prevStateAbbrev.length()} > 0)
|
||||
IN ##
|
||||
#else
|
||||
IN ##
|
||||
#end
|
||||
#areaFormat(${prevPartOfState} ${useCentralState} ${useExtremeState} true)##
|
||||
${prevState}##
|
||||
#end
|
||||
|
@ -892,7 +919,11 @@ THE ##
|
|||
#end
|
||||
${prevZone}##
|
||||
#if(((${prevState} != ${area.parentRegion} || ${prevPartOfState} != ${partOfState}) && ${useStates} == true)) && ${prevStateAbbrev} != "DC")
|
||||
#if(${prevStateAbbrev.length()} > 0)
|
||||
IN ##
|
||||
#else
|
||||
IN ##
|
||||
#end
|
||||
#areaFormat(${prevPartOfState} ${useCentralState} ${useExtremeState} true)##
|
||||
${prevState}##
|
||||
#end
|
||||
|
@ -905,7 +936,11 @@ THE ##
|
|||
#end
|
||||
${area.name}##
|
||||
#if(${useStates} == true && ${prevStateAbbrev} != "DC")
|
||||
#if(${prevStateAbbrev.length()} > 0)
|
||||
IN ##
|
||||
#else
|
||||
IN ##
|
||||
#end
|
||||
#areaFormat(${partOfState} ${useCentralState} ${useExtremeState} true)##
|
||||
${area.parentRegion}##
|
||||
#end
|
||||
|
@ -921,7 +956,11 @@ THE ##
|
|||
#end
|
||||
${area.name} ##
|
||||
#if(${useStates} == true && ${area.stateabbr} != "DC")
|
||||
#if(${area.stateabbr.length()} > 0)
|
||||
IN ##
|
||||
#else
|
||||
IN ##
|
||||
#end
|
||||
#areaFormat(${partOfState} ${useCentralState} ${useExtremeState} true)##
|
||||
${area.parentRegion}##
|
||||
#end
|
||||
|
@ -968,7 +1007,11 @@ ${prevZone}##
|
|||
#if(${area.partOfArea})
|
||||
#areaFormat(${area.partOfArea} true true true)##
|
||||
#end
|
||||
#if(${area.areaNotation.length()} > 0)
|
||||
${area.name} ${area.areaNotation} IN ##
|
||||
#else
|
||||
${area.name} IN ##
|
||||
#end
|
||||
#areaFormat(${area.partOfParentRegion} true false true)##
|
||||
${area.parentRegion}...
|
||||
##OUTPUT FOR D.C.
|
||||
|
@ -1009,6 +1052,14 @@ ${area.parentRegion}...
|
|||
#elseif(${list.size($areas)} == 1 && ${list.get(${areas},0).stateabbr} == "LA")
|
||||
THE FOLLOWING PARISH...
|
||||
|
||||
##ONE LOCATION AND ONLY Alaska
|
||||
#elseif(${list.size($areas)} == 1 && ${list.get(${areas},0).stateabbr} == "AK")
|
||||
THE FOLLOWING AREA...
|
||||
|
||||
##ONE LOCATION AND ONLY PR
|
||||
#elseif(${list.size($areas)} == 1 && ${list.get(${areas},0).stateabbr} == "PR")
|
||||
THE FOLLOWING MUNICIPALITY...
|
||||
|
||||
##ONE LOCATION OTHERWISE
|
||||
#elseif(${list.size($areas)} == 1)
|
||||
THE FOLLOWING COUNTY...
|
||||
|
@ -1020,8 +1071,16 @@ THE FOLLOWING COUNTY...
|
|||
#end
|
||||
#end
|
||||
#if(${parishFlag} == 0)
|
||||
#if(${area.stateabbr} == "AK")
|
||||
THE FOLLOWING MUNICIPALITIES...
|
||||
|
||||
#elseif(${area.stateabbr} == "PR")
|
||||
THE FOLLOWING AREAS...
|
||||
|
||||
#else
|
||||
THE FOLLOWING COUNTIES...
|
||||
|
||||
#end
|
||||
#elseif(${list.size($areas)} == ${parishFlag})
|
||||
THE FOLLOWING PARISHES...
|
||||
|
||||
|
@ -1191,15 +1250,15 @@ ${location}##
|
|||
#if($marineFlag == 1)
|
||||
${otherLead} WILL REMAIN OVER MAINLY OPEN WATERS.
|
||||
#else
|
||||
${otherLead} WILL REMAIN OVER MAINLY RURAL AREAS OF ##
|
||||
${otherLead} WILL REMAIN OVER ${noLocPhrase} OF ##
|
||||
#headlineLocList(${areas} true true true false).##
|
||||
###NOW SEARCH FOR OTHER POINTS (PRESUMABLY 3s) AND LIST THEM HERE
|
||||
### NEED TO CODE THIS ONCE SECTION IS ADDED
|
||||
#set($numOtherPoints = ${list.size($thirdTier)})
|
||||
#set($numOtherPoints = ${list.size($otherPoints)})
|
||||
#if($numOtherPoints > 0)
|
||||
..INCLUDING THE FOLLOWING LOCATIONS ##
|
||||
..INCLUDING THE FOLLOWING LOCATIONS...##
|
||||
#set($count = 0)
|
||||
#foreach(${loc} in ${thirdTier})
|
||||
#foreach(${loc} in ${otherPoints})
|
||||
#set($count = $count + 1)
|
||||
#if(${loc.partOfArea})
|
||||
#set($location = "#areaFormat(${loc.partOfArea} true false false) ${loc.name}")
|
||||
|
@ -1207,7 +1266,7 @@ ${otherLead} WILL REMAIN OVER MAINLY RURAL AREAS OF ##
|
|||
#else
|
||||
#set($location = "${loc.name}")
|
||||
#end
|
||||
${location.name}##
|
||||
${location}##
|
||||
#if($count == $numOtherPoints - 1)
|
||||
AND ##
|
||||
#elseif($count < $numOtherPoints)
|
||||
|
@ -1376,7 +1435,7 @@ AND ${strOutput}
|
|||
${ruralPhrase} WILL REMAIN OVER MAINLY OPEN WATERS.
|
||||
#else
|
||||
## NO MAJOR POINTS FOUND. LIST RURAL AREAS
|
||||
${ruralPhrase} WILL REMAIN OVER MAINLY RURAL AREAS OF #headlineLocList(${areas} true true true false).##
|
||||
${ruralPhrase} WILL REMAIN OVER ${noLocPhrase} OF #headlineLocList(${areas} true true true false).##
|
||||
#set($numMinorPoints = ${list.size($otherLocList)})
|
||||
#if(${numMinorPoints} == 1)
|
||||
..WHICH INCLUDES ##
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
## AIRPORT WEATHER WARNING TEMPLATE ##
|
||||
## EXAMPLE TEMPLATE USING HUNTSVILLE PRODUCT ##
|
||||
## CREATED BY PHIL KURIMSKI - WFO DTX ##
|
||||
## VERSION AWIPS II 1.0 -- APR 12 2012 ##
|
||||
## VERSION AWIPS II 1.1 -- SEP 12 2012 OB12.9.1-12 ##
|
||||
######################################################
|
||||
## UPDATED EVAN BOOKBINDER 9-18-2013 Implemented config.vm
|
||||
##################################################################
|
||||
##
|
||||
#parse("config.vm")
|
||||
${WMOId} ${vtecOffice} 000000 ${BBBId}
|
||||
AWW${siteId}
|
||||
#if(${productClass}=="T")
|
||||
|
@ -23,11 +23,14 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#end
|
||||
|
||||
${ugcline}
|
||||
#set($zoneList = "")
|
||||
#foreach (${area} in ${areas})
|
||||
#set($zoneList = "${zoneList}${area.name}-")
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
${zoneList}
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
||||
|
||||
|
@ -108,8 +111,6 @@ FOR THE FOLLOWING THREATS...
|
|||
|
||||
#end
|
||||
|
||||
## parse file command here is to pull in mile marker info
|
||||
## #parse("mileMarkers.vm")
|
||||
#end
|
||||
#############
|
||||
## WATCHES ##
|
||||
|
|
|
@ -2,9 +2,24 @@
|
|||
<!-- created using Huntsville as an example -->
|
||||
<!-- Customized by Phil Kurimski WFO DTX 12 April 2012
|
||||
Updated by Phil Kurimski 12 September 2012 OB12.9.1-12
|
||||
Updated Evan Bookbinder 5-5-13 to change units per Directive -->
|
||||
Updated Evan Bookbinder 5-5-13 to change units per Directive
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_ZONE.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>nmi</unitDistance>
|
||||
<unitSpeed>kn</unitSpeed>
|
||||
|
@ -16,9 +31,10 @@
|
|||
<map>ACARS Airport Locations</map>
|
||||
<map>Forecast Zones</map>
|
||||
</maps>
|
||||
|
||||
|
||||
<!-- Followups: VTEC actions of allowable followups when this template is selected -->
|
||||
<followups>
|
||||
<followup>COR</followup>
|
||||
</followups>
|
||||
|
||||
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
|
||||
|
@ -96,168 +112,4 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- Four variables below have been changed from the County-coded products -->
|
||||
<!-- areaSource.areaField -->
|
||||
<!-- areaSource.fipsField -->
|
||||
<!-- pathcastConfig.areaField and -->
|
||||
<!-- geospatialConfig.areaSource -->
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>Zone</areaSource>
|
||||
<inclusionPercent>0</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>STATE_ZONE</fipsField>
|
||||
<!-- <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>
|
||||
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pathcastConfig>
|
||||
<type>AREA</type>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<distanceThreshold>8.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>10</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>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
<!-- 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>
|
||||
|
||||
|
||||
</warngenConfig>
|
||||
|
|
|
@ -1,18 +1,21 @@
|
|||
####################
|
||||
## FLOOD ADVISORY ##
|
||||
####################
|
||||
##################################################################################
|
||||
## Edited by Phil Kurimski 8-17-2011 for OB11.8.0-4 ##
|
||||
## Evan Bookbinder 9-16-2011 for OB11.8.0-8 ##
|
||||
## Mike Dangelo 9-19-2011 at Alaska TIM ##
|
||||
## Mike Dangelo 1-25-2012 at CRH TIM ##
|
||||
## Evan Bookbinder 2-24-2012 ##
|
||||
## Phil Kurimski 2-28-2012 for OB 12.2.1-3 ##
|
||||
## Evan Bookbinder 4-25-2012 for OB 12.3.1 (MND) ##
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables} ##
|
||||
## Phil Kurimski 9-13-2012 for OB 12.9.1-12 ##
|
||||
## Phil Kurimski 2-05-2013 for OB13.2.1-3 Added rain so far section ##
|
||||
##################################################################################
|
||||
###################################################################################
|
||||
## Edited by Phil Kurimski 08-17-2011 for OB11.8.0-4 ##
|
||||
## Evan Bookbinder 09-16-2011 for OB11.8.0-8 ##
|
||||
## Mike Dangelo 09-19-2011 at Alaska TIM ##
|
||||
## Mike Dangelo 01-25-2012 at CRH TIM ##
|
||||
## Evan Bookbinder 02-24-2012 ##
|
||||
## Phil Kurimski 02-28-2012 for OB 12.2.1-3 ##
|
||||
## Evan Bookbinder 04-25-2012 for OB 12.3.1 (MND) ##
|
||||
## Mike Dangelo 09-13-2012 minor tweaks to ${variables} ##
|
||||
## Phil Kurimski 09-13-2012 for OB 12.9.1-12 ##
|
||||
## Phil Kurimski 02-05-2013 for OB13.2.1-3 Added rain so far section ##
|
||||
## Mike Dangelo 09-18-2013 added code for init pos & pathcasting ##
|
||||
## Evan Bookbinder 09-18-2013 implemented config.vm
|
||||
###################################################################################
|
||||
#parse("config.vm")
|
||||
#if(${action} == "EXT")
|
||||
#set($starttime = "000000T0000Z")
|
||||
#set($extend = true)
|
||||
|
@ -90,7 +93,11 @@ ${ugcline}
|
|||
/${productClass}.${action}.${vtecOffice}.FA.Y.${etn}.${starttime}-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -149,76 +156,76 @@ ${advType} FOR...
|
|||
#set($rainAmount = "!** RAINFALL AMOUNTS **! INCHES OF RAIN HAVE FALLEN.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "doppler")})
|
||||
#set($report = "DOPPLER RADAR INDICATED ${cause} THAT WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA")
|
||||
#set($report = "DOPPLER RADAR INDICATED ${cause} THAT WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "actual")})
|
||||
#set($report = "DOPPLER RADAR INDICATED ${cause} CAUSING ${advTypeShort}${report2} IN THE ADVISORY AREA")
|
||||
#set($report = "DOPPLER RADAR INDICATED ${cause} CAUSING ${advTypeShort}${report2} IN THE ADVISORY AREA.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "DOPPLER RADAR INDICATED ${cause} DUE TO THUNDERSTORMS. THIS WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA")
|
||||
#set($report = "DOPPLER RADAR INDICATED ${cause} DUE TO THUNDERSTORMS. THIS WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "dopplerGauge")})
|
||||
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED ${cause} WHICH WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA")
|
||||
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED ${cause} WHICH WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "actual")})
|
||||
#set($report = "DOPPLER RADAR INDICATED ${cause} CAUSING ${advTypeShort}${report2} IN THE ADVISORY AREA")
|
||||
#set($report = "DOPPLER RADAR INDICATED ${cause} CAUSING ${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 THUNDERSTORMS. THIS WILL CAUSE ${advTypeShort}${report2} IN THE ADVISORY AREA")
|
||||
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED ${cause} DUE TO THUNDERSTORMS. THIS 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}")
|
||||
#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 THUNDERSTORMS. THIS WILL CAUSE ${advTypeShort}${report2}")
|
||||
#set($report = "TRAINED WEATHER SPOTTERS REPORTED ${cause} IN !** LOCATION **! DUE TO THUNDERSTORMS. THIS 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}")
|
||||
#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}")
|
||||
#set($report = "TRAINED WEATHER SPOTTERS REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${report2}.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "lawEnforcement")})
|
||||
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}")
|
||||
#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 THUNDERSTORMS. THIS WILL CAUSE ${advTypeShort}${report2}")
|
||||
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${cause} IN !** LOCATION **! DUE TO THUNDERSTORMS. THIS 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}")
|
||||
#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}")
|
||||
#set($report = "LOCAL LAW ENFORCEMENT REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${report2}.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "emergencyManagement")})
|
||||
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}")
|
||||
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} IN !** LOCATION **! DUE TO THUNDERSTORMS. THIS WILL CAUSE ${advTypeShort}${report2}")
|
||||
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} IN !** LOCATION **! DUE TO THUNDERSTORMS. THIS WILL CAUSE ${advTypeShort}${report2}.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "actual")})
|
||||
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}")
|
||||
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "plainRain")})
|
||||
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${report2}")
|
||||
#set($report = "EMERGENCY MANAGEMENT REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${report2}.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "public")})
|
||||
#set($report = "THE PUBLIC REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}")
|
||||
#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 ${cause} IN !** LOCATION **! DUE TO THUNDERSTORMS. THIS WILL CAUSE ${advTypeShort}${report2}")
|
||||
#set($report = "THE PUBLIC REPORTED ${cause} IN !** LOCATION **! DUE TO THUNDERSTORMS. THIS WILL CAUSE ${advTypeShort}${report2}.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "actual")})
|
||||
#set($report = "THE PUBLIC REPORTED ${cause} CAUSING ${advTypeShort} IN !** LOCATION **!${report2}")
|
||||
#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 ${advTypeShort}${report2}")
|
||||
#set($report = "THE PUBLIC REPORTED ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${report2}.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "satelliteEstimates")})
|
||||
#set($report = "SATELLITE ESTIMATES INDICATE ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${report2}")
|
||||
#set($report = "SATELLITE ESTIMATES INDICATE ${cause} IN !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${report2}.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "satelliteEstimates")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "SATELLITE ESTIMATES INDICATE ${cause} FROM THUNDERSTORMS OVER !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${report2}")
|
||||
#set($report = "SATELLITE ESTIMATES INDICATE ${cause} FROM THUNDERSTORMS OVER !** LOCATION **! THAT WILL CAUSE ${advTypeShort}${report2}.")
|
||||
#end
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
|
@ -228,21 +235,76 @@ THIS IS A TEST MESSAGE. ##
|
|||
###Leave two blank lines here#########
|
||||
|
||||
|
||||
#################################
|
||||
######## THIRD BULLET ###########
|
||||
#################################
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
############# IF TRACK IS ENABLED AND stormPosition SELECTED ###############################################
|
||||
#if(${list.contains(${bullets},"stormPosition")})
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report}. ${rainAmount}
|
||||
#if(${stormType} == "line")
|
||||
...A LINE OF THUNDERSTORMS PRODUCING HEAVY RAIN WAS LOCATED ##
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
...A THUNDERSTORM PRODUCING HEAVY RAIN WAS LOCATED ##
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
...AND IS STATIONARY. ##
|
||||
#else
|
||||
#if(${stormType} == "line")
|
||||
...AND MOVING ##
|
||||
#else
|
||||
...MOVING ##
|
||||
#end
|
||||
#direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH. ##
|
||||
#end
|
||||
${rainAmount}
|
||||
#else
|
||||
###############IF TRACK IS NOT ENABLED OR stormPosition IS NOT SELECTED #######################################
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report} ${rainAmount}
|
||||
#end
|
||||
|
||||
#set($phenomena = "FLOOD")
|
||||
#set($warningType = "ADVISORY")
|
||||
#############################################################
|
||||
######## FOURTH BULLET (OPTIONAL IN FLOOD PRODUCTS) #########
|
||||
#############################################################
|
||||
############# IF TRACK IS ENABLED AND pathcast AND stormPosition BOTH SELECTED ###############################################
|
||||
#if(${list.contains(${bullets},"pathcast")} && ${list.contains(${bullets}, "stormPosition")})
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
#locationsList("SOME LOCATIONS THAT WILL EXPERIENCE MINOR FLOODING INCLUDE" "MINOR FLOODING" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
#if($movementSpeed < 3 )
|
||||
#pathCast("HEAVY RAIN WILL CONTINUE OVER THE FOLLOWING LOCATIONS..." "HEAVY RAIN" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#else
|
||||
#pathCast("HEAVY RAIN WILL MOVE OVER THE FOLLOWING LOCATIONS..." "HEAVY RAIN" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#end
|
||||
#end
|
||||
################
|
||||
#if(${list.contains(${bullets}, "listofcities")})
|
||||
#set($floodType = "FLOODING")
|
||||
* ##
|
||||
#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
|
||||
|
||||
########################################## END OF FOURTH BULLET ##############################
|
||||
######################################
|
||||
###### WHERE ADD INFO GOES ###########
|
||||
######################################
|
||||
#if(${list.contains(${bullets}, "addRainfall")})
|
||||
ADDITIONAL RAINFALL OF !** Edit Amount **! INCHES IS EXPECTED OVER THE AREA. THIS ADDITIONAL RAIN WILL MAKE MINOR FLOODING.
|
||||
|
||||
|
@ -255,8 +317,9 @@ ADDITIONAL RAINFALL OF !** Edit Amount **! INCHES IS EXPECTED OVER THE AREA. THI
|
|||
#drainages(${riverdrainages})
|
||||
|
||||
#end
|
||||
## parse file command here is to pull in mile marker info
|
||||
## parse file commands here pull in mile marker and/or point marker info
|
||||
## #parse("mileMarkers.vm")
|
||||
## #parse("pointMarkers.vm")
|
||||
|
||||
#####################
|
||||
## CALL TO ACTIONS ##
|
||||
|
|
|
@ -9,10 +9,25 @@
|
|||
Evan Bookbinder 09-12-2012 Added settings for locations shapefile
|
||||
Added new areaSource object
|
||||
Phil Kurimski 02-05-2013 Added rain so far section
|
||||
Mike Dangelo 09-18-2013 to optionally allow <trackEnabled>=true for pathcasting, and add pointMarker.xml 'include'
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -47,6 +62,11 @@
|
|||
<!-- Enable/disables the system to lock text based on various patterns -->
|
||||
<autoLockText>true</autoLockText>
|
||||
|
||||
<!-- if trackEnabled is set to 'true' = makes third bullet initial position and movement
|
||||
as well as fourth bullet pathcast (which are optional info) available to forecaster.
|
||||
Must be paired with proper vm code (also commented out in arealFloodAdvisory.vm)! -->
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- durations: the list of possible durations -->
|
||||
<defaultDuration>180</defaultDuration>
|
||||
<durations>
|
||||
|
@ -102,6 +122,7 @@
|
|||
<bullet bulletName="actual" bulletText="Minor flooding occurring" bulletGroup="advEvent" parseString=""CAUSING","FLOODING","-RAPID RIVER RISES","-MINOR FLOODING OF POOR DRAINAGE""/>
|
||||
<bullet bulletName="rapidRiver" bulletText="Rapid river rises" bulletGroup="advEvent" parseString="RAPID RIVER RISES IN"/>
|
||||
<bullet bulletName="poorDrainage" bulletText="Minor flooding for poor drainage" bulletGroup="advEvent" parseString="MINOR FLOODING OF POOR DRAINAGE AREAS IN"/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* Thunderstorm(s): use dot to specify initial position *" bulletGroup="advEvent" parseString="LOCATED"/> -->
|
||||
<bullet bulletText="*********** RAIN SO FAR (OPTIONAL) **********" bulletType="title"/>
|
||||
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
|
@ -109,6 +130,7 @@
|
|||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL INFO ***********" bulletType="title"/>
|
||||
<bullet bulletName="listofcities" bulletDefault="true" bulletText="Select for a list of cities" bulletGroup="pcast"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="* Use storm track for pathcast (for thunderstorms) *" bulletGroup="pcast" parseString="OVER THE FOLLOWING LOCATIONS..."/> -->
|
||||
<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"/>
|
||||
|
@ -150,16 +172,17 @@
|
|||
<bullet bulletName="actual" bulletText="Minor flooding occurring" bulletGroup="advEvent" parseString=""CAUSING","FLOODING","-RAPID RIVER RISES","-MINOR FLOODING OF POOR DRAINAGE""/>
|
||||
<bullet bulletName="rapidRiver" bulletText="Rapid river rises" bulletGroup="advEvent" parseString="RAPID RIVER RISES IN"/>
|
||||
<bullet bulletName="poorDrainage" bulletText="Minor flooding for poor drainage" bulletGroup="advEvent" parseString="MINOR FLOODING OF POOR DRAINAGE AREAS IN"/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* Thunderstorm(s): use dot to specify initial position *" bulletGroup="advEvent" parseString="LOCATED"/> -->
|
||||
<bullet bulletText="*********** RAIN SO FAR (OPTIONAL) **********" bulletType="title"/>
|
||||
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
|
||||
<bullet bulletName="listofcities" bulletDefault="true" bulletText="Select for a list of cities" bulletGroup="pcast"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="* Use storm track for pathcast (for thunderstorms) *" bulletGroup="pcast" parseString="OVER THE FOLLOWING LOCATIONS..."/> -->
|
||||
<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"/>
|
||||
|
@ -200,16 +223,16 @@
|
|||
<bullet bulletName="actual" bulletText="Minor flooding occurring" bulletGroup="advEvent" parseString=""CAUSING","FLOODING","-RAPID RIVER RISES","-MINOR FLOODING OF POOR DRAINAGE""/>
|
||||
<bullet bulletName="rapidRiver" bulletText="Rapid river rises" bulletGroup="advEvent" parseString="RAPID RIVER RISES IN"/>
|
||||
<bullet bulletName="poorDrainage" bulletText="Minor flooding for poor drainage" bulletGroup="advEvent" parseString="MINOR FLOODING OF POOR DRAINAGE AREAS IN"/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* Thunderstorm(s): use dot to specify initial position *" bulletGroup="advEvent" parseString="LOCATED"/> -->
|
||||
<bullet bulletText="*********** RAIN SO FAR (OPTIONAL) **********" bulletType="title"/>
|
||||
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="* Use storm track for pathcast (for thunderstorms) *" bulletGroup="pcast" parseString="OVER THE FOLLOWING LOCATIONS..."/> -->
|
||||
<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"/>
|
||||
|
@ -226,118 +249,6 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>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>
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
|
||||
<pointSource variable="riverdrainages">
|
||||
<pointSource>ffmp_basins</pointSource>
|
||||
<geometryDecimationTolerance>0.064</geometryDecimationTolerance>
|
||||
|
|
|
@ -2,15 +2,14 @@
|
|||
## FLOOD ADVISORY FOLLOW-UP ##
|
||||
##############################
|
||||
##################################################################################
|
||||
## EDITED BY PHIL KURIMSKI 8-18-2011 FOR OB11.8.0-4 ##
|
||||
## EVAN BOOKBINDER 9-16-2011 FOR OB11.0.8-8 ##
|
||||
## Mike Dangelo 9-19-2011 at Alaska TIM ##
|
||||
## Mike and Phil 1-25-2012 at CRH TIM ##
|
||||
## Evan Bookbinder 2-24-2012 ##
|
||||
## RECENT VERSION HISTORY:
|
||||
## Phil Kurimski 2-28-2012 for OB 12.2.1-3 ##
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables} ##
|
||||
## Phil Kurimski 2-05-2013 for OB13.2.1-3 Added rain so far section ##
|
||||
## Mike Dangelo 9-18-2013 added initial position and pathcasting options
|
||||
## Evan Bookbinder 9-18-2013 implemented config.vm
|
||||
##################################################################################
|
||||
#parse("config.vm")
|
||||
#if(${action} == "EXT")
|
||||
#set($starttime = "000000T0000Z")
|
||||
#set($extend = true)
|
||||
|
@ -175,7 +174,11 @@ ${ugcline}
|
|||
/${productClass}.${action}.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -238,27 +241,67 @@ THIS IS A TEST MESSAGE.##
|
|||
#end
|
||||
...THE ${advType} ${hycType}REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
|
||||
#headlineLocList(${areas} true true true false)...
|
||||
########### END NEW HEADLINE CODE ####################
|
||||
########### END HEADLINE CODE ####################
|
||||
|
||||
#if(${productClass}=="T")
|
||||
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
############# IF TRACK IS ENABLED AND stormPosition SELECTED ###############################################
|
||||
#if(${list.contains(${bullets},"stormPosition")})
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...!** warning basis **!
|
||||
#if(${stormType} == "line")
|
||||
...A LINE OF THUNDERSTORMS PRODUCING HEAVY RAIN WAS LOCATED ##
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
...A THUNDERSTORM PRODUCING HEAVY RAIN WAS LOCATED ##
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
...AND IS STATIONARY. ##
|
||||
#else
|
||||
#if(${stormType} == "line")
|
||||
...AND MOVING ##
|
||||
#else
|
||||
...MOVING ##
|
||||
#end
|
||||
#direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH. ##
|
||||
#end
|
||||
${rainAmount}
|
||||
|
||||
#else
|
||||
###############IF TRACK IS NOT ENABLED OR stormPosition IS NOT SELECTED #######################################
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report}. ${rainAmount}
|
||||
#end
|
||||
|
||||
#set ($phenomena = "FLASH FLOOD")
|
||||
#set ($warningType = "ADVISORY")
|
||||
#end
|
||||
############################################
|
||||
######## (CITY LIST) #########
|
||||
############################################
|
||||
############# IF TRACK IS ENABLED AND pathcast AND stormPosition BOTH SELECTED ###############################################
|
||||
#if(${list.contains(${bullets},"pathcast")} && ${list.contains(${bullets}, "stormPosition")})
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
#locationsList("SOME LOCATIONS THAT WILL EXPERIENCE MINOR FLOODING INCLUDE" "THIS FLOODING" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
#if($movementSpeed < 3 )
|
||||
#pathCast("HEAVY RAIN WILL CONTINUE OVER THE FOLLOWING LOCATIONS..." "HEAVY RAIN" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#else
|
||||
#pathCast("HEAVY RAIN WILL MOVE OVER THE FOLLOWING LOCATIONS..." "HEAVY RAIN" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${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("SOME LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE..." "THIS FLOODING" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "addRainfall")})
|
||||
ADDITIONAL RAINFALL OF !** Edit Amount **! INCHES IS EXPECTED OVER THE AREA. THIS ADDITIONAL RAIN WILL MAKE MINOR FLOODING.
|
||||
|
||||
|
@ -349,7 +392,11 @@ ${ugclinecan}
|
|||
/${productClass}.CAN.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -363,6 +410,8 @@ THIS IS A TEST MESSAGE.##
|
|||
#end
|
||||
...THE ${advType} ${hycType}HAS BEEN CANCELLED FOR ##
|
||||
#headlineLocList(${cancelareas} true true true false)...
|
||||
###REPLACE headlineLocList ABOVE WITH THE FOLLOWING FOR ZONE BASED PRODUCT W/ COUNTY HEADLINE
|
||||
###headlineLocList(${cancelaffectedCounties} true true true false)...
|
||||
########### END NEW HEADLINE CODE ####################
|
||||
|
||||
!** THE HEAVY RAIN HAS ENDED (AND/OR) FLOOD WATER IS RECEDING. THEREFORE...THE FLOODING THREAT HAS ENDED. **!
|
||||
|
@ -380,7 +429,11 @@ ${ugcline}
|
|||
/${productClass}.CON.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -430,6 +483,8 @@ MINOR FLOODING IS OCCURRING NEAR !** Enter Location **!.
|
|||
|
||||
## parse file command here is to pull in mile marker info
|
||||
## #parse("mileMarkers.vm")
|
||||
## Uncomment below pull in point marker info
|
||||
## #parse("pointMarkers.vm")
|
||||
|
||||
#####################
|
||||
## CALL TO ACTIONS ##
|
||||
|
@ -502,7 +557,11 @@ ${ugclinecan}
|
|||
/${productClass}.COR.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -533,7 +592,11 @@ ${ugcline}
|
|||
/${productClass}.COR.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
|
|
@ -9,9 +9,24 @@
|
|||
Evan Bookbinder 09-12-2012 Added settings for locations shapefile
|
||||
Added new areaSource object
|
||||
Phil Kurimski 02-05-2013 Added rain so far section
|
||||
Mike Dangelo 09-18-2013 to optionally allow <trackEnabled>=true for pathcasting, and add pointMarker.xml 'include'
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -45,6 +60,11 @@
|
|||
<!-- Enable/disables the system to lock text based on various patterns -->
|
||||
<autoLockText>true</autoLockText>
|
||||
|
||||
<!-- if trackEnabled is set to 'true' = makes third bullet initial position and movement
|
||||
as well as fourth bullet pathcast (which are optional info) available to forecaster.
|
||||
Must be paired with proper vm code (also commented out in arealFloodAdvisoryFollowup.vm)! -->
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- durations: the list of possible durations of the warning -->
|
||||
<!-- THE DURATIONS HERE REALLY SERVE NO PURPOSE BUT WILL CRASH WARNGEN IF REMVOED -->
|
||||
<defaultDuration>30</defaultDuration>
|
||||
|
@ -110,16 +130,16 @@
|
|||
<bullet bulletName="actual" bulletText="Minor flooding occurring" bulletGroup="advEvent" parseString=""CAUSING","FLOODING","-RAPID RIVER RISES","-MINOR FLOODING OF POOR DRAINAGE""/>
|
||||
<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="MINOR FLOODING OF POOR DRAINAGE AREAS"/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* Thunderstorm(s): use dot to specify initial position *" bulletGroup="advEvent" parseString="LOCATED"/> -->
|
||||
<bullet bulletText="*********** RAIN SO FAR (OPTIONAL) **********" bulletType="title"/>
|
||||
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="* Use storm track for pathcast (for thunderstorms) *" bulletGroup="pcast" parseString="OVER THE FOLLOWING LOCATIONS..."/> -->
|
||||
<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"/>
|
||||
|
@ -155,16 +175,16 @@
|
|||
<bullet bulletName="actual" bulletText="Minor flooding occurring" bulletGroup="advEvent" parseString=""CAUSING","FLOODING","-RAPID RIVER RISES","-MINOR FLOODING OF POOR DRAINAGE""/>
|
||||
<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="MINOR FLOODING OF POOR DRAINAGE AREAS"/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* Thunderstorm(s): use dot to specify initial position *" bulletGroup="advEvent" parseString="LOCATED"/> -->
|
||||
<bullet bulletText="*********** RAIN SO FAR (OPTIONAL) **********" bulletType="title"/>
|
||||
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="* Use storm track for pathcast (for thunderstorms) *" bulletGroup="pcast" parseString="OVER THE FOLLOWING LOCATIONS..."/> -->
|
||||
<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"/>
|
||||
|
@ -181,117 +201,6 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>
|
||||
<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,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>
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
|
||||
<pointSource variable="riverdrainages">
|
||||
<pointSource>ffmp_basins</pointSource>
|
||||
<geometryDecimationTolerance>0.064</geometryDecimationTolerance>
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
##############################
|
||||
### AREAL FLOOD WARNING ######
|
||||
##############################
|
||||
############################################################################
|
||||
## EDITED BY MIKE DANGELO 7-13-2011 ##
|
||||
## Edited by Phil Kurimski 8-16-2011 R11.8 ##
|
||||
## EDITED BY MIKE DANGELO 9-19-2011 at Alaska TIM ##
|
||||
## EDITED BY Evan Bookbinder 2-24-2012
|
||||
## EDITED BY Phil Kurimski 2-28-2012
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}##
|
||||
## Phil Kurimski 2-05-2013
|
||||
## RECENT VERSION HISTORY:
|
||||
## Mike Dangelo 2-6-2013 added satellite estimate logic
|
||||
## Mike Dangelo 5-2-2013 removed redundant entry/logic for particular/specific stream
|
||||
## Mike Dangelo 5-2-2013 removed redundant entry/logic for specific stream
|
||||
## Mike Dangelo 9-16-2013 fixed name of bullet for specific stream and removed redundant CTA
|
||||
## Mike Dangelo 09-18-2013 added code for init pos & pathcasting
|
||||
## Evan Bookbinder 9-18-2013 implemented config.vm
|
||||
#################################### SET SOME VARIABLES ###################################
|
||||
#parse("config.vm")
|
||||
##
|
||||
#if(${action} == "EXT")
|
||||
#set($starttime = "000000T0000Z")
|
||||
|
@ -80,7 +77,11 @@ ${ugcline}
|
|||
/${productClass}.${action}.${vtecOffice}.FA.W.${etn}.${starttime}-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -113,7 +114,7 @@ THIS IS A TEST MESSAGE. ##
|
|||
#end
|
||||
#secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone})
|
||||
|
||||
#set($report = "!**YOU DID NOT SELECT AN /EVENT/ BULLET. PLEASE CLOSE THIS WINDOW AND REGENERATE YOUR WARNING**!")
|
||||
#set($report = "!**YOU DID NOT SELECT EITHER A /REPORT/ BULLET OR AN /EVENT/ BULLET. PLEASE CLOSE THIS WINDOW AND REGENERATE YOUR WARNING**!")
|
||||
#set($rainAmount = "")
|
||||
#if(${list.contains(${bullets}, "doppler")})
|
||||
#set($report = "DOPPLER RADAR INDICATED HEAVY RAIN THAT WILL CAUSE FLOODING.")
|
||||
|
@ -192,15 +193,53 @@ THIS IS A TEST MESSAGE. ##
|
|||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
############# IF TRACK IS ENABLED AND stormPosition SELECTED ###############################################
|
||||
#if(${list.contains(${bullets},"stormPosition")})
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
#if(${stormType} == "line")
|
||||
...A LINE OF THUNDERSTORMS PRODUCING HEAVY RAIN WAS LOCATED ##
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
...A THUNDERSTORM PRODUCING HEAVY RAIN WAS LOCATED ##
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
...AND IS STATIONARY. ##
|
||||
#else
|
||||
#if(${stormType} == "line")
|
||||
...AND MOVING ##
|
||||
#else
|
||||
...MOVING ##
|
||||
#end
|
||||
#direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH. ##
|
||||
#end
|
||||
${rainAmount}
|
||||
#else
|
||||
###############IF TRACK IS NOT ENABLED OR stormPosition IS NOT SELECTED #######################################
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report} ${rainAmount}
|
||||
#end
|
||||
|
||||
#############################################################
|
||||
######## FOURTH BULLET (OPTIONAL IN FLOOD PRODUCTS) #########
|
||||
#############################################################
|
||||
#set($phenomena = "FLOOD")
|
||||
#set($warningType = "WARNING")
|
||||
############# IF TRACK IS ENABLED AND pathcast AND stormPosition BOTH SELECTED ###############################################
|
||||
#if(${list.contains(${bullets},"pathcast")} && ${list.contains(${bullets}, "stormPosition")})
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
#if($movementSpeed < 3 )
|
||||
#pathCast("HEAVY RAIN WILL CONTINUE OVER THE FOLLOWING LOCATIONS..." "HEAVY RAIN" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#else
|
||||
#pathCast("HEAVY RAIN WILL MOVE OVER THE FOLLOWING LOCATIONS..." "HEAVY RAIN" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#end
|
||||
#end
|
||||
################
|
||||
#if(${list.contains(${bullets}, "listofcities")})
|
||||
#set($floodType = "FLOODING")
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
|
@ -209,7 +248,7 @@ THIS IS A TEST MESSAGE. ##
|
|||
#### 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..." "THIS FLOODING" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
#locationsList("SOME LOCATIONS THAT WILL EXPERIENCE FLOODING INCLUDE..." ${floodType} 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#end
|
||||
|
||||
|
@ -230,8 +269,9 @@ ADDITIONAL RAINFALL AMOUNTS OF !** EDIT AMOUNT **! ARE POSSIBLE IN THE WARNED AR
|
|||
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
|
||||
## parse file command here is to pull in mile marker info
|
||||
## parse file commands here pull in mile marker and/or point marker info
|
||||
## #parse("mileMarkers.vm")
|
||||
## #parse("pointMarkers.vm")
|
||||
|
||||
#################################### END OF ADDITIONAL STUFF ###################################
|
||||
######################################
|
||||
|
|
|
@ -8,11 +8,27 @@
|
|||
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Phil Kurimski 02-05-2013 Added additional valid duration times
|
||||
Mike Dangelo 02-06-2013 added default bullet for ic
|
||||
05-02-2013 removed redundant specific CTA
|
||||
Mike Dangelo 05-02-2013 removed redundant specific CTA
|
||||
Mike Dangelo 09-16-2013 fixed specific stream error, and added 6 days to durations
|
||||
Mike Dangelo 09-18-2013 to optionally allow <trackEnabled>=true for pathcasting, and add pointMarker.xml 'include'
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -47,6 +63,11 @@
|
|||
<!-- Enable/disables the system to lock text based on various patterns -->
|
||||
<autoLockText>true</autoLockText>
|
||||
|
||||
<!-- if trackEnabled is set to 'true' = makes third bullet initial position and movement
|
||||
as well as fourth bullet pathcast (which are optional info) available to forecaster.
|
||||
Must be paired with proper vm code (also commented out in arealFloodWarning.vm)! -->
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- durations: the list of possible durations -->
|
||||
<defaultDuration>180</defaultDuration>
|
||||
<durations>
|
||||
|
@ -64,6 +85,7 @@
|
|||
<duration>4320</duration>
|
||||
<duration>5760</duration>
|
||||
<duration>7200</duration>
|
||||
<duration>8640</duration>
|
||||
<duration>10080</duration>
|
||||
</durations>
|
||||
|
||||
|
@ -100,6 +122,7 @@
|
|||
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString=""HEAVY RAIN","-THUNDERSTORM","-REPORTED FLOODING""/>
|
||||
<bullet bulletName="floodOccurring" bulletText="Flooding occurring" bulletGroup="event" parseString=""REPORTED FLOODING""/>
|
||||
<bullet bulletName="genericFlood" bulletText="Generic (provide reasoning)" bulletGroup="event"/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* Thunderstorm(s): use dot to specify initial position *" bulletGroup="event" parseString="LOCATED"/> -->
|
||||
<bullet bulletText="*********** RAIN AMOUNT (CHOOSE 1) **********" bulletType="title"/>
|
||||
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
|
@ -107,13 +130,14 @@
|
|||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL INFO ***********" bulletType="title"/>
|
||||
<bullet bulletName="listofcities" bulletDefault="true" bulletText="Select for a list of cities" bulletGroup="pcast"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="* Use storm track for pathcast (for thunderstorms) *" bulletGroup="pcast" parseString="OVER THE FOLLOWING LOCATIONS..."/> -->
|
||||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX is expected" parseString="ADDITIONAL RAINFALL AMOUNTS OF"/>
|
||||
<bullet bulletName="specificStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletName="specificStream" bulletText="Flooding is occurring in a specific stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="****** CALLS TO ACTION (CHOOSE 1 OR MORE) ******" bulletType="title"/>
|
||||
<bullet bulletName="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="urbanCTA" bulletText="Urban flooding" parseString="URBAN AREAS...HIGHWAYS...STREETS"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString=""SMALL CREEKS AND STREAMS","FARM AND COUNTRY ROADS""/> <bullet bulletName="USS_CTA" bulletText="Flooding of rural and urban areas" parseString="FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
|
||||
<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"/>
|
||||
|
@ -153,23 +177,23 @@
|
|||
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString=""HEAVY RAIN","-THUNDERSTORM","-REPORTED FLOODING""/>
|
||||
<bullet bulletName="floodOccurring" bulletText="Flooding occurring" bulletGroup="event" parseString=""REPORTED FLOODING""/>
|
||||
<bullet bulletName="genericFlood" bulletText="Generic (provide reasoning)" bulletGroup="event"/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* Thunderstorm(s): use dot to specify initial position *" bulletGroup="event" parseString="LOCATED"/> -->
|
||||
<bullet bulletText="*********** RAIN AMOUNT (CHOOSE 1) **********" bulletType="title"/>
|
||||
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="* Use storm track for pathcast (for thunderstorms) *" bulletGroup="pcast" parseString="OVER THE FOLLOWING LOCATIONS..."/> -->
|
||||
<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 bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletName="specificStream" bulletText="Flooding is occurring in a specific stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="****** CALLS TO ACTION (CHOOSE 1 OR MORE) ******" bulletType="title"/>
|
||||
<bullet bulletName="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="urbanCTA" bulletText="Urban flooding" parseString="URBAN AREAS...HIGHWAYS...STREETS"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString=""SMALL CREEKS AND STREAMS","FARM AND COUNTRY ROADS""/>
|
||||
<bullet bulletName="USS_CTA" bulletText="Flooding of rural and urban areas" parseString="FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
|
||||
<bullet bulletName="nightCTA" bulletText="Nighttime flooding" parseString="BE ESPECIALLY CAUTIOUS AT NIGHT"/>
|
||||
|
@ -210,23 +234,23 @@
|
|||
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString=""HEAVY RAIN","-THUNDERSTORM","-REPORTED FLOODING""/>
|
||||
<bullet bulletName="floodOccurring" bulletText="Flooding occurring" bulletGroup="event" parseString=""REPORTED FLOODING""/>
|
||||
<bullet bulletName="genericFlood" bulletText="Generic (provide reasoning)" bulletGroup="event"/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* Thunderstorm(s): use dot to specify initial position *" bulletGroup="event" parseString="LOCATED"/> -->
|
||||
<bullet bulletText="*********** RAIN AMOUNT (CHOOSE 1) **********" bulletType="title"/>
|
||||
<bullet bulletName="rain1" bulletText="One inch so far" bulletGroup="rainAmt" parseString="ONE INCH OF RAIN HAS ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="* Use storm track for pathcast (for thunderstorms) *" bulletGroup="pcast" parseString="OVER THE FOLLOWING LOCATIONS..."/> -->
|
||||
<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 bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletName="specificStream" bulletText="Flooding is occurring in a specific stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="****** CALLS TO ACTION (CHOOSE 1 OR MORE) ******" bulletType="title"/>
|
||||
<bullet bulletName="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="urbanCTA" bulletText="Urban flooding" parseString="URBAN AREAS...HIGHWAYS...STREETS"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString=""SMALL CREEKS AND STREAMS","FARM AND COUNTRY ROADS""/>
|
||||
<bullet bulletName="USS_CTA" bulletText="Flooding of rural and urban areas" parseString="FLOODING OF SMALL CREEKS AND STREAMS...HIGHWAYS AND UNDERPASSES"/>
|
||||
<bullet bulletName="nightCTA" bulletText="Nighttime flooding" parseString="BE ESPECIALLY CAUTIOUS AT NIGHT"/>
|
||||
|
@ -239,118 +263,6 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>
|
||||
|
||||
<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 in this template -->
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>30</maxResults>
|
||||
<distanceThreshold>200</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="3,4" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L" 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"/>
|
||||
|
||||
|
||||
<!-- Required, but unused in 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>
|
||||
<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>
|
||||
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</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>
|
||||
|
@ -361,6 +273,6 @@ and place into this template
|
|||
</mapping>
|
||||
</filter>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
</pointSource>
|
||||
</pointSource>
|
||||
|
||||
</warngenConfig>
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
###########################################################
|
||||
## EDITED BY MIKE DANGELO 7-12-2011 FOR OB11.7 ##
|
||||
## Edited by Phil Kurimski 8-18-2011 FOR OB11.8.0-4 ##
|
||||
## Edited by Evan Bookbinder 9-16-2011 FOR OB11.8.0-8 ##
|
||||
## EDITED BY MIKE DANGELO 9-19-2011 at Alaska TIM ##
|
||||
## EDITED BY MIKE DANGELO 1-25-2012 at CRH TIM ##
|
||||
## EDITED BY EVAN BOOKBINDER 2-24-2012 ##
|
||||
## EDITED BY PHIL KURIMSKI 2-28-2012 ##
|
||||
## AREAL FLOOD WARNING FOLLOWUP TEMPLATE
|
||||
#############################################################
|
||||
## RECENT VERSION HISTORY
|
||||
## EDITED BY MIKE REGA 5-02-2012 DR 14885 MND blank line ##
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}
|
||||
## Phil Kurimski 2-05-2013 FOR OB13.2.1-5
|
||||
## Evan Bookbinder 3-1-2013 segment ending $$ issues
|
||||
## Mike Dangelo 9-16-2013 slight modifications to urbanCTA output
|
||||
## Mike Dangelo 9-18-2013 added initial position and pathcasting options
|
||||
## Evan Bookbinder 9-18-2013 implemented config.vm
|
||||
#################################### SET SOME VARs ###################################
|
||||
#parse("config.vm")
|
||||
#set($hycType = "")
|
||||
#set($floodReason = "")
|
||||
#set($floodType = "FLOODING")
|
||||
|
@ -64,24 +64,39 @@ ${ugclinecan}
|
|||
/${productClass}.CAN.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
#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/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
#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/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -108,7 +123,6 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
################################
|
||||
#### CREATE HEADLINES ##########
|
||||
################################
|
||||
## <areaSource>County</areaSource>
|
||||
|
||||
#if(${action}=="EXP" || ${action}=="CAN")
|
||||
...THE FLOOD WARNING FOR ##
|
||||
|
@ -123,6 +137,8 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
<L>${hycType}</L> IN ##
|
||||
#end
|
||||
#headlineLocList(${cancelareas} true true true false) ${expcanHLTag}...
|
||||
###REPLACE headlineLocList ABOVE WITH THE FOLLOWING FOR ZONE BASED PRODUCT W/ COUNTY HEADLINE
|
||||
###headlineLocList(${cancelaffectedCounties} true true true false) ${expcanHLTag}...
|
||||
#end
|
||||
############################
|
||||
## END CAN/EXP HEADLINE ####
|
||||
|
@ -160,7 +176,11 @@ ${ugcline}
|
|||
/${productClass}.CON.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -176,7 +196,11 @@ ${ugcline}
|
|||
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -238,6 +262,30 @@ REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimez
|
|||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
############# IF TRACK IS ENABLED AND stormPosition SELECTED ###############################################
|
||||
#if(${list.contains(${bullets},"stormPosition")})
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
#if(${stormType} == "line")
|
||||
...A LINE OF THUNDERSTORMS PRODUCING HEAVY RAIN WAS LOCATED ##
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
...A THUNDERSTORM PRODUCING HEAVY RAIN WAS LOCATED ##
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
...AND IS STATIONARY. ##
|
||||
#else
|
||||
#if(${stormType} == "line")
|
||||
...AND MOVING ##
|
||||
#else
|
||||
...MOVING ##
|
||||
#end
|
||||
#direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH. ##
|
||||
#end
|
||||
${rainAmount}
|
||||
|
||||
#else
|
||||
###############IF TRACK IS NOT ENABLED OR stormPosition IS NOT SELECTED #######################################
|
||||
#set($cityListLead = "RUNOFF FROM THIS EXCESSIVE RAINFALL WILL CAUSE ${floodType} TO OCCUR. ")
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
|
||||
#if(${list.contains(${bullets}, "thunder")})
|
||||
|
@ -252,9 +300,24 @@ ${reportBy} ${floodType} ACROSS THE WARNED AREA.${rainAmount}${floodReason} !**
|
|||
!**YOU DID NOT SELECT AN /EVENT/ BULLET. PLEASE CLOSE THIS WINDOW AND REGENERATE YOUR WARNING**!
|
||||
#end
|
||||
|
||||
#end
|
||||
|
||||
############################################
|
||||
######## (CITY LIST) #########
|
||||
############################################
|
||||
############# IF TRACK IS ENABLED AND trackStorm AND stormPosition BOTH SELECTED ###############################################
|
||||
#if(${list.contains(${bullets},"pathcast")} && ${list.contains(${bullets}, "stormPosition")})
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
#if($movementSpeed < 3 )
|
||||
#pathCast("HEAVY RAIN WILL CONTINUE OVER THE FOLLOWING LOCATIONS..." "HEAVY RAIN" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#else
|
||||
#pathCast("HEAVY RAIN WILL MOVE OVER THE FOLLOWING LOCATIONS..." "HEAVY RAIN" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "listofcities")})
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
|
@ -267,16 +330,16 @@ THIS IS A TEST MESSAGE. ##
|
|||
|
||||
#end
|
||||
########################################## END OF OPTIONAL FOURTH BULLET ##############################
|
||||
######################################
|
||||
###### WHERE ADDITIONAL INFO GOES ####
|
||||
######################################
|
||||
###############################
|
||||
###### WHERE ADD INFO GOES ####
|
||||
###############################
|
||||
|
||||
#if(${list.contains(${bullets}, "addRainfall")})
|
||||
ADDITIONAL RAINFALL AMOUNTS OF !** EDIT AMOUNT **! ARE POSSIBLE IN THE WARNED AREA.
|
||||
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "particularStream")})
|
||||
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
|
||||
#if(${list.contains(${bullets}, "specificStream")})
|
||||
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}, "drainages")})
|
||||
|
@ -286,6 +349,8 @@ FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**loc
|
|||
|
||||
## parse file command here is to pull in mile marker info
|
||||
## #parse("mileMarkers.vm")
|
||||
## Uncomment below pull in point marker info
|
||||
## #parse("pointMarkers.vm")
|
||||
|
||||
#################################### END OF ADDITIONAL STUFF ###################################
|
||||
######################################
|
||||
|
@ -321,10 +386,6 @@ EXCESSIVE RUNOFF FROM HEAVY RAINFALL WILL CAUSE FLOODING OF SMALL CREEKS AND STR
|
|||
#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}, "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.
|
||||
|
|
|
@ -6,10 +6,26 @@
|
|||
Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
|
||||
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Phil Kurimski 02-05-2013
|
||||
Mike Dangelo 09-16-2013 changed name bullets to 'specific' stream, slight urbanCTA modification
|
||||
Mike Dangelo 09-18-2013 added initial position and pathcasting options
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -45,6 +61,11 @@
|
|||
<!-- Enable/disables the system to lock text based on various patterns -->
|
||||
<autoLockText>true</autoLockText>
|
||||
|
||||
<!-- if trackEnabled is set to 'true' = makes third bullet initial position and movement
|
||||
as well as fourth bullet pathcast (which are optional info) available to forecaster.
|
||||
Must be paired with proper vm code (also commented out in arealFloodWarningFollowup.vm)! -->
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- durations: the list of possible durations of the warning -->
|
||||
<!-- THIS REALLY SERVES NO PURPOSE BUT WILL CRASH WARNGEN IF REMVOED -->
|
||||
<defaultDuration>30</defaultDuration>
|
||||
|
@ -98,27 +119,26 @@
|
|||
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString=""HEAVY RAIN","-THUNDERSTORM","-REPORTED FLOODING""/>
|
||||
<bullet bulletName="floodOccurring" bulletText="Flooding occurring" bulletGroup="event" parseString=""REPORTED FLOODING""/>
|
||||
<bullet bulletName="genericFlood" bulletText="Generic (provide reasoning)" bulletGroup="event"/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* Thunderstorm(s): use dot to specify initial position *" bulletGroup="event" parseString="LOCATED"/> -->
|
||||
<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 ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="* Use storm track for pathcast (for thunderstorms) *" bulletGroup="pcast" parseString="OVER THE FOLLOWING LOCATIONS..."/> -->
|
||||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
|
||||
<bullet bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletName="specificStream" bulletText="Flooding is occurring in a specific stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="**** CALL TO ACTIONS (CHOOSE 1 OR MORE) ****" bulletType="title"/>
|
||||
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
|
||||
<bullet bulletName="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="urbanCTA" bulletText="Urban flooding" parseString="URBAN AREAS...HIGHWAYS...STREETS"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString=""SMALL CREEKS AND STREAMS","FARM AND COUNTRY ROADS""/>
|
||||
<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="camperCTA" bulletText="Camper safety" parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
|
||||
|
@ -143,27 +163,26 @@
|
|||
<bullet bulletName="plainRain" bulletText="Heavy rainfall (no thunder)" bulletGroup="event" parseString=""HEAVY RAIN","-THUNDERSTORM","-REPORTED FLOODING""/>
|
||||
<bullet bulletName="floodOccurring" bulletText="Flooding occurring" bulletGroup="event" parseString=""REPORTED FLOODING""/>
|
||||
<bullet bulletName="genericFlood" bulletText="Generic (provide reasoning)" bulletGroup="event"/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* Thunderstorm(s): use dot to specify initial position *" bulletGroup="event" parseString="LOCATED"/> -->
|
||||
<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 ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain2" bulletText="Two inches so far" bulletGroup="rainAmt" parseString="TWO INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="* Use storm track for pathcast (for thunderstorms) *" bulletGroup="pcast" parseString="OVER THE FOLLOWING LOCATIONS..."/> -->
|
||||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
|
||||
<bullet bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletName="specificStream" bulletText="Flooding is occurring in a specific stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletText="**** CALL TO ACTIONS (CHOOSE 1 OR MORE) ****" bulletType="title"/>
|
||||
<!-- end all call to action bullets with "CTA" ex: "obviousNameCTA" -->
|
||||
<bullet bulletName="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="urbanCTA" bulletText="Urban flooding" parseString="URBAN AREAS...HIGHWAYS...STREETS"/>
|
||||
<bullet bulletName="ruralCTA" bulletText="Rural flooding/small streams" parseString=""SMALL CREEKS AND STREAMS","FARM AND COUNTRY ROADS""/>
|
||||
<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="camperCTA" bulletText="Camper safety" parseString="CAMPERS AND HIKERS SHOULD AVOID STREAMS OR CREEKS"/>
|
||||
|
@ -174,119 +193,6 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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 in 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 in this template -->
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>30</maxResults>
|
||||
<distanceThreshold>200</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="3,4" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L" 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"/>
|
||||
|
||||
<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>
|
||||
|
|
|
@ -2,14 +2,25 @@
|
|||
## BURN SCAR FLASH FLOOD WARNING TEMPLATE FOR COUNTY-BASED PRODUCTS ##
|
||||
######################################################################
|
||||
## CREATED BY Phil Kurimski 2-08-2013 OB13.2.1-5
|
||||
## Modified by Phil Kurimski 9-18-2013 OB13.5.2-5 for FFW Emergency
|
||||
## Evan Bookbinder 9-18-2013 Implemented config.vm
|
||||
######################################################################
|
||||
## This template can be used for any pre-defined polygon that a site
|
||||
## needs to issue a FFW for outside of a dam break.
|
||||
#################################### SET SOME VARIABLES ###################################
|
||||
#parse("config.vm")
|
||||
#set($hycType = "")
|
||||
#set($burnDrainage = "")
|
||||
#set($burnScar = "")
|
||||
#set($burnCTA = "")
|
||||
#set($emergencyHeadline = "!** ENTER LOCATION **!")
|
||||
#########################################################################
|
||||
## Parse command to include a burnScarInfo.vm file with site specific
|
||||
## burn scar information. Sites can include this information in a
|
||||
## separate file or include in the template per the coding below.
|
||||
#########################################################################
|
||||
#parse ("burnScarInfo.vm")
|
||||
|
||||
##
|
||||
#if(${action} == "EXT")
|
||||
#set($starttime = "000000T0000Z")
|
||||
|
@ -53,10 +64,10 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#############################################################################
|
||||
## Flash Flood Emergency Headline -- Coming soon to a warning near you! #
|
||||
#############################################################################
|
||||
###if(${list.contains(${bullets}, "ffwEmergency")} )
|
||||
##...FLASH FLOOD EMERGENCY FOR !** LOCATION **!...
|
||||
##
|
||||
###end
|
||||
#if(${list.contains(${bullets}, "ffwEmergency")} )
|
||||
...FLASH FLOOD EMERGENCY FOR ${emergencyHeadline}...
|
||||
|
||||
#end
|
||||
#headlineext(${officeLoc}, ${backupSite}, ${extend})
|
||||
|
||||
#################################
|
||||
|
@ -189,12 +200,6 @@ THIS IS A TEST MESSAGE. ##
|
|||
#if(${list.contains(${bullets}, "satelliteGauge")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "SATELLITE ESTIMATES AND AUTOMATED RAIN GAUGES INDICATED THUNDERSTORMS WERE PRODUCING HEAVY RAIN OVER THE WARNED AREA.")
|
||||
#end
|
||||
#########################################################################
|
||||
## Parse command to include a burnScarInfo.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 ("burnScarInfo.vm")
|
||||
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
|
@ -208,7 +213,7 @@ THIS IS A TEST MESSAGE. ##
|
|||
## 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 **!. SEEK HIGHER GROUND NOW! THIS IS A POTENTIALLY LIFE THREATENING SITUATION!" 2 2)
|
||||
#wrapText("THIS IS A FLASH FLOOD EMERGENCY FOR ${emergencyHeadline}. SEEK HIGHER GROUND NOW!" 2 2)
|
||||
#end
|
||||
|
||||
|
||||
|
|
|
@ -1,11 +1,25 @@
|
|||
<!-- Burn Scar Flash Flood Warning configuration for County-based products-->
|
||||
<!-- This template can be used for any pre-defined polygon that a site needs
|
||||
to issue a FFW for outside of a dam break. -->
|
||||
<!-- Created by Phil Kurimski 02-07-2013 for OB13.2.1-5
|
||||
<!-- Created by Phil Kurimski 02-07-2013 for OB13.2.1-5
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -152,9 +166,7 @@
|
|||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
|
||||
<bullet bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
|
@ -212,9 +224,7 @@
|
|||
-->
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
|
||||
<bullet bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
|
@ -252,121 +262,6 @@
|
|||
template or listing the dams in a separate file and using the include command -->
|
||||
<include file="burnScarInfoBullet.xml"/>
|
||||
|
||||
|
||||
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<inclusionPercent>0</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>
|
||||
</areaSource>
|
||||
|
||||
<!-- Required, but unused in 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 in this template -->
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>50</maxResults>
|
||||
<distanceThreshold>10</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"/>
|
||||
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<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>
|
||||
|
|
|
@ -2,10 +2,13 @@
|
|||
## BURN SCAR FLASH FLOOD STATEMENT ##
|
||||
####################################################
|
||||
## CREATED BY Phil Kurimski 2-07-2013 OB13.2.1-5
|
||||
## Modified by Phil Kurimski 9-18-2013 OB13.5.2-5 for FFW Emergency
|
||||
## Evan Bookbinder 9-18-2013 Implemented config.v,
|
||||
####################################################
|
||||
## This template can be used for any pre-defined polygon that a site
|
||||
## needs to issue a FFW for outside of a dam break.
|
||||
#################################### SET SOME VARs ###################################
|
||||
#parse("config.vm")
|
||||
#set($hycType = "")
|
||||
#set($snowMelt = "")
|
||||
#set($floodReason = "")
|
||||
|
@ -14,6 +17,7 @@
|
|||
#set($burnScar = "")
|
||||
#set($burnCTA = "")
|
||||
#set($burnScarEnd = "")
|
||||
#set($emergencyHeadline = "!** ENTER LOCATION **!")
|
||||
###OVERRIDE DEFAULT EXECESSIVE RAINFALL IF NECESSARY
|
||||
#if(${ic} == "RS")
|
||||
#set($hycType = "RAIN AND SNOW MELT")
|
||||
|
@ -21,9 +25,9 @@
|
|||
#end
|
||||
##
|
||||
#########################################################################
|
||||
## Parse command to include a burnScarInfo.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 command to include a burnScarInfo.vm file with site specific
|
||||
## burn scar information. Sites can include this information in a
|
||||
## separate file or include in the template per the coding below.
|
||||
#########################################################################
|
||||
#parse ("burnScarInfo.vm")
|
||||
#set($endwarning = "THE HEAVY RAIN HAS ENDED...AND FLOODING IS NO LONGER EXPECTED TO POSE A THREAT${burnScarEnd}. PLEASE CONTINUE TO HEED ALL ROAD CLOSURES.")
|
||||
|
@ -56,7 +60,11 @@ ${ugclinecan}
|
|||
/${productClass}.CAN.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
#elseif(${CORCAN}=="true")
|
||||
${ugclinecan}
|
||||
|
@ -64,7 +72,11 @@ ${ugclinecan}
|
|||
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
#else
|
||||
${ugcline}
|
||||
|
@ -72,7 +84,11 @@ ${ugcline}
|
|||
/${productClass}.${action}.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${s}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
#end
|
||||
|
||||
|
@ -115,6 +131,8 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
<L>${hycType}</L> IN ##
|
||||
#end
|
||||
#headlineLocList(${cancelareas} true true true false) ${expcanHLTag}...
|
||||
###REPLACE headlineLocList ABOVE WITH THE FOLLOWING FOR ZONE BASED PRODUCT W/ COUNTY HEADLINE
|
||||
###headlineLocList(${cancelaffectedCounties} true true true false) ${expcanHLTag}...
|
||||
#end
|
||||
############################
|
||||
## END CAN/EXP HEADLINE ####
|
||||
|
@ -142,7 +160,11 @@ ${ugcline}
|
|||
/${productClass}.CON.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -158,7 +180,11 @@ ${ugcline}
|
|||
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -174,6 +200,15 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#if(${action}=="CANCON" || ${action}=="CON" || ${action}=="COR" || ${CORCAN}=="true")
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE.##
|
||||
#end
|
||||
###################################
|
||||
## Flash Flood Emergency headline #
|
||||
###################################
|
||||
#if(${list.contains(${bullets}, "ffwEmergency")})
|
||||
#set($ctaSelected = "YES")
|
||||
|
||||
...THIS IS A FLASH FLOOD EMERGENCY FOR ${emergencyHeadline}...
|
||||
|
||||
#end
|
||||
...THE FLASH FLOOD WARNING ##
|
||||
#if(${hycType} != "")
|
||||
|
@ -181,15 +216,6 @@ FOR <L>${hycType}</L> ##
|
|||
#end
|
||||
REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
|
||||
#headlineLocList(${areas} true true true false)...
|
||||
###############################################################################
|
||||
## Flash Flood Emergency per NWS 10-922 Directive goes after initial headline #
|
||||
###############################################################################
|
||||
#if(${list.contains(${bullets}, "ffwEmergency")})
|
||||
#set($ctaSelected = "YES")
|
||||
|
||||
...THIS IS A FLASH FLOOD EMERGENCY FOR !**ENTER LOCATION**!...
|
||||
|
||||
#end
|
||||
|
||||
################################################
|
||||
#################################
|
||||
|
@ -312,6 +338,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report} ${rainAmount} ${isExpected} ${snowMelt}
|
||||
|
||||
##########################################################################
|
||||
## Flash Flood Emergency per NWS 10-922 Directive goes with third bullet #
|
||||
##########################################################################
|
||||
#if(${list.contains(${bullets}, "ffwEmergency")})
|
||||
THIS IS A FLASH FLOOD EMERGENCY FOR ${emergencyHeadline}. SEEK HIGHER GROUND NOW!
|
||||
|
||||
#end
|
||||
${burnScar}
|
||||
|
||||
############################################
|
||||
|
|
|
@ -1,11 +1,25 @@
|
|||
<!-- Burn Scar Flash Flood Statement configuration for County-based products-->
|
||||
<!-- This template can be used for any pre-defined polygon that a site needs
|
||||
to issue a FFW for outside of a dam break. -->
|
||||
<!-- Created by Phil Kurimski 02-07-2013 for OB13.2.1-5
|
||||
<!-- Created by Phil Kurimski 02-07-2013 for OB13.2.1-5
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -115,9 +129,7 @@
|
|||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
|
||||
<bullet bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
|
@ -171,9 +183,7 @@
|
|||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
|
||||
<bullet bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
|
@ -206,116 +216,6 @@
|
|||
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>name</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>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#if(${list.contains($bullets, "FourMileBurnArea")})
|
||||
#set($burnScarName = "FOUR MILE BURN AREA")
|
||||
#set($burnScarEnd = " OVER THE FOUR MILE BURN AREA")
|
||||
#set($emergencyHeadline = "AREAS IN AND AROUND THE ${burnScarName}")
|
||||
#end
|
||||
#if(${list.contains($bullets, "fourmilelowimpact")})
|
||||
#set($ctaSelected = "YES")
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
This process can be done for any pre-configured FFW box. -->
|
||||
<!--
|
||||
<damInfoBullets>
|
||||
<damInfoBullet bulletGroup="dam" bulletText="FourMile Burn Area" bulletName="FourMileBurnArea" parseString="FOURMILE BURN AREA" showString="FOURMILE BURN AREA" coords="LAT...LON 4006 10542 4008 10537 4005 10535 4002 10540"/>
|
||||
<damInfoBullet bulletGroup="burnscenario" bulletName="fourmilelowimpact" bulletText="scenario - low impact" parseString="RAINFALL WILL CAUSE FLASH" showString="FOURMILE BURN AREA"/>
|
||||
<damInfoBullet bulletGroup="burnscenario" bulletName="fourmilehighimpact" bulletText="scenario - high impact" parseString="SEVERE FLASH FLOODING OF CREEKS...STREAMS" showString="FOURMILE BURN AREA"/>
|
||||
<damInfoBullet bulletGroup="dam" bulletText="FourMile Burn Area" bulletName="FourMileBurnArea" parseString="FOUR MILE BURN AREA" showString="FOUR MILE BURN AREA" coords="LAT...LON 4006 10542 4008 10537 4005 10535 4002 10540"/>
|
||||
<damInfoBullet bulletGroup="burnscenario" bulletName="fourmilelowimpact" bulletText="scenario - low impact" parseString="RAINFALL WILL CAUSE FLASH" showString="FOUR MILE BURN AREA"/>
|
||||
<damInfoBullet bulletGroup="burnscenario" bulletName="fourmilehighimpact" bulletText="scenario - high impact" parseString="SEVERE FLASH FLOODING OF CREEKS...STREAMS" showString="FOUR MILE BURN AREA"/>
|
||||
</damInfoBullets>
|
||||
-->
|
||||
<!-- End of example. Begin your site specific information here. -->
|
|
@ -0,0 +1,59 @@
|
|||
############################################################################
|
||||
## This file contains global WarnGen tempate (.vm) configuration settings
|
||||
## If you have any questions please contact Evan Bookbinder - WFO EAX
|
||||
## CREATED 9/20/2013
|
||||
############################################################################
|
||||
### SET LAND REFERENCE DISTANCE UNITS
|
||||
#set($landDistanceUnits = "MILES")
|
||||
### SET MARINE REFERENCE DISTANCE UNITS
|
||||
#set($marineDistanceUnits = "NM")
|
||||
|
||||
### SET DISTANCE (LAND) AT OR BELOW WHICH STORM REFERENCE MILEAGE WILL BE SHOWN AS "NEAR"
|
||||
#set($maxLandNearDistance = 6)
|
||||
### SET DISTANCE (MARINE) AT OR BELOW WHICH STORM REFERENCE MILEAGE WILL BE SHOWN AS "NEAR"
|
||||
#set($maxMarineNearDistance = 6)
|
||||
### SET "NEAR" WORDING
|
||||
#set($nearPhrase = "NEAR")
|
||||
|
||||
### SET DISTANCE (LAND) AT OR BELOW WHICH STORM REFERENCE MILEAGE WILL BE SHOWN AS"OVER"
|
||||
#set($maxLandOverDistance = 2)
|
||||
### SET DISTANCE (LAND) AT OR BELOW WHICH STORM REFERENCE MILEAGE WILL BE SHOWN AS"OVER"
|
||||
#set($maxMarineOverDistance = 2)
|
||||
### SET "OVER" WORDING
|
||||
#set($overPhrase = "OVER")
|
||||
|
||||
### SET STORM SPEED (LAND) BELOW WHICH STORM MOVEMENT WILL BE "STATIONARY" .. e.g. < 5 mph
|
||||
#set($landStationary = 5)
|
||||
### SET STORM SPEED (MARINE) BELOW WHICH STORM MOVEMENT WILL BE "STATIONARY" .. e.g < 5 knots
|
||||
#set($marineStationary = 5)
|
||||
|
||||
### USE SECOND STORM REFERENCE? true or false
|
||||
### DETERMINES WHETHER OR NOT A SECOND STORM REFERENCE IS USED IN THE 3RD BULLET.
|
||||
### TRUE:
|
||||
### "A SEVERE THUNDERSTORM WAS LOCATED NEAR PODUNK...OR 40 MILES EAST OF DENVER"
|
||||
### FALSE:
|
||||
### "A SEVERE THUNDERSTORM WAS LOCATED NEAR PODUNK"
|
||||
### ONE VARIABLE IS SET FOR A SINGLE STORM, THE OTHER FOR A LINE OF STORMS
|
||||
#set ($useSecondReferenceCell = true)
|
||||
#set ($useSecondReferenceLine = false)
|
||||
|
||||
### INCLUDE STATE ABBREVIATIONS WITH ZONE LISTING IN MND HEADER? true or false
|
||||
###
|
||||
### FOR WESTERN REGION/ALASKA, THIS WILL LIKELY BE FALSE...AS WOULD ANY CWA COVERING
|
||||
### ONLY A SINGLE STATE
|
||||
### FALSE OPTION:
|
||||
### AKZ220>224-226-170400
|
||||
### YUKON FLAT AND SURROUNDING UPLANDS-CENTRAL INTERIOR-
|
||||
### MIDDLE TANANA VALLEY-DELTANA AND TANANA FLATS-
|
||||
### 556 PM AKDT MON SEP 16 2013
|
||||
###
|
||||
### TRUE OPTION:
|
||||
### AKZ220>224-226-170400
|
||||
### YUKON FLAT AND SURROUNDING UPLANDS AK-CENTRAL INTERIOR AK-
|
||||
### MIDDLE TANANA VALLEY AK-DELTANA AND TANANA FLATS AK-
|
||||
### 556 PM AKDT MON SEP 16 2013
|
||||
#set($includeStateAbbreviation = true)
|
||||
|
||||
### SET RURAL PHRASING WHEN NO WARNGEN LOCATIONS ARE IN THE PATH OF THE STORM TRACK/POLYGON
|
||||
### THIS STORM WILL REMAIN OVER ___________ OF XXXX COUNTY/ZONE
|
||||
#set($noLocPhrase = "MAINLY RURAL AREAS")
|
|
@ -1,5 +1,5 @@
|
|||
LA \ PARISH
|
||||
LOUISIANNA \ PARISH
|
||||
LOUISIANA \ PARISH
|
||||
LA+ \ PARISHES
|
||||
LOUISIANA+ \ PARISHES
|
||||
DC \
|
||||
|
|
|
@ -61,11 +61,12 @@
|
|||
#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}${reportInfo}")
|
||||
## #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.")
|
||||
#set($hycType = "THE ${riverName} BELOW ${damName}")
|
||||
#set($emergencyHeadline = "TOWNS AND CITIES IMMEDIATELY BELOW ${damName} ON THE ${riverName}")
|
||||
#set($headline = "FOR ${reportType2} ${damName} ON THE ${riverName} ")
|
||||
#set($reportType1 = "${reportType2} ${damName} ON THE ${riverName}${reportInfo}")
|
||||
#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
|
||||
#######################################################################
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
#*
|
||||
CREATED 09-20-2013 BY EVAN BOOKBINDER
|
||||
|
||||
dbTable list should include the pointSource objects created in
|
||||
dssEvents.xml
|
||||
|
||||
*#
|
||||
|
||||
#if ($dss_events)
|
||||
#set($size = ${list.size($dss_events)})
|
||||
#if ($size > 0)
|
||||
PEOPLE ATTENDING ##
|
||||
#set($counter = 1)
|
||||
#foreach($dss in $dss_events)
|
||||
#if($counter < $size)
|
||||
${dss.name}...##
|
||||
#set($counter = $counter + 1)
|
||||
#elseif($counter == $size)
|
||||
#if($size > 1)
|
||||
AND ##
|
||||
#end
|
||||
${dss.name} ##
|
||||
#end
|
||||
#end
|
||||
SHOULD SEEK SAFE SHELTER IMMEDIATELY!
|
||||
|
||||
#end
|
||||
#end
|
|
@ -0,0 +1,32 @@
|
|||
<!--
|
||||
CREATED 9-20-2013 BY EVAN BOOKBINDER
|
||||
|
||||
Take Real-Time DSS Events from the mapdata.warngen_dss postGres table
|
||||
(as generated by software created by Evan Bookbinder (EAX) and Phil Kurimski (DTX)),
|
||||
and include them in our warning polygons.
|
||||
|
||||
<pointSource variable="dss">
|
||||
<pointSource>warngen_dss</pointSource>
|
||||
<pointField>NAME</pointField>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
-->
|
||||
|
||||
<pointSource variable="dss_events">
|
||||
<pointSource>warngen_dss</pointSource>
|
||||
<pointField>NAME</pointField>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
|
@ -1,7 +1,10 @@
|
|||
### IF YOU HAVE DUPLICATE COUNTY NAMES IN YOUR CWA
|
||||
### (e.g. JOHNSON KANSAS AND JOHNSON MISSOURI) INCLUDE FIPS BELOW
|
||||
### IN THE XXYYY FORMAT WHERE XX = STATE FIPS AND YYY = COUNTY FIPS
|
||||
### For example: #set ($dupcounties = ["20091","20107","29101","29115"])
|
||||
### (e.g. LINN KANSAS AND LINN MISSOURI) INCLUDE FIPS/ZONE CODES BELOW.
|
||||
### FIPS CODES ARE IN A XXYYY NUMERIC FORMAT WHERE XX = STATE FIPS AND YYY = COUNTY FIPS
|
||||
### ZONE CODES ARE IN A XXYYY STRING FORMAT WHERE XX = STATE ABBREVIATION AND YYY = ZONE CODE
|
||||
### For example: For Linn County Kansas and Linn County Missouri, we would have 4 entires:
|
||||
### the FIPS/Zone pair for Linn Kansas and the FIPS/Zone pair for Linn Missouri
|
||||
### #set ($dupcounties = ["29115","MO024","20107","KS060"])
|
||||
### IF YOU DO NOT HAVE DUPLICATE COUNTY NAMES USE THE FOLLOWING SYNTAX:
|
||||
### Null example: #set ($dupcounties = [""])
|
||||
#set ($dupcounties = [""])
|
|
@ -1,16 +1,16 @@
|
|||
#################
|
||||
############################################################################
|
||||
## EXTREME WIND WARNING TEMPLATE ##
|
||||
## (SLIGHTLY) MODIFIED BY TOM BIRCHARD - WFO HFO ##
|
||||
## VERSION AWIPS II 1.0 -- 15-APRIL-2011
|
||||
## MODIFIED EVAN BOOKBINDER 09-16-2011 OB11.0.8-8 ##
|
||||
## EVAN BOOKBINDER WFO EAX 11-04-2011 OB11.9-3 (DRs) ##
|
||||
## RECENT HISTORY
|
||||
## QINGLU LIN 8-14-2012 DR 14493 use TMLtime ##
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables} ##
|
||||
## Evan Bookbinder 06-07-2013 Fixed CTAs/&&
|
||||
## Evan Bookbinder 06-07-2013 Fixed CTAs/&&
|
||||
## Evan Bookbinder 09-18-2013 Implemented config.vm
|
||||
############################################################################
|
||||
#################
|
||||
## EWW PRODUCT ##
|
||||
#################
|
||||
#parse("config.vm")
|
||||
##
|
||||
${WMOId} ${vtecOffice} 000000 ${BBBId}
|
||||
EWW${siteId}
|
||||
|
@ -115,12 +115,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
#end
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${reportType}...${reportType1} ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY.##
|
||||
#else
|
||||
...MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH.##
|
||||
|
|
|
@ -4,10 +4,24 @@
|
|||
Evan Bookbinder 09-12-2012 Added settings for locations shapefile
|
||||
Added new areaSource object
|
||||
Evan Bookbinder 03-1-2013 Fixed group Settings
|
||||
Evan Bookbinder 06-07-2013 Fixed CTAs
|
||||
Evan Bookbinder 06-07-2013 Fixed CTAs
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -80,7 +94,8 @@
|
|||
<bullet bulletName="safePlacesCTA" bulletText="Hurricane CTA - Safe places to be" parseString="THE SAFEST PLACE TO BE DURING"/>
|
||||
<bullet bulletText="*********** Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listofcities" bulletDefault="true" bulletText="Select for a list of cities" bulletGroup="pcast"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
<bulletActionGroup action="COR" phen="EW" sig="W">
|
||||
|
@ -106,161 +121,10 @@
|
|||
<bullet bulletName="safePlacesCTA" bulletText="Hurricane CTA - Safe places to be" parseString="THE SAFEST PLACE TO BE DURING"/>
|
||||
<bullet bulletText="*********** Pathcast Section **********" 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","LOCATIONS IN THE WARNING INCLUDE","WILL REMAIN OVER""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>50</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<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>
|
||||
<areaField>COUNTYNAME</areaField>
|
||||
<type>AREA</type>
|
||||
<parentAreaField>STATE</parentAreaField>
|
||||
<areaNotationField>STATE</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<sortBy>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
</warngenConfig>
|
||||
|
|
|
@ -4,8 +4,10 @@
|
|||
## Evan Bookbinder 4-25-2012 for OB 12.3.1 (corText)
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}
|
||||
## Evan Bookbinder 06-07-2013 Fixed CTAs/&&
|
||||
## Evan Bookbinder 09-18-2013 Implemented config.vm
|
||||
################################################
|
||||
##
|
||||
#parse("config.vm")
|
||||
### CREATE PHRASING DEPENDING ON WHETHER WE ISSUE EXP PRIOR TO EXPIRATION TIME OR NOT
|
||||
#if(${action}=="COR" && ${cancelareas})
|
||||
#set($CORCAN = "true")
|
||||
|
@ -42,7 +44,11 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
${ugcline}
|
||||
/${productClass}.${action}.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -144,7 +150,11 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
${ugcline}
|
||||
/${productClass}.${action}.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -170,12 +180,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${reportType}...${reportType1} ##
|
||||
#end
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY.##
|
||||
#else
|
||||
...MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH.##
|
||||
|
@ -308,7 +319,11 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
${ugclinecan}
|
||||
/${productClass}.CAN.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -322,6 +337,8 @@ THIS IS A TEST MESSAGE.##
|
|||
#end
|
||||
...THE EXTREME WIND WARNING FOR ##
|
||||
#headlineLocList(${cancelareas} true true true false) ${expcanHLTag}...
|
||||
###REPLACE headlineLocList ABOVE WITH THE FOLLOWING FOR ZONE BASED PRODUCT W/ COUNTY HEADLINE
|
||||
###headlineLocList(${cancelaffectedCounties} true true true false) ${expcanHLTag}...
|
||||
|
||||
## One line explanation
|
||||
!**EXPLANATION**!
|
||||
|
@ -349,7 +366,11 @@ $$
|
|||
${ugcline}
|
||||
/${productClass}.CON.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -371,12 +392,13 @@ THIS IS A TEST MESSAGE. AT ${dateUtil.format(${event}, ${timeFormat.clock}, ${lo
|
|||
|
||||
AT ${dateUtil.format(${event}, ${timeFormat.clock}, ${localtimezone})}...${reportType}...${reportType1} ##
|
||||
#end
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY.##
|
||||
#else
|
||||
...MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH.##
|
||||
|
@ -468,7 +490,11 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
${ugcline}
|
||||
/${productClass}.${action}.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
|
|
@ -6,9 +6,23 @@
|
|||
Added new areaSource object
|
||||
Evan Bookbinder 03-01-2013 Fixed Group Settings
|
||||
Evan Bookbinder 06-07-2013 Fixed CTAs
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -94,8 +108,7 @@
|
|||
<bullet bulletName="safePlacesCTA" bulletText="Hurricane CTA - Safe places to be" parseString="THE SAFEST PLACE TO BE DURING"/>
|
||||
<bullet bulletText="*********** Pathcast? **********" 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 IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
|
@ -120,164 +133,10 @@
|
|||
<bullet bulletName="safePlacesCTA" bulletText="Hurricane CTA - Safe places to be" parseString="THE SAFEST PLACE TO BE DURING"/>
|
||||
<bullet bulletText="*********** Pathcast? **********" 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 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="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<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>COUNTYNAME</areaField>
|
||||
<parentAreaField>STATE</parentAreaField>
|
||||
<areaNotationField>STATE</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<sortBy>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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">
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
</warngenConfig>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
## CREATED BOOKBINDER/DANGELO - 2-07-12 - Initial OB12 Write ##
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables} ##
|
||||
###############################################################################
|
||||
#parse("config.vm")
|
||||
${WMOId} ${vtecOffice} 000000 ${BBBId}
|
||||
FRW${siteId}
|
||||
${ugcline}
|
||||
|
@ -59,6 +60,7 @@ A FIRE WAS RACING TOWARD !** LOCATIONS **! AND COULD REACH THERE BY !** TIME **!
|
|||
|
||||
## parse file command here is to pull in mile marker info
|
||||
## #parse("mileMarkers.vm")
|
||||
## #parse("pointMarkers.vm")
|
||||
|
||||
#####################
|
||||
## CALL TO ACTIONS ##
|
||||
|
|
|
@ -4,9 +4,23 @@
|
|||
Modified MIKE REGA 5-10-2012 DR 14525 added timeZoneField
|
||||
DR 14691 added feAreaField
|
||||
Evan Bookbinder 09-12-2012 added new areaSource object
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_ZONE.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -24,7 +38,7 @@
|
|||
|
||||
<!-- Followups: VTEC actions of allowable followups when this template is selected -->
|
||||
<followups>
|
||||
|
||||
<followup>COR</followup>
|
||||
</followups>
|
||||
|
||||
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
|
||||
|
@ -88,155 +102,4 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- Default areaSource object to generate zone based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>Zone</areaSource>
|
||||
<inclusionPercent>0</inclusionPercent>
|
||||
<inclusionAndOr>AND</inclusionAndOr>
|
||||
<inclusionArea>0</inclusionArea>
|
||||
<areaField>NAME</areaField>
|
||||
<parentAreaField>NAME</parentAreaField>
|
||||
<feAreaField>FE_AREA</feAreaField>
|
||||
<timeZoneField>TIME_ZONE</timeZoneField>
|
||||
<areaNotationField>STATE</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<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>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<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>
|
||||
<parentAreaField>STATE</parentAreaField>
|
||||
<areaNotationField>STATE</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<sortBy>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</pointSource>
|
||||
<areaSource>County</areaSource>
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
|
||||
<!-- this "include file" tag will grab the Mile Marker XML pointSource tags,
|
||||
and place into this template
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
|
||||
</warngenConfig>
|
||||
|
|
|
@ -1,19 +1,15 @@
|
|||
############################################################
|
||||
## 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.0-4
|
||||
## EDITED BY EVAN BOOKBINDER 9-15-2011 for OB11.8.0-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 EVAN BOOKBINDER 11-04-11 - OB11.9-3 (DRs)
|
||||
## EDITED BY MIKE DANGELO 1-25-2012 at CRH TIM
|
||||
## EDITED BY MIKE DANGELO 2-23-2012
|
||||
## EDITED BY EVAN BOOKBINDER 2-24-2012
|
||||
## RECENT VERSION HISTORY:
|
||||
## EDITED BY Phil Kurimski 9-13-2012 OB12.9.1-12 to add Flash Flood Emergency Headline
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}
|
||||
## Phil Kurimski 2-05-2013 revised CTA statements
|
||||
## Mike Dangelo 09-17-2013 added code for init pos & pathcasting, and added pointMarkers parse line
|
||||
## Evan Bookbinder 9-18-2013 Implemented config.vm
|
||||
## Gene Petrescu 09-19-2013 Added Alaska Modifications (GP comments)
|
||||
#################################### SET SOME VARIABLES ###################################
|
||||
#parse("config.vm")
|
||||
#set($hycType = "")
|
||||
##
|
||||
#if(${action} == "EXT")
|
||||
|
@ -29,7 +25,7 @@
|
|||
#if(${list.contains(${bullets}, "icrs")})
|
||||
#set($ic = "RS")
|
||||
#set($hycType = "RAIN AND SNOW MELT IN...")
|
||||
#set($snowMelt = "RAPID SNOW MELT IS ALSO OCCURRING AND WILL ADD TO THE FLOODING.")
|
||||
#set($snowMelt = "RAPID SNOW MELT IS ALSO OCCURRING AND WILL ADD TO THE FLOODING. ")
|
||||
#end
|
||||
##
|
||||
${WMOId} ${vtecOffice} 000000 ${BBBId}
|
||||
|
@ -58,11 +54,11 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#############################################################################
|
||||
## Flash Flood Emergency Headline -- Coming soon to a warning near you! #
|
||||
#############################################################################
|
||||
###if(${list.contains(${bullets}, "ffwEmergency")} )
|
||||
###set($ctaSelected = "YES")
|
||||
##...FLASH FLOOD EMERGENCY FOR !** LOCATION **!...
|
||||
##
|
||||
###end
|
||||
#if(${list.contains(${bullets}, "ffwEmergency")} )
|
||||
#set($ctaSelected = "YES")
|
||||
...FLASH FLOOD EMERGENCY FOR !** LOCATION **!...
|
||||
|
||||
#end
|
||||
#headlineext(${officeLoc}, ${backupSite}, ${extend})
|
||||
|
||||
#################################
|
||||
|
@ -76,7 +72,13 @@ FLASH FLOOD WARNING FOR...
|
|||
#if(${hycType} != "")
|
||||
<L> ${hycType}</L>
|
||||
#end
|
||||
###REMMED OUT FOR ALASKA
|
||||
#firstBullet(${areas})
|
||||
###UNCOMMENT NEXT LINE for AK - Temp fix until hydro shapefiles can be created
|
||||
###!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!
|
||||
###UNCOMMENT BELOW FOR A ZONE BASED PRODUCT USING COUNTY HEADLINES
|
||||
###firstBullet(${affectedCounties})
|
||||
############# GP end
|
||||
|
||||
#################################
|
||||
####### SECOND BULLET ###########
|
||||
|
@ -92,11 +94,15 @@ THIS IS A TEST MESSAGE. ##
|
|||
#################################
|
||||
######## THIRD BULLET ###########
|
||||
#################################
|
||||
#set($report = "HEAVY RAIN IS OCCURRING. !** ADD MORE DETAIL HERE **!")
|
||||
#set($s1 = "DOPPLER RADAR ")
|
||||
#set($s2 = "INDICATED ")
|
||||
#set($s3 = "HEAVY RAIN")
|
||||
#set($overPhrase = "OVER")
|
||||
#set($nearPhrase = "NEAR")
|
||||
#if(${list.contains(${bullets}, "flash")} )
|
||||
#set($isExpected = "FLASH FLOODING IS ALREADY OCCURRING.")
|
||||
#set($isExpected = "FLASH FLOODING IS ALREADY OCCURRING. ")
|
||||
#else
|
||||
#set($isExpected = "FLASH FLOODING IS EXPECTED TO BEGIN SHORTLY.")
|
||||
#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.")
|
||||
|
@ -112,97 +118,278 @@ THIS IS A TEST MESSAGE. ##
|
|||
#end
|
||||
#set($rainAmount = "")
|
||||
#if(${list.contains(${bullets}, "rain1")} )
|
||||
#set($rainAmount = "UP TO ONE INCH OF RAIN HAS ALREADY FALLEN.")
|
||||
#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.")
|
||||
#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.")
|
||||
#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 FALLEN.")
|
||||
#set($rainAmount = "!** RAINFALL AMOUNTS **! INCHES OF RAIN HAVE FALLEN. ")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "doppler")})
|
||||
#set($report = "DOPPLER RADAR INDICATED HEAVY RAIN ACROSS THE WARNED AREA.")
|
||||
#set($s1 = "DOPPLER RADAR ")
|
||||
#set($s2 = "INDICATED ")
|
||||
#set($s3 = "HEAVY RAIN")
|
||||
#set($nearPhrase = "NEAR")
|
||||
#set($overPhrase = "OVER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "DOPPLER RADAR INDICATED THUNDERSTORMS PRODUCING HEAVY RAIN ACROSS THE WARNED AREA.")
|
||||
#set($s1 = "DOPPLER RADAR ")
|
||||
#set($s2 = "INDICATED ")
|
||||
#if(${stormType} == "line")
|
||||
#set($s3 = "THUNDERSTORMS PRODUCING HEAVY RAIN")
|
||||
#else
|
||||
#set($s3 = "A THUNDERSTORM PRODUCING HEAVY RAIN")
|
||||
#end
|
||||
#set($nearPhrase = "NEAR")
|
||||
#set($overPhrase = "OVER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "dopplerGauge")})
|
||||
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED THAT HEAVY RAIN WAS FALLING OVER THE AREA.")
|
||||
#set($s1 = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES ")
|
||||
#set($s2 = "INDICATED ")
|
||||
#set($s3 = "HEAVY RAIN FALLING")
|
||||
#set($nearPhrase = "NEAR")
|
||||
#set($overPhrase = "OVER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES INDICATED THUNDERSTORMS PRODUCING HEAVY RAIN OVER THE AREA.")
|
||||
#set($s1 = "DOPPLER RADAR AND AUTOMATED RAIN GAUGES ")
|
||||
#set($s2 = "INDICATED ")
|
||||
#if(${stormType} == "line")
|
||||
#set($s3 = "THUNDERSTORMS PRODUCING HEAVY RAIN")
|
||||
#else
|
||||
#set($s3 = "A THUNDERSTORM PRODUCING HEAVY RAIN")
|
||||
#end
|
||||
#set($nearPhrase = "NEAR")
|
||||
#set($overPhrase = "OVER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "trainedSpotters")})
|
||||
#set($report = "TRAINED WEATHER SPOTTERS REPORTED HEAVY RAIN IN !** LOCATION **!.")
|
||||
#set($s1 = "TRAINED WEATHER SPOTTERS ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#set($s3 = "FLASH FLOODING")
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "TRAINED WEATHER SPOTTERS REPORTED THUNDERSTORMS PRODUCING HEAVY RAIN IN !** LOCATION **!.")
|
||||
#set($s1 = "TRAINED WEATHER SPOTTERS ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#if(${stormType} == "line")
|
||||
#set($s3 = "THUNDERSTORMS PRODUCING HEAVY RAIN")
|
||||
#else
|
||||
#set($s3 = "A THUNDERSTORM PRODUCING HEAVY RAIN")
|
||||
#end
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "flash")})
|
||||
#set($report = "TRAINED WEATHER SPOTTERS REPORTED FLASH FLOODING OCCURRING IN !** LOCATION **!.")
|
||||
#set($s1 = "TRAINED WEATHER SPOTTERS ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#set($s3 = "FLASH FLOODING")
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "plainRain")})
|
||||
#set($report = "TRAINED WEATHER SPOTTERS REPORTED HEAVY RAIN IN !** LOCATION **!.")
|
||||
#set($s1 = "TRAINED WEATHER SPOTTERS ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#set($s3 = "HEAVY RAIN")
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "public")})
|
||||
#set($report = "THE PUBLIC REPORTED HEAVY RAIN IN !** LOCATION **!")
|
||||
#set($s1 = "THE PUBLIC ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#set($s3 = "FLASH FLOODING")
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "THE PUBLIC REPORTED HEAVY RAIN FROM THUNDERSTORMS IN !** LOCATION **!.")
|
||||
#set($s1 = "THE PUBLIC ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#if(${stormType} == "line")
|
||||
#set($s3 = "THUNDERSTORMS PRODUCING HEAVY RAIN")
|
||||
#else
|
||||
#set($s3 = "A THUNDERSTORM PRODUCING HEAVY RAIN")
|
||||
#end
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "flash")})
|
||||
#set($report = "THE PUBLIC REPORTED FLASH FLOODING OCCURRING IN !** LOCATION **!.")
|
||||
#set($s1 = "THE PUBLIC ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#set($s3 = "FLASH FLOODING")
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "plainRain")})
|
||||
#set($report = "THE PUBLIC REPORTED HEAVY RAIN IN !** LOCATION **!.")
|
||||
#set($s1 = "THE PUBLIC ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#set($s3 = "HEAVY RAIN")
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "lawEnforcement")})
|
||||
#set($report = "LOCAL LAW ENFORCEMENT REPORTED HEAVY RAIN OVER !** LOCATION **!.")
|
||||
#set($s1 = "LOCAL LAW ENFORCEMENT ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#set($s3 = "HEAVY RAIN")
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "LOCAL LAW ENFORCEMENT REPORTED HEAVY RAIN DUE TO THUNDERSTORMS OVER !** LOCATION **!.")
|
||||
#set($s1 = "LOCAL LAW ENFORCEMENT ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#if(${stormType} == "line")
|
||||
#set($s3 = "THUNDERSTORMS PRODUCING HEAVY RAIN")
|
||||
#else
|
||||
#set($s3 = "A THUNDERSTORM PRODUCING HEAVY RAIN")
|
||||
#end
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "flash")})
|
||||
#set($report = "LOCAL LAW ENFORCEMENT REPORTED FLASH FLOODING IS OCCURRING IN !** LOCATION **!.")
|
||||
#set($s1 = "LOCAL LAW ENFORCEMENT ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#set($s3 = "FLASH FLOODING")
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "plainRain")})
|
||||
#set($report = "LOCAL LAW ENFORCEMENT REPORTED HEAVY RAIN IN !** LOCATION **!.")
|
||||
#set($s1 = "LOCAL LAW ENFORCEMENT ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#set($s3 = "HEAVY RAIN")
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "emergencyManagement")})
|
||||
#set($report = "EMERGENCY MANAGEMENT REPORTED HEAVY RAIN OVER !** LOCATION **! ")
|
||||
#set($s1 = "EMERGENCY MANAGEMENT ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#set($s3 = "HEAVY RAIN")
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "EMERGENCY MANAGEMENT REPORTED HEAVY RAIN DUE TO THUNDERSTORMS OVER !** LOCATION **!.")
|
||||
#set($s1 = "EMERGENCY MANAGEMENT ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#if(${stormType} == "line")
|
||||
#set($s3 = "THUNDERSTORMS PRODUCING HEAVY RAIN")
|
||||
#else
|
||||
#set($s3 = "A THUNDERSTORM PRODUCING HEAVY RAIN")
|
||||
#end
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "flash")})
|
||||
#set($report = "EMERGENCY MANAGEMENT REPORTED FLASH FLOODING IN !** LOCATION **!.")
|
||||
#set($s1 = "EMERGENCY MANAGEMENT ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#set($s3 = "FLASH FLOODING")
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "plainRain")})
|
||||
#set($report = "EMERGENCY MANAGEMENT REPORTED HEAVY RAIN IN !** LOCATION **!.")
|
||||
#set($s1 = "EMERGENCY MANAGEMENT ")
|
||||
#set($s2 = "REPORTED ")
|
||||
#set($s3 = "HEAVY RAIN")
|
||||
#set($nearPhrase = "IN")
|
||||
#set($overPhrase = "IN")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "satellite")})
|
||||
#set($report = "SATELLITE ESTIMATES INDICATED HEAVY RAIN.")
|
||||
#set($s1 = "SATELLITE ESTIMATES ")
|
||||
#set($s2 = "INDICATED ")
|
||||
#set($s3 = "HEAVY RAIN")
|
||||
#set($nearPhrase = "NEAR")
|
||||
#set($overPhrase = "OVER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "satellite")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "SATELLITE ESTIMATES INDICATED THUNDERSTORMS PRODUCING HEAVY RAIN OVER THE WARNED AREA.")
|
||||
#set($s1 = "SATELLITE ESTIMATES ")
|
||||
#set($s2 = "INDICATED ")
|
||||
#if(${stormType} == "line")
|
||||
#set($s3 = "THUNDERSTORMS PRODUCING HEAVY RAIN")
|
||||
#else
|
||||
#set($s3 = "A THUNDERSTORM PRODUCING HEAVY RAIN")
|
||||
#end
|
||||
#set($nearPhrase = "NEAR")
|
||||
#set($overPhrase = "OVER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "satelliteGauge")})
|
||||
#set($report = "SATELLITE ESTIMATES AND AUTOMATED RAIN GAUGES INDICATED THAT HEAVY RAIN WAS FALLING OVER THE WARNED AREA.")
|
||||
#set($s1 = "SATELLITE ESTIMATES AND RAIN GAUGES ")
|
||||
#set($s2 = "INDICATED ")
|
||||
#set($s3 = "HEAVY RAIN FALLING")
|
||||
#set($nearPhrase = "NEAR")
|
||||
#set($overPhrase = "OVER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "satelliteGauge")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "SATELLITE ESTIMATES AND AUTOMATED RAIN GAUGES INDICATED THUNDERSTORMS WERE PRODUCING HEAVY RAIN OVER THE WARNED AREA.")
|
||||
#set($s1 = "SATELLITE ESTIMATES AND RAIN GAUGES ")
|
||||
#set($s2 = "INDICATED ")
|
||||
#if(${stormType} == "line")
|
||||
#set($s3 = "THUNDERSTORMS PRODUCING HEAVY RAIN")
|
||||
#else
|
||||
#set($s3 = "A THUNDERSTORM PRODUCING HEAVY RAIN")
|
||||
#end
|
||||
#set($nearPhrase = "NEAR")
|
||||
#set($overPhrase = "OVER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "onlyGauge")})
|
||||
#set($s1 = "GAUGE REPORTS ")
|
||||
#set($s2 = "INDICATED ")
|
||||
#set($s3 = "HEAVY RAIN FALLING")
|
||||
#set($nearPhrase = "NEAR")
|
||||
#set($overPhrase = "OVER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "onlyGauge")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($s1 = "GAUGE REPORTS ")
|
||||
#set($s2 = "INDICATED ")
|
||||
#if(${stormType} == "line")
|
||||
#set($s3 = "THUNDERSTORMS PRODUCING HEAVY RAIN")
|
||||
#else
|
||||
#set($s3 = "A THUNDERSTORM PRODUCING HEAVY RAIN")
|
||||
#end
|
||||
#set($nearPhrase = "NEAR")
|
||||
#set($overPhrase = "OVER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "onlyGauge")} && ${list.contains(${bullets}, "plain rain")})
|
||||
#set($s1 = "GAUGE REPORTS ")
|
||||
#set($s2 = "INDICATED ")
|
||||
#set($nearPhrase = "NEAR")
|
||||
#set($overPhrase = "OVER")
|
||||
#end
|
||||
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...${report} ${rainAmount} ${isExpected} ${snowMelt}
|
||||
|
||||
#wrapText(${burnScar} 2 2)
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${s1}${s2}${s3} ##
|
||||
############# IF TRACK IS ENABLED AND stormPosition SELECTED ###############################################
|
||||
#if(${list.contains(${bullets},"stormPosition")})
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase}, 6, ${overPhrase}, 2, "MILES", false)
|
||||
. ##
|
||||
#if(${list.contains(${bullets}, "flash")})
|
||||
#set($skip = "")
|
||||
#else
|
||||
#if(${movementSpeed} < 3 || ${stationary})
|
||||
#if(${list.contains(${bullets}, "thunder")})
|
||||
THE STORM IS NEARLY STATIONARY. ##
|
||||
#else
|
||||
THE RAIN WILL CONTINUE. ##
|
||||
#end
|
||||
#else
|
||||
#if(${stormType} == "line")
|
||||
#if(${list.contains(${bullets}, "thunder")})
|
||||
THE STORMS ARE MOVING ##
|
||||
#else
|
||||
THE STORM IS MOVING ##
|
||||
#end
|
||||
#else
|
||||
THE RAIN IS MOVING ##
|
||||
#end
|
||||
#direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH. ##
|
||||
#end
|
||||
#end
|
||||
#else
|
||||
!** LOCATION **! ##
|
||||
#end
|
||||
${rainAmount}${isExpected}${snowMelt}${burnScar}
|
||||
|
||||
##########################################################################
|
||||
## Flash Flood Emergency per NWS 10-922 Directive goes with third bullet #
|
||||
|
@ -216,10 +403,23 @@ THIS IS A TEST MESSAGE. ##
|
|||
#############################################################
|
||||
######## FOURTH BULLET (OPTIONAL IN FLOOD PRODUCTS) #########
|
||||
#############################################################
|
||||
############# IF TRACK IS ENABLED AND trackStorm AND stormPosition BOTH SELECTED ###############################################
|
||||
#if(${list.contains(${bullets},"pathcast")})
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
#if($movementSpeed < 3 )
|
||||
#pathCast("HEAVY RAIN WILL CONTINUE OVER THE FOLLOWING LOCATIONS..." "HEAVY RAIN" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#else
|
||||
#pathCast("HEAVY RAIN WILL MOVE OVER THE FOLLOWING LOCATIONS..." "HEAVY RAIN" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#end
|
||||
#end
|
||||
################
|
||||
#if(${list.contains(${bullets}, "listofcities")})
|
||||
#set($phenomena = "FLASH FLOOD")
|
||||
#set($floodType = "FLASH FLOODING")
|
||||
#set($warningType = "WARNING")
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
|
@ -249,8 +449,9 @@ FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**loc
|
|||
|
||||
#end
|
||||
|
||||
## parse file command here is to pull in mile marker info
|
||||
## parse file command here is to pull in mile marker and/or point marker info
|
||||
## #parse("mileMarkers.vm")
|
||||
## #parse("pointMarkers.vm")
|
||||
|
||||
#################################### END OF ADDITIONAL STUFF ###################################
|
||||
######################################
|
||||
|
@ -359,13 +560,18 @@ PLEASE REPORT FLOODING TO YOUR LOCAL LAW ENFORCEMENT AGENCY WHEN YOU CAN DO SO S
|
|||
##########################################
|
||||
########BOTTOM OF THE PRODUCT#############
|
||||
##########################################
|
||||
########################
|
||||
## LAT/LON, TML, SIGN ##
|
||||
########################
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
|
||||
|
||||
#end
|
||||
#set($COORDS = "#printcoords(${areaPoly}, ${list})")
|
||||
${COORDS}
|
||||
|
||||
#printcoords(${areaPoly}, ${list})
|
||||
|
||||
|
||||
$$
|
||||
|
||||
#parse("forecasterName.vm")
|
||||
|
||||
#parse("forecasterName.vm")
|
|
@ -1,18 +1,30 @@
|
|||
<!-- Flash Flood Warning configuration for County-based products-->
|
||||
<!-- 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-25-2012 at CRH TIM
|
||||
Modified by Mike Dangelo 02-23-2012
|
||||
<!-- RECENT HISTORY
|
||||
Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
|
||||
Evan Bookbinder 09-12-2012 Added new areaSource objects
|
||||
Evan Bookbinder 01-07-2013 LockedGroupsOnFollowup tag
|
||||
Phil Kurimski 02-05-2013 revised CTA selections
|
||||
Mike Dangelo 09-18-2013 to optionally allow <trackEnabled>=true for pathcasting, and add pointMarker.xml 'include'
|
||||
Mike Dangelo 09-19-2013 more flexibility on third bullet and fourth bullet wording
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
Gene Petrescu 09-20-2013 added gauge only option for event
|
||||
-->
|
||||
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -47,6 +59,11 @@
|
|||
<!-- Enable/disables the system to lock text based on various patterns -->
|
||||
<autoLockText>true</autoLockText>
|
||||
|
||||
<!-- if trackEnabled is set to 'true' = makes third bullet initial position and movement
|
||||
as well as fourth bullet pathcast (which are optional info) available to forecaster.
|
||||
Must be paired with proper vm code (also commented out in flashFloodWarning.vm)! -->
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- 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/>. -->
|
||||
|
@ -58,13 +75,20 @@
|
|||
<!-- 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>150</duration>
|
||||
<duration>180</duration>
|
||||
<duration>210</duration>
|
||||
<duration>240</duration>
|
||||
<duration>270</duration>
|
||||
<duration>300</duration>
|
||||
<duration>330</duration>
|
||||
<duration>360</duration>
|
||||
<duration>390</duration>
|
||||
<duration>420</duration>
|
||||
<duration>450</duration>
|
||||
<duration>480</duration>
|
||||
</durations>
|
||||
|
||||
|
@ -78,17 +102,18 @@
|
|||
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" bulletDefault="true" parseString="DOPPLER RADAR INDICATED"/>
|
||||
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="DOPPLER RADAR AND AUTOMATED RAIN GAUGES"/>
|
||||
<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="public" bulletText="Public reported" bulletGroup="source" parseString="PUBLIC REPORTED"/>
|
||||
<bullet bulletName="lawEnforcement" bulletText="Local law enforcement reported" bulletGroup="source" parseString="LAW ENFORCEMENT REPORTED"/>
|
||||
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
|
||||
<!-- The following bullets will add satellite and gauges as a source. If you would like to use this
|
||||
in your template uncomment 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="onlyGauge" bulletText="gauge reports" bulletGroup="source" parseString="GAUGE REPORTS "/>
|
||||
<bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES INDICATED"/>
|
||||
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE ESTIMATES AND RAIN"/>
|
||||
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
|
||||
<bullet bulletName="thunder" bulletText="Thunderstorm(s)" bulletGroup="event" bulletDefault="true" parseString="THUNDERSTORM"/>
|
||||
<bullet bulletName="plainRain" bulletText="Due to only heavy rain" bulletGroup="event" parseString=""HEAVY RAIN","-THUNDERSTORM""/>
|
||||
<bullet bulletName="flash" bulletText="Flash flooding occurring" bulletGroup="event" parseString="FLASH FLOODING IS ALREADY OCCURRING."/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* USE DOT to specify initial position *" parseString="MOVING"/>
|
||||
-->
|
||||
<bullet bulletText="*********** (OPTIONAL) DEBRIS FLOW INFO **********" bulletType="title"/>
|
||||
<bullet bulletName="burnScar" bulletText="Burn scar area with debris flow" bulletGroup="addevent" parseString="BURN SCAR"/>
|
||||
<bullet bulletName="mudSlide" bulletText="Mud Slides" bulletGroup="addevent" parseString="MUD SLIDE"/>
|
||||
|
@ -98,7 +123,9 @@
|
|||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL INFO ***********" bulletType="title"/>
|
||||
<bullet bulletName="listofcities" bulletDefault="true" bulletText="Select for a list of cities" bulletGroup="pcast"/>
|
||||
<bullet bulletName="listofcities" bulletDefault="true" bulletText="Select for a list of cities" bulletGroup="pcast" parseSting=""LOCATIONS","INCLUDE...""/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="Generate Pathcast " bulletGroup="pcast" parseString="THE FOLLOWING LOCATIONS..."/>
|
||||
-->
|
||||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
|
||||
<bullet bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
|
@ -113,7 +140,7 @@
|
|||
<bullet bulletName="stayAwayCTA" bulletText="Stay away or be swept away" parseString="STAY AWAY OR BE SWEPT AWAY"/>
|
||||
<bullet bulletName="arroyosCTA" bulletText="Arroyos..." parseString="ARROYOS...STREAMS AND RIVERS CAN BECOME RAGING KILLER CURRENTS"/>
|
||||
<bullet bulletName="burnAreasCTA" bulletText="Burn Areas..." parseString="MOVE AWAY FROM RECENTLY BURNED AREAS"/>
|
||||
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="PLEASE REPORT TO YOUR LOCAL LAW ENFORCEMENT AGENCY WHEN YOU CAN"/>
|
||||
<bullet bulletName="reportFloodingCTA" bulletText="Report flooding to local law enforcement" parseString="PLEASE REPORT FLOODING"/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
<bulletActionGroup action="EXT" phen="FF" sig="W">
|
||||
|
@ -127,14 +154,16 @@
|
|||
<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"/>
|
||||
<!-- The following bullets will add satellite and gauges as a source. If you would like to use this
|
||||
in your template uncomment 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="onlyGauge" bulletText="gauge reports" bulletGroup="source" parseString="GAUGE REPORTS "/>
|
||||
<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 bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
|
||||
<bullet bulletName="thunder" bulletText="Thunderstorm(s)" bulletGroup="event" bulletDefault="true" parseString="THUNDERSTORM"/>
|
||||
<bullet bulletName="plainRain" bulletText="Due to only heavy rain" bulletGroup="event" parseString=""HEAVY RAIN","-THUNDERSTORM""/>
|
||||
<bullet bulletName="flash" bulletText="Flash flooding occurring" bulletGroup="event" parseString="FLASH FLOODING IS ALREADY OCCURRING."/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* USE DOT to specify initial position *" showString="STATIONARY" parseString="STATIONARY"/>
|
||||
<bullet bulletName="stormPosition" bulletText="* USE DOT to specify initial position *" showString="MOVING" parseString="MOVING"/>
|
||||
-->
|
||||
<bullet bulletText="*********** (OPTIONAL) DEBRIS FLOW INFO **********" bulletType="title"/>
|
||||
<bullet bulletName="burnScar" bulletText="Burn scar area with debris flow" bulletGroup="addevent" parseString="BURN SCAR"/>
|
||||
<bullet bulletName="mudSlide" bulletText="Mud Slides" bulletGroup="addevent" parseString="MUD SLIDE"/>
|
||||
|
@ -144,15 +173,14 @@
|
|||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="* Use storm track for pathcast (for thunderstorms) *" bulletGroup="pcast" parseString="OVER THE FOLLOWING LOCATIONS..."/>
|
||||
-->
|
||||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
|
||||
<bullet bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<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="ffwEmergencyCTA" bulletText="**FLASH FLOOD EMERGENCY CTA**" parseString="FLASH FLOOD EMERGENCY"/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly..." bulletDefault="true" parseString="HIGHER GROUND NOW. ACT QUICKLY TO PROTECT YOUR LIFE."/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety..." parseString="KEEP CHILDREN AWAY FROM STORM DRAINS"/>
|
||||
|
@ -173,17 +201,19 @@
|
|||
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" bulletDefault="true" parseString="DOPPLER RADAR INDICATED"/>
|
||||
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="DOPPLER RADAR AND AUTOMATED RAIN GAUGES"/>
|
||||
<bullet bulletName="trainedSpotters" bulletText="Trained spotters reported" bulletGroup="source" parseString="TRAINED WEATHER SPOTTERS REPORTED"/>
|
||||
<bullet bulletName="public" bulletText="Public reported" bulletGroup="source" parseString="PUBLIC"/>
|
||||
<bullet bulletName="lawEnforcement" bulletText="Local law enforcement reported" bulletGroup="source" parseString="LOCAL LAW ENFORCEMENT REPORTED"/>
|
||||
<bullet bulletName="public" bulletText="Public reported" bulletGroup="source" parseString="PUBLIC REPORTED"/>
|
||||
<bullet bulletName="lawEnforcement" bulletText="Local law enforcement reported" bulletGroup="source" parseString="LAW ENFORCEMENT REPORTED"/>
|
||||
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
|
||||
<!-- The following bullets will add satellite and gauges as a source. If you would like to use this
|
||||
in your template uncomment 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="onlyGauge" bulletText="gauge reports" bulletGroup="source" parseString="GAUGE REPORTS "/>
|
||||
<bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES INDICATED"/>
|
||||
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE ESTIMATES AND RAIN"/>
|
||||
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
|
||||
<bullet bulletName="thunder" bulletText="Thunderstorm(s)" bulletGroup="event" bulletDefault="true" parseString="THUNDERSTORM"/>
|
||||
<bullet bulletName="plainRain" bulletText="Due to only heavy rain" bulletGroup="event" parseString=""HEAVY RAIN","-THUNDERSTORM""/>
|
||||
<bullet bulletName="flash" bulletText="Flash flooding occurring" bulletGroup="event" parseString="FLASH FLOODING IS ALREADY OCCURRING."/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* USE DOT to specify initial position *" showString="STATIONARY" parseString="STATIONARY"/>
|
||||
<bullet bulletName="stormPosition" bulletText="* USE DOT to specify initial position *" showString="MOVING" parseString="MOVING"/>
|
||||
-->
|
||||
<bullet bulletText="*********** (OPTIONAL) DEBRIS FLOW INFO **********" bulletType="title"/>
|
||||
<bullet bulletName="burnScar" bulletText="Burn scar area with debris flow" bulletGroup="addevent" parseString="BURN SCAR"/>
|
||||
<bullet bulletName="mudSlide" bulletText="Mud Slides" bulletGroup="addevent" parseString="MUD SLIDE"/>
|
||||
|
@ -193,10 +223,10 @@
|
|||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE..."" showString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="Generate Pathcast" bulletGroup="pcast" parseString="THE FOLLOWING LOCATIONS..."/>
|
||||
-->
|
||||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
|
||||
<bullet bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
|
@ -216,118 +246,6 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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 in 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,7" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
</pathcastConfig>
|
||||
|
||||
<pointSource variable="cityList">
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<pointField>NAME</pointField>
|
||||
<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 in this template -->
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>50</maxResults>
|
||||
<distanceThreshold>10</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"/>
|
||||
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<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>
|
||||
|
|
|
@ -11,7 +11,11 @@
|
|||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}
|
||||
## Phil Kurimski 2-08-2013 revised CTA statements
|
||||
## Evan Bookbinder 3-1-2013 missing $$ for Partial Cancellation
|
||||
## Mike Dangelo 09-18-2013 added code for init pos & pathcasting, and added pointMarkers parse line
|
||||
## Mike Dangelo 09-19-2013 implemented config.vm
|
||||
## Gene Petrescu 09-20-2013 added AK modifications (GP comments)
|
||||
#################################### SET SOME VARs ###################################
|
||||
#parse("config.vm")
|
||||
#set($hycType = "")
|
||||
#set($snowMelt = "")
|
||||
#set($floodReason = "")
|
||||
|
@ -53,7 +57,11 @@ ${ugclinecan}
|
|||
/${productClass}.CAN.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
#elseif(${CORCAN}=="true")
|
||||
${ugclinecan}
|
||||
|
@ -61,7 +69,11 @@ ${ugclinecan}
|
|||
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
#else
|
||||
${ugcline}
|
||||
|
@ -69,7 +81,11 @@ ${ugcline}
|
|||
/${productClass}.${action}.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
#end
|
||||
|
||||
|
@ -104,14 +120,24 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#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) ${expcanHLTag}...
|
||||
###REPLACE headlineLocList ABOVE WITH THE FOLLOWING FOR ZONE BASED PRODUCT W/ COUNTY HEADLINE
|
||||
###headlineLocList(${affectedCounties} true true true false) ${expcanHLTag}...
|
||||
###UNCOMMENT LINE BELOW FOR AK - Temp fix until hydro shapefiles can be created
|
||||
###!**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) ${expcanHLTag}...
|
||||
###REPLACE headlineLocList ABOVE WITH THE FOLLOWING FOR ZONE BASED PRODUCT W/ COUNTY HEADLINE
|
||||
###headlineLocList(${cancelaffectedCounties} true true true false) ${expcanHLTag}...
|
||||
###UNCOMMENT LINE BELOW FOR AK - Temp fix until hydro shapefiles can be created
|
||||
###!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**! ${expcanHLTag}...
|
||||
#end
|
||||
############################
|
||||
## END CAN/EXP HEADLINE ####
|
||||
|
@ -140,7 +166,11 @@ ${ugcline}
|
|||
/${productClass}.CON.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -156,7 +186,11 @@ ${ugcline}
|
|||
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
/00000.0.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -173,21 +207,26 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE.##
|
||||
#end
|
||||
...THE FLASH FLOOD WARNING ##
|
||||
#if(${hycType} != "")
|
||||
FOR <L>${hycType}</L> ##
|
||||
#end
|
||||
REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
|
||||
#headlineLocList(${areas} true true true false)...
|
||||
###############################################################################
|
||||
## Flash Flood Emergency per NWS 10-922 Directive goes after initial headline #
|
||||
###############################################################################
|
||||
###################################
|
||||
## Flash Flood Emergency Headline #
|
||||
###################################
|
||||
#if(${list.contains(${bullets}, "ffwEmergency")})
|
||||
#set($ctaSelected = "YES")
|
||||
|
||||
...THIS IS A FLASH FLOOD EMERGENCY FOR !**ENTER LOCATION**!...
|
||||
|
||||
#end
|
||||
...THE 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(${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)...
|
||||
###UNCOMMENT LINE BELOW for AK - Temp fix until hydro shapefiles can be created
|
||||
###!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
|
||||
|
||||
################################################
|
||||
#################################
|
||||
|
@ -297,19 +336,76 @@ REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimez
|
|||
#if(${list.contains(${bullets}, "satelliteGauge")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "SATELLITE ESTIMATES AND AUTOMATED RAIN GAUGES INDICATED THAT THUNDERSTORMS WERE PRODUCING HEAVY RAIN OVER THE WARNED AREA.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "onlyGauge")})
|
||||
#set($report = "GAUGE REPORTS INDICATED THAT HEAVY RAIN WAS FALLING OVER THE WARNED AREA.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "onlyGauge")} && ${list.contains(${bullets}, "thunder")})
|
||||
#set($report = "GAUGE REPORTS INDICATED THUNDERSTORMS WERE PRODUCING HEAVY RAIN OVER THE WARNED AREA.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "onlyGauge")} && ${list.contains(${bullets}, "plainRain")})
|
||||
#set($report = "GAUGE REPORTS INDICATED HEAVY RAIN WAS FALLING OVER THE WARNED AREA.")
|
||||
#end
|
||||
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
############## IF TRACK IS ENABLED AND stormPosition SELECTED ###############################################
|
||||
#if(${list.contains(${bullets},"stormPosition")})
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report} ${rainAmount} ${isExpected} ${snowMelt}
|
||||
#if(${stormType} == "line")
|
||||
...A LINE OF THUNDERSTORMS PRODUCING HEAVY RAIN WAS LOCATED ##
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
...A THUNDERSTORM PRODUCING HEAVY RAIN WAS LOCATED ##
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
...AND IS STATIONARY. ##
|
||||
#else
|
||||
#if(${stormType} == "line")
|
||||
...AND MOVING ##
|
||||
#else
|
||||
...MOVING ##
|
||||
#end
|
||||
#direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH. ##
|
||||
#end
|
||||
${rainAmount} ${isExpected} ${snowMelt}
|
||||
#else
|
||||
###############IF TRACK IS NOT ENABLED OR stormPosition IS NOT SELECTED #######################################
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...${report} ${rainAmount} ${isExpected} ${snowMelt}
|
||||
#end
|
||||
|
||||
##########################
|
||||
## Flash Flood Emergency #
|
||||
##########################
|
||||
#if(${list.contains(${bullets}, "ffwEmergency")} )
|
||||
#set($ctaSelected = "YES")
|
||||
THIS IS A FLASH FLOOD EMERGENCY FOR !** LOCATION **!. SEEK HIGHER GROUND NOW!
|
||||
#end
|
||||
|
||||
${burnScar}
|
||||
|
||||
############################################
|
||||
######## (CITY LIST) #########
|
||||
############################################
|
||||
######################################################
|
||||
######## OPTIONAL LOCATIONS/CITY LIST INFO ##########
|
||||
######################################################
|
||||
############# IF TRACK IS ENABLED AND trackStorm AND stormPosition BOTH SELECTED ###############################################
|
||||
#if(${list.contains(${bullets},"pathcast")} && ${list.contains(${bullets}, "stormPosition")})
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
#if($movementSpeed < 3 )
|
||||
#pathCast("HEAVY RAIN WILL CONTINUE OVER THE FOLLOWING LOCATIONS..." "HEAVY RAIN" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#else
|
||||
#pathCast("HEAVY RAIN WILL MOVE OVER THE FOLLOWING LOCATIONS..." "HEAVY RAIN" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
|
||||
|
||||
#end
|
||||
#end
|
||||
################
|
||||
#if(${list.contains(${bullets}, "listofcities")})
|
||||
###set($phenomena = "FLASH FLOOD")
|
||||
#set($floodType = "FLASH FLOODING")
|
||||
###set($warningType = "WARNING")
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
|
@ -323,7 +419,7 @@ THIS IS A TEST MESSAGE. ##
|
|||
########### KEEP TWO BLANK LINES BELOW
|
||||
|
||||
|
||||
########################################## END OF OPTIONAL FOURTH BULLET ##############################
|
||||
########################################## END OF OPTIONAL LOCATIONS LISTS ##############################
|
||||
######################################
|
||||
###### WHERE ADDITIONAL INFO GOES ####
|
||||
######################################
|
||||
|
@ -342,6 +438,8 @@ FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**loc
|
|||
|
||||
## parse file command here is to pull in mile marker info
|
||||
## #parse("mileMarkers.vm")
|
||||
## Uncomment below pull in point marker info
|
||||
## #parse("pointMarkers.vm")
|
||||
|
||||
#################################### END OF ADDITIONAL STUFF ###################################
|
||||
######################################
|
||||
|
@ -447,16 +545,16 @@ PLEASE REPORT FLOODING TO YOUR LOCAL LAW ENFORCEMENT AGENCY WHEN YOU CAN DO SO S
|
|||
|
||||
#end
|
||||
#################################### END OF CTA STUFF ###################################
|
||||
|
||||
##########################################
|
||||
########BOTTOM OF THE PRODUCT#############
|
||||
##########################################
|
||||
########################
|
||||
## LAT/LON, TML, SIGN ##
|
||||
########################
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
|
||||
|
||||
#end
|
||||
#set($COORDS = "#printcoords(${areaPoly}, ${list})")
|
||||
${COORDS}
|
||||
|
||||
#printcoords(${areaPoly}, ${list})
|
||||
|
||||
|
||||
$$
|
||||
#end
|
||||
|
|
|
@ -1,19 +1,30 @@
|
|||
<!-- Flash Flood Statement County-based configuration -->
|
||||
<!-- Created by Mike Dangelo 09-19-2011 at Alaska TIM
|
||||
Modified by Phil Kurimski 09-23-2011 for burn scars and mud slides
|
||||
Modified by EVAN BOOKBINDER WFO EAX 11-4-2011 removed bulletDefaults that prevented auto selection
|
||||
Modified by Mike Dangelo 01-25-2012 at CRH TIM
|
||||
Modified by Mike Dangelo 02-23-2012
|
||||
Modified by Phil Kurimski 03-02-2012 OB12.2.1-4
|
||||
Modified by Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
|
||||
<!-- RECENT HISTORY:
|
||||
Modified by Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Added new areaSource object
|
||||
Modified by Evan Bookbinder 01-07-2013 LockedGroupsOnFollowup tag
|
||||
Modified by Phil Kurimski 02-05-2013 revised CTA selections
|
||||
Modified by Mike Dangelo 09-18-2013 to optionally allow <trackEnabled>=true for pathcasting, and add pointMarker.xml 'include'
|
||||
Modified by Mike Dangelo 09-19-2013 added some point source var's for trackable storms - set trackEnabled to true to activate
|
||||
Modified by Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
Modified by Gene Petrescu 09-20-2013 added Alaska Modifications (G
|
||||
-->
|
||||
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -49,6 +60,11 @@
|
|||
<!-- Enable/disables the system to lock text based on various patterns -->
|
||||
<autoLockText>true</autoLockText>
|
||||
|
||||
<!-- if trackEnabled is set to 'true' = makes third bullet initial position and movement
|
||||
as well as fourth bullet pathcast (which are optional info) available to forecaster.
|
||||
Must be paired with proper vm code (also commented out in flashFloodWarningFollowup.vm)! -->
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- durations: the list of possible durations of the warning -->
|
||||
<!-- THE DURATIONS REALLY SERVE NO PURPOSE IN A FOLLOWUP BUT WILL CRASH WARNGEN IF REMVOED -->
|
||||
<defaultDuration>30</defaultDuration>
|
||||
|
@ -83,17 +99,19 @@
|
|||
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="source" parseString="DOPPLER RADAR INDICATED"/>
|
||||
<bullet bulletName="dopplerGauge" bulletText="Doppler radar and automated gauges" bulletGroup="source" parseString="DOPPLER RADAR AND AUTOMATED RAIN GAUGES"/>
|
||||
<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="public" bulletText="Public reported" bulletGroup="source" parseString="PUBLIC REPORTED"/>
|
||||
<bullet bulletName="lawEnforcement" bulletText="Local law enforcement reported" bulletGroup="source" parseString="LAW ENFORCEMENT REPORTED"/>
|
||||
<bullet bulletName="emergencyManagement" bulletText="Emergency management reported" bulletGroup="source" parseString="EMERGENCY MANAGEMENT REPORTED"/>
|
||||
<!-- The following bullets will add satellite and gauges as a source. If you would like to use this
|
||||
in your template uncomment 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="onlyGauge" bulletText="gauge reports" bulletGroup="source" parseString="GAUGE REPORTS "/>
|
||||
<bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES INDICATED"/>
|
||||
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE ESTIMATES AND RAIN"/>
|
||||
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
|
||||
<bullet bulletName="thunder" bulletText="Thunderstorm(s)" bulletGroup="event" parseString="THUNDERSTORM"/>
|
||||
<bullet bulletName="plainRain" bulletText="Due to only heavy rain" bulletGroup="event" parseString=""HEAVY RAIN","-THUNDERSTORM""/>
|
||||
<bullet bulletName="flash" bulletText="Flash flooding occurring" bulletGroup="event" parseString="FLASH FLOODING IS ALREADY OCCURRING."/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* USE DOT to specify initial position *" showString="STATIONARY" parseString="STATIONARY"/>
|
||||
<bullet bulletName="stormPosition" bulletText="* USE DOT to specify initial position *" showString="MOVING" parseString="MOVING"/>
|
||||
-->
|
||||
<bullet bulletText="*********** (OPTIONAL) DEBRIS FLOW INFO **********" bulletType="title"/>
|
||||
<bullet bulletName="burnScar" bulletText="Burn scar area with debris flow" bulletGroup="addevent" parseString="BURN SCAR"/>
|
||||
<bullet bulletName="mudSlide" bulletText="Mud Slides" bulletGroup="addevent" parseString="MUD SLIDE"/>
|
||||
|
@ -103,10 +121,10 @@
|
|||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="Generate Pathcast " bulletGroup="pcast" parseString="THE FOLLOWING LOCATIONS..."/>
|
||||
-->
|
||||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
|
||||
<bullet bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
|
@ -136,14 +154,16 @@
|
|||
<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"/>
|
||||
<!-- The following bullets will add satellite and gauges as a source. If you would like to use this
|
||||
in your template uncomment 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="onlyGauge" bulletText="gauge reports" bulletGroup="source" parseString="GAUGE REPORTS "/>
|
||||
<bullet bulletName="satellite" bulletText="satellite estimates" bulletGroup="source" parseString="SATELLITE ESTIMATES INDICATED"/>
|
||||
<bullet bulletName="satelliteGauge" bulletText="satellite estimates and automated gauges" bulletGroup="source" parseString="SATELLITE AND RAIN"/>
|
||||
<bullet bulletText="*********** EVENT (CHOOSE 1) **********" bulletType="title"/>
|
||||
<bullet bulletName="thunder" bulletText="Thunderstorm(s)" bulletGroup="event" parseString="THUNDERSTORM"/>
|
||||
<bullet bulletName="plainRain" bulletText="Due to only heavy rain" bulletGroup="event" parseString=""HEAVY RAIN","-THUNDERSTORM""/>
|
||||
<bullet bulletName="flash" bulletText="Flash flooding occurring" bulletGroup="event" parseString="FLASH FLOODING IS ALREADY OCCURRING."/>
|
||||
<!-- <bullet bulletName="stormPosition" bulletText="* USE DOT to specify initial position *" showString="STATIONARY" parseString="STATIONARY"/>
|
||||
<bullet bulletName="stormPosition" bulletText="* USE DOT to specify initial position *" showString="MOVING" parseString="MOVING"/>
|
||||
-->
|
||||
<bullet bulletText="*********** (OPTIONAL) DEBRIS FLOW INFO **********" bulletType="title"/>
|
||||
<bullet bulletName="burnScar" bulletText="Burn scar area with debris flow" bulletGroup="addevent" parseString="BURN SCAR"/>
|
||||
<bullet bulletName="mudSlide" bulletText="Mud Slides" bulletGroup="addevent" parseString="MUD SLIDE"/>
|
||||
|
@ -153,10 +173,10 @@
|
|||
<bullet bulletName="rain3" bulletText="Three inches so far" bulletGroup="rainAmt" parseString="THREE INCHES OF RAIN HAVE ALREADY FALLEN"/>
|
||||
<bullet bulletName="rainEdit" bulletText="User defined amount" bulletGroup="rainAmt" parseString="INCHES OF RAIN HAVE FALLEN"/>
|
||||
<bullet bulletText="*********** ADDITIONAL 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=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<!-- <bullet bulletName="pathcast" bulletText="Generate Pathcast " bulletGroup="pcast" parseString="THE FOLLOWING LOCATIONS..."/>
|
||||
-->
|
||||
<bullet bulletName="addRainfall" bulletText="Additional rainfall of XX inches expected" parseString="ADDITIONAL RAINFALL"/>
|
||||
<bullet bulletName="particularStream" bulletText="Flooding is occurring in a particular stream/river" parseString="FLOOD WATERS ARE MOVING DOWN"/>
|
||||
<bullet bulletName="drainages" bulletText="Automated list of drainages" parseString="THIS INCLUDES THE FOLLOWING STREAMS AND DRAINAGES" loadMap="River Drainage Basins"/>
|
||||
|
@ -176,118 +196,6 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
##$user IS A GLOBAL VARIABLE CONTAINING THE WORKSTATION'S LOGIN USERNAME
|
||||
#if(${user}=="yourawipslogin")
|
||||
YOURNAME
|
||||
#if(${user}=="ebookbin")
|
||||
TEST
|
||||
#elseif(${user}=="hisawipslogin")
|
||||
SOMEONEELSESNAME
|
||||
#else
|
||||
!**NAME/INITIALS**!
|
||||
#end
|
||||
#end
|
||||
|
|
|
@ -0,0 +1,202 @@
|
|||
<!-- CREATED 9-16-2013 EVAN BOOKBINDER WFO EAX
|
||||
THIS DOCUMENT CONTAINS GLOBAL SPATIAL CONFIGURATION SETTINGS FOR **COUNTY**
|
||||
BASED PRODUCTS. INCLUDE THIS FILE INTO EACH ZONE TEMPLATE'S .XML FILE.
|
||||
THIS REPLACES THE PER-TEMPLATE XML SECTIONS BELOW. IF YOU HAVE LOCAL
|
||||
CONFIGURATIONS, YOU CAN EITHER:
|
||||
1.) Copy this file to another geospatialConfig_XXXX.xml file and include
|
||||
that filename at the top of that WarnGen template's XML file.
|
||||
2.) Copy one or more of the sections (areaSource, pointSource, etc..)
|
||||
below and paste them into your template's XML file below the following line
|
||||
<include file="geospatialConfig_MARINE.xml"/>
|
||||
If you have multiple objects with the same name, the last one read is used.
|
||||
|
||||
THIS CHANGE WAS DONE SO THAT CONFIGURATIONS COULD BE MADE IN ONE LOCATION
|
||||
AND NOT ACROSS 20-30 TEMPLATES. A ZONE-BASED and MARINE-BASED COUNTERPART
|
||||
EXISTS TO THIS FILE.
|
||||
-->
|
||||
|
||||
<!-- CREATE PRIMARY areaSource OBJECT TO GENERATE ZONE-BASED INFORMATION OFF WARNGEN HATCHING -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>0</includedWatchAreaBuffer>
|
||||
</areaSource>
|
||||
|
||||
<!-- Add in secondary areaSource object to generate zone-based information.
|
||||
Not sure why a FIPS product would need zone info, but it's here as a
|
||||
placeholder -->
|
||||
<areaSource variable="affectedZones">
|
||||
<areaSource>Zone</areaSource>
|
||||
<type>INTERSECT</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>
|
||||
<pointField>NAME</pointField>
|
||||
<sortBy>
|
||||
<sort>parent</sort>
|
||||
</sortBy>
|
||||
<pointFilter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</pointFilter>
|
||||
<includedWatchAreaBuffer>0</includedWatchAreaBuffer>
|
||||
</areaSource>
|
||||
|
||||
|
||||
<!-- CREATE pointSource OBJECT TO GENERATE LIST OF CLOSEST POINTS TO DOT (3RD BULLET) -->
|
||||
<!-- type = AREA allows us to use multi-polygonal shapefiles despite the pointSource misnomer -->
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<!-- CREATE pointSource OBJECT TO GENERATE LIST OF SECONDARY POINTS TO DOT (3RD BULLET)
|
||||
...OR ABOUT XXX MILES FROM LARGER KNOWN LOCATION -->
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<!-- CREATE pathcastConfig OBJECT FOR PATHCAST (4TH BULLET) -->
|
||||
<pathcastConfig>
|
||||
<type>AREA</type>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<distanceThreshold>8.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>10</maxResults>
|
||||
<maxGroup>8</maxGroup>
|
||||
<pointField>Name</pointField>
|
||||
<areaField>COUNTYNAME</areaField>
|
||||
<parentAreaField>STATE</parentAreaField>
|
||||
<areaNotationField>STATE</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<sortBy>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>
|
||||
|
||||
<!-- CREATE pointSource OBJECT FOR LOWER ORDER CITIES FOR PATHCAST SETTING (4TH BULLET) -->
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
<!-- CREATE pointSource OBJECT FOR NON-PATHCAST CITY LIST -->
|
||||
<pointSource variable="cityList">
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
<!-- CREATE DEFAULT OBJECTS. THIS SHOULD GENERALLY NOT BE TOUCHED-->
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</pointSource>
|
||||
<areaSource>County</areaSource>
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
|
||||
|
|
@ -0,0 +1,171 @@
|
|||
<!-- CREATED 9-16-2013 EVAN BOOKBINDER WFO EAX
|
||||
THIS DOCUMENT CONTAINS GLOBAL SPATIAL CONFIGURATION SETTINGS FOR **MARINE**
|
||||
BASED PRODUCTS. INCLUDE THIS FILE INTO EACH ZONE TEMPLATE'S .XML FILE.
|
||||
THIS REPLACES THE PER-TEMPLATE XML SECTIONS BELOW. IF YOU HAVE LOCAL
|
||||
CONFIGURATIONS, YOU CAN EITHER:
|
||||
1.) Copy this file to another geospatialConfig_XXXX.xml file and include
|
||||
that filename at the top of that WarnGen template's XML file.
|
||||
2.) Copy one or more of the sections (areaSource, pointSource, etc..)
|
||||
below and paste them into your template's XML file below the following line
|
||||
<include file="geospatialConfig_MARINE.xml"/>
|
||||
If you have multiple objects with the same name, the last one read is used.
|
||||
|
||||
THIS CHANGE WAS DONE SO THAT CONFIGURATIONS COULD BE MADE IN ONE LOCATION
|
||||
AND NOT ACROSS 20-30 TEMPLATES. A COUNTY-BASED and MARINE-BASED COUNTERPART
|
||||
EXISTS TO THIS FILE.
|
||||
-->
|
||||
|
||||
<!-- CREATE DEFAULT OBJECTS. THIS SHOULD GENERALLY NOT BE TOUCHED-->
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</pointSource>
|
||||
<areaSource>MarineZones</areaSource>
|
||||
<parentAreaSource>MarineZones</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
|
||||
|
||||
<!-- CREATE areaSource OBJECT TO GENERATE MARINE-BASED INFORMATION OFF WARNGEN HATCHING -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>MarineZones</areaSource>
|
||||
<inclusionPercent>0</inclusionPercent>
|
||||
<inclusionAndOr>AND</inclusionAndOr>
|
||||
<inclusionArea>0</inclusionArea>
|
||||
<areaField>NAME</areaField>
|
||||
<parentAreaField>NAME</parentAreaField>
|
||||
<areaNotationField>NAME</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<fipsField>ID</fipsField>
|
||||
<pointField>NAME</pointField>
|
||||
<sortBy>
|
||||
<sort>parent</sort>
|
||||
</sortBy>
|
||||
<pointFilter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</pointFilter>
|
||||
<includedWatchAreaBuffer>0</includedWatchAreaBuffer>
|
||||
</areaSource>
|
||||
|
||||
|
||||
<!-- CREATE pointSource OBJECT TO GENERATE LIST OF CLOSEST POINTS TO DOT (3RD BULLET) -->
|
||||
<!-- type = AREA allows us to use multi-polygonal shapefiles despite the pointSource misnomer -->
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,C,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<!-- CREATE pointSource OBJECT TO GENERATE LIST OF SECONDARY POINTS TO DOT (3RD BULLET)
|
||||
...OR ABOUT XXX MILES FROM LARGER KNOWN LOCATION -->
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,C,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<!-- CREATE pathcastConfig OBJECT FOR PATHCAST (4TH BULLET) -->
|
||||
<pathcastConfig>
|
||||
<type>AREA</type>
|
||||
<!-- the withinPolygon variable set to false will bring in points
|
||||
outside of the polygon which is necessary for the pathcast to reference
|
||||
points that are near the water but not on the water -->
|
||||
<withinPolygon>false</withinPolygon>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<distanceThreshold>10.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>10</maxResults>
|
||||
<maxGroup>8</maxGroup>
|
||||
<pointField>Name</pointField>
|
||||
<areaField>Name</areaField>
|
||||
<parentAreaField>Name</parentAreaField>
|
||||
<areaNotationField>Name</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<sortBy>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2,3" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
</pathcastConfig>
|
||||
|
||||
<!-- CREATE pointSource OBJECT FOR LOWER ORDER CITIES FOR PATHCAST SETTING (4TH BULLET) -->
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>false</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="3,4" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
</pointSource>
|
||||
|
||||
<!-- CREATE pointSource OBJECT FOR NON-PATHCAST LOCATION LIST -->
|
||||
<pointSource variable="locationList">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>false</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2,3,4" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
|
@ -0,0 +1,207 @@
|
|||
<!-- CREATED 9-16-2013 EVAN BOOKBINDER WFO EAX
|
||||
THIS DOCUMENT CONTAINS GLOBAL SPATIAL CONFIGURATION SETTINGS FOR **ZONE**
|
||||
BASED PRODUCTS. INCLUDE THIS FILE INTO EACH ZONE TEMPLATE'S .XML FILE.
|
||||
THIS REPLACES THE PER-TEMPLATE XML SECTIONS BELOW. IF YOU HAVE LOCAL
|
||||
CONFIGURATIONS, YOU CAN EITHER:
|
||||
1.) Copy this file to another geospatialConfig_XXXX.xml file and include
|
||||
that filename at the top of that WarnGen template's XML file.
|
||||
2.) Copy one or more of the sections (areaSource, pointSource, etc..)
|
||||
below and paste them into your template's XML file below the following line
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
If you have multiple objects with the same name, the last one read is used.
|
||||
|
||||
THIS CHANGE WAS DONE SO THAT CONFIGURATIONS COULD BE MADE IN ONE LOCATION
|
||||
AND NOT ACROSS 20-30 TEMPLATES. A COUNTY-BASED and MARINE-BASED COUNTERPART
|
||||
EXISTS TO THIS FILE.
|
||||
-->
|
||||
|
||||
<!-- CREATE DEFAULT OBJECTS. THIS SHOULD GENERALLY NOT BE TOUCHED-->
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</pointSource>
|
||||
<areaSource>Zone</areaSource>
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
|
||||
|
||||
<!-- CREATE PRIMARY areaSource OBJECT TO GENERATE ZONE-BASED INFORMATION OFF WARNGEN HATCHING -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>Zone</areaSource>
|
||||
<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>
|
||||
<pointField>NAME</pointField>
|
||||
<sortBy>
|
||||
<sort>parent</sort>
|
||||
</sortBy>
|
||||
<pointFilter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</pointFilter>
|
||||
<includedWatchAreaBuffer>0</includedWatchAreaBuffer>
|
||||
</areaSource>
|
||||
|
||||
<!-- Add in areaSource object to generate county-based information. This could be
|
||||
used by a template that has a zone based UGC and a county-based headline -->
|
||||
<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>0</includedWatchAreaBuffer>
|
||||
</areaSource>
|
||||
|
||||
|
||||
<!-- CREATE pointSource OBJECT TO GENERATE LIST OF CLOSEST POINTS TO DOT (3RD BULLET) -->
|
||||
<!-- type = AREA allows us to use multi-polygonal shapefiles despite the pointSource misnomer -->
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<!-- CREATE pointSource OBJECT TO GENERATE LIST OF SECONDARY POINTS TO DOT (3RD BULLET)
|
||||
...OR ABOUT XXX MILES FROM LARGER KNOWN LOCATION -->
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<!-- CREATE pathcastConfig OBJECT FOR PATHCAST (4TH BULLET) -->
|
||||
<pathcastConfig>
|
||||
<type>AREA</type>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<distanceThreshold>8.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>10</maxResults>
|
||||
<maxGroup>8</maxGroup>
|
||||
<pointField>Name</pointField>
|
||||
<areaField>NAME</areaField>
|
||||
<parentAreaField>STATE</parentAreaField>
|
||||
<areaNotationField>STATE</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<sortBy>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>
|
||||
|
||||
<!-- CREATE pointSource OBJECT FOR LOWER ORDER CITIES FOR PATHCAST SETTING (4TH BULLET) -->
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
<!-- CREATE pointSource OBJECT FOR NON-PATHCAST CITY LIST -->
|
||||
<pointSource variable="cityList">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
|
@ -1,20 +1,16 @@
|
|||
################################################################
|
||||
## SEVERE THUNDERSTORM WARNING TEMPLATE ##
|
||||
## FOR CR IMPACT BASED SVR INITIATIVE ##
|
||||
## CREATED BY PHIL KURIMSKI - WFO DTX ##
|
||||
## VERSION AWIPS II 1.0 -- 2-21-2012 OB12.1.1-1 ##
|
||||
## VERSION AWIPS II 1.1 -- 2-29-2012 OB12.2.1-4 ##
|
||||
## VERSION AWIPS II 1.2 -- 4-20-2012 ##
|
||||
## QINGLU LIN 8-14-2012 DR 14493 use TMLtime ##
|
||||
## VERSION AWIPS II 1.3 -- 2-04-2012 OB13.2.1-5 impact stmts ##
|
||||
## VERSION AWIPS II 1.4 -- 5-20-2012 Addl IBW Changes ##
|
||||
################################################################
|
||||
##################################################################
|
||||
## SEVERE THUNDERSTORM WARNING TEMPLATE ##
|
||||
## FOR CR IMPACT BASED SVR INITIATIVE ##
|
||||
## CREATED BY PHIL KURIMSKI - WFO DTX ##
|
||||
## UPDATED 9-18-2013 Implement global config.vm ##
|
||||
##################################################################
|
||||
## Commented out Impact statements Feb 2013 and created file to
|
||||
## be parsed into the template called impactStatements.vm
|
||||
## Changes to the impact statements can be made to this file
|
||||
## instead of the template
|
||||
################################################################
|
||||
##
|
||||
#parse("config.vm")
|
||||
##SET SOME INITIAL VARIABLES
|
||||
#set($hazard = "")
|
||||
#set($source = "")
|
||||
|
@ -354,12 +350,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
#end
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${reportType3} ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
#if(${stormType} == "line")
|
||||
...AND ARE NEARLY STATIONARY.
|
||||
#else
|
||||
|
@ -424,10 +421,10 @@ THIS IS A TEST MESSAGE. ##
|
|||
##############################################
|
||||
#if(${list.contains(${bullets}, "specialEvent")})
|
||||
#if(${stormType} == "line")
|
||||
EVERYONE AT !**event/venue name or location**! ARE IN THE PATH OF THESE STORMS AND SHOULD PREPARE FOR IMMINENT DANGEROUS WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
THOSE ATTENDING !**event/venue name or location**! ARE IN THE PATH OF THESE STORMS AND SHOULD PREPARE FOR IMMINENT DANGEROUS WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
|
||||
#else
|
||||
EVERYONE AT !**event/venue name or location**! ARE IN THE PATH OF THIS STORM AND SHOULD PREPARE FOR IMMINENT DANGEROUS WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
THOSE ATTENDING !**event/venue name or location**! ARE IN THE PATH OF THIS STORM AND SHOULD PREPARE FOR IMMINENT DANGEROUS WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
|
||||
#end
|
||||
#end
|
||||
|
|
|
@ -6,10 +6,24 @@
|
|||
MIKE REGA 5-10-2012 DR 14525 added timeZoneField
|
||||
DR 14691 added feAreaField
|
||||
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Added new areaSource object
|
||||
Added new areaSource object
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -170,10 +184,9 @@
|
|||
<bullet bulletName="addlHailWindRpt" bulletText="Select to include additional hail and/or wind reports..." bulletGroup="radioset4"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="************ 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 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 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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="******** CALLS TO ACTION (CHOOSE 1 OR MORE) *********" bulletType="title"/>
|
||||
|
@ -203,157 +216,4 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<type>AREA</type>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<type>AREA</type>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pathcastConfig>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<distanceThreshold>8.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>10</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>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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="pointMarkers.xml"/>
|
||||
<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>
|
||||
</warngenConfig>
|
||||
|
|
|
@ -2,20 +2,17 @@
|
|||
## SEVERE WEATHER STATEMENT TEMPLATE ##
|
||||
## FOR CR IMPACT BASED TOR/SVR INITIATIVE ##
|
||||
## CREATED BY PHIL KURIMSKI - WFO DTX ##
|
||||
## VERSION AWIPS II 1.0 -- 2-21-2012 OB12.1.1-1 ##
|
||||
## VERSION AWIPS II 1.1 -- 2-29-2012 OB12.2.1-4 ##
|
||||
## VERSION AWIPS II 1.2 -- 4-20-2012 ##
|
||||
## VERSION AWIPS II 1.3 -- 9-13-2012 OB12.9.1-12 ##
|
||||
## VERSION AWIPS II 1.4 -- 2-04-2012 OB13.2.1-5 impact stmts ##
|
||||
## VERSION AWIPS II 1.5 -- Bookbinder 2-22-13 2013 IBW Changes##
|
||||
## VERSION AWIPS II 1.6 -- Kurimski 5-20-13 2013 IBW Changes ##
|
||||
## UPDATED Evan Bookbinder 2-22-13 2013 IBW Changes ##
|
||||
## UPDATED -- Kurimski 5-20-13 2013 IBW Changes ##
|
||||
## UPDATED -- Kurimski 9/17/13 Tor Emer Headline ##
|
||||
## UPDATED -- Bookbinder 9/18/13 Implement config.vm ##
|
||||
################################################################
|
||||
## Commented out Impact statements Feb 2013 and created file to
|
||||
## be parsed into the template called impactStatements.vm
|
||||
## Changes to the impact statements can be made to this file
|
||||
## instead of the template
|
||||
################################################################
|
||||
##
|
||||
#parse("config.vm")
|
||||
###################################################################
|
||||
## Set null variables for wind/hail tags used in the template ##
|
||||
###################################################################
|
||||
|
@ -100,19 +97,33 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
${ugclinecan}
|
||||
/${productClass}.CAN.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
#elseif(${CORCAN}=="true")
|
||||
${ugclinecan}
|
||||
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
#else
|
||||
${ugcline}
|
||||
/${productClass}.${action}.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
#end
|
||||
|
||||
|
@ -154,6 +165,8 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#elseif(${action}=="CANCON" || ${CORCAN}=="true")
|
||||
...THE ${eventType} WARNING FOR ##
|
||||
#headlineLocList(${cancelareas} true true true false) ${expcanHLTag}...
|
||||
###REPLACE headlineLocList ABOVE WITH THE FOLLOWING FOR ZONE BASED PRODUCT W/ COUNTY HEADLINE
|
||||
###headlineLocList(${cancelaffectedCounties} true true true false) ${expcanHLTag}...
|
||||
#end
|
||||
############################
|
||||
## END CAN/EXP HEADLINE ####
|
||||
|
@ -165,12 +178,12 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#if(${action}=="EXP" || ${action}=="CAN" || ${action}=="CANCON" || ${CORCAN}=="true")
|
||||
#### SET A DEFAULT STATEMENT IN CASE NO BULLET WAS SELECTED OR AVAILABLE
|
||||
#if(${stormType} == "line")
|
||||
#set($expcanPhrase = "THE LINE OF STORMS WHICH PROMPTED THE WARNING HAVE !** WEAKENED/MOVED OUT OF THE WARNED AREA **!. THEREFORE THE WARNING ${expcanBODYTag}.")
|
||||
#set($expcanPhrase = "THE LINE OF STORMS WHICH PROMPTED THE WARNING HAVE !** WEAKENED. MOVED OUT OF THE WARNED AREA.**! THEREFORE THE WARNING ${expcanBODYTag}.")
|
||||
#else
|
||||
#if(${phenomena}=="SV")
|
||||
#set($expcanPhrase = "THE SEVERE THUNDERSTORM WHICH PROMPTED THE WARNING HAS !** WEAKENED/MOVED OUT OF THE WARNED AREA **!. THEREFORE THE WARNING ${expcanBODYTag}.")
|
||||
#set($expcanPhrase = "THE SEVERE THUNDERSTORM WHICH PROMPTED THE WARNING HAS !** WEAKENED. MOVED OUT OF THE WARNED AREA. **! THEREFORE THE WARNING ${expcanBODYTag}.")
|
||||
#else
|
||||
#set($expcanPhrase = "THE TORNADIC THUNDERSTORM WHICH PROMPTED THE WARNING HAS !** WEAKENED/MOVED OUT OF THE WARNED AREA **!. THEREFORE THE WARNING ${expcanBODYTag}.")
|
||||
#set($expcanPhrase = "THE TORNADIC THUNDERSTORM WHICH PROMPTED THE WARNING HAS !** WEAKENED. MOVED OUT OF THE WARNED AREA. **! THEREFORE THE WARNING ${expcanBODYTag}.")
|
||||
#end
|
||||
#end
|
||||
#### WEAKENED BELOW SEVERE LIMITS
|
||||
|
@ -332,7 +345,11 @@ $$
|
|||
${ugcline}
|
||||
/${productClass}.CON.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -347,7 +364,11 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
${ugcline}
|
||||
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -356,19 +377,19 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
|
||||
|
||||
#end
|
||||
#end
|
||||
#####################################################################
|
||||
### TORNADO EMERGENCY HEADLINE #
|
||||
#####################################################################
|
||||
#if(${list.contains(${bullets}, "torEmergency")})
|
||||
|
||||
...TORNADO EMERGENCY FOR !** EDIT LOCATION(S) **!...
|
||||
|
||||
#end
|
||||
#if(${action}=="CANCON" || ${action}=="CON" || ${action}=="COR" || ${CORCAN}=="true")
|
||||
...A ${eventType} WARNING REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
|
||||
#headlineLocList(${areas} true true true false)...
|
||||
########### END NEW HEADLINE CODE ####################
|
||||
#####################################################################
|
||||
### TORNADO EMERGENCY PER NWS 10-511 DIRECTIVE #
|
||||
#####################################################################
|
||||
#if(${list.contains(${bullets}, "torEmergency")})
|
||||
|
||||
...THIS IS A TORNADO EMERGENCY FOR !** EDIT LOCATION(S) **!...
|
||||
|
||||
#end
|
||||
#set($reportType = "!** BASIS FOR WARNING **!")
|
||||
#set($reportAuthSVR = "")
|
||||
############### BASIS SECTION ####################
|
||||
|
@ -831,12 +852,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
|
||||
${reportType} LOCATED ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
#if(${stormType} == "line")
|
||||
...AND ARE NEARLY STATIONARY.
|
||||
#else
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Added new areaSource object
|
||||
Phil Kurimski 02-04-2013 OB13.2.1-5 Changed Sig Tor to Considerable
|
||||
Phil Kurimski 05-20-2013 Added selection for very weak tornadoes and landspouts
|
||||
Phil Kurimski 05-20-2013 Added selection for very weak tornadoes and landspouts
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<!--
|
||||
Velocity Variables:
|
||||
|
@ -31,6 +32,19 @@
|
|||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -230,10 +244,9 @@
|
|||
<bullet bulletName="addlTorInfo" bulletText="Select to include additional tornado/damage information..."/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="********* LOCATIONS IMPACTED **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="group4" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="group4" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="group4" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="group4" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** CALLS TO ACTION (CHOOSE 1 OR MORE) **********" bulletType="title"/>
|
||||
|
@ -288,10 +301,9 @@
|
|||
<bullet bulletName="addlHailWindRpt" bulletText="Select to include additional hail and/or wind reports..." bulletGroup="radioset4"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="********* LOCATIONS IMPACTED **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="radioset5" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset5" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset5" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset5" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="******** CALL TO ACTIONS (CHOOSE 1 OR MORE) *********" bulletType="title"/>
|
||||
|
@ -369,10 +381,9 @@
|
|||
<bullet bulletName="addlTorInfo" bulletText="Select to include additional tornado/damage information..."/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="********* LOCATIONS IMPACTED **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="radioset4" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset4" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset4" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset4" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** CALLS TO ACTION (CHOOSE 1 OR MORE) **********" bulletType="title"/>
|
||||
|
@ -426,10 +437,9 @@
|
|||
<bullet bulletName="addlHailWindRpt" bulletText="Select to include additional hail and/or wind reports..." bulletGroup="radioset4"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="********* LOCATIONS IMPACTED **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="radioset5" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset5" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset5" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset5" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="******** CALL TO ACTIONS (CHOOSE 1 OR MORE) *********" bulletType="title"/>
|
||||
|
@ -459,156 +469,4 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<type>AREA</type>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<type>AREA</type>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pathcastConfig>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<distanceThreshold>8.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>10</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>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<areaSource>County</areaSource>
|
||||
<!-- <areaSource>Zone</areaSource> -->
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
</warngenConfig>
|
||||
|
|
|
@ -0,0 +1,499 @@
|
|||
#####################################################
|
||||
## SPECIAL MARINE WARNING TEMPLATE ##
|
||||
## FOR CR IMPACT BASED WARNING INITIATIVE ##
|
||||
## CREATED BY PHIL KURIMSKI - WFO DTX ##
|
||||
## UPDATED PHIL KURIMSKI -- SEP 17 2013 OB13.5.2-4 ##
|
||||
## EVAN BOOKBINDER -- SEP 18 2013 Implemented config.vm
|
||||
######################################################
|
||||
#parse("config.vm")
|
||||
################################################
|
||||
## Set null variables used in the template
|
||||
################################################
|
||||
#set($capable = "")
|
||||
#set($ashfallPath = "")
|
||||
#set($debrisflowPath = "")
|
||||
#set($ashfallInfo = "")
|
||||
#set($debrisflowInfo = "")
|
||||
#set($ashfallCTA = "")
|
||||
#set($spoutTag = "")
|
||||
#set($source = "RADAR INDICATED.")
|
||||
#set($extraSource = "")
|
||||
#set($spoutThreat = "")
|
||||
################################################
|
||||
## Set up override for ashfall warning
|
||||
## This will change Special Marine Warning to
|
||||
## Ashfall Warning Per the 10-313 Directive
|
||||
################################################
|
||||
#if(${list.contains(${bullets}, "ashfall")})
|
||||
#set($ashfallHeadline = "ASHFALL WARNING FOR VOLCANIC ASH AND OTHER HAZARDS FOR...")
|
||||
#end
|
||||
################################################
|
||||
${WMOId} ${vtecOffice} 000000 ${BBBId}
|
||||
SMW${siteId}
|
||||
${ugcline}
|
||||
/${productClass}.${action}.${vtecOffice}.MA.W.${etn}.${dateUtil.format(${start}, ${timeFormat.ymdthmz})}-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
|
||||
BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
#if(${productClass}=="T")
|
||||
TEST...SPECIAL MARINE WARNING...TEST
|
||||
#else
|
||||
SPECIAL MARINE 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
|
||||
#headline(${officeLoc}, ${backupSite})
|
||||
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
##################################################
|
||||
## Override for Ashfall Warning
|
||||
##################################################
|
||||
#if(${ashfallHeadline})
|
||||
${ashfallHeadline}
|
||||
#else
|
||||
SPECIAL MARINE WARNING FOR...
|
||||
#end
|
||||
#######################################################################
|
||||
## Coding to use the raw marine zone output from the shapefiles
|
||||
## Comment this section out if you are combining your marine zones
|
||||
#######################################################################
|
||||
#foreach (${area} in ${areas})
|
||||
##
|
||||
${area.name}...
|
||||
#end
|
||||
#######################################################################
|
||||
## End of code for raw marine zone output from the shapefiles
|
||||
#######################################################################
|
||||
#######################################################################
|
||||
## The following code will create a string of marine zone fips codes
|
||||
## which will be important in combining marine zones
|
||||
#######################################################################
|
||||
#######################################################################
|
||||
## Set the fipsstring variable to null for marine zone combinations
|
||||
#######################################################################
|
||||
#set($fipsstring = "")
|
||||
#foreach (${area} in ${areas})
|
||||
#set($fipsstring = $fipsstring + $area.fips + "-")
|
||||
#end
|
||||
#######################################################################
|
||||
## Parse in the marineCombo.vm file which contains marine zone combinations
|
||||
## Uncomment the parse command if you are combining your marine zones
|
||||
#######################################################################
|
||||
##parse("marineCombo.vm")
|
||||
#######################################################################
|
||||
## End of the marine zone combination script
|
||||
#######################################################################
|
||||
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
#secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone})
|
||||
|
||||
#######################################################################
|
||||
## List of Event Types. Added several events such as Shower...Cloud and Front.
|
||||
## Removed Strong and Severe Thunderstorm selections and placed logic in the
|
||||
## wind and hail selections that will change wording for Severe Thunderstorms.
|
||||
#######################################################################
|
||||
#set($eventType = "THUNDERSTORM")
|
||||
#if(${list.contains(${bullets}, "thunderstorm")})
|
||||
#set($eventType = "THUNDERSTORM")
|
||||
#set($severeType = "STRONG")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "shower")})
|
||||
#set($eventType = "SHOWER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "cloud")})
|
||||
#set($eventType = "CLOUD")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "front")})
|
||||
#set($eventType = "FRONT")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "volcano")})
|
||||
#set($eventType = "VOLCANO")
|
||||
#end
|
||||
#######################################################################
|
||||
## Added a Threat Section to the template that includes Wind...Hail
|
||||
## and Waterspout selections.
|
||||
## Strong Thunderstorm will change to Severe Thunderstorm automatically based on
|
||||
## selections in Wind...Hail and Waterspout sections.
|
||||
#######################################################################
|
||||
#set($windTag = "<34")
|
||||
#set($windCTA = "GUSTY WINDS")
|
||||
#if(${list.contains(${bullets}, "34ktWind")})
|
||||
#set($windTag = ">34")
|
||||
#set($windType = "WIND GUSTS 34 KNOTS OR GREATER")
|
||||
#set($windCTA = "${windType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "40ktWind")})
|
||||
#set($windTag = "40")
|
||||
#set($windType = "WIND GUSTS TO 40 KNOTS")
|
||||
#set($windCTA = "${windType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "40ktplusWind")})
|
||||
#set($windTag = "49")
|
||||
#set($windType = "WIND GUSTS TO NEARLY 50 KNOTS")
|
||||
#set($windCTA = "${windType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "50ktWind")})
|
||||
#set($windTag = "50")
|
||||
#set($windType = "WIND GUSTS IN EXCESS OF 50 KNOTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#set($windCTA = "${windType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "65ktWind")})
|
||||
#set($windTag = "65")
|
||||
#set($windType = "WIND GUSTS IN EXCESS OF 65 KNOTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#set($windCTA = "${windType}")
|
||||
#end
|
||||
#set($hailTag = "0.00")
|
||||
#set($hailCTA = "")
|
||||
#if(${list.contains(${bullets}, "smallHail")})
|
||||
#set($hailTag = "<.75")
|
||||
#set($hailType = "SMALL HAIL")
|
||||
#set($hailCTA = "...${hailType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "largeHail")})
|
||||
#set($hailTag = ">.75")
|
||||
#set($hailType = "LARGE HAIL")
|
||||
#set($severeType = "SEVERE")
|
||||
#set($hailCTA = "...${hailType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "destructiveHail")})
|
||||
#set($hailTag = ">2.0")
|
||||
#set($hailType = "LARGE DESTRUCTIVE HAIL")
|
||||
#set($severeType = "SEVERE")
|
||||
#set($hailCTA = "...${hailType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "sightedSpout")})
|
||||
#set($spoutTag = "WATERSPOUT...OBSERVED")
|
||||
#set($spoutType = "WATERSPOUTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "possibleSpout")})
|
||||
#set($spoutTag = "WATERSPOUT...POSSIBLE")
|
||||
#set($spoutType = "WATERSPOUTS")
|
||||
#set($capable = "CAPABLE OF ")
|
||||
#set($severeType = "SEVERE")
|
||||
#end
|
||||
################################################
|
||||
## Threat section for Volcanic Situations
|
||||
################################################
|
||||
#if(${list.contains(${bullets}, "ashfall")})
|
||||
#set($ashfallType = "ASHFALL")
|
||||
#set($ashfallPath = "VOLCANIC ASH")
|
||||
#set($ctaSelected = "YES")
|
||||
#set($ashfallCTA = "ASH IS AN EYE AND RESPIRATORY IRRITANT AND IS ABRASIVE. THOSE WITH RESPIRATORY SENSITIVITIES SHOULD TAKE EXTRA PRECAUTIONS TO MINIMIZE EXPOSURE. PROTECT ELECTRONICS AND COVER AIR INTAKES IF ASHFALL IS EXPECTED OR CONFIRMED. REMOVE ASH FROM SURFACES WITH WATER IF POSSIBLE TO PREVENT EXCESSIVE ACCUMULATION.")
|
||||
#set($ashfallInfo = "AN ASHFALL WARNING MEANS THAT THE VOLCANO IS UNDERGOING A MAJOR ERUPTION. IT IS VERY LIKELY THAT MARINERS WILL BE AFFECTED BY VOLCANIC HAZARDS IN THE WARNING AREAS SUCH AS SIGNIFICANT DEBRIS...ASHFALL ONE QUARTER INCH OR GREATER...LAVA...OR LAHAR AND DEBRIS FLOWS.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "debrisFlow")})
|
||||
#set($debrisflowType = "DEBRIS FLOW")
|
||||
#set($debrisflowPath = "DEBRIS FLOW")
|
||||
#set($debrisflowInfo = "THE ERUPTION OF THE VOLCANO CAN CAUSE A SUDDEN 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 AND INTO THE NEARBY WATERS.")
|
||||
#end
|
||||
##################################################################################
|
||||
## Logic to put together the threats based on Wind...Hail and Waterspout sections.
|
||||
##################################################################################
|
||||
#if(${spoutType} && ${windType} && ${hailType})
|
||||
#set($threat = "${spoutType}...${windType} AND ${hailType}")
|
||||
#elseif(${spoutType} && ${hailType})
|
||||
#set($threat = "${spoutType} AND ${hailType}")
|
||||
#elseif(${spoutType} && ${windType})
|
||||
#set($threat = "${spoutType} AND ${windType}")
|
||||
#elseif(${windType} && ${hailType})
|
||||
#set($threat = "${windType} AND ${hailType}")
|
||||
#elseif(${spoutType})
|
||||
#set($threat = "${spoutType}")
|
||||
#elseif(${windType})
|
||||
#set($threat = "${windType}")
|
||||
#elseif(${hailType})
|
||||
#set($threat = "${hailType}")
|
||||
#else
|
||||
#set($threat = "!**YOU DID NOT SELECT ANY THREATS. PLEAST RE-GENERATE THIS WARNING!**!")
|
||||
#end
|
||||
#set($hazard = "${threat}.")
|
||||
#######################################################################
|
||||
## Logic for Volcanic Threats. If selected this will override any
|
||||
## other selections for wind/hail/spouts.
|
||||
#######################################################################
|
||||
#if(${ashfallType} && ${debrisflowType})
|
||||
#set($threat = "${ashfallType} AND ${debrisflowType}")
|
||||
#set($volcanoPath = "${ashfallPath} AND ${debrisflowPath}")
|
||||
#elseif(${ashfallType})
|
||||
#set($threat = "${ashfallType}")
|
||||
#set($volcanoPath = "${ashfallPath}")
|
||||
#elseif(${debrisflowType})
|
||||
#set($threat = "${debrisflowType}")
|
||||
#set($volcanoPath = "${debrisflowPath}")
|
||||
#else
|
||||
#end
|
||||
#########################################################################
|
||||
## Section to determine Thunderstorm Severity based on Threat Selections.
|
||||
#########################################################################
|
||||
#if(${eventType} == "THUNDERSTORM")
|
||||
#set($thunderstormType = "${severeType} ${eventType}")
|
||||
#set($eventType = "${thunderstormType}")
|
||||
#end
|
||||
#######################################################################
|
||||
## Section to create line wording based on track type.
|
||||
#######################################################################
|
||||
#set($stormline = "A ${eventType}")
|
||||
#set($pathheader = "THE ${eventType}")
|
||||
#set($specialEvent = "THIS ${eventType}")
|
||||
#set($reportType2 = "THE ${eventType} WAS")
|
||||
#if(${stormType} == "line")
|
||||
#set($stormline = "A LINE OF ${eventType}S")
|
||||
#set($pathheader = "${eventType}S")
|
||||
#set($specialEvent = "THESE ${eventType}S")
|
||||
#set($reportType2 = "THE ${eventType}S WERE")
|
||||
#end
|
||||
###########################################################################
|
||||
## Corrective coding to prevent the use of "Line of Fronts" in the Product.
|
||||
###########################################################################
|
||||
#if(${eventType} == "FRONT")
|
||||
#set($stormline = "A ${eventType}")
|
||||
#set($pathheader = "THE ${eventType}")
|
||||
#set($specialEvent = "THIS ${eventType}")
|
||||
#set($reportType2 = "THE ${eventType} WAS")
|
||||
## #set($stormType = "")
|
||||
#end
|
||||
#######################################################################
|
||||
## Coding for volcanos...this will override all other selections.
|
||||
#######################################################################
|
||||
#set($impacted = "LOCATIONS IMPACTED INCLUDE...")
|
||||
#if(${eventType} == "VOLCANO")
|
||||
#set($stormline = "AN ERUPTION OF !** NAME OF VOLCANO**! VOLCANO")
|
||||
#set($pathheader = "THE ${volcanoPath}")
|
||||
#set($reportType2 = "THE ${volcanoPath} WAS")
|
||||
#set($specialEvent = "THE ${volcanoPath}")
|
||||
## #set($stormType = "")
|
||||
#set($impacted = "LOCATIONS IMPACTED BY ${volcanoPath} INCLUDE...")
|
||||
#end
|
||||
##########################################################################
|
||||
## Basis section that incorporates line phenomena...capable vs producing
|
||||
## and threat based on selections above. Added Satellite Imagery to basis.
|
||||
##########################################################################
|
||||
#set($report = "!** YOU DIDN'T SELECT A REPORTER **! ${eventType}")
|
||||
#if(${list.contains(${bullets}, "doppler")})
|
||||
#set($source = "RADAR INDICATED.")
|
||||
#set($capable = "CAPABLE OF ")
|
||||
## #set($report = "DOPPLER RADAR INDICATED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "sightedSpout")})
|
||||
## #set($report = "DOPPLER RADAR INDICATED ${stormline}...PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "marineSpotter")})
|
||||
#set($source = "MARINE WEATHER SPOTTER.")
|
||||
## #set($report = "MARINE WEATHER SPOTTERS REPORTED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "mariner")})
|
||||
#set($source = "MARINER.")
|
||||
## #set($report = "A MARINER REPORTED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "public")})
|
||||
#set($source = "PUBLIC.")
|
||||
## #set($report = "THE PUBLIC REPORTED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "pilot")})
|
||||
#set($source = "PILOT.")
|
||||
## #set($report = "A PILOT REPORTED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "satellite")})
|
||||
#set($source = "SATELLITE IMAGERY INDICATED.")
|
||||
#set($capable = "CAPABLE OF ")
|
||||
## #set($report = "SATELLITE IMAGERY INDICATED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "satellite")} && ${list.contains(${bullets}, "sightedSpout")})
|
||||
## #set($report = "SATELLITE IMAGERY INDICATED ${stormline}...PRODUCING ${threat}...")
|
||||
#end
|
||||
## If waterspouts are observed override the capable wording
|
||||
#if(${list.contains(${bullets}, "sightedSpout")})
|
||||
#set($capable = "")
|
||||
#end
|
||||
## If waterspouts are selected include them in the AT... section of the product
|
||||
#if($spoutTag.length() > 0)
|
||||
#set($spoutThreat = " ${capable}PRODUCING ${spoutType}")
|
||||
#end
|
||||
#set($report = "${stormline}${spoutThreat}...")
|
||||
|
||||
## Storm current location description
|
||||
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report}LOCATED ##
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if(${eventType} == "VOLCANO")
|
||||
.
|
||||
#elseif(${movementSpeed} < ${marineStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY.
|
||||
#else
|
||||
...MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} KNOTS.
|
||||
#end
|
||||
|
||||
#############################################
|
||||
######## GENERATE ADDITIONAL REPORTS #######
|
||||
#############################################
|
||||
#if(${list.contains(${bullets}, "addlRpt")})
|
||||
#set($extraSource = " AT !**enter time, phenomena**! WAS REPORTED !**enter location**!.")
|
||||
#end
|
||||
##########################################################################
|
||||
## Command to parse the impact statements into the template
|
||||
##########################################################################
|
||||
#parse("impactStatements.vm")
|
||||
###################################
|
||||
## Section to include the hazard ##
|
||||
###################################
|
||||
|
||||
#wrapText("HAZARD...${hazard}" 2 11)
|
||||
|
||||
#wrapText("SOURCE...${source}${extraSource}" 2 11)
|
||||
|
||||
#wrapText("IMPACT...${smwimpact}" 2 11)
|
||||
|
||||
${ashfallInfo}
|
||||
|
||||
${debrisflowInfo}
|
||||
|
||||
#set($eventType = "${pathheader}")
|
||||
#set($warningType = "WARNING")
|
||||
#if(${list.contains(${bullets}, "pathcast")})
|
||||
* ##
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
#pathCast("${eventType} WILL BE NEAR..." ${eventType} ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 1)
|
||||
|
||||
#elseif(${list.contains(${bullets}, "listoflocations")})
|
||||
* ##
|
||||
#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("${impacted}" "${eventType}" 0 ${locationList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 1)
|
||||
|
||||
#end
|
||||
|
||||
##############################################
|
||||
###### SPECIAL VENUE/EVENT CASE ##############
|
||||
##############################################
|
||||
|
||||
#if(${list.contains(${bullets}, "specialEvent")})
|
||||
THOSE ATTENDING !**event/venue name or location**! ARE IN THE PATH OF ${specialEvent} AND SHOULD PREPARE FOR IMMINENT DANGEROUS WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
|
||||
#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
|
||||
##
|
||||
|
||||
${ashfallCTA}
|
||||
|
||||
#if(${list.contains(${bullets}, "genericCTA")})
|
||||
#if(${stormType} == "line")
|
||||
AS THUNDERSTORMS MOVE OVER THE WATER...BOATERS CAN EXPECT GUSTY WINDS AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
AS THIS THUNDERSTORM MOVES OVER THE WATER...BOATERS CAN EXPECT GUSTY WINDS AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THE STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "gustyWindsCTA")})
|
||||
#if(${stormType} == "line")
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "hailWindsCTA")})
|
||||
#if(${stormType} == "line")
|
||||
MARINERS CAN EXPECT ${windCTA}${hailCTA}...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
MARINERS CAN EXPECT ${windCTA}${hailCTA}...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "nonThunderstormCTA")})
|
||||
MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES. BOATERS...ESPECIALLY THOSE UNDER SAIL...SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THE HIGH WINDS SUBSIDE.
|
||||
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "waterspoutCTA")})
|
||||
THUNDERSTORMS CAN PRODUCE SUDDEN WATERSPOUTS. WATERSPOUTS CAN EASILY OVERTURN BOATS AND CREATE LOCALLY HAZARDOUS SEAS. SEEK SAFE HARBOR IMMEDIATELY.
|
||||
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "lightningCTA")})
|
||||
FREQUENT LIGHTNING IS OCCURRING WITH THIS STORM. IF CAUGHT ON THE OPEN WATER STAY BELOW DECK IF POSSIBLE...KEEP AWAY FROM UNGROUNDED METAL OBJECTS.
|
||||
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "reportCTA")})
|
||||
REPORT SEVERE WEATHER TO THE COAST GUARD OR NEAREST LAW ENFORCEMENT AGENCY. THEY WILL RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE OFFICE.
|
||||
|
||||
#end
|
||||
#if(${ctaSelected} == "YES")
|
||||
&&
|
||||
#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
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
|
||||
#end
|
||||
|
||||
#printcoords(${areaPoly}, ${list})
|
||||
|
||||
#tml(${TMLtime}, ${timeFormat}, ${movementDirection}, ${movementInKnots}, ${eventLocation})
|
||||
|
||||
##################################################################
|
||||
## Waterspout/Hail/Wind Tags used by CR for IBW
|
||||
##################################################################
|
||||
|
||||
#if($spoutTag.length() > 0)
|
||||
<L>${spoutTag}</L>
|
||||
#end
|
||||
<L>HAIL...${hailTag}IN</L>
|
||||
<L>WIND...${windTag}KTS</L>
|
||||
|
||||
$$
|
||||
|
||||
#parse("forecasterName.vm")
|
|
@ -0,0 +1,207 @@
|
|||
<!-- Special Marine Warning configuration -->
|
||||
<warngenConfig>
|
||||
<!-- Customized by
|
||||
PHIL KURIMSKI WFO DTX 9-16-2013 OB13.5.2-4 FOR IMPACT BASED SMW WARNINGS
|
||||
Note: Volcano information will not show up in the GUI unless uncommented out
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_MARINE.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>nmi</unitDistance>
|
||||
<unitSpeed>kn</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>Coastal Marine Zones</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>
|
||||
</followups>
|
||||
|
||||
<!-- Phensigs: The list of phenomena and significance combinations that this template applies to -->
|
||||
<phensigs>
|
||||
<phensig>MA.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>60</duration>
|
||||
<duration>90</duration>
|
||||
<duration>120</duration>
|
||||
</durations>
|
||||
|
||||
<!-- Customized several sections in bullet section including:
|
||||
Placed Basis Section at the top to come in line with SVR templates
|
||||
Added Satellite Imagery to Basis Section
|
||||
Removed Severe and Strong T-storm selections with Thunderstorm in Event Type Section
|
||||
Thunderstorm Severity will be determined by selections in Threat Section
|
||||
Added Shower...Cloud and Front to Event Type Section
|
||||
Added a Threat Section with selections for Wind...Hail and Waterspouts
|
||||
Changed the CTA Bullet names for easier parsing in the vm file
|
||||
Added Special Event option to Pathcast section
|
||||
Placed CTA section at the bottom to come in line with SVR templates -->
|
||||
<bulletActionGroups>
|
||||
<bulletActionGroup action="NEW" phen="MA" sig="W">
|
||||
<bullets>
|
||||
<!-- Added Volcano Information. Sites can comment out if they wish. -->
|
||||
<bullet bulletText=" *****BASIS SECTION*****...(Choose 1) " bulletType="title"/>
|
||||
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="warnBasis" bulletDefault="true" parseString="SOURCE...RADAR"/>
|
||||
<bullet bulletName="marineSpotter" bulletText="Marine weather spotters reported" bulletGroup="warnBasis" parseString="SOURCE...MARINE WEATHER SPOTTER"/>
|
||||
<bullet bulletName="mariner" bulletText="Mariner reported" bulletGroup="warnBasis" parseString="SOURCE...MARINER"/>
|
||||
<bullet bulletName="public" bulletText="Public reported" bulletGroup="warnBasis" parseString="SOURCE...PUBLIC"/>
|
||||
<bullet bulletName="satellite" bulletText="Satellite imagery indicated" bulletGroup="warnBasis" parseString="SOURCE...SATELLITE IMAGERY"/>
|
||||
<bullet bulletName="pilot" bulletText="Pilot reported" bulletGroup="warnBasis" parseString="SOURCE...PILOT"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" ****EVENT TYPE SECTION****...(Choose 1) " bulletType="title"/>
|
||||
<bullet bulletName="thunderstorm" bulletText="Thunderstorm" bulletGroup="eventType" bulletDefault="true" parseString="THUNDERSTORM"/>
|
||||
<bullet bulletName="shower" bulletText="Shower" bulletGroup="eventType" parseString="SHOWER"/>
|
||||
<bullet bulletName="cloud" bulletText="Cloud" bulletGroup="eventType" parseString="CLOUD"/>
|
||||
<bullet bulletName="front" bulletText="Front" bulletGroup="eventType" parseString="FRONT"/>
|
||||
<!--
|
||||
<bullet bulletName="volcano" bulletText="Volcano" bulletGroup="eventType" parseString="VOLCANO"/>
|
||||
-->
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="****THREAT SECTION****..." bulletType="title"/>
|
||||
<bullet bulletText=" ****Wind Section****...(Choose 1 if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="34ktWind" bulletText="Strong winds 34 knots or greater" bulletGroup="windThreat" bulletDefault="true" parseString="WIND...>34KTS"/>
|
||||
<bullet bulletName="40ktWind" bulletText="Strong winds to 40 knots" bulletGroup="windThreat" parseString="WIND...40KTS"/>
|
||||
<bullet bulletName="40ktplusWind" bulletText="Strong winds to nearly 50 knots" bulletGroup="windThreat" parseString="WIND...49KTS"/>
|
||||
<bullet bulletName="50ktWind" bulletText="Dangerous winds in excess of 50 knots" bulletGroup="windThreat" parseString="WIND...50KTS"/>
|
||||
<bullet bulletName="65ktWind" bulletText="Dangerous winds in excess of 65 knots" bulletGroup="windThreat" parseString="WIND...65KTS"/>
|
||||
<bullet bulletText=" ****Hail Section****...(Choose 1 if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="smallHail" bulletText="Small Hail" bulletGroup="hailThreat" parseString="<.75"/>
|
||||
<bullet bulletName="largeHail" bulletText="Large Hail" bulletGroup="hailThreat" parseString=">.75"/>
|
||||
<bullet bulletName="destructiveHail" bulletText="Large Destructive Hail" bulletGroup="hailThreat" parseString=">2.0"/>
|
||||
<bullet bulletText=" ****Waterspout Section****...(Choose 1 if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="sightedSpout" bulletText="Waterspouts sighted" bulletGroup="wSpout" parseString="WATERSPOUT...OBSERVED"/>
|
||||
<bullet bulletName="possibleSpout" bulletText="Waterspouts possible" bulletGroup="wSpout" parseString="WATERSPOUT...POSSIBLE"/>
|
||||
<!--
|
||||
<bullet bulletText=" ****Volcano Section****...(Choose if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="ashfall" bulletText="Ashfall" parseString="ASHFALL"/>
|
||||
<bullet bulletName="debrisFlow" bulletText="Lahar/Debris flow" parseString="A TORRENT OF MUD"/>
|
||||
-->
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="****** ADDITIONAL REPORTS *******" bulletType="title"/>
|
||||
<bullet bulletName="addlRpt" bulletText="Select to include additional damage information..."/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Optional Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listoflocations" bulletDefault="true" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" ****** CALLS TO ACTION (CHOOSE 1 OR MORE) ****** " bulletType="title"/>
|
||||
<bullet bulletName="genericCTA" bulletText="As thunderstorms move over the water.." parseString="OVER THE WATER...BOATERS CAN EXPECT"/>
|
||||
<bullet bulletName="gustyWindsCTA" bulletText="Mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES..."/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Mariners can expect cta with hail/wind speeds" parseString="MARINERS CAN EXPECT WIND GUSTS"/>
|
||||
<bullet bulletName="nonThunderstormCTA" bulletText="Non thunderstorm winds - mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES"/>
|
||||
<bullet bulletName="waterspoutCTA" bulletText="Thunderstorms can produce waterspouts" parseString="THUNDERSTORMS CAN PRODUCE SUDDEN WATERSPOUTS"/>
|
||||
<bullet bulletName="lightningCTA" bulletText="Frequent lightning" parseString="FREQUENT LIGHTNING IS OCCURRING WITH THIS STORM"/>
|
||||
<bullet bulletName="reportCTA" bulletText="Report severe wx" parseString="REPORT SEVERE WEATHER TO THE COAST GUARD OR NEAREST LAW ENFORCEMENT AGENCY"/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
<bulletActionGroup action="COR" phen="MA" sig="W">
|
||||
<bullets>
|
||||
<!-- Added Volcano Information. Sites can comment out if they wish. -->
|
||||
<bullet bulletText=" *****BASIS SECTION*****...(Choose 1) " bulletType="title"/>
|
||||
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="warnBasis" bulletDefault="true" parseString="SOURCE...RADAR"/>
|
||||
<bullet bulletName="marineSpotter" bulletText="Marine weather spotters reported" bulletGroup="warnBasis" parseString="SOURCE...MARINE WEATHER SPOTTER"/>
|
||||
<bullet bulletName="mariner" bulletText="Mariner reported" bulletGroup="warnBasis" parseString="SOURCE...MARINER"/>
|
||||
<bullet bulletName="public" bulletText="Public reported" bulletGroup="warnBasis" parseString="SOURCE...PUBLIC"/>
|
||||
<bullet bulletName="satellite" bulletText="Satellite imagery indicated" bulletGroup="warnBasis" parseString="SOURCE...SATELLITE IMAGERY"/>
|
||||
<bullet bulletName="pilot" bulletText="Pilot reported" bulletGroup="warnBasis" parseString="SOURCE...PILOT"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" ****EVENT TYPE SECTION****...(Choose 1) " bulletType="title"/>
|
||||
<bullet bulletName="thunderstorm" bulletText="Thunderstorm" bulletGroup="eventType" bulletDefault="true" parseString="THUNDERSTORM"/>
|
||||
<bullet bulletName="shower" bulletText="Shower" bulletGroup="eventType" parseString="SHOWER"/>
|
||||
<bullet bulletName="cloud" bulletText="Cloud" bulletGroup="eventType" parseString="CLOUD"/>
|
||||
<bullet bulletName="front" bulletText="Front" bulletGroup="eventType" parseString="FRONT"/>
|
||||
<!--
|
||||
<bullet bulletName="volcano" bulletText="Volcano" bulletGroup="eventType" parseString="VOLCANO"/>
|
||||
-->
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="****THREAT SECTION****..." bulletType="title"/>
|
||||
<bullet bulletText=" ****Wind Section****...(Choose 1 if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="34ktWind" bulletText="Strong winds 34 knots or greater" bulletGroup="windThreat" bulletDefault="true" parseString="WIND...>34KTS"/>
|
||||
<bullet bulletName="40ktWind" bulletText="Strong winds to 40 knots" bulletGroup="windThreat" parseString="WIND...40KTS"/>
|
||||
<bullet bulletName="40ktplusWind" bulletText="Strong winds to nearly 50 knots" bulletGroup="windThreat" parseString="WIND...49KTS"/>
|
||||
<bullet bulletName="50ktWind" bulletText="Dangerous winds in excess of 50 knots" bulletGroup="windThreat" parseString="WIND...50KTS"/>
|
||||
<bullet bulletName="65ktWind" bulletText="Dangerous winds in excess of 65 knots" bulletGroup="windThreat" parseString="WIND...65KTS"/>
|
||||
<bullet bulletText=" ****Hail Section****...(Choose 1 if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="smallHail" bulletText="Small Hail" bulletGroup="hailThreat" parseString="<.75"/>
|
||||
<bullet bulletName="largeHail" bulletText="Large Hail" bulletGroup="hailThreat" parseString=">.75"/>
|
||||
<bullet bulletName="destructiveHail" bulletText="Large Destructive Hail" bulletGroup="hailThreat" parseString=">2.0"/>
|
||||
<bullet bulletText=" ****Waterspout Section****...(Choose 1 if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="sightedSpout" bulletText="Waterspouts sighted" bulletGroup="wSpout" parseString="WATERSPOUT...OBSERVED"/>
|
||||
<bullet bulletName="possibleSpout" bulletText="Waterspouts possible" bulletGroup="wSpout" parseString="WATERSPOUT...POSSIBLE"/>
|
||||
<!--
|
||||
<bullet bulletText=" ****Volcano Section****...(Choose if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="ashfall" bulletText="Ashfall" parseString="ASHFALL"/>
|
||||
<bullet bulletName="debrisFlow" bulletText="Lahar/Debris flow" parseString="A TORRENT OF MUD"/>
|
||||
-->
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="****** ADDITIONAL REPORTS *******" bulletType="title"/>
|
||||
<bullet bulletName="addlRpt" bulletText="Select to include additional damage information..."/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Optional Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" ****** CALLS TO ACTION (CHOOSE 1 OR MORE) ****** " bulletType="title"/>
|
||||
<bullet bulletName="genericCTA" bulletText="As thunderstorms move over the water.." parseString="OVER THE WATER...BOATERS CAN EXPECT"/>
|
||||
<bullet bulletName="gustyWindsCTA" bulletText="Mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES..."/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Mariners can expect cta with hail/wind speeds" parseString="MARINERS CAN EXPECT WIND GUSTS"/>
|
||||
<bullet bulletName="nonThunderstormCTA" bulletText="Non thunderstorm winds - mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES"/>
|
||||
<bullet bulletName="waterspoutCTA" bulletText="Thunderstorms can produce waterspouts" parseString="THUNDERSTORMS CAN PRODUCE SUDDEN WATERSPOUTS"/>
|
||||
<bullet bulletName="lightningCTA" bulletText="Frequent lightning" parseString="FREQUENT LIGHTNING IS OCCURRING WITH THIS STORM"/>
|
||||
<bullet bulletName="reportCTA" bulletText="Report severe wx" parseString="REPORT SEVERE WEATHER TO THE COAST GUARD OR NEAREST LAW ENFORCEMENT AGENCY"/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
</warngenConfig>
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,254 @@
|
|||
<!-- Special Marine Warning Follow-Up Statement configuration -->
|
||||
<warngenConfig>
|
||||
<!-- Customized by
|
||||
PHIL KURIMSKI WFO DTX 9-16-2013 OB13.5.2-4 FOR IMPACT BASED SMW WARNINGS
|
||||
Note: Volcano information will not show up in the GUI unless uncommented out
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_MARINE.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>nmi</unitDistance>
|
||||
<unitSpeed>kn</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>Coastal Marine Zones</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>MA.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>
|
||||
|
||||
<!-- 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 svs -->
|
||||
<!-- 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:
|
||||
Placed Basis Section at the top to come in line with SVR templates
|
||||
Added Satellite Imagery to Basis Section
|
||||
Removed Severe and Strong T-storm selections with Thunderstorm in Event Type Section
|
||||
Thunderstorm Severity will be determined by selections in Threat Section
|
||||
Added Shower...Cloud and Front to Event Type Section
|
||||
Added a Threat Section with selections for Wind...Hail and Waterspouts
|
||||
Changed the CTA Bullet names for easier parsing in the vm file
|
||||
Added Special Event option to Pathcast section
|
||||
Included Additional Report selection
|
||||
Placed CTA section at the bottom to come in line with SVR templates -->
|
||||
<bulletActionGroups>
|
||||
<bulletActionGroup>
|
||||
<bullets>
|
||||
<bullet bulletText="*********** SELECT A FOLLOWUP **********" bulletType="title"/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
<bulletActionGroup action="CAN" phen="MA" sig="W">
|
||||
<bullets>
|
||||
<!-- Added Volcano Information. Sites can comment out if they wish. -->
|
||||
<bullet bulletText="*********** CAN SELECTED **********" bulletType="title"/>
|
||||
<bullet bulletText=" ****EVENT TYPE SECTION****... " bulletType="title"/>
|
||||
<bullet bulletName="thunderstorm" bulletText="Thunderstorm" bulletGroup="eventType" parseString="THUNDERSTORM"/>
|
||||
<bullet bulletName="shower" bulletText="Shower" bulletGroup="eventType" parseString="SHOWER"/>
|
||||
<bullet bulletName="cloud" bulletText="Cloud" bulletGroup="eventType" parseString="CLOUD"/>
|
||||
<bullet bulletName="front" bulletText="Front" bulletGroup="eventType" parseString="FRONT"/>
|
||||
<!--
|
||||
<bullet bulletName="volcano" bulletText="Volcano" bulletGroup="eventType" parseString="VOLCANO"/>
|
||||
-->
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" *****END OF WARNING STATEMENTS*****..." bulletType="title"/>
|
||||
<bullet bulletName="weakenedWarnEnd" bulletText="Weakened Storms" bulletGroup="windThreat"/>
|
||||
<bullet bulletName="movedWarnEnd" bulletText="Storms out of area" bulletGroup="windThreat"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<!--
|
||||
<bullet bulletText=" ****Volcano Section****...(For Headline) " bulletType="title"/>
|
||||
<bullet bulletName="ashfall" bulletText="Ashfall" parseString="ASHFALL"/>
|
||||
<bullet bulletName="debrisFlow" bulletText="Lahar/Debris flow" parseString="A TORRENT OF MUD"/>
|
||||
-->
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
<bulletActionGroup action="EXP" phen="MA" sig="W">
|
||||
<bullets>
|
||||
<!-- Added Volcano Information. Sites can comment out if they wish. -->
|
||||
<bullet bulletText="*********** EXP SELECTED **********" bulletType="title"/>
|
||||
<bullet bulletText=" ****EVENT TYPE SECTION****... " bulletType="title"/>
|
||||
<bullet bulletName="thunderstorm" bulletText="Thunderstorm" bulletGroup="eventType" parseString="THUNDERSTORM"/>
|
||||
<bullet bulletName="shower" bulletText="Shower" bulletGroup="eventType" parseString="SHOWER"/>
|
||||
<bullet bulletName="cloud" bulletText="Cloud" bulletGroup="eventType" parseString="CLOUD"/>
|
||||
<bullet bulletName="front" bulletText="Front" bulletGroup="eventType" parseString="FRONT"/>
|
||||
<!--
|
||||
<bullet bulletName="volcano" bulletText="Volcano" bulletGroup="eventType" parseString="VOLCANO"/>
|
||||
-->
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" *****END OF WARNING STATEMENTS*****..." bulletType="title"/>
|
||||
<bullet bulletName="weakenedWarnEnd" bulletText="Weakened Storms" bulletGroup="windThreat"/>
|
||||
<bullet bulletName="movedWarnEnd" bulletText="Storms out of area" bulletGroup="windThreat"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<!--
|
||||
<bullet bulletText=" ****Volcano Section****...(For Headline) " bulletType="title"/>
|
||||
<bullet bulletName="ashfall" bulletText="Ashfall" parseString="ASHFALL"/>
|
||||
<bullet bulletName="debrisFlow" bulletText="Lahar/Debris flow" parseString="A TORRENT OF MUD"/>
|
||||
-->
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
<bulletActionGroup action="CON" phen="MA" sig="W">
|
||||
<bullets>
|
||||
<!-- Added Volcano Information. Sites can comment out if they wish. -->
|
||||
<bullet bulletText=" *****BASIS SECTION*****...(Choose 1) " bulletType="title"/>
|
||||
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="warnBasis" bulletDefault="true" parseString="SOURCE...RADAR"/>
|
||||
<bullet bulletName="marineSpotter" bulletText="Marine weather spotters reported" bulletGroup="warnBasis" parseString="SOURCE...MARINE WEATHER SPOTTER"/>
|
||||
<bullet bulletName="mariner" bulletText="Mariner reported" bulletGroup="warnBasis" parseString="SOURCE...MARINER"/>
|
||||
<bullet bulletName="public" bulletText="Public reported" bulletGroup="warnBasis" parseString="SOURCE...PUBLIC"/>
|
||||
<bullet bulletName="satellite" bulletText="Satellite imagery indicated" bulletGroup="warnBasis" parseString="SOURCE...SATELLITE IMAGERY"/>
|
||||
<bullet bulletName="pilot" bulletText="Pilot reported" bulletGroup="warnBasis" parseString="SOURCE...PILOT"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" ****EVENT TYPE SECTION****...(Choose 1) " bulletType="title"/>
|
||||
<bullet bulletName="thunderstorm" bulletText="Thunderstorm" bulletGroup="eventType" bulletDefault="true" parseString="THUNDERSTORM"/>
|
||||
<bullet bulletName="shower" bulletText="Shower" bulletGroup="eventType" parseString="SHOWER"/>
|
||||
<bullet bulletName="cloud" bulletText="Cloud" bulletGroup="eventType" parseString="CLOUD"/>
|
||||
<bullet bulletName="front" bulletText="Front" bulletGroup="eventType" parseString="FRONT"/>
|
||||
<!--
|
||||
<bullet bulletName="volcano" bulletText="Volcano" bulletGroup="eventType" parseString="VOLCANO"/>
|
||||
-->
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="****THREAT SECTION****..." bulletType="title"/>
|
||||
<bullet bulletText=" ****Wind Section****...(Choose 1 if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="34ktWind" bulletText="Strong winds 34 knots or greater" bulletGroup="windThreat" bulletDefault="true" parseString="WIND...>34KTS"/>
|
||||
<bullet bulletName="40ktWind" bulletText="Strong winds to 40 knots" bulletGroup="windThreat" parseString="WIND...40KTS"/>
|
||||
<bullet bulletName="40ktplusWind" bulletText="Strong winds to nearly 50 knots" bulletGroup="windThreat" parseString="WIND...49KTS"/>
|
||||
<bullet bulletName="50ktWind" bulletText="Dangerous winds in excess of 50 knots" bulletGroup="windThreat" parseString="WIND...50KTS"/>
|
||||
<bullet bulletName="65ktWind" bulletText="Dangerous winds in excess of 65 knots" bulletGroup="windThreat" parseString="WIND...65KTS"/>
|
||||
<bullet bulletText=" ****Hail Section****...(Choose 1 if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="smallHail" bulletText="Small Hail" bulletGroup="hailThreat" parseString="<.75"/>
|
||||
<bullet bulletName="largeHail" bulletText="Large Hail" bulletGroup="hailThreat" parseString=">.75"/>
|
||||
<bullet bulletName="destructiveHail" bulletText="Large Destructive Hail" bulletGroup="hailThreat" parseString=">2.0"/>
|
||||
<bullet bulletText=" ****Waterspout Section****...(Choose 1 if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="sightedSpout" bulletText="Waterspouts sighted" bulletGroup="wSpout" parseString="WATERSPOUT...OBSERVED"/>
|
||||
<bullet bulletName="possibleSpout" bulletText="Waterspouts possible" bulletGroup="wSpout" parseString="WATERSPOUT...POSSIBLE"/>
|
||||
<!--
|
||||
<bullet bulletText=" ****Volcano Section****...(Choose if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="ashfall" bulletText="Ashfall" parseString="ASHFALL"/>
|
||||
<bullet bulletName="debrisFlow" bulletText="Lahar/Debris flow" parseString="A TORRENT OF MUD"/>
|
||||
-->
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="****** ADDITIONAL REPORTS *******" bulletType="title"/>
|
||||
<bullet bulletName="addlRpt" bulletText="Select to include additional damage information..."/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Optional Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" ****** CALLS TO ACTION (CHOOSE 1 OR MORE) ****** " bulletType="title"/>
|
||||
<bullet bulletName="genericCTA" bulletText="As thunderstorms move over the water.." parseString="OVER THE WATER...BOATERS CAN EXPECT"/>
|
||||
<bullet bulletName="gustyWindsCTA" bulletText="Mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES..."/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Mariners can expect cta with hail/wind speeds" parseString="MARINERS CAN EXPECT WIND GUSTS"/>
|
||||
<bullet bulletName="nonThunderstormCTA" bulletText="Non thunderstorm winds - mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES"/>
|
||||
<bullet bulletName="waterspoutCTA" bulletText="Thunderstorms can produce waterspouts" parseString="THUNDERSTORMS CAN PRODUCE SUDDEN WATERSPOUTS"/>
|
||||
<bullet bulletName="lightningCTA" bulletText="Frequent lightning" parseString="FREQUENT LIGHTNING IS OCCURRING WITH THIS STORM"/>
|
||||
<bullet bulletName="reportCTA" bulletText="Report severe wx" parseString="REPORT SEVERE WEATHER TO THE COAST GUARD OR NEAREST LAW ENFORCEMENT AGENCY"/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
<bulletActionGroup action="COR" phen="MA" sig="W">
|
||||
<bullets>
|
||||
<!-- Added Volcano Information. Sites can comment out if they wish. -->
|
||||
<bullet bulletText=" *****BASIS SECTION*****...(Choose 1) " bulletType="title"/>
|
||||
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="warnBasis" bulletDefault="true" parseString="SOURCE...RADAR"/>
|
||||
<bullet bulletName="marineSpotter" bulletText="Marine weather spotters reported" bulletGroup="warnBasis" parseString="SOURCE...MARINE WEATHER SPOTTER"/>
|
||||
<bullet bulletName="mariner" bulletText="Mariner reported" bulletGroup="warnBasis" parseString="SOURCE...MARINER"/>
|
||||
<bullet bulletName="public" bulletText="Public reported" bulletGroup="warnBasis" parseString="SOURCE...PUBLIC"/>
|
||||
<bullet bulletName="satellite" bulletText="Satellite imagery indicated" bulletGroup="warnBasis" parseString="SOURCE...SATELLITE IMAGERY"/>
|
||||
<bullet bulletName="pilot" bulletText="Pilot reported" bulletGroup="warnBasis" parseString="SOURCE...PILOT"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" ****EVENT TYPE SECTION****...(Choose 1) " bulletType="title"/>
|
||||
<bullet bulletName="thunderstorm" bulletText="Thunderstorm" bulletGroup="eventType" bulletDefault="true" parseString="THUNDERSTORM"/>
|
||||
<bullet bulletName="shower" bulletText="Shower" bulletGroup="eventType" parseString="SHOWER"/>
|
||||
<bullet bulletName="cloud" bulletText="Cloud" bulletGroup="eventType" parseString="CLOUD"/>
|
||||
<bullet bulletName="front" bulletText="Front" bulletGroup="eventType" parseString="FRONT"/>
|
||||
<!--
|
||||
<bullet bulletName="volcano" bulletText="Volcano" bulletGroup="eventType" parseString="VOLCANO"/>
|
||||
-->
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="****THREAT SECTION****..." bulletType="title"/>
|
||||
<bullet bulletText=" ****Wind Section****...(Choose 1 if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="34ktWind" bulletText="Strong winds 34 knots or greater" bulletGroup="windThreat" bulletDefault="true" parseString="WIND...>34KTS"/>
|
||||
<bullet bulletName="40ktWind" bulletText="Strong winds to 40 knots" bulletGroup="windThreat" parseString="WIND...40KTS"/>
|
||||
<bullet bulletName="40ktplusWind" bulletText="Strong winds to nearly 50 knots" bulletGroup="windThreat" parseString="WIND...49KTS"/>
|
||||
<bullet bulletName="50ktWind" bulletText="Dangerous winds in excess of 50 knots" bulletGroup="windThreat" parseString="WIND...50KTS"/>
|
||||
<bullet bulletName="65ktWind" bulletText="Dangerous winds in excess of 65 knots" bulletGroup="windThreat" parseString="WIND...65KTS"/>
|
||||
<bullet bulletText=" ****Hail Section****...(Choose 1 if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="smallHail" bulletText="Small Hail" bulletGroup="hailThreat" parseString="<.75"/>
|
||||
<bullet bulletName="largeHail" bulletText="Large Hail" bulletGroup="hailThreat" parseString=">.75"/>
|
||||
<bullet bulletName="destructiveHail" bulletText="Large Destructive Hail" bulletGroup="hailThreat" parseString=">2.0"/>
|
||||
<bullet bulletText=" ****Waterspout Section****...(Choose 1 if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="sightedSpout" bulletText="Waterspouts sighted" bulletGroup="wSpout" parseString="WATERSPOUT...OBSERVED"/>
|
||||
<bullet bulletName="possibleSpout" bulletText="Waterspouts possible" bulletGroup="wSpout" parseString="WATERSPOUT...POSSIBLE"/>
|
||||
<!--
|
||||
<bullet bulletText=" ****Volcano Section****...(Choose if applicable) " bulletType="title"/>
|
||||
<bullet bulletName="ashfall" bulletText="Ashfall" parseString="ASHFALL"/>
|
||||
<bullet bulletName="debrisFlow" bulletText="Lahar/Debris flow" parseString="A TORRENT OF MUD"/>
|
||||
-->
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="****** ADDITIONAL REPORTS *******" bulletType="title"/>
|
||||
<bullet bulletName="addlRpt" bulletText="Select to include additional damage information..."/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Optional Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" ****** CALLS TO ACTION (CHOOSE 1 OR MORE) ****** " bulletType="title"/>
|
||||
<bullet bulletName="genericCTA" bulletText="As thunderstorms move over the water.." parseString="OVER THE WATER...BOATERS CAN EXPECT"/>
|
||||
<bullet bulletName="gustyWindsCTA" bulletText="Mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES..."/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Mariners can expect cta with hail/wind speeds" parseString="MARINERS CAN EXPECT WIND GUSTS"/>
|
||||
<bullet bulletName="nonThunderstormCTA" bulletText="Non thunderstorm winds - mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES"/>
|
||||
<bullet bulletName="waterspoutCTA" bulletText="Thunderstorms can produce waterspouts" parseString="THUNDERSTORMS CAN PRODUCE SUDDEN WATERSPOUTS"/>
|
||||
<bullet bulletName="lightningCTA" bulletText="Frequent lightning" parseString="FREQUENT LIGHTNING IS OCCURRING WITH THIS STORM"/>
|
||||
<bullet bulletName="reportCTA" bulletText="Report severe wx" parseString="REPORT SEVERE WEATHER TO THE COAST GUARD OR NEAREST LAW ENFORCEMENT AGENCY"/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
</warngenConfig>
|
|
@ -5,6 +5,7 @@
|
|||
## VERSION AWIPS II 1.0 -- 2-06-2013 OB13.2.1-5 ##
|
||||
## EDITED EVAN BOOKBINDER 2-25-13 FOR IBW 2013 ##
|
||||
## EDITED PHIL KURIMSKI 5-20-13 FOR UPDATED IMPACT STATEMENTS ##
|
||||
## EDITED PHIL KURIMSKI 9-17-13 FOR SMW IMPACT STATEMENTS ##
|
||||
################################################################
|
||||
##
|
||||
################################################################
|
||||
|
@ -15,6 +16,7 @@
|
|||
##SET SOME INITIAL VARIABLES
|
||||
#set ($svrimpact = "")
|
||||
#set ($torimpact = "")
|
||||
#set ($smwimpact = "")
|
||||
################################################################
|
||||
## First create the Impact Statements for the SVR template
|
||||
################################################################
|
||||
|
@ -107,6 +109,10 @@
|
|||
#elseif(${phenomena}=="TO")
|
||||
#set ($svrimpact = "")
|
||||
#end
|
||||
################################################################
|
||||
## Finally create the Impact Statements for the SMW template
|
||||
################################################################
|
||||
#set($smwimpact = "OVERTURNED AND CAPSIZED BOATS.")
|
||||
############################################################################
|
||||
## End of File
|
||||
############################################################################
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
################################################################
|
||||
## TORNADO WARNING TEMPLATE ##
|
||||
## FOR CR IMPACT BASED TOR INITIATIVE ##
|
||||
## CREATED BY PHIL KURIMSKI - WFO DTX ##
|
||||
## VERSION AWIPS II 1.0 -- 2-21-2012 OB12.1.1-1 ##
|
||||
## VERSION AWIPS II 1.1 -- 2-29-2012 OB12.2.1-4 ##
|
||||
## VERSION AWIPS II 1.2 -- 4-20-2012 ##
|
||||
## BY QINGLU LIN 7-31-2012 DR 15217 use roundAndPad ##
|
||||
## VERSION AWIPS II 1.3 -- 2-04-2012 OB13.2.1-5 impact stmts ##
|
||||
## VERSION AWIPS II 1.4 -- Bookbinder 2/22/13 2013 IBW Changes##
|
||||
## VERSION AWIPS II 1.5 -- Kurimski 5/20/13 Addl IBW Changes ##
|
||||
################################################################
|
||||
##########################################################
|
||||
## TORNADO WARNING TEMPLATE ##
|
||||
## FOR CR IMPACT BASED TOR INITIATIVE ##
|
||||
## CREATED BY PHIL KURIMSKI - WFO DTX ##
|
||||
## UPDATED -- 2-04-2012 OB13.2.1-5 impact stmts ##
|
||||
## UPDATED -- Bookbinder 2/22/13 2013 IBW Changes ##
|
||||
## UPDATED -- Kurimski 5/20/13 Addl IBW Changes ##
|
||||
## UPDATED -- Kurimski 9/17/13 Tor Emer Headline ##
|
||||
## UPDATED -- Bookbinder 9/18/2013 implement config.vm ##
|
||||
##########################################################
|
||||
## Commented out Impact statements Feb 2013 and created file to
|
||||
## be parsed into the template called impactStatements.vm
|
||||
## Changes to the impact statements can be made to this file
|
||||
|
@ -17,6 +15,7 @@
|
|||
################################################################
|
||||
## ESTABLISH SOME INITIAL VARIABLES ############################
|
||||
################################################################
|
||||
#parse("config.vm")
|
||||
#set($preAmble = "")
|
||||
#set($hailSize = 0)
|
||||
#set($reportType = "A TORNADO WAS REPORTED")
|
||||
|
@ -201,14 +200,13 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#end
|
||||
|
||||
##########################################################################
|
||||
### TORNADO EMERGENCY as a Headline...can be implemented at a later date #
|
||||
### TORNADO EMERGENCY Headline #
|
||||
##########################################################################
|
||||
#*
|
||||
#if(${list.contains(${bullets}, "torEmergency")})
|
||||
...TORNADO EMERGENCY FOR !** EDIT LOCATION(S) **!...
|
||||
|
||||
#end
|
||||
*#
|
||||
|
||||
#headline(${officeLoc}, ${backupSite})
|
||||
|
||||
##################
|
||||
|
@ -446,12 +444,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...${reportType} ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
#if(${stormType} == "line")
|
||||
...AND ARE NEARLY STATIONARY.
|
||||
#else
|
||||
|
@ -521,10 +520,10 @@ THIS IS A TEST MESSAGE. ##
|
|||
##############################################
|
||||
#if(${list.contains(${bullets}, "specialEvent")})
|
||||
#if(${stormType} == "line")
|
||||
EVERYONE AT !**event/venue name or location**! ARE IN THE PATH OF THESE STORMS AND SHOULD PREPARE FOR IMMINENT DANGEROUS AND POTENTIALLY LIFE THREATENING WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
THOSE ATTENDING !**event/venue name or location**! ARE IN THE PATH OF THESE STORMS AND SHOULD PREPARE FOR IMMINENT DANGEROUS AND POTENTIALLY LIFE THREATENING WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
|
||||
#else
|
||||
EVERYONE AT !**event/venue name or location**! ARE IN THE PATH OF THIS STORM AND SHOULD PREPARE FOR IMMINENT DANGEROUS AND POTENTIALLY LIFE THREATENING WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
THOSE ATTENDING !**event/venue name or location**! ARE IN THE PATH OF THIS STORM AND SHOULD PREPARE FOR IMMINENT DANGEROUS AND POTENTIALLY LIFE THREATENING WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
|
||||
#end
|
||||
#end
|
||||
|
|
|
@ -8,11 +8,25 @@
|
|||
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Added new areaSource objects
|
||||
Phil Kurimski 02-04-2013 OB13.2.1-5 Changed Sig Tor to Considerable
|
||||
Phil Kurimski 05-20-2013 Added selection for very weak tornadoes and landspouts
|
||||
Phil Kurimski 05-20-2013 Added selection for very weak tornadoes and landspouts
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -114,7 +128,7 @@
|
|||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** CALLS TO ACTION (CHOOSE 1 OR MORE) **********" bulletType="title"/>
|
||||
<bullet bulletName="torEmergencyCTA" bulletText="**TOR EMERGENCY CTA** (CATASTROPHIC Tag use only)" parseString="TORNADO EMERGENCY"/>
|
||||
<bullet bulletName="replacesSVRCTA" bulletText="TOR Replaces Severe Thunderstorm Warning"/>
|
||||
<bullet bulletName="replacesSVRCTA" bulletText="TOR Replaces Severe Thunderstorm Warning" parseString="TORNADO WARNING REPLACES THE SEVERE"/>
|
||||
<!-- There are two "default" safety rules. The first...which will probably be used by most offices...includes safety rules for mobile homes. The second...which is commented out...is for large urban areas that do not have mobile homes. If you wish to switch defaults or provide both options, remove comment tags as necessary and adjust the bulletDefault="true" as appropriate if both options are allowed -->
|
||||
<bullet bulletName="defaultMobileCTA" bulletText="Default safety rules - includes mobile homes" parseString="IF IN A MOBILE HOME...A VEHICLE OR OUTDOORS" bulletDefault="true" bulletGroup="cta1"/>
|
||||
<bullet bulletName="defaultUrbanCTA" bulletText="Default safety rules for urban - no mobile homes" parseString="IF IN A VEHICLE OR OUTDOORS" bulletGroup="cta1"/>
|
||||
|
@ -178,15 +192,14 @@
|
|||
<bullet bulletName="extraReportTornado" bulletText="Select to include additional tornado/damage information..."/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="************ LOCATIONS IMPACTED **************" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="group4" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="group4" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="group4" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="group4" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** CALLS TO ACTION (CHOOSE 1 OR MORE) **********" bulletType="title"/>
|
||||
<bullet bulletName="torEmergencyCTA" bulletText="**TOR EMERGENCY CTA** (CATASTROPHIC Tag use only)" parseString="TORNADO EMERGENCY"/>
|
||||
<bullet bulletName="replacesSVRCTA" bulletText="TOR Replaces Severe Thunderstorm Warning"/>
|
||||
<bullet bulletName="replacesSVRCTA" bulletText="TOR Replaces Severe Thunderstorm Warning" parseString="TORNADO WARNING REPLACES THE SEVERE"/>
|
||||
<!-- There are two "default" safety rules. The first...which will probably be used by most offices...includes safety rules for mobile homes. The second...which is commented out...is for large urban areas that do not have mobile homes. If you wish to switch defaults or provide both options, remove comment tags as necessary and adjust the bulletDefault="true" as appropriate if both options are allowed -->
|
||||
<bullet bulletName="defaultMobileCTA" bulletText="Default safety rules - includes mobile homes" parseString="IF IN A MOBILE HOME...A VEHICLE OR OUTDOORS" bulletDefault="true" bulletGroup="cta1"/>
|
||||
<!--<bullet bulletName="defaultUrbanCTA" bulletText="Default safety rules for urban - no mobile homes" parseString="IF IN A VEHICLE OR OUTDOORS" bulletGroup="cta1"/> -->
|
||||
|
@ -203,156 +216,5 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pathcastConfig>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<distanceThreshold>8.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>10</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>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
</warngenConfig>
|
||||
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
#####################################################
|
||||
## MARINE WEATHER STATEMENT STANDALONE ##
|
||||
## CREATED BY PHIL KURIMSKI - WFO DTX ##
|
||||
## VERSION AWIPS II 1.0 -- FEB 24 2011 OB11.2 ##
|
||||
## VERSION AWIPS II 1.1 -- APR 14 2011 OB11.4 ##
|
||||
## VERSION AWIPS II 1.2 -- JUL 14 2011 OB11.7 ##
|
||||
## VERSION AWIPS II 1.3 -- SEP 22 2011 OB11.8 ##
|
||||
## VERSION AWIPS II 1.4 -- JAN 25 2012 OB12.1.1-1 ##
|
||||
## Added coding for no headline in Version 1.4 ##
|
||||
## VERSION AWIPS II 1.5 -- MAR 2 2012 OB12.2.1-4 ##
|
||||
## Added coding for dense fog in Version 1.5 ##
|
||||
## Evan Bookbinder 4-25-2012 for OB 12.3.1 (MND) ##
|
||||
## Phil Kurimski -- SEP 10 2012 OB12.9.1-12 ##
|
||||
## Phil Kurimski FEB 07 2013 OB13.2.1-5 ##
|
||||
## Phil Kurimski -- FEB 07 2013 OB13.2.1-5 ##
|
||||
## Phil Kurimski -- SEP 17 2013 OB13.5.2-4 ##
|
||||
## Evan Bookbinder -- SEP 18 2013 Implemented config.vm
|
||||
#####################################################
|
||||
#parse("config.vm")
|
||||
## Set the visibility variable to be used for dense fog
|
||||
## This variable can be changed by the local office and will
|
||||
## set the visibility in the 3rd bullet and dense fog CTA
|
||||
|
@ -269,12 +266,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
#end
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report} ${reportLocation} ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${marineStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY.
|
||||
#else
|
||||
...MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} KNOTS.
|
||||
|
@ -304,7 +302,7 @@ THIS IS A TEST MESSAGE. ##
|
|||
##############################################
|
||||
|
||||
#if(${list.contains(${bullets}, "specialEvent")})
|
||||
EVERYONE AT !**event/venue name or location**! ARE IN THE PATH OF ${specialEvent} AND SHOULD PREPARE FOR IMMINENT DANGEROUS WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
THOSE ATTENDING !**event/venue name or location**! ARE IN THE PATH OF ${specialEvent} AND SHOULD PREPARE FOR IMMINENT DANGEROUS WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
|
||||
#end
|
||||
#####################
|
||||
|
@ -327,24 +325,49 @@ PRECAUTIONARY/PREPAREDNESS ACTIONS...
|
|||
##
|
||||
|
||||
#if(${list.contains(${bullets}, "genericCTA")})
|
||||
#if(${stormType} == "line")
|
||||
MARINERS CAN EXPECT GUSTY WINDS UP TO 33 KNOTS...LOCALLY HIGHER WAVES...AND LIGHTNING STRIKES. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
MARINERS CAN EXPECT GUSTY WINDS UP TO 33 KNOTS...LOCALLY HIGHER WAVES...AND LIGHTNING STRIKES. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY UNTIL THIS STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "heavyRainCTA")})
|
||||
#if(${stormType} == "line")
|
||||
MARINERS CAN EXPECT GUSTY WINDS UP TO 33 KNOTS...LOCALLY HIGHER WAVES...LIGHTNING STRIKES...AND HEAVY DOWNPOURS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
MARINERS CAN EXPECT GUSTY WINDS UP TO 33 KNOTS...LOCALLY HIGHER WAVES...LIGHTNING STRIKES...AND HEAVY DOWNPOURS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY UNTIL THIS STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "possibleSmwCTA")})
|
||||
#if(${stormType} == "line")
|
||||
THIS ${stormline} WILL LIKELY PRODUCE WINDS UP TO 33 KNOTS...AND COULD POSE A SERIOUS HAZARD FOR BOATERS. A SPECIAL MARINE WARNING MAY EVENTUALLY BE REQUIRED WHEN THESE STORMS REACH THE NEARSHORE WATERS. BOATERS SHOULD CONSIDER HEADING FOR SHORE BEFORE THESE STORMS ARRIVE.
|
||||
|
||||
#else
|
||||
THIS ${stormline} WILL LIKELY PRODUCE WINDS UP TO 33 KNOTS...AND COULD POSE A SERIOUS HAZARD FOR BOATERS. A SPECIAL MARINE WARNING MAY EVENTUALLY BE REQUIRED WHEN THIS STORM REACHES THE NEARSHORE WATERS. BOATERS SHOULD CONSIDER HEADING FOR SHORE BEFORE THE STORM ARRIVES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "likelySmwCTA")})
|
||||
#if(${stormType} == "line")
|
||||
THIS ${stormline} WILL LIKELY PRODUCE WINDS IN EXCESS OF 34 KNOTS...AND IS LIKELY TO POSE A SERIOUS HAZARD FOR BOATERS. A SPECIAL MARINE WARNING WILL LIKELY BE REQUIRED WHEN THESE STORMS REACH THE NEARSHORE WATERS. BOATERS SHOULD CONSIDER HEADING FOR SHORE BEFORE THESE STORMS ARRIVE.
|
||||
|
||||
#else
|
||||
THIS ${stormline} WILL LIKELY PRODUCE WINDS IN EXCESS OF 34 KNOTS...AND IS LIKELY TO POSE A SERIOUS HAZARD FOR BOATERS. A SPECIAL MARINE WARNING WILL LIKELY BE REQUIRED WHEN THIS STORM REACHES THE NEARSHORE WATERS. BOATERS SHOULD CONSIDER HEADING FOR SHORE BEFORE THE STORM ARRIVES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "lightningCTA")})
|
||||
#if(${stormType} == "line")
|
||||
INTENSE LIGHTNING IS OCCURRING WITH THESE STORMS. IF CAUGHT ON THE OPEN WATER STAY BELOW DECK IF POSSIBLE...KEEP AWAY FROM UNGROUNDED METAL OBJECTS.
|
||||
|
||||
#else
|
||||
INTENSE LIGHTNING IS OCCURRING WITH THIS STORM. IF CAUGHT ON THE OPEN WATER STAY BELOW DECK IF POSSIBLE...KEEP AWAY FROM UNGROUNDED METAL OBJECTS.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "reportCTA")})
|
||||
REPORT SEVERE WEATHER TO THE COAST GUARD OR NEAREST LAW ENFORCEMENT AGENCY. THEY WILL RELAY YOUR REPORT TO THE NATIONAL WEATHER SERVICE FORECAST OFFICE.
|
||||
|
|
|
@ -3,9 +3,22 @@
|
|||
Phil Kurimski WFO DTX 27 February 2012
|
||||
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Added new areaSource objects
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_MARINE.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>nmi</unitDistance>
|
||||
|
@ -76,7 +89,7 @@
|
|||
<bulletActionGroup action="NEW" phen="MA" sig="S">
|
||||
<bullets>
|
||||
<bullet bulletText=" *****BASIS SECTION*****...(Choose 1) " bulletType="title"/>
|
||||
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="group5" bulletDefault="true" parseString="NATIONAL WEATHER SERVICE DOPPLER RADAR INDICATED"/>
|
||||
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="group5" bulletDefault="true" parseString="DOPPLER RADAR INDICATED"/>
|
||||
<bullet bulletName="marineSpotter" bulletText="Marine weather spotters reported" bulletGroup="group5" parseString="MARINE WEATHER SPOTTERS REPORTED"/>
|
||||
<bullet bulletName="mariner" bulletText="Mariner reported" bulletGroup="group5" parseString="A MARINER REPORTED"/>
|
||||
<bullet bulletName="public" bulletText="Public reported" bulletGroup="group5" parseString="THE PUBLIC REPORTED"/>
|
||||
|
@ -116,7 +129,7 @@
|
|||
<bulletActionGroup action="COR" phen="MA" sig="S">
|
||||
<bullets>
|
||||
<bullet bulletText=" *****BASIS SECTION*****...(Choose 1) " bulletType="title"/>
|
||||
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="group5" bulletDefault="true" parseString="NATIONAL WEATHER SERVICE DOPPLER RADAR INDICATED"/>
|
||||
<bullet bulletName="doppler" bulletText="Doppler radar indicated" bulletGroup="group5" bulletDefault="true" parseString="DOPPLER RADAR INDICATED"/>
|
||||
<bullet bulletName="marineSpotter" bulletText="Marine weather spotters reported" bulletGroup="group5" parseString="MARINE WEATHER SPOTTERS REPORTED"/>
|
||||
<bullet bulletName="mariner" bulletText="Mariner reported" bulletGroup="group5" parseString="A MARINER REPORTED"/>
|
||||
<bullet bulletName="public" bulletText="Public reported" bulletGroup="group5" parseString="THE PUBLIC REPORTED"/>
|
||||
|
@ -139,8 +152,7 @@
|
|||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
|
@ -156,147 +168,4 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- Default areaSource object to generate zone based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>MarineZones</areaSource>
|
||||
<inclusionPercent>0</inclusionPercent>
|
||||
<inclusionAndOr>AND</inclusionAndOr>
|
||||
<inclusionArea>0</inclusionArea>
|
||||
<areaField>NAME</areaField>
|
||||
<parentAreaField>NAME</parentAreaField>
|
||||
<areaNotationField>NAME</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<fipsField>ID</fipsField>
|
||||
<pointField>NAME</pointField>
|
||||
<sortBy>
|
||||
<sort>parent</sort>
|
||||
</sortBy>
|
||||
<pointFilter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</pointFilter>
|
||||
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
|
||||
</areaSource>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,C,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>WARNGENLEV</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,C,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>WARNGENLEV</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pathcastConfig>
|
||||
<!-- the withinPolygon variable set to false will bring in points
|
||||
outside of the polygon which is necessary for the pathcast to reference
|
||||
points that are near the water but not on the water -->
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<withinPolygon>false</withinPolygon>
|
||||
<distanceThreshold>10.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>4</maxResults>
|
||||
<maxGroup>8</maxGroup>
|
||||
<pointField>Name</pointField>
|
||||
<type>AREA</type>
|
||||
<areaField>Name</areaField>
|
||||
<parentAreaField>Name</parentAreaField>
|
||||
<areaNotationField>Name</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pathcastConfig>
|
||||
|
||||
<pointSource variable="locationList">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>20</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2,3,4" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>20</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="3,4" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
</pointSource>
|
||||
|
||||
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</pointSource>
|
||||
<areaSource>MarineZones</areaSource>
|
||||
<parentAreaSource>MarineZones</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
</warngenConfig>
|
||||
|
|
|
@ -6,9 +6,13 @@
|
|||
## Evan Bookbinder 4-25-2012 for OB 12.3.1 (MND) ##
|
||||
## Phil Kurimski SEP 10 2012 OB12.9.1-12 ##
|
||||
## Phil Kurimski FEB 07 2013 OB13.2.1-5 ##
|
||||
######################################################
|
||||
## Phil Kurimski SEP 16 2013 OB13.5.2-4 ##
|
||||
## Evan Bookbinder SEP 18 2013 Implemented config.vm ##
|
||||
#########################################################
|
||||
#parse("config.vm")
|
||||
##########################################
|
||||
## Set null variables used in the template
|
||||
#########################################
|
||||
##########################################
|
||||
#set($capable = "")
|
||||
#set($hailType = "")
|
||||
#if(${productClass}=="O")
|
||||
|
@ -153,12 +157,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
#end
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report} ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${marineStationary} || ${stationary})
|
||||
. NEARLY STATIONARY.
|
||||
#else
|
||||
MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} KNOTS.
|
||||
|
|
|
@ -4,8 +4,22 @@
|
|||
Customized by Tom Birchard WFO DTX 23 September 2011 for Ashfall
|
||||
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Added new areaSource objects
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_MARINE.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>nmi</unitDistance>
|
||||
<unitSpeed>kn</unitSpeed>
|
||||
|
@ -124,8 +138,7 @@
|
|||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
|
@ -136,147 +149,4 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- Default areaSource object to generate zone based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>MarineZones</areaSource>
|
||||
<inclusionPercent>0</inclusionPercent>
|
||||
<inclusionAndOr>AND</inclusionAndOr>
|
||||
<inclusionArea>0</inclusionArea>
|
||||
<areaField>NAME</areaField>
|
||||
<parentAreaField>NAME</parentAreaField>
|
||||
<areaNotationField>NAME</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<fipsField>ID</fipsField>
|
||||
<pointField>NAME</pointField>
|
||||
<sortBy>
|
||||
<sort>parent</sort>
|
||||
</sortBy>
|
||||
<pointFilter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</pointFilter>
|
||||
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
|
||||
</areaSource>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,C,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>WARNGENLEV</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,C,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>WARNGENLEV</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pathcastConfig>
|
||||
<!-- the withinPolygon variable set to false will bring in points
|
||||
outside of the polygon which is necessary for the pathcast to reference
|
||||
points that are near the water but not on the water -->
|
||||
<withinPolygon>false</withinPolygon>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<distanceThreshold>10.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>4</maxResults>
|
||||
<maxGroup>8</maxGroup>
|
||||
<pointField>Name</pointField>
|
||||
<type>AREA</type>
|
||||
<areaField>Name</areaField>
|
||||
<parentAreaField>Name</parentAreaField>
|
||||
<areaNotationField>Name</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pathcastConfig>
|
||||
|
||||
<pointSource variable="locationList">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>20</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2,3,4" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>20</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="3,4" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
</pointSource>
|
||||
|
||||
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</pointSource>
|
||||
<areaSource>MarineZones</areaSource>
|
||||
<parentAreaSource>MarineZones</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
</warngenConfig>
|
||||
|
|
|
@ -1,15 +1,22 @@
|
|||
<!--
|
||||
CREATED 1-26-2012 BY EVAN BOOKBINDER
|
||||
UPDATED 9-16-2013 BY EVAN BOOKBINDER
|
||||
|
||||
FOR EACH DATABASE TABLE IMPORTED USING THE importMarkersInfo.sh SCRIPT,
|
||||
THERE WILL BE TWO pointSource OBJECTS CREATED BELOW.
|
||||
THERE WILL BE **TWO** pointSource OBJECTS CREATED BELOW.
|
||||
ONLY THE pointSource variable (unique to each object) AND
|
||||
pointSource attribute (the tablename created from importMarkersInfo.sh)
|
||||
SHOULD BE MODIFIED.
|
||||
|
||||
EXAMPLE FOR INTERSTATE 435 in the Kansas City Metro follows:
|
||||
|
||||
|
||||
The point source variables i435mm & i435mmid are used in the mileMarkers.vm
|
||||
file. The pointSource attribute must match whatever database table you created
|
||||
with the importMarkersInfo.sh script. In this case our database table for
|
||||
Interstate 435 was "i435".
|
||||
|
||||
Once you're done adding the pointSource pairs, additional configuration in
|
||||
mileMarkers.vm is required
|
||||
|
||||
<pointSource variable="i435mm">
|
||||
<pointSource>i435</pointSource>
|
||||
<pointField>NAME</pointField>
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
######################################################
|
||||
## 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 ##
|
||||
## RECENT VERSION HISTORY:
|
||||
## VERSION AWIPS II 1.4 - SEP 13 2012 OB12.9.1-12 ##
|
||||
## to add Flash Flood Emergency Headline ##
|
||||
## VERSION AWIPS II 1.5 - FEB 08 2013 OB13.2.1-5 ##
|
||||
## to update CTA statements ##
|
||||
## VERSION AWIPS II 1.6 - JUN 26 2013 OB13.4.1 ##
|
||||
## to add "U" Unknown servity ##
|
||||
## VERSION AWIPS II 1.7 - SEP 17 2013 OB13.5.2-4 ##
|
||||
## Phil Kurimski - Added FFW Emergency Headline ##
|
||||
######################################################
|
||||
##
|
||||
#parse("config.vm")
|
||||
#if(${action} == "EXT")
|
||||
#set($starttime = "000000T0000Z")
|
||||
#set($extend = true)
|
||||
|
@ -42,6 +42,7 @@
|
|||
#set($ruleofthumb = "")
|
||||
#set($sitespecCTA = "")
|
||||
#set($volcanoCTA = "")
|
||||
#set($emergencyHeadline = "!** ENTER LOCATION **!")
|
||||
#if(${list.contains(${bullets}, "levee")})
|
||||
#set($ic = "DM")
|
||||
#set($hycType = "A LEVEE FAILURE")
|
||||
|
@ -96,78 +97,9 @@
|
|||
#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.
|
||||
## information. Sites can include their information in this file.
|
||||
#########################################################################
|
||||
##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}
|
||||
|
@ -189,15 +121,14 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
|
||||
|
||||
#end
|
||||
#############################################################################
|
||||
## Flash Flood Emergency Headline...can be implemented at a later date #
|
||||
#############################################################################
|
||||
#*
|
||||
####################################
|
||||
## Flash Flood Emergency Headline #
|
||||
####################################
|
||||
#if(${list.contains(${bullets}, "ffwEmergency")} )
|
||||
...FLASH FLOOD EMERGENCY FOR !** LOCATION **!...
|
||||
...FLASH FLOOD EMERGENCY FOR ${emergencyHeadline}...
|
||||
|
||||
#end
|
||||
*#
|
||||
|
||||
#headlineext(${officeLoc}, ${backupSite}, ${extend})
|
||||
|
||||
* ##
|
||||
|
@ -248,7 +179,7 @@ THIS IS A TEST MESSAGE. ##
|
|||
## 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 !**ENTER LOCATION**!. SEEK HIGHER GROUND NOW! THIS IS A POTENTIALLY LIFE THREATENING SITUATION!" 2 2)
|
||||
#wrapText("THIS IS A FLASH FLOOD EMERGENCY FOR ${emergencyHeadline}. SEEK HIGHER GROUND NOW!" 2 2)
|
||||
|
||||
#end
|
||||
#set($phenomena = "FLASH FLOOD")
|
||||
|
|
|
@ -13,9 +13,22 @@
|
|||
Modified Phil Kurimski 02-05-2013 Reordered GUI selections to make more sense
|
||||
Added additional valid duration times
|
||||
Modified Evan Bookbinder 06-26-2013 Added "U" Unknown severity
|
||||
|
||||
Modified Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -178,9 +191,7 @@
|
|||
<!-- 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=""LOCATIONS","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"/>
|
||||
|
@ -250,13 +261,12 @@
|
|||
<!-- 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=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletText="****** CALLS TO ACTION (choose 1 or more) ******" 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="ffwEmergencyCTA" bulletText="**FLASH FLOOD EMERGENCY CTA**" parseString="FLASH FLOOD EMERGENCY"/>
|
||||
<bullet bulletName="actQuicklyCTA" bulletText="Act Quickly..." bulletDefault="true" parseString="HIGHER GROUND NOW. ACT QUICKLY TO PROTECT YOUR LIFE."/>
|
||||
<bullet bulletName="childSafetyCTA" bulletText="Child Safety..." parseString="KEEP CHILDREN AWAY FROM STORM DRAINS"/>
|
||||
|
@ -296,117 +306,6 @@
|
|||
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>
|
||||
|
||||
<!-- This section is required, but unused -->
|
||||
<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>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</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>
|
||||
|
||||
<!-- This section is required, but unused -->
|
||||
<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>
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
|
||||
<pointSource variable="riverdrainages">
|
||||
<pointSource>ffmp_basins</pointSource>
|
||||
<geometryDecimationTolerance>0.064</geometryDecimationTolerance>
|
||||
|
|
|
@ -8,8 +8,10 @@
|
|||
## Phil Kurimski -- SEP 23 2011 OB11.0.8-8 ##
|
||||
## Mike Rega -- MAY 03 2012 DR 14885 MND ##
|
||||
## Phil Kurimski -- FEB 08 2013 CTA stmnts ##
|
||||
## Phil Kurimski -- SEP 17 2013 FFW Emerg ##
|
||||
#####################################################
|
||||
##
|
||||
#parse("config.vm")
|
||||
#set($headline = "")
|
||||
## set reportType2 to a default value in case nothing is selected for site specific
|
||||
#set($reportType2 = "THE FAILURE OF")
|
||||
|
@ -22,6 +24,7 @@
|
|||
#set($sitespecCTA = "")
|
||||
#set($addInfo = "")
|
||||
#set($volcanoCTA = "")
|
||||
#set($emergencyHeadline = "!** ENTER LOCATION **!")
|
||||
#if(${list.contains(${bullets}, "levee")})
|
||||
#set($ic = "DM")
|
||||
#set($hycType = "A LEVEE FAILURE")
|
||||
|
@ -99,79 +102,9 @@
|
|||
#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.
|
||||
## information. Sites can include their information in this file.
|
||||
#########################################################################
|
||||
##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 ##
|
||||
####################################
|
||||
|
@ -197,7 +130,11 @@ ${ugcline}
|
|||
/${productClass}.${action}.${vtecOffice}.FF.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.${floodseverity}.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -226,6 +163,14 @@ ${endwarning}
|
|||
#if(${action}=="CON" || (${action}=="COR" && ${CORCAN}=="false"))
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE.##
|
||||
#end
|
||||
#####################################
|
||||
## Flash Flood Emergency Headline #
|
||||
#####################################
|
||||
#if(${list.contains(${bullets}, "ffwEmergency")})
|
||||
|
||||
...FLASH FLOOD EMERGENCY FOR ${emergencyHeadline}...
|
||||
|
||||
#end
|
||||
...A FLASH FLOOD WARNING ${headline}REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
|
||||
#headlineLocList(${areas} true true true false)
|
||||
|
@ -233,15 +178,7 @@ THIS IS A TEST MESSAGE.##
|
|||
|
||||
|
||||
########### 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
|
||||
#####################################################
|
||||
|
@ -271,6 +208,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
|
||||
#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 ${emergencyHeadline}. SEEK HIGHER GROUND NOW!
|
||||
|
||||
#end
|
||||
#set($phenomena = "FLASH FLOOD")
|
||||
#set($warningType = "WARNING")
|
||||
##########################################################################
|
||||
|
@ -412,7 +356,11 @@ ${ugclinecan}
|
|||
/${productClass}.CAN.${vtecOffice}.FF.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.${floodseverity}.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -438,28 +386,31 @@ ${ugcline}
|
|||
/${productClass}.CON.${vtecOffice}.FF.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.${floodseverity}.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE.##
|
||||
#end
|
||||
###################################
|
||||
## Flash Flood Emergency Headline #
|
||||
###################################
|
||||
#if(${list.contains(${bullets}, "ffwEmergency")})
|
||||
|
||||
...FLASH FLOOD EMERGENCY FOR ${emergencyHeadline}...
|
||||
|
||||
#end
|
||||
...A FLASH FLOOD WARNING ${headline}REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
|
||||
#headlineLocList(${areas} 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
|
||||
#####################################################
|
||||
|
@ -489,6 +440,13 @@ 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 ${emergencyHeadline}. SEEK HIGHER GROUND NOW!
|
||||
|
||||
#end
|
||||
#set($phenomena = "FLASH FLOOD")
|
||||
#set($warningType = "WARNING")
|
||||
##########################################################################
|
||||
|
@ -618,7 +576,11 @@ ${ugclinecan}
|
|||
/${productClass}.COR.${vtecOffice}.FF.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.${floodseverity}.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -645,28 +607,31 @@ ${ugcline}
|
|||
/${productClass}.COR.${vtecOffice}.FF.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
/00000.${floodseverity}.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE.##
|
||||
#end
|
||||
###################################
|
||||
## Flash Flood Emergency Headline #
|
||||
###################################
|
||||
#if(${list.contains(${bullets}, "ffwEmergency")})
|
||||
|
||||
...FLASH FLOOD EMERGENCY FOR ${emergencyHeadline}...
|
||||
|
||||
#end
|
||||
...A FLASH FLOOD WARNING ${headline}REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
|
||||
#headlineLocList(${areas} 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
|
||||
#####################################################
|
||||
|
@ -696,6 +661,13 @@ 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 ${emergencyHeadline}. SEEK HIGHER GROUND NOW!
|
||||
|
||||
#end
|
||||
#set($phenomena = "FLASH FLOOD")
|
||||
#set($warningType = "WARNING")
|
||||
##########################################################################
|
||||
|
|
|
@ -8,10 +8,24 @@
|
|||
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Added areaSource object
|
||||
Modified Phil Kurimski 02-05-2013 Reordered GUI selections to make more sense
|
||||
Modified Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -181,11 +195,9 @@
|
|||
<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 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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" 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"/>
|
||||
|
@ -256,11 +268,9 @@
|
|||
<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 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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" 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"/>
|
||||
|
@ -310,120 +320,6 @@
|
|||
|
||||
<trackEnabled>false</trackEnabled>
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>10</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>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
################################################################
|
||||
## SEVERE THUNDERSTORM WARNING TEMPLATE ##
|
||||
## CREATED BY EVAN BOOKBINDER - WFO EAX ##
|
||||
## VERSION HISTORY -- 3-24-2011 INITIAL OB11.2 REWRITE ##
|
||||
## 4-12-2011 OB11.4 MODIFICATIONS ##
|
||||
## 7-11-2011 OB11.7 MODIFICATIONS ##
|
||||
## 9-15-2011 OB11.8.0-8 PATHCAST/CITY ##
|
||||
## 11-04-2011 OB11.9-3 (DRs) ##
|
||||
## 2-24-2012 OB12.2.1 CLEANUP ##
|
||||
## BY QINGLU LIN 6-18-2012 DR 15043 use duration ##
|
||||
## RECENT VERSION HISTORY ##
|
||||
## BY QINGLU LIN 8-14-2012 DR 14493 use TMLtime ##
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to some ${variables}##
|
||||
## Mike Dangelo 2-4-2013 NWS Mets detected a svr ##
|
||||
## Evan Bookbinder 9-16-2013 Fixed CTA ##
|
||||
## Evan Bookbinder 9-18-2013 Implemented config.vm ##
|
||||
################################################################
|
||||
##
|
||||
#parse("config.vm")
|
||||
##SET SOME INITIAL VARIABLES
|
||||
#if(${stormType} == "line")
|
||||
#set($report = "A LINE OF SEVERE THUNDERSTORMS WAS REPORTED")
|
||||
|
@ -247,12 +244,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
#end
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report}${hailwind}. ${reportType2} LOCATED ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY. ${smallHail}
|
||||
#else
|
||||
...AND MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH. ${smallHail}
|
||||
|
@ -295,10 +293,9 @@ THE CORRECT LOCATIONS BULLET SELECTED **!.
|
|||
|
||||
#end
|
||||
## Uncomment below pull in mile marker info
|
||||
##parse("mileMarkers.vm")
|
||||
## #parse("mileMarkers.vm")
|
||||
## Uncomment below pull in point marker info
|
||||
##parse("pointMarkers.vm")
|
||||
## #pmarkers(${locpointsName},${locpointsGid}, "THE FOLLOWING", "VENUE", false)
|
||||
## #parse("pointMarkers.vm")
|
||||
|
||||
##
|
||||
##############################################
|
||||
|
@ -342,7 +339,7 @@ SEVERE THUNDERSTORMS PRODUCE DAMAGING WINDS...DESTRUCTIVE HAIL...DEADLY LIGHTNIN
|
|||
##
|
||||
#if(${list.contains(${bullets}, "canProduceTornadoesCTA")})
|
||||
#if(${stormType} == "line")
|
||||
DOPPLER RADAR HAS INDICATED SOME WEAK ROTATION WITHIN THESE STORMS. ALTHOUGH A TORNADO IS NOT IMMEDIATELY LIKELY...IF ONE IS SPOTTED...ACT QUICKLY AND MOVE TO A PLACE OF SAFETY IN A STURDY STRUCTURE...SUCH AS A BASEMENT OR SMALL INTERIOR
|
||||
DOPPLER RADAR HAS INDICATED SOME WEAK ROTATION WITHIN THESE STORMS. ALTHOUGH A TORNADO IS NOT IMMEDIATELY LIKELY...IF ONE IS SPOTTED...ACT QUICKLY AND MOVE TO A PLACE OF SAFETY IN A STURDY STRUCTURE...SUCH AS A BASEMENT OR SMALL INTERIOR ROOM.
|
||||
|
||||
#else
|
||||
DOPPLER RADAR HAS INDICATED SOME WEAK ROTATION WITHIN THIS STORM. ALTHOUGH A TORNADO IS NOT IMMEDIATELY LIKELY...IF ONE IS SPOTTED...ACT QUICKLY AND MOVE TO A PLACE OF SAFETY IN A STURDY STRUCTURE...SUCH AS A BASEMENT OR SMALL INTERIOR ROOM.
|
||||
|
@ -486,6 +483,7 @@ THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
|
|||
#printcoords(${areaPoly}, ${list})
|
||||
|
||||
#tml(${TMLtime}, ${timeFormat}, ${movementDirection}, ${movementInKnots}, ${eventLocation})
|
||||
|
||||
## UNCOMMENT 2 LINES BELOW IF PARTICIPATING IN THE WIND/HAIL TAG EXPERIMENT
|
||||
##
|
||||
##<L>${windhailTag}</L>
|
||||
|
|
|
@ -10,9 +10,24 @@
|
|||
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Create new areaSource objects
|
||||
Mike Dangelo 2-4-2013 Added commented bullet for METS DETECTED
|
||||
Phil Kurimski 09-16-2013 Fixed some spelling errors
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -104,16 +119,16 @@
|
|||
<bullet bulletName="softballHail" bulletText="Softball size hail (4 1/4")" bulletGroup="hailThreat" parseString="SOFTBALL SIZE"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="************ LOCATIONS IMPACTED **************" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="toggle4" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listofcities" bulletDefault="true" bulletText="Select for a list of cities" bulletGroup="toggle4"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listofcities" bulletDefault="true" bulletText="Select for a list of cities" bulletGroup="pcast"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="******** CALLS TO ACTION (CHOOSE 1 OR MORE) *********" bulletType="title"/>
|
||||
<bullet bulletName="torWatchCTA" bulletText="TOR SAFETY INFO Mandatory if SVR issued in TOR Watch" parseString="TORNADO WATCH IN EFFECT"/>
|
||||
<bullet bulletName="genericCTA" bulletText="Generic threat - standard CTA" bulletDefault="true" parseString="SEVERE THUNDERSTORMS PRODUCE"/>
|
||||
<bullet bulletName="canProduceTornadoesCTA" bulletText="Svr t-storms can produce tornadoes (no TOR watch in effect)" parseString="SOME WEAK ROTATION"/>
|
||||
<bullet bulletName="largeHailCTA" bulletText="Large Hail and Deadly Lightning" parseString="PREPARE IMMEDIATELY FOR LARGE HAIL"/>
|
||||
<bullet bulletName="veryLargeHailCTA" bulletText="Large DESTRUCTIVE Hail" parseString="LARGE DERSTRUCTIVE HAIL"/>
|
||||
<bullet bulletName="largeHailCTA" bulletText="Large Hail and Deadly Lightning" parseString="PREPARE IMMEDIATELY FOR LARGE HAIL AND DEADLY"/>
|
||||
<bullet bulletName="veryLargeHailCTA" bulletText="Large DESTRUCTIVE Hail" parseString="LARGE DESTRUCTIVE HAIL"/>
|
||||
<bullet bulletName="largeHailWindCTA" bulletText="Large Hail and Damaging Wind" parseString="LARGE HAIL AND DAMAGING WINDS"/>
|
||||
<bullet bulletName="historyHailCTA" bulletText="History of Producing Large Hail" parseString="HISTORY OF PRODUCING LARGE HAIL"/>
|
||||
<bullet bulletName="historyWindCTA" bulletText="History of Producing Wind Damage" parseString="HISTORY OF PRODUCING WIND DAMAGE"/>
|
||||
|
@ -146,10 +161,8 @@
|
|||
<bullet bulletName="80mphWind" bulletText="80 mph wind" bulletGroup="windThreat" parseString="80 MPH"/>
|
||||
<bullet bulletName="90mphWind" bulletText="90 mph wind" bulletGroup="windThreat" parseString="90 MPH"/>
|
||||
<bullet bulletName="100mphWind" bulletText="100 mph wind" bulletGroup="windThreat" parseString="100 MPH"/>
|
||||
<!--
|
||||
<bullet bulletName="pennyHail" bulletText="Penny size hail (3/4")" bulletGroup="hailThreat" parseString="PENNY SIZE"/>
|
||||
<bullet bulletName="nickelHail" bulletText="Nickel size hail (7/8")" bulletGroup="hailThreat" parseString="NICKEL SIZE"/>
|
||||
-->
|
||||
<bullet bulletName="quarterHail" bulletText="Quarter size hail (1")" bulletGroup="hailThreat" parseString="QUARTER SIZE"/>
|
||||
<bullet bulletName="halfdollarHail" bulletText="Half dollar size hail (1 1/4")" bulletGroup="hailThreat" parseString="HALF DOLLAR SIZE"/>
|
||||
<bullet bulletName="pingpongHail" bulletText="Ping pong ball size hail (1 1/2")" bulletGroup="hailThreat" parseString="PING PONG BALL SIZE"/>
|
||||
|
@ -162,18 +175,17 @@
|
|||
<bullet bulletName="softballHail" bulletText="Softball size hail (4 1/4")" bulletGroup="hailThreat" parseString="SOFTBALL SIZE"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="************ 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 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 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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="******** CALLS TO ACTION (CHOOSE 1 OR MORE) *********" bulletType="title"/>
|
||||
<bullet bulletName="torWatchCTA" bulletText="TOR SAFETY INFO Mandatory if SVR issued in TOR Watch" parseString="TORNADO WATCH IN EFFECT"/>
|
||||
<bullet bulletName="genericCTA" bulletText="Generic threat - standard CTA" bulletDefault="true" parseString="SEVERE THUNDERSTORMS PRODUCE"/>
|
||||
<bullet bulletName="canProduceTornadoesCTA" bulletText="Svr t-storms can produce tornadoes (no TOR watch in effect)" parseString="SOME WEAK ROTATION"/>
|
||||
<bullet bulletName="largeHailCTA" bulletText="Large Hail and Deadly Lightning" parseString="PREPARE IMMEDIATELY FOR LARGE HAIL"/>
|
||||
<bullet bulletName="veryLargeHailCTA" bulletText="Large DESTRUCTIVE Hail" parseString="LARGE DERSTRUCTIVE HAIL"/>
|
||||
<bullet bulletName="largeHailCTA" bulletText="Large Hail and Deadly Lightning" parseString="PREPARE IMMEDIATELY FOR LARGE HAIL AND DEADLY"/>
|
||||
<bullet bulletName="veryLargeHailCTA" bulletText="Large DESTRUCTIVE Hail" parseString="LARGE DESTRUCTIVE HAIL"/>
|
||||
<bullet bulletName="largeHailWindCTA" bulletText="Large Hail and Damaging Wind" parseString="LARGE HAIL AND DAMAGING WINDS"/>
|
||||
<bullet bulletName="historyHailCTA" bulletText="History of Large Hail" parseString="HISTORY OF PRODUCING LARGE HAIL"/>
|
||||
<bullet bulletName="historyWindCTA" bulletText="History of Wind Damage" parseString="HISTORY OF PRODUCING WIND DAMAGE"/>
|
||||
|
@ -192,160 +204,4 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- areaSource object to generate county-based headline if desired -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>
|
||||
</areaSource>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pathcastConfig>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<distanceThreshold>8.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>10</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>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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"/>
|
||||
<include file="pointMarkers.xml"/>
|
||||
|
||||
<!-- this "include file" tag will grab the storm reports XML pointSource tags,
|
||||
and place into this template -->
|
||||
<include file="stormReports.xml"/>
|
||||
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</pointSource>
|
||||
<areaSource>County</areaSource>
|
||||
<!-- <areaSource>Zone</areaSource> -->
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
</warngenConfig>
|
||||
|
|
|
@ -1,23 +1,19 @@
|
|||
#################################################################
|
||||
## SEVERE WEATHER STATEMENT TEMPLATE ##
|
||||
## CREATED BY EVAN BOOKBINDER - WFO EAX ##
|
||||
## MODIFIED INITIAL OB11.4 REWRITE - 4-13-2011 ##
|
||||
## HEADLINE MACRO REWRITE 8-17-2011 OB11.8.4 ##
|
||||
## PATHCAST/CITIES CHANGES 9-15-2011 OB11.8.0-8 ##
|
||||
## BY PHIL KURIMSKI 9-22-2011 OB11.8.0-8 ##
|
||||
## BY EVAN BOOKBINDER 11-04-2011 OB11.9-3 ##
|
||||
## BY EVAN BOOKBINDER 2-24-2012 OB12.2.1 ##
|
||||
## BY MIKE REGA 5-3-2012 DR 14885 MND blank line ##
|
||||
## BY QINGLU LIN 6-18-2012 DR 15043 use duration ##
|
||||
## BY QINGLU LIN 7-31-2012 DR 15217 use roundAndPad##
|
||||
## RECENT HISTORY:
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables} ##
|
||||
## Mike Dangelo 2-5-2013 NWS Mets Detected options ##
|
||||
## PHIL KURIMSKI 2-6-2013 Tor emergency preamble ##
|
||||
## EVAN BOOKBINDER 9-16-2013 CTA WORDING FIX ##
|
||||
## PHIL KURIMSKI 9-17-2013 Tor emergency headline ##
|
||||
## EVAN BOOKBINDER 9-18-2013 Implemented config.vm ##
|
||||
#################################################################
|
||||
##
|
||||
###################################################################
|
||||
## Set null variables for wind/hail tags used in the template ##
|
||||
###################################################################
|
||||
#parse("config.vm")
|
||||
#set($windhailTag = "")
|
||||
#set($TORhailTag = "")
|
||||
###############################################################################
|
||||
|
@ -79,19 +75,33 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
${ugclinecan}
|
||||
/${productClass}.CAN.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
#elseif(${CORCAN}=="true")
|
||||
${ugclinecan}
|
||||
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${cancelareas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
#else
|
||||
${ugcline}
|
||||
/${productClass}.${action}.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire},${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
#end
|
||||
|
||||
|
@ -133,6 +143,8 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#elseif(${action}=="CANCON" || ${CORCAN}=="true")
|
||||
...THE ${eventType} WARNING FOR ##
|
||||
#headlineLocList(${cancelareas} true true true false) ${expcanHLTag}...
|
||||
###REPLACE headlineLocList ABOVE WITH THE FOLLOWING FOR ZONE BASED PRODUCT W/ COUNTY HEADLINE
|
||||
###headlineLocList(${cancelaffectedCounties} true true true false) ${expcanHLTag}...
|
||||
#end
|
||||
############################
|
||||
## END CAN/EXP HEADLINE ####
|
||||
|
@ -310,7 +322,11 @@ $$
|
|||
${ugcline}
|
||||
/${productClass}.CON.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -325,7 +341,11 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
${ugcline}
|
||||
/${productClass}.COR.${vtecOffice}.${phenomena}.W.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz})}/
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name} ${area.stateabbr}-##
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
@ -334,18 +354,19 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
|
||||
|
||||
#end
|
||||
#end
|
||||
#####################################################################
|
||||
### TORNADO EMERGENCY HEADLINE #
|
||||
#####################################################################
|
||||
#if(${list.contains(${bullets}, "torEmergency")})
|
||||
|
||||
...TORNADO EMERGENCY FOR !** EDIT LOCATION(S) **!...
|
||||
|
||||
#end
|
||||
#if(${action}=="CANCON" || ${action}=="CON" || ${action}=="COR" || ${CORCAN}=="true")
|
||||
...A ${eventType} WARNING REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone},${duration}) FOR ##
|
||||
#headlineLocList(${areas} true true true false)...
|
||||
########### END NEW HEADLINE CODE ####################
|
||||
#####################################################################
|
||||
### TORNADO EMERGENCY PER NWS 10-511 DIRECTIVE #
|
||||
#####################################################################
|
||||
#if(${list.contains(${bullets}, "torEmergency")})
|
||||
...THIS IS A TORNADO EMERGENCY FOR !** EDIT LOCATION(S) **!...
|
||||
|
||||
#end
|
||||
#set($reportType = "!** BASIS FOR WARNING **!")
|
||||
#set($reportAuthSVR = "")
|
||||
############### BASIS SECTION ####################
|
||||
|
@ -614,15 +635,24 @@ THIS IS A TEST MESSAGE. ##
|
|||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${reportType}${hailwind}. ##
|
||||
${reportType2} LOCATED ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY. ${smallHail}${TORHailThreat}
|
||||
#else
|
||||
...MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH. ${smallHail}${TORHailThreat}
|
||||
#end
|
||||
|
||||
#####################################################################
|
||||
### TORNADO EMERGENCY PER NWS 10-511 DIRECTIVE GOES WITH 3RD BULLET #
|
||||
#####################################################################
|
||||
#if(${list.contains($bullets, "torEmergency")})
|
||||
THIS IS A TORNADO EMERGENCY FOR !** EDIT LOCATION(S) **!. TAKE COVER NOW.
|
||||
|
||||
#end
|
||||
#############################################
|
||||
######## GENERATE ADDITIONAL REPORTS #######
|
||||
|
@ -690,6 +720,8 @@ THOSE ATTENDING THE !**now/venue name or location**! ARE IN THE PATH OF THIS STO
|
|||
|
||||
## parse file command here is to pull in mile marker info
|
||||
## #parse("mileMarkers.vm")
|
||||
## Uncomment below pull in point marker info
|
||||
## #parse("pointMarkers.vm")
|
||||
|
||||
##################################
|
||||
######### CALLS TO ACTION ########
|
||||
|
@ -768,7 +800,7 @@ SEVERE THUNDERSTORMS PRODUCE DAMAGING WINDS...DESTRUCTIVE HAIL...DEADLY LIGHTNIN
|
|||
##
|
||||
#if(${list.contains(${bullets}, "canProduceTornadoesCTA")})
|
||||
#if(${stormType} == "line")
|
||||
DOPPLER RADAR HAS INDICATED SOME WEAK ROTATION WITHIN THESE STORMS. ALTHOUGH A TORNADO IS NOT IMMEDIATELY LIKELY...IF ONE IS SPOTTED...ACT QUICKLY AND MOVE TO A PLACE OF SAFETY IN A STURDY STRUCTURE...SUCH AS A BASEMENT OR SMALL INTERIOR
|
||||
DOPPLER RADAR HAS INDICATED SOME WEAK ROTATION WITHIN THESE STORMS. ALTHOUGH A TORNADO IS NOT IMMEDIATELY LIKELY...IF ONE IS SPOTTED...ACT QUICKLY AND MOVE TO A PLACE OF SAFETY IN A STURDY STRUCTURE...SUCH AS A BASEMENT OR SMALL INTERIOR ROOM.
|
||||
|
||||
#else
|
||||
DOPPLER RADAR HAS INDICATED SOME WEAK ROTATION WITHIN THIS STORM. ALTHOUGH A TORNADO IS NOT IMMEDIATELY LIKELY...IF ONE IS SPOTTED...ACT QUICKLY AND MOVE TO A PLACE OF SAFETY IN A STURDY STRUCTURE...SUCH AS A BASEMENT OR SMALL INTERIOR ROOM.
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
Qinglu Lin 04-04-2012 DR 14691. Added <feAreaField> tag.
|
||||
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Mike Dangelo 2-5-2013 NWS Mets Detected options (commented by default)
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<!--
|
||||
Velocity Variables:
|
||||
|
@ -26,6 +27,19 @@
|
|||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -217,10 +231,9 @@
|
|||
<bullet bulletName="addlHailWindRpt" bulletText="Select to include additional hail and wind reports..." bulletGroup="radioset3"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="********* LOCATIONS IMPACTED **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="radioset4" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset4" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset4" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset4" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** CALLS TO ACTION (CHOOSE 1 OR MORE) **********" bulletType="title"/>
|
||||
|
@ -276,16 +289,15 @@
|
|||
<bullet bulletName="addlHailWindRpt" bulletText="Select to include additional hail and wind reports..." bulletGroup="radioset4"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="********* LOCATIONS IMPACTED **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="radioset5" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset5" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset5" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset5" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="******** CALL TO ACTIONS (CHOOSE 1 OR MORE) *********" bulletType="title"/>
|
||||
<bullet bulletName="torWatchRemainsInEffectCTA" bulletText="TOR WATCH IN EFFECT...If a tornado is spotted" parseString="TORNADO WATCH REMAINS IN EFFECT"/>
|
||||
<bullet bulletName="genericCTA" bulletText="Generic threat - standard CTA" parseString="SEVERE THUNDERSTORMS PRODUCE"/>
|
||||
<bullet bulletName="canProduceTornadoesCTA" bulletText="Svr t-storms can produce tornadoes (no TOR watch)" parseString="SOME WEAK ROTATION"/>
|
||||
<bullet bulletName="largeHailCTA" bulletText="Large Hail and Deadly Lightning" parseString="PREPARE IMMEDIATELY FOR LARGE HAIL"/>
|
||||
<bullet bulletName="largeHailCTA" bulletText="Large Hail and Deadly Lightning" parseString="PREPARE IMMEDIATELY FOR LARGE HAIL AND DEADLY"/>
|
||||
<bullet bulletName="veryLargeHailCTA" bulletText="Large DESTRUCTIVE Hail" parseString="LARGE DESTRUCTIVE HAIL"/>
|
||||
<bullet bulletName="largeHailWindCTA" bulletText="Large Hail and Damaging Wind" parseString="LARGE HAIL AND DAMAGING WINDS"/>
|
||||
<bullet bulletName="historyHailCTA" bulletText="History of Large Hail" parseString="HISTORY OF PRODUCING LARGE HAIL"/>
|
||||
|
@ -346,10 +358,9 @@
|
|||
<bullet bulletName="addlHailWindRpt" bulletText="Select to include additional hail and wind reports..." bulletGroup="radioset3"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="********* LOCATIONS IMPACTED **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="radioset4" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset4" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset4" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset4" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** CALLS TO ACTION (CHOOSE 1 OR MORE) **********" bulletType="title"/>
|
||||
<bullet bulletName="torEmergencyCTA" bulletText="**TOR EMERGENCY CTA**" parseString="TORNADO EMERGENCY" bulletGroup="cta1"/>
|
||||
|
@ -403,17 +414,16 @@
|
|||
<bullet bulletName="addlHailWindRpt" bulletText="Select to include additional hail and wind reports..." bulletGroup="radioset4"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="********* LOCATIONS IMPACTED **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="radioset5" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset5" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset5" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="radioset5" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<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","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="******** CALL TO ACTIONS (CHOOSE 1 OR MORE) *********" bulletType="title"/>
|
||||
<bullet bulletName="torWatchRemainsInEffectCTA" bulletText="TOR WATCH IN EFFECT...If a tornado is spotted" parseString="TORNADO WATCH REMAINS IN EFFECT"/>
|
||||
<bullet bulletName="genericCTA" bulletText="Generic threat - standard CTA" parseString="SEVERE THUNDERSTORMS PRODUCT"/>
|
||||
<bullet bulletName="canProduceTornadoesCTA" bulletText="Svr t-storms can produce tornadoes (no TOR watch)" parseString="SOME WEAK ROTATION"/>
|
||||
<bullet bulletName="largeHailCTA" bulletText="Large Hail and Deadly Lightning" parseString="PREPARE IMMEDIATELY FOR LARGE HAIL"/>
|
||||
<bullet bulletName="largeHailCTA" bulletText="Large Hail and Deadly Lightning" parseString="PREPARE IMMEDIATELY FOR LARGE HAIL AND DEADLY"/>
|
||||
<bullet bulletName="veryLargeHailCTA" bulletText="Large DESTRUCTIVE Hail" parseString="LARGE DESTRUCTIVE HAIL"/>
|
||||
<bullet bulletName="largeHailWindCTA" bulletText="Large Hail and Damaging Wind" parseString="LARGE HAIL AND DAMAGING WINDS"/>
|
||||
<bullet bulletName="historyHailCTA" bulletText="History of Large Hail" parseString="HISTORY OF PRODUCING LARGE HAIL"/>
|
||||
|
@ -433,158 +443,4 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<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>COUNTYNAME</areaField>
|
||||
<!-- <areaField>NAME</areaField> -->
|
||||
<parentAreaField>STATE</parentAreaField>
|
||||
<areaNotationField>STATE</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<sortBy>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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">
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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"/>
|
||||
<include file="pointMarkers.xml"/>
|
||||
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</pointSource>
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<areaSource>County</areaSource>
|
||||
<!-- <areaSource>Zone</areaSource> -->
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
</warngenConfig>
|
||||
|
|
|
@ -2,12 +2,14 @@
|
|||
## SHORT TERM FORECAST ##
|
||||
## CREATED BY PHIL KURIMSKI - WFO DTX ##
|
||||
## VERSION AWIPS II 1.0 -- AUG 19 2011 OB11.8 ##
|
||||
## EDITED BY MIKE DANGELO 2-27-2012 ##
|
||||
## EDITED BY Phil Kurimski 3-01-2012 OB12.2.1-4 ##
|
||||
## EDITED BY MIKE DANGELO 2-27-2012
|
||||
## EDITED BY Phil Kurimski 3-01-2012 OB12.2.1-4
|
||||
## Evan Bookbinder 4-25-2012 for OB 12.3.1 (MND)
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}
|
||||
##################################################
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables}
|
||||
## Evan Bookbinder 9-18-2013 implemented config.vm
|
||||
################################################################
|
||||
##
|
||||
#parse("config.vm")
|
||||
${WMOId} ${vtecOffice} 000000 ${BBBId}
|
||||
NOW${siteId}
|
||||
|
||||
|
@ -142,7 +144,7 @@ THIS IS A TEST MESSAGE. ##
|
|||
#######################################################################
|
||||
#set($report = "!** YOU DIDN'T SELECT A BASIS **! ${eventType}")
|
||||
#if(${list.contains(${bullets}, "doppler")})
|
||||
#set($report = "NATIONAL WEATHER SERVICE DOPPLER RADAR INDICATED ${eventType}...")
|
||||
#set($report = "DOPPLER RADAR INDICATED ${eventType}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "trainedSpotters")})
|
||||
#set($report = "TRAINED WEATHER SPOTTERS REPORTED ${eventType}...")
|
||||
|
@ -162,12 +164,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
.NOW...
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report}##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY.
|
||||
#else
|
||||
MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH.
|
||||
|
@ -202,7 +205,7 @@ LOCATIONS IMPACTED INCLUDE...
|
|||
|
||||
#end
|
||||
|
||||
#if(${list.contains(${bullets}, "gustFrontWinds")})
|
||||
#if(${list.contains(${bullets}, "gustFrontPassage")})
|
||||
GUSTY WINDS TO !**WIND SPEED**! MPH WILL ACCOMPANY THE FRONT.
|
||||
|
||||
#end
|
||||
|
|
|
@ -8,9 +8,24 @@
|
|||
Added settings for locations shapefile
|
||||
Added new areaSource object
|
||||
Evan Bookbinder 5-5-2013 fixed <type> variable under areaSource objects
|
||||
Chad Gimmestad 9-17-2013 made additional info bullet names/labels consistent
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_ZONE.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -86,13 +101,13 @@
|
|||
<bullet bulletName="cFront" bulletText="Cold Front" bulletGroup="event"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="cast"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulleDefault="true" bulletGroup="cast"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulleDefault="true" bulletGroup="pcast"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Supplemental Statements **********" bulletType="title"/>
|
||||
<bullet bulletName="gustFrontWinds" bulletText="gusty winds"/>
|
||||
<bullet bulletName="frontalPassage" bulletText="frontal passage"/>
|
||||
<bullet bulletName="heavySnow" bulletText="low visibility in heavy snow"/>
|
||||
<bullet bulletName="gustFrontPassage" bulletText="gust front passage"/>
|
||||
<bullet bulletName="frontalPassage" bulletText="cold frontal passage"/>
|
||||
<bullet bulletName="heavySnow" bulletText="heavy snow/low visibility"/>
|
||||
<bullet bulletName="snowAmt" bulletText="snowfall amounts"/>
|
||||
</bullets>
|
||||
</bulletActionGroup>
|
||||
|
@ -121,8 +136,7 @@
|
|||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast"/>
|
||||
<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 IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Supplemental Statements **********" bulletType="title"/>
|
||||
|
@ -134,193 +148,4 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- 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_ZONE</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>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pathcastConfig>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<distanceThreshold>8.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>10</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>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
|
||||
</warngenConfig>
|
||||
|
|
|
@ -2,10 +2,13 @@
|
|||
## SPS - SIGNIFICANT WEATHER ADVISORY ##
|
||||
## WRITTEN BY: ##
|
||||
## TOM BIRCHARD WFO HFO/EVAN BOOKBINDER WFO EAX ##
|
||||
## VERSION 1.0 8-16-2011 ##
|
||||
######################################################
|
||||
## Modified by: ##
|
||||
## Phil Kurimski 16 Sep 2013 OB13.5.2-4 ##
|
||||
## Evan Bookbinder Sep 18 2013 Implemented config.vm ##
|
||||
###################################################################
|
||||
##
|
||||
##SET SOME INITIAL VARIABLES
|
||||
#parse("config.vm")
|
||||
#if(${stormType} == "line")
|
||||
#set($report = "A LINE OF STRONG THUNDERSTORMS WERE REPORTED")
|
||||
#set($reportType1 = "LINE OF STRONG THUNDERSTORMS")
|
||||
|
@ -15,11 +18,14 @@
|
|||
#set($reportType1 = "STRONG THUNDERSTORM")
|
||||
#set($reportType2 = "THIS STORM WAS")
|
||||
#end
|
||||
#set($windThreat = "")
|
||||
#set($hailThreat = "")
|
||||
#set($hailTrail = "")
|
||||
#############################################################
|
||||
#### CREATE BASIS WORDING ###################################
|
||||
#############################################################
|
||||
#if(${list.contains(${bullets}, "doppler")})
|
||||
#set($report = "NATIONAL WEATHER SERVICE DOPPLER RADAR WAS TRACKING A ${reportType1}")
|
||||
#set($report = "DOPPLER RADAR WAS TRACKING A ${reportType1}")
|
||||
#set($reportAuthSVR = "CAPABLE OF PRODUCING")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "stormSpotters")})
|
||||
|
@ -57,10 +63,15 @@
|
|||
#set($windTag = "40MPH")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "wind50")})
|
||||
#set($windThreat = "WINDS IN EXCESS OF 50 MPH")
|
||||
#set($windThreat = "WIND GUSTS UP TO 50 MPH")
|
||||
#set($windSpeed = 50)
|
||||
#set($windTag = "50MPH")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "wind55")})
|
||||
#set($windThreat = "WIND GUSTS OF 50 TO 55 MPH")
|
||||
#set($windSpeed = 50)
|
||||
#set($windTag = "55MPH")
|
||||
#end
|
||||
|
||||
###################################################
|
||||
## HANDLE HAIL POSSIBILITIES ######################
|
||||
|
@ -68,10 +79,15 @@
|
|||
#set($hailSize = 0)
|
||||
#set($smallHail = "")
|
||||
#if(${list.contains(${bullets}, "peaHail")})
|
||||
#set($hailSize = 0.50)
|
||||
#set($hailSize = 0.25)
|
||||
#set($hailThreat = "PEA SIZE")
|
||||
#set($hailTrail = " HAIL")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "halfHail")})
|
||||
#set($hailSize = 0.50)
|
||||
#set($hailThreat = "HALF INCH")
|
||||
#set($hailTrail = " HAIL")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "dimeHail")})
|
||||
#set($hailSize = 0.75)
|
||||
#set($hailThreat = "DIME SIZE")
|
||||
|
@ -103,11 +119,14 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
|
||||
#end
|
||||
${ugcline}
|
||||
#set($zoneList = "")
|
||||
#foreach (${area} in ${areas})
|
||||
#set($zoneList = "${zoneList}${area.name}-")
|
||||
${area.name}##
|
||||
#if(${includeStateAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
${zoneList}
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
||||
#if(${productClass}=="T")
|
||||
|
@ -135,12 +154,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
#end
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report} ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY. ${smallHail}
|
||||
#else
|
||||
#if(${stormType} == "line")
|
||||
|
@ -151,41 +171,21 @@ THIS IS A TEST MESSAGE. ##
|
|||
#direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH. ${smallHail}
|
||||
#end
|
||||
|
||||
#if(${list.contains(${bullets}, "peaHail")})
|
||||
#set($hail = "Hail up to the size of peas")
|
||||
#elseif(${list.contains(${bullets}, "dimeHail")})
|
||||
#set($hail = "Hail up to the size of dimes")
|
||||
#elseif(${list.contains(${bullets}, "nickelHail")})
|
||||
#set($hail = "Hail up to the size of nickels")
|
||||
#else
|
||||
#set($hail="")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "wind30")})
|
||||
#set($wind = "Wind gusts up to 30 mph")
|
||||
#elseif(${list.contains(${bullets}, "wind40")})
|
||||
#set($wind = "Wind gusts up to 40 mph")
|
||||
#elseif(${list.contains(${bullets}, "wind50")})
|
||||
#set($wind = "Wind gusts up to 50 mph")
|
||||
#else
|
||||
#set($wind="")
|
||||
#end
|
||||
|
||||
|
||||
#if(${stormType} == "line")
|
||||
#if(${hail} != "" && ${wind} != "")
|
||||
${hail} AND ${wind} WILL BE POSSIBLE WITH THESE STORMS.
|
||||
#elseif(${hail}=="" && ${wind}!="")
|
||||
${wind} WILL BE POSSIBLE WITH THESE STORMS.
|
||||
#elseif(${hail}!="" && ${wind}=="")
|
||||
${hail} WILL BE POSSIBLE WITH THESE STORMS.
|
||||
#if(${hailThreat} != "" && ${windThreat} != "")
|
||||
${hailThreat}${hailTrail} AND ${windThreat} WILL BE POSSIBLE WITH THESE STORMS.
|
||||
#elseif(${hailThreat}=="" && ${windThreat}!="")
|
||||
${windThreat} WILL BE POSSIBLE WITH THESE STORMS.
|
||||
#elseif(${hailThreat}!="" && ${windThreat}=="")
|
||||
${hailThreat}${hailTrail} WILL BE POSSIBLE WITH THESE STORMS.
|
||||
#end
|
||||
#else
|
||||
#if(${hail} != "" && ${wind} != "")
|
||||
${hail} AND ${wind} WILL BE POSSIBLE WITH THIS STORM.
|
||||
#elseif(${hail}=="" && ${wind}!="")
|
||||
${wind} WILL BE POSSIBLE WITH THIS STORM.
|
||||
#elseif(${hail}!="" && ${wind}=="")
|
||||
${hail} WILL BE POSSIBLE WITH THIS STORM.
|
||||
#if(${hailThreat} != "" && ${windThreat} != "")
|
||||
${hailThreat}${hailTrail} AND ${windThreat} WILL BE POSSIBLE WITH THIS STORM.
|
||||
#elseif(${hailThreat}=="" && ${windThreat}!="")
|
||||
${windThreat} WILL BE POSSIBLE WITH THIS STORM.
|
||||
#elseif(${hailThreat}!="" && ${windThreat}=="")
|
||||
${hailThreat}${hailTrail} WILL BE POSSIBLE WITH THIS STORM.
|
||||
#end
|
||||
#end
|
||||
|
||||
|
@ -240,6 +240,8 @@ THIS IS A TEST MESSAGE. ##
|
|||
|
||||
## parse file command here is to pull in mile marker info
|
||||
## #parse("mileMarkers.vm")
|
||||
## Uncomment below pull in point marker info
|
||||
## #parse("pointMarkers.vm")
|
||||
|
||||
##################################
|
||||
######### CALLS TO ACTION ########
|
||||
|
|
|
@ -5,9 +5,23 @@
|
|||
9-15-2011 Merge in OB11.8.0-8 Coding Changes, Zone Codes
|
||||
9-12-2012 Added in new areaSource object and recode
|
||||
for new locations shapefile
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_ZONE.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -17,6 +31,7 @@
|
|||
that can be loaded with each template. -->
|
||||
<maps>
|
||||
<map>Forecast Zones</map>
|
||||
<map>County Names</map>
|
||||
<map>County Warning Areas</map>
|
||||
</maps>
|
||||
|
||||
|
@ -69,8 +84,9 @@
|
|||
<bullet bulletText="******* THREAT (CHOOSE UP TO 1 EACH WIND/HAIL) ******" bulletType="title"/>
|
||||
<bullet bulletName="wind30" bulletText="Winds 30 mph or greater" bulletGroup="windThreat" parseString="30 MPH"/>
|
||||
<bullet bulletName="wind40" bulletText="Strong winds 40 mph or greater" bulletGroup="windThreat" parseString="40 MPH"/>
|
||||
<bullet bulletName="wind50" bulletText="Strong winds 50 mph or greater" bulletGroup="windThreat" parseString="50 MPH"/>
|
||||
<bullet bulletName="peaHail" bulletText="Pea sized hail" bulletGroup="hailThreat" parseString="PEA SIZED HAIL"/>
|
||||
<bullet bulletName="wind50" bulletText="Strong winds to 50 mph" bulletGroup="windThreat" parseString="50 MPH"/>
|
||||
<bullet bulletName="wind55" bulletText="Strong winds 50 to 55 mph" bulletGroup="windThreat" parseString="55 MPH"/>
|
||||
<bullet bulletName="halfHail" bulletText="Half inch hail" bulletGroup="hailThreat" parseString="HALF INCH HAIL"/>
|
||||
<bullet bulletName="dimeHail" bulletText="Dime sized hail" bulletGroup="hailThreat" parseString="DIME SIZED HAIL"/>
|
||||
<bullet bulletName="nickelHail" bulletText="Nickel sized hail" bulletGroup="hailThreat" parseString="NICKEL SIZED HAIL"/>
|
||||
<bullet bulletText="************ LOCATIONS IMPACTED **************" bulletType="title"/>
|
||||
|
@ -102,14 +118,14 @@
|
|||
<bullet bulletText="******* THREAT (CHOOSE UP TO 1 EACH WIND/HAIL) ******" bulletType="title"/>
|
||||
<bullet bulletName="wind30" bulletText="Winds 30 mph or greater" bulletGroup="windThreat" parseString="30 MPH"/>
|
||||
<bullet bulletName="wind40" bulletText="Strong winds 40 mph or greater" bulletGroup="windThreat" parseString="40 MPH"/>
|
||||
<bullet bulletName="wind50" bulletText="Strong winds 50 mph or greater" bulletGroup="windThreat" parseString="50 MPH"/>
|
||||
<bullet bulletName="peaHail" bulletText="Pea sized hail" bulletGroup="hailThreat" parseString="PEA SIZED HAIL"/>
|
||||
<bullet bulletName="wind50" bulletText="Strong winds to 50 mph" bulletGroup="windThreat" parseString="50 MPH"/>
|
||||
<bullet bulletName="wind55" bulletText="Strong winds 50 to 55 mph" bulletGroup="windThreat" parseString="55 MPH"/>
|
||||
<bullet bulletName="halfHail" bulletText="Half inch hail" bulletGroup="hailThreat" parseString="HALF INCH HAIL"/>
|
||||
<bullet bulletName="dimeHail" bulletText="Dime sized hail" bulletGroup="hailThreat" parseString="DIME SIZED HAIL"/>
|
||||
<bullet bulletName="nickelHail" bulletText="Nickel sized hail" bulletGroup="hailThreat" parseString="NICKEL SIZED HAIL"/>
|
||||
<bullet bulletText="************ 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 IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="******** CALLS TO ACTION (CHOOSE 1 OR MORE) *********" bulletType="title"/>
|
||||
|
@ -128,193 +144,4 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- 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>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<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>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</pointSource>
|
||||
<!-- <areaSource>County</areaSource> -->
|
||||
<areaSource>Zone</areaSource>
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
|
||||
<!-- this "include file" tag will grab the Mile Marker XML pointSource tags,
|
||||
and place into this template
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
|
||||
|
||||
</warngenConfig>
|
||||
|
|
|
@ -1,21 +1,12 @@
|
|||
#####################################################
|
||||
## SPECIAL MARINE WARNING TEMPLATE ##
|
||||
## CREATED BY PHIL KURIMSKI - WFO DTX ##
|
||||
## VERSION AWIPS II 1.0 -- FEB 24 2011 OB11.2 ##
|
||||
## VERSION AWIPS II 1.1 -- APR 13 2011 OB11.4 ##
|
||||
## VERSION AWIPS II 1.2 -- JUL 14 2011 OB11.7 ##
|
||||
## VERSION AWIPS II 1.3 -- SEP 23 2011 OB11.8 ##
|
||||
## Added Volcano Information for version 1.3 ##
|
||||
## VERSION AWIPS II 1.4 -- JAN 26 2012 OB12.1.1-1 ##
|
||||
## Cleaned up wind coding for version 1.4 ##
|
||||
## VERSION AWIPS II 1.5 -- MAR 2 2012 OB12.2.1-4 ##
|
||||
## BY QINGLU LIN 8-14-2012 DR 14493 use TMLtime ##
|
||||
## Phil Kurimski -- SEP 10 2012 OB12.9.1-12 ##
|
||||
## RECENT HISTORY ##
|
||||
## BY QINGLU LIN 8-14-2012 DR 14493 use TMLtime ##
|
||||
## Phil Kurimski -- SEP 10 2012 OB12.9.1-12 ##
|
||||
## Evan Bookbinder SEP 18 2013 Implemented config.vm ##
|
||||
################################################################
|
||||
## Added Volcano Information in version 1.3 for sites where
|
||||
## Volcanoes affect their marine zones. If sites wish to hide
|
||||
## this information comment out the appropriate bullets in the
|
||||
## xml file.
|
||||
#parse("config.vm")
|
||||
################################################
|
||||
## Set null variables used in the template
|
||||
################################################
|
||||
|
@ -127,47 +118,57 @@ THIS IS A TEST MESSAGE. ##
|
|||
#set($eventType = "VOLCANO")
|
||||
#end
|
||||
#######################################################################
|
||||
## Added a Threat Section to template that includes Wind...Hail and Waterspout selections.
|
||||
## Added a Threat Section to the template that includes Wind...Hail
|
||||
## and Waterspout selections.
|
||||
## Strong Thunderstorm will change to Severe Thunderstorm automatically based on
|
||||
## selections in Wind...Hail and Waterspout sections.
|
||||
#######################################################################
|
||||
#set($windTag = "<34")
|
||||
#set($windCTA = "GUSTY WINDS")
|
||||
#if(${list.contains(${bullets}, "34ktWind")})
|
||||
#set($windTag = ">34")
|
||||
#set($windType = "WINDS 34 KNOTS OR GREATER")
|
||||
#set($windCTA = "WIND GUSTS 34 KNOTS OR GREATER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "40ktWind")})
|
||||
#set($windTag = "40")
|
||||
#set($windType = "WINDS TO 40 KNOTS")
|
||||
#set($windCTA = "WIND GUSTS TO 40 KNOTS")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "40ktplusWind")})
|
||||
#set($windTag = "40")
|
||||
#set($windType = "WINDS TO NEARLY 50 KNOTS")
|
||||
#set($windCTA = "WIND GUSTS TO NEARLY 50 KNOTS")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "50ktWind")})
|
||||
#set($windTag = "50")
|
||||
#set($windType = "DANGEROUS WINDS IN EXCESS OF 50 KNOTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#set($windCTA = "WIND GUSTS IN EXCESS OF 50 KNOTS")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "65ktWind")})
|
||||
#set($windTag = "65")
|
||||
#set($windType = "DANGEROUS CAPSIZING WINDS IN EXCESS OF 65 KNOTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#set($windCTA = "WIND GUSTS IN EXCESS OF 65 KNOTS")
|
||||
#end
|
||||
#set($hailTag = "0.00")
|
||||
#if(${list.contains(${bullets}, "smallHail")})
|
||||
#set($hailTag = "<.75")
|
||||
#set($hailType = "SMALL HAIL")
|
||||
#set($hailCTA = "...${hailType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "largeHail")})
|
||||
#set($hailTag = ">.75")
|
||||
#set($hailType = "LARGE HAIL")
|
||||
#set($severeType = "SEVERE")
|
||||
#set($hailCTA = "...${hailType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "destructiveHail")})
|
||||
#set($hailTag = ">2.0")
|
||||
#set($hailType = "LARGE DESTRUCTIVE HAIL")
|
||||
#set($severeType = "SEVERE")
|
||||
#set($hailCTA = "...${hailType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "sightedSpout")})
|
||||
#set($spoutType = "WATERSPOUTS")
|
||||
|
@ -314,13 +315,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report}LOCATED ##
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "NM", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "NM", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if(${eventType} == "VOLCANO")
|
||||
.
|
||||
#elseif($movementSpeed < 3 || ${stationary})
|
||||
#elseif(${movementSpeed} < ${marineStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY.
|
||||
#else
|
||||
...MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} KNOTS.
|
||||
|
@ -357,7 +358,7 @@ THIS IS A TEST MESSAGE. ##
|
|||
##############################################
|
||||
|
||||
#if(${list.contains(${bullets}, "specialEvent")})
|
||||
EVERYONE AT !**event/venue name or location**! ARE IN THE PATH OF ${specialEvent} AND SHOULD PREPARE FOR IMMINENT DANGEROUS WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
THOSE ATTENDING !**event/venue name or location**! ARE IN THE PATH OF ${specialEvent} AND SHOULD PREPARE FOR IMMINENT DANGEROUS WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
|
||||
#end
|
||||
#####################
|
||||
|
@ -381,12 +382,31 @@ PRECAUTIONARY/PREPAREDNESS ACTIONS...
|
|||
${ashfallCTA}
|
||||
|
||||
#if(${list.contains(${bullets}, "genericCTA")})
|
||||
AS THUNDERSTORMS MOVE OVER THE WATER...BOATERS CAN EXPECT GUSTY WINDS AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THE STORM PASSES.
|
||||
#if(${stormType} == "line")
|
||||
AS THUNDERSTORMS MOVE OVER THE WATER...BOATERS CAN EXPECT GUSTY WINDS AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
AS THIS THUNDERSTORM MOVES OVER THE WATER...BOATERS CAN EXPECT GUSTY WINDS AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THE STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "gustyWindsCTA")})
|
||||
#if(${stormType} == "line")
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "hailWindsCTA")})
|
||||
#if(${stormType} == "line")
|
||||
MARINERS CAN EXPECT ${windCTA}${hailCTA}...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
MARINERS CAN EXPECT ${windCTA}${hailCTA}...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "nonThunderstormCTA")})
|
||||
MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES. BOATERS...ESPECIALLY THOSE UNDER SAIL...SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THE HIGH WINDS SUBSIDE.
|
||||
|
|
|
@ -5,8 +5,23 @@
|
|||
Added Volcano Information Phil Kurimski 23 Sept 2011
|
||||
Phil Kurimski 1 Mar 2012
|
||||
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Phil Kurimski 09-16-2013 Fixed multiple selections in pathcast
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_MARINE.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>nmi</unitDistance>
|
||||
<unitSpeed>kn</unitSpeed>
|
||||
|
@ -110,12 +125,13 @@ Added Volcano Information Phil Kurimski 23 Sept 2011
|
|||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Optional Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listoflocations" bulletDefault="true" bulletText="Select for a list of cities" bulletGroup="pcast"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="EVERYONE AT"/>
|
||||
<bullet bulletName="listoflocations" bulletDefault="true" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" ****** CALLS TO ACTION (CHOOSE 1 OR MORE) ****** " bulletType="title"/>
|
||||
<bullet bulletName="genericCTA" bulletText="As thunderstorms move over the water.." parseString="AS THUNDERSTORMS MOVE OVER THE WATER..."/>
|
||||
<bullet bulletName="genericCTA" bulletText="As thunderstorms move over the water.." parseString="OVER THE WATER...BOATERS CAN EXPECT"/>
|
||||
<bullet bulletName="gustyWindsCTA" bulletText="Mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES..."/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Mariners can expect cta with hail/wind speeds" parseString="MARINERS CAN EXPECT WIND GUSTS "/>
|
||||
<bullet bulletName="nonThunderstormCTA" bulletText="Non thunderstorm winds - mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES"/>
|
||||
<bullet bulletName="waterspoutCTA" bulletText="Thunderstorms can produce waterspouts" parseString="THUNDERSTORMS CAN PRODUCE SUDDEN WATERSPOUTS"/>
|
||||
<bullet bulletName="lightningCTA" bulletText="Frequent lightning" parseString="FREQUENT LIGHTNING IS OCCURRING WITH THIS STORM"/>
|
||||
|
@ -160,14 +176,14 @@ Added Volcano Information Phil Kurimski 23 Sept 2011
|
|||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Optional Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="EVERYONE AT"/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" ****** CALLS TO ACTION (CHOOSE 1 OR MORE) ****** " bulletType="title"/>
|
||||
<bullet bulletName="genericCTA" bulletText="As thunderstorms move over the water.." parseString="AS THUNDERSTORMS MOVE OVER THE WATER..."/>
|
||||
<bullet bulletName="genericCTA" bulletText="As thunderstorms move over the water.." parseString="OVER THE WATER...BOATERS CAN EXPECT"/>
|
||||
<bullet bulletName="gustyWindsCTA" bulletText="Mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES..."/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Mariners can expect cta with hail/wind speeds" parseString="MARINERS CAN EXPECT WIND GUSTS "/>
|
||||
<bullet bulletName="nonThunderstormCTA" bulletText="Non thunderstorm winds - mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES"/>
|
||||
<bullet bulletName="waterspoutCTA" bulletText="Thunderstorms can produce waterspouts" parseString="THUNDERSTORMS CAN PRODUCE SUDDEN WATERSPOUTS"/>
|
||||
<bullet bulletName="lightningCTA" bulletText="Frequent lightning" parseString="FREQUENT LIGHTNING IS OCCURRING WITH THIS STORM"/>
|
||||
|
@ -176,146 +192,4 @@ Added Volcano Information Phil Kurimski 23 Sept 2011
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- Default areaSource object to generate zone based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>MarineZones</areaSource>
|
||||
<inclusionPercent>0</inclusionPercent>
|
||||
<inclusionAndOr>AND</inclusionAndOr>
|
||||
<inclusionArea>0</inclusionArea>
|
||||
<areaField>NAME</areaField>
|
||||
<parentAreaField>NAME</parentAreaField>
|
||||
<areaNotationField>NAME</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<fipsField>ID</fipsField>
|
||||
<pointField>NAME</pointField>
|
||||
<sortBy>
|
||||
<sort>parent</sort>
|
||||
</sortBy>
|
||||
<pointFilter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</pointFilter>
|
||||
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
|
||||
</areaSource>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,C,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>WARNGENLEV</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,C,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>WARNGENLEV</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pathcastConfig>
|
||||
<!-- the withinPolygon variable set to false will bring in points
|
||||
outside of the polygon which is necessary for the pathcast to reference
|
||||
points that are near the water but not on the water -->
|
||||
<withinPolygon>false</withinPolygon>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<distanceThreshold>10.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>4</maxResults>
|
||||
<maxGroup>8</maxGroup>
|
||||
<pointField>Name</pointField>
|
||||
<type>AREA</type>
|
||||
<areaField>Name</areaField>
|
||||
<parentAreaField>Name</parentAreaField>
|
||||
<areaNotationField>Name</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2,3" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pathcastConfig>
|
||||
|
||||
<pointSource variable="locationList">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>20</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2,3,4" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>20</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="3,4" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
</pointSource>
|
||||
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</pointSource>
|
||||
<areaSource>MarineZones</areaSource>
|
||||
<parentAreaSource>MarineZones</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
</warngenConfig>
|
||||
|
|
|
@ -1,22 +1,10 @@
|
|||
#####################################################
|
||||
## SPECIAL MARINE WARNING FOLLOWUP ##
|
||||
## CREATED BY PHIL KURIMSKI - WFO DTX ##
|
||||
## VERSION AWIPS II 1.0 -- FEB 24 2011 OB11.2 ##
|
||||
## VERSION AWIPS II 1.1 -- APR 14 2011 OB11.4 ##
|
||||
## VERSION AWIPS II 1.2 -- JUL 14 2011 OB11.7 ##
|
||||
## VERSION AWIPS II 1.3 -- SEP 22 2011 OB11.8 ##
|
||||
## Added Volcano Information for version 1.3 ##
|
||||
## VERSION AWIPS II 1.4 -- JAN 26 2012 OB12.1.1-1 ##
|
||||
## Cleaned up wind coding for version 1.4 ##
|
||||
## VERSION AWIPS II 1.5 -- MAR 2 2012 OB12.2.1-4 ##
|
||||
## BY MGAMAZAYCHIKOV -- JUL 20 2012 DR15006 ##
|
||||
## Phil Kurimski -- SEP 10 2012 OB12.9.1-12 ##
|
||||
#####################################################
|
||||
## Added Volcano Information in version 1.3 for sites where
|
||||
## Volcanoes affect their marine zones. If sites wish to hide
|
||||
## this information comment out the appropriate bullets in the
|
||||
## xml file.
|
||||
############################################
|
||||
###################################################################
|
||||
## SPECIAL MARINE WARNING FOLLOWUP ##
|
||||
## CREATED BY PHIL KURIMSKI - WFO DTX ##
|
||||
## UPDATED Phil Kurimski -- SEP 17 2013 OB13.5.2-4 ##
|
||||
## Evan Bookbinder -- SEP 18 2013 Implemented config.vm ##
|
||||
###################################################################
|
||||
#parse("config.vm")
|
||||
## Set null variables used in the template
|
||||
############################################
|
||||
#set($capable = "")
|
||||
|
@ -39,151 +27,10 @@
|
|||
#end
|
||||
################################################
|
||||
#######################################################################
|
||||
## The following code will create a string of marine zone fips codes
|
||||
## which will be important in combining marine zones
|
||||
#######################################################################
|
||||
#######################################################################
|
||||
## Set the fipsstring variable to null for marine zone combinations
|
||||
## This will only work for single CON/CAN/EXP products
|
||||
## Combination CON/CAN will need additional code which will be
|
||||
## included in the template below.
|
||||
#######################################################################
|
||||
#set($fipsstring = "")
|
||||
#foreach (${area} in ${areas})
|
||||
#set($fipsstring = $fipsstring + $area.fips + "-")
|
||||
#end
|
||||
#######################################################################
|
||||
## HEADER FOR NON-CAN/CON PRODUCTS
|
||||
#######################################################################
|
||||
##
|
||||
#if(${action}=="COR" && ${cancelareas})
|
||||
#set($CORCAN = "true")
|
||||
#else
|
||||
#set($CORCAN = "false")
|
||||
#end
|
||||
#if(${action}!="CANCON" && ${CORCAN}!="true")
|
||||
${WMOId} ${vtecOffice} 000000 ${BBBId}
|
||||
MWS${siteId}
|
||||
|
||||
#if(${productClass}=="T")
|
||||
TEST...MARINE WEATHER STATEMENT...TEST
|
||||
#else
|
||||
MARINE WEATHER STATEMENT
|
||||
#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}.MA.W.${oldvtec}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
||||
#if(${productClass}=="T")
|
||||
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
|
||||
|
||||
#end
|
||||
#end
|
||||
##
|
||||
#######################################################################
|
||||
## MWS CANCEL PRODUCT
|
||||
#######################################################################
|
||||
## Altered cancellation headline for cleaner wording and to match NWS Directive 10-314
|
||||
########################################################################
|
||||
#if(${action}=="CAN")
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE.##
|
||||
#end
|
||||
...THE ${warningType} IS CANCELLED...
|
||||
|
||||
THE AFFECTED AREAS WERE...
|
||||
#######################################################################
|
||||
## Coding to use the raw marine zone output from the shapefiles
|
||||
## Comment this section out if you are combining your marine zones
|
||||
#######################################################################
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name}...
|
||||
#end
|
||||
#######################################################################
|
||||
## End of code for raw marine zone output from the shapefiles
|
||||
#######################################################################
|
||||
#######################################################################
|
||||
## Parse in the marineCombo.vm file which contains marine zone combinations
|
||||
## Uncomment the parse command if you are combining your marine zones
|
||||
#######################################################################
|
||||
##parse("marineCombo.vm")
|
||||
#######################################################################
|
||||
## End of the marine zone combination script
|
||||
#######################################################################
|
||||
|
||||
######################################################################
|
||||
## Setup eventType for wording in the End of Warning Statement
|
||||
######################################################################
|
||||
#set($stormline = " HAS")
|
||||
#set($pose = "POSES")
|
||||
#if(${stormType} == "line")
|
||||
#set($stormline = "S HAVE")
|
||||
#set($pose = "POSE")
|
||||
#end
|
||||
#set($eventType = "!**STORMS**! HAVE")
|
||||
#if(${list.contains(${bullets}, "thunderstorm")})
|
||||
#set($eventType = "THUNDERSTORM${stormline}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "shower")})
|
||||
#set($eventType = "SHOWER${stormline}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "cloud")})
|
||||
#set($eventType = "CLOUD${stormline}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "front")})
|
||||
#set($eventType = "FRONT HAS")
|
||||
#set($pose = "POSES")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "volcano")})
|
||||
#set($eventType = "VOLCANO HAS")
|
||||
#set($pose = "POSES")
|
||||
#end
|
||||
#######################################################################
|
||||
## Section for end of warning statements. Replaced default wording with
|
||||
## a better defined reason for the end to the warning.
|
||||
#######################################################################
|
||||
#set($canwarning = "THE ${eventType} !**WEAKENED/MOVED OUT OF THE AREA**! AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.")
|
||||
#if(${list.contains(${bullets}, "weakenedWarnEnd")})
|
||||
#set($canwarning = "THE ${eventType} WEAKENED AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "movedWarnEnd")})
|
||||
#set($canwarning = "THE ${eventType} MOVED OUT OF THE AREA AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "volcano")})
|
||||
#set($canwarning = "THE ${eventType} STOPPED ERUPTING AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.")
|
||||
#end
|
||||
|
||||
${canwarning}
|
||||
|
||||
#############
|
||||
## 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
|
||||
#end
|
||||
##
|
||||
#######################################################################
|
||||
## MWS CON PRODUCT
|
||||
#######################################################################
|
||||
##
|
||||
#######################################################################
|
||||
## List of Event Types. Added several events such as Shower...Cloud and Front.
|
||||
## Removed Strong and Severe Thunderstorm selections and placed logic in the
|
||||
## wind and hail selections that will change wording for Severe Thunderstorms.
|
||||
#######################################################################
|
||||
#if(${action}=="CON" || (${action}=="COR" && ${CORCAN}=="false"))
|
||||
#set($eventType = "THUNDERSTORM")
|
||||
#if(${list.contains(${bullets}, "thunderstorm")})
|
||||
#set($eventType = "THUNDERSTORM")
|
||||
|
@ -202,47 +49,57 @@ ${canwarning}
|
|||
#set($eventType = "VOLCANO")
|
||||
#end
|
||||
#######################################################################
|
||||
## Added a Threat Section to template that includes Wind...Hail and Waterspout selections.
|
||||
## Added a Threat Section to the template that includes Wind...Hail
|
||||
## and Waterspout selections.
|
||||
## Strong Thunderstorm will change to Severe Thunderstorm automatically based on
|
||||
## selections in Wind...Hail and Waterspout sections.
|
||||
#######################################################################
|
||||
#set($windTag = "<34")
|
||||
#set($windCTA = "GUSTY WINDS")
|
||||
#if(${list.contains(${bullets}, "34ktWind")})
|
||||
#set($windTag = ">34")
|
||||
#set($windType = "WINDS 34 KNOTS OR GREATER")
|
||||
#set($windCTA = "WIND GUSTS 34 KNOTS OR GREATER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "40ktWind")})
|
||||
#set($windTag = "40")
|
||||
#set($windType = "WINDS TO 40 KNOTS")
|
||||
#set($windCTA = "WIND GUSTS TO 40 KNOTS")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "40ktplusWind")})
|
||||
#set($windTag = "40")
|
||||
#set($windType = "WINDS TO NEARLY 50 KNOTS")
|
||||
#set($windCTA = "WIND GUSTS TO NEARLY 50 KNOTS")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "50ktWind")})
|
||||
#set($windTag = "50")
|
||||
#set($windType = "DANGEROUS WINDS IN EXCESS OF 50 KNOTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#set($windCTA = "WIND GUSTS IN EXCESS OF 50 KNOTS")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "65ktWind")})
|
||||
#set($windTag = "65")
|
||||
#set($windType = "DANGEROUS CAPSIZING WINDS IN EXCESS OF 65 KNOTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#set($windCTA = "WIND GUSTS IN EXCESS OF 65 KNOTS")
|
||||
#end
|
||||
#set($hailTag = "0.00")
|
||||
#if(${list.contains(${bullets}, "smallHail")})
|
||||
#set($hailTag = "<.75")
|
||||
#set($hailType = "SMALL HAIL")
|
||||
#set($hailCTA = "...${hailType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "largeHail")})
|
||||
#set($hailTag = ">.75")
|
||||
#set($hailType = "LARGE HAIL")
|
||||
#set($severeType = "SEVERE")
|
||||
#set($hailCTA = "...${hailType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "destructiveHail")})
|
||||
#set($hailTag = ">2.0")
|
||||
#set($hailType = "LARGE DESTRUCTIVE HAIL")
|
||||
#set($severeType = "SEVERE")
|
||||
#set($hailCTA = "...${hailType}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "sightedSpout")})
|
||||
#set($spoutType = "WATERSPOUTS")
|
||||
|
@ -380,6 +237,147 @@ ${canwarning}
|
|||
#if(${list.contains(${bullets}, "satellite")} && ${list.contains(${bullets}, "sightedSpout")})
|
||||
#set($report = "SATELLITE IMAGERY INDICATED ${stormline}...PRODUCING ${threat}...")
|
||||
#end
|
||||
#######################################################################
|
||||
## The following code will create a string of marine zone fips codes
|
||||
## which will be important in combining marine zones
|
||||
#######################################################################
|
||||
#######################################################################
|
||||
## Set the fipsstring variable to null for marine zone combinations
|
||||
## This will only work for single CON/CAN/EXP products
|
||||
## Combination CON/CAN will need additional code which will be
|
||||
## included in the template below.
|
||||
#######################################################################
|
||||
#set($fipsstring = "")
|
||||
#foreach (${area} in ${areas})
|
||||
#set($fipsstring = $fipsstring + $area.fips + "-")
|
||||
#end
|
||||
#######################################################################
|
||||
## HEADER FOR NON-CAN/CON PRODUCTS
|
||||
#######################################################################
|
||||
##
|
||||
#if(${action}=="COR" && ${cancelareas})
|
||||
#set($CORCAN = "true")
|
||||
#else
|
||||
#set($CORCAN = "false")
|
||||
#end
|
||||
#if(${action}!="CANCON" && ${CORCAN}!="true")
|
||||
${WMOId} ${vtecOffice} 000000 ${BBBId}
|
||||
MWS${siteId}
|
||||
|
||||
#if(${productClass}=="T")
|
||||
TEST...MARINE WEATHER STATEMENT...TEST
|
||||
#else
|
||||
MARINE WEATHER STATEMENT
|
||||
#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}.MA.W.${oldvtec}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
||||
#if(${productClass}=="T")
|
||||
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
|
||||
|
||||
#end
|
||||
#end
|
||||
##
|
||||
#######################################################################
|
||||
## MWS CANCEL PRODUCT
|
||||
#######################################################################
|
||||
## Altered cancellation headline for cleaner wording and to match NWS Directive 10-314
|
||||
########################################################################
|
||||
#if(${action}=="CAN")
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE.##
|
||||
#end
|
||||
...THE ${warningType} IS CANCELLED...
|
||||
|
||||
THE AFFECTED AREAS WERE...
|
||||
#######################################################################
|
||||
## Coding to use the raw marine zone output from the shapefiles
|
||||
## Comment this section out if you are combining your marine zones
|
||||
#######################################################################
|
||||
#foreach (${area} in ${areas})
|
||||
${area.name}...
|
||||
#end
|
||||
#######################################################################
|
||||
## End of code for raw marine zone output from the shapefiles
|
||||
#######################################################################
|
||||
#######################################################################
|
||||
## Parse in the marineCombo.vm file which contains marine zone combinations
|
||||
## Uncomment the parse command if you are combining your marine zones
|
||||
#######################################################################
|
||||
##parse("marineCombo.vm")
|
||||
#######################################################################
|
||||
## End of the marine zone combination script
|
||||
#######################################################################
|
||||
|
||||
######################################################################
|
||||
## Setup eventType for wording in the End of Warning Statement
|
||||
######################################################################
|
||||
#set($stormline = " HAS")
|
||||
#set($pose = "POSES")
|
||||
#if(${stormType} == "line")
|
||||
#set($stormline = "S HAVE")
|
||||
#set($pose = "POSE")
|
||||
#end
|
||||
#set($eventType = "!**STORMS**! HAVE")
|
||||
#if(${list.contains(${bullets}, "thunderstorm")})
|
||||
#set($eventType = "THUNDERSTORM${stormline}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "shower")})
|
||||
#set($eventType = "SHOWER${stormline}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "cloud")})
|
||||
#set($eventType = "CLOUD${stormline}")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "front")})
|
||||
#set($eventType = "FRONT HAS")
|
||||
#set($pose = "POSES")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "volcano")})
|
||||
#set($eventType = "VOLCANO HAS")
|
||||
#set($pose = "POSES")
|
||||
#end
|
||||
#######################################################################
|
||||
## Section for end of warning statements. Replaced default wording with
|
||||
## a better defined reason for the end to the warning.
|
||||
#######################################################################
|
||||
#set($canwarning = "THE ${eventType} !** WEAKENED / MOVED OUT OF THE WARNED AREA **! AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.")
|
||||
#if(${list.contains(${bullets}, "weakenedWarnEnd")})
|
||||
#set($canwarning = "THE ${eventType} WEAKENED AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "movedWarnEnd")})
|
||||
#set($canwarning = "THE ${eventType} MOVED OUT OF THE AREA AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "volcano")})
|
||||
#set($canwarning = "THE ${eventType} STOPPED ERUPTING AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.")
|
||||
#end
|
||||
|
||||
${canwarning}
|
||||
|
||||
#############
|
||||
## 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
|
||||
#end
|
||||
##
|
||||
#######################################################################
|
||||
## MWS CON PRODUCT
|
||||
#######################################################################
|
||||
##
|
||||
#if(${action}=="CON" || (${action}=="COR" && ${CORCAN}=="false"))
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE.##
|
||||
#end
|
||||
|
@ -414,14 +412,15 @@ THIS IS A TEST MESSAGE. ##
|
|||
#end
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
|
||||
...${report}LOCATED ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "NM", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "NM", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if(${eventType} == "VOLCANO")
|
||||
.
|
||||
#elseif($movementSpeed < 3 || ${stationary})
|
||||
#elseif(${movementSpeed} < ${marineStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY.
|
||||
#else
|
||||
...MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} KNOTS.
|
||||
|
@ -457,7 +456,7 @@ THIS IS A TEST MESSAGE. ##
|
|||
#### 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("${impacted}" "THE ${eventType}" 0 ${locationList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 1)
|
||||
#locationsList("${impacted}" "${eventType}" 0 ${locationList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 1)
|
||||
|
||||
#end
|
||||
##############################################
|
||||
|
@ -465,7 +464,7 @@ THIS IS A TEST MESSAGE. ##
|
|||
##############################################
|
||||
|
||||
#if(${list.contains(${bullets}, "specialEvent")})
|
||||
EVERYONE AT !**event/venue name or location**! ARE IN THE PATH OF ${specialEvent} AND SHOULD PREPARE FOR IMMINENT DANGEROUS WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
THOSE ATTENDING !**event/venue name or location**! ARE IN THE PATH OF ${specialEvent} AND SHOULD PREPARE FOR IMMINENT DANGEROUS WEATHER CONDITIONS. SEEK SHELTER NOW.
|
||||
|
||||
#end
|
||||
#####################
|
||||
|
@ -490,12 +489,31 @@ PRECAUTIONARY/PREPAREDNESS ACTIONS...
|
|||
${ashfallCTA}
|
||||
|
||||
#if(${list.contains(${bullets}, "genericCTA")})
|
||||
AS THUNDERSTORMS MOVE OVER THE WATER...BOATERS CAN EXPECT GUSTY WINDS AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THE STORM PASSES.
|
||||
#if(${stormType} == "line")
|
||||
AS THUNDERSTORMS MOVE OVER THE WATER...BOATERS CAN EXPECT GUSTY WINDS AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
AS THIS THUNDERSTORM MOVES OVER THE WATER...BOATERS CAN EXPECT GUSTY WINDS AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THE STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "gustyWindsCTA")})
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
#if(${stormType} == "line")
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "hailWindsCTA")})
|
||||
#if(${stormType} == "line")
|
||||
MARINERS CAN EXPECT ${windCTA}${hailCTA}...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
MARINERS CAN EXPECT ${windCTA}${hailCTA}...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "nonThunderstormCTA")})
|
||||
MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES. BOATERS...ESPECIALLY THOSE UNDER SAIL...SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THE HIGH WINDS SUBSIDE.
|
||||
|
@ -621,7 +639,7 @@ ${area.name}...
|
|||
## Replaced default end of warning wording.
|
||||
#######################################################################
|
||||
|
||||
THE ${eventType} !**WEAKENED/MOVED OUT OF THE AREA**! AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.
|
||||
THE ${eventType} !** WEAKENED / MOVED OUT OF THE WARNED AREA **! AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.
|
||||
|
||||
#############
|
||||
## WATCHES ##
|
||||
|
@ -650,192 +668,6 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#if(${productClass}=="T")
|
||||
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
|
||||
|
||||
#end
|
||||
#######################################################################
|
||||
## List of Event Types. Added several events such as Shower...Cloud and Front.
|
||||
## Removed Strong and Severe Thunderstorm selections and placed logic in the
|
||||
## wind and hail selections that will change wording for Severe Thunderstorms.
|
||||
#######################################################################
|
||||
#set($eventType = "THUNDERSTORM")
|
||||
#if(${list.contains(${bullets}, "thunderstorm")})
|
||||
#set($eventType = "THUNDERSTORM")
|
||||
#set($severeType = "STRONG")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "shower")})
|
||||
#set($eventType = "SHOWER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "cloud")})
|
||||
#set($eventType = "CLOUD")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "front")})
|
||||
#set($eventType = "FRONT")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "volcano")})
|
||||
#set($eventType = "VOLCANO")
|
||||
#end
|
||||
#######################################################################
|
||||
## Added a Threat Section to template that includes Wind...Hail and Waterspout selections.
|
||||
## Strong Thunderstorm will change to Severe Thunderstorm automatically based on
|
||||
## selections in Wind...Hail and Waterspout sections.
|
||||
#######################################################################
|
||||
#set($windTag = "<34")
|
||||
#if(${list.contains(${bullets}, "34ktWind")})
|
||||
#set($windTag = ">34")
|
||||
#set($windType = "STRONG WINDS 34 KNOTS OR GREATER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "40ktWind")})
|
||||
#set($windTag = "40")
|
||||
#set($windType = "STRONG WINDS TO 40 KNOTS")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "40ktplusWind")})
|
||||
#set($windTag = "40")
|
||||
#set($windType = "STRONG WINDS TO NEARLY 50 KNOTS")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "50ktWind")})
|
||||
#set($windTag = "50")
|
||||
#set($windType = "DANGEROUS WINDS IN EXCESS OF 50 KNOTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "65ktWind")})
|
||||
#set($windTag = "65")
|
||||
#set($windType = "DANGEROUS CAPSIZING WINDS IN EXCESS OF 65 KNOTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#end
|
||||
#set($hailTag = "0.00")
|
||||
#if(${list.contains(${bullets}, "smallHail")})
|
||||
#set($hailTag = "<.75")
|
||||
#set($hailType = "SMALL HAIL")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "largeHail")})
|
||||
#set($hailTag = ">.75")
|
||||
#set($hailType = "LARGE HAIL")
|
||||
#set($severeType = "SEVERE")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "destructiveHail")})
|
||||
#set($hailTag = ">2.0")
|
||||
#set($hailType = "LARGE DESTRUCTIVE HAIL")
|
||||
#set($severeType = "SEVERE")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "sightedSpout")})
|
||||
#set($spoutType = "WATERSPOUTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "possibleSpout")})
|
||||
#set($spoutType = "WATERSPOUTS")
|
||||
#set($capable = "CAPABLE OF ")
|
||||
#end
|
||||
################################################
|
||||
## Threat section for Volcanic Situations
|
||||
################################################
|
||||
#if(${list.contains(${bullets}, "ashfall")})
|
||||
#set($ashfallType = "ASHFALL")
|
||||
#set($ashfallPath = "VOLCANIC ASH")
|
||||
#set($ctaSelected = "YES")
|
||||
#set($ashfallCTA = "ASH IS AN EYE AND RESPIRATORY IRRITANT AND IS ABRASIVE. THOSE WITH RESPIRATORY SENSITIVITIES SHOULD TAKE EXTRA PRECAUTIONS TO MINIMIZE EXPOSURE. PROTECT ELECTRONICS AND COVER AIR INTAKES IF ASHFALL IS EXPECTED OR CONFIRMED. REMOVE ASH FROM SURFACES WITH WATER IF POSSIBLE TO PREVENT EXCESSIVE ACCUMULATION.")
|
||||
#set($ashfallInfo = "AN ASHFALL WARNING MEANS THAT THE VOLCANO IS UNDERGOING A MAJOR ERUPTION. IT IS VERY LIKELY THAT MARINERS WILL BE AFFECTED BY VOLCANIC HAZARDS IN THE WARNING AREAS SUCH AS SIGNIFICANT DEBRIS...ASHFALL ONE QUARTER INCH OR GREATER...LAVA...OR LAHAR AND DEBRIS FLOWS.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "debrisFlow")})
|
||||
#set($debrisflowType = "DEBRIS FLOW")
|
||||
#set($debrisflowPath = "DEBRIS FLOW")
|
||||
#set($debrisflowInfo = "THE ERUPTION OF THE VOLCANO CAN CAUSE A SUDDEN 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 AND INTO THE NEARBY WATERS.")
|
||||
#end
|
||||
#######################################################################
|
||||
## Logic to create the Wind/Hail Tags used by CR.
|
||||
#######################################################################
|
||||
#set($windhailTag = "WIND...HAIL ${windTag}KTS ${hailTag}IN")
|
||||
#######################################################################
|
||||
## Logic to put together the threats based on Wind...Hail and Waterspout sections.
|
||||
#######################################################################
|
||||
#if(${spoutType} && ${windType} && ${hailType})
|
||||
#set($threat = "${spoutType}...${windType} AND ${hailType}")
|
||||
#elseif(${spoutType} && ${hailType})
|
||||
#set($threat = "${spoutType} AND ${hailType}")
|
||||
#elseif(${spoutType} && ${windType})
|
||||
#set($threat = "${spoutType} AND ${windType}")
|
||||
#elseif(${windType} && ${hailType})
|
||||
#set($threat = "${windType} AND ${hailType}")
|
||||
#elseif(${spoutType})
|
||||
#set($threat = "${spoutType}")
|
||||
#elseif(${windType})
|
||||
#set($threat = "${windType}")
|
||||
#elseif(${hailType})
|
||||
#set($threat = "${hailType}")
|
||||
#else
|
||||
#set($threat = "!**YOU DID NOT SELECT ANY THREATS. PLEAST RE-GENERATE THIS WARNING!**!")
|
||||
#end
|
||||
#######################################################################
|
||||
## Logic for Volcanic Threats. If selected this will override any
|
||||
## other selections for wind/hail/spouts.
|
||||
#######################################################################
|
||||
#if(${ashfallType} && ${debrisflowType})
|
||||
#set($threat = "${ashfallType} AND ${debrisflowType}")
|
||||
#set($volcanoPath = "${ashfallPath} AND ${debrisflowPath}")
|
||||
#elseif(${ashfallType})
|
||||
#set($threat = "${ashfallType}")
|
||||
#set($volcanoPath = "${ashfallPath}")
|
||||
#elseif(${debrisflowType})
|
||||
#set($threat = "${debrisflowType}")
|
||||
#set($volcanoPath = "${debrisflowPath}")
|
||||
#else
|
||||
#end
|
||||
#######################################################################
|
||||
## Section to determine Thunderstorm Severity based on Threat Selections.
|
||||
#######################################################################
|
||||
#if(${eventType} == "THUNDERSTORM")
|
||||
#set($thunderstormType = "${severeType} ${eventType}")
|
||||
#set($eventType = "${thunderstormType}")
|
||||
#end
|
||||
#######################################################################
|
||||
## Section to create line wording based on track type.
|
||||
#######################################################################
|
||||
#set($stormline = "A ${eventType}")
|
||||
#set($pathheader = "${eventType}")
|
||||
#if(${stormType} == "line")
|
||||
#set($stormline = "A LINE OF ${eventType}S")
|
||||
#set($pathheader = "${eventType}S")
|
||||
#end
|
||||
#######################################################################
|
||||
##Corrective coding to prevent the use of "Line of Fronts" in the Product.
|
||||
#######################################################################
|
||||
#if(${eventType} == "FRONT")
|
||||
#set($stormline = "A ${eventType}")
|
||||
#set($pathheader = "${eventType}")
|
||||
## #set($stormType = "")
|
||||
#end
|
||||
#######################################################################
|
||||
## Coding for volcanos...this will override all other selections.
|
||||
#######################################################################
|
||||
#set($impacted = "LOCATIONS IMPACTED INCLUDE...")
|
||||
#if(${eventType} == "VOLCANO")
|
||||
#set($stormline = "!** NAME OF VOLCANO**! ${eventType}")
|
||||
#set($pathheader = "THE ${volcanoPath}")
|
||||
## #set($stormType = "")
|
||||
#set($impacted = "LOCATIONS IMPACTED BY ${volcanoPath} INCLUDE...")
|
||||
#end
|
||||
#######################################################################
|
||||
## Basis section that incorporates line phenomena...capable vs producing
|
||||
## and threat based on selections above. Added Satellite Imagery to basis.
|
||||
#######################################################################
|
||||
#set($report = "!** YOU DIDN'T SELECT A REPORTER **! ${eventType}")
|
||||
#if(${list.contains(${bullets}, "doppler")})
|
||||
#set($capable = "CAPABLE OF ")
|
||||
#set($report = "NATIONAL WEATHER SERVICE DOPPLER RADAR INDICATED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "marineSpotter")})
|
||||
#set($report = "MARINE WEATHER SPOTTERS REPORTED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "mariner")})
|
||||
#set($report = "A MARINER REPORTED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "public")})
|
||||
#set($report = "THE PUBLIC REPORTED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "pilot")})
|
||||
#set($report = "A PILOT REPORTED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "satellite")})
|
||||
#set($capable = "CAPABLE OF ")
|
||||
#set($report = "SATELLITE IMAGERY INDICATED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE.##
|
||||
|
@ -879,15 +711,16 @@ ${area.name}...
|
|||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
AT ${dateUtil.format(${event}, ${timeFormat.clock}, ${localtimezone})}... ${report} LOCATED ##
|
||||
AT ${dateUtil.format(${event}, ${timeFormat.clock}, ${localtimezone})}...${report}LOCATED ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "NM", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "NM", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if(${eventType} == "VOLCANO")
|
||||
.
|
||||
#elseif($movementSpeed < 3 || ${stationary})
|
||||
#elseif(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY.
|
||||
#else
|
||||
...MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} KNOTS.
|
||||
|
@ -962,12 +795,31 @@ PRECAUTIONARY/PREPAREDNESS ACTIONS...
|
|||
${ashfallCTA}
|
||||
|
||||
#if(${list.contains(${bullets}, "genericCTA")})
|
||||
AS THUNDERSTORMS MOVE OVER THE WATER...BOATERS CAN EXPECT GUSTY WIND AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THE STORM PASSES.
|
||||
#if(${stormType} == "line")
|
||||
AS THUNDERSTORMS MOVE OVER THE WATER...BOATERS CAN EXPECT GUSTY WINDS AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
AS THIS THUNDERSTORM MOVES OVER THE WATER...BOATERS CAN EXPECT GUSTY WINDS AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THE STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "gustyWindsCTA")})
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
#if(${stormType} == "line")
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "hailWindsCTA")})
|
||||
#if(${stormType} == "line")
|
||||
MARINERS CAN EXPECT ${windCTA}${hailCTA}...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
MARINERS CAN EXPECT ${windCTA}${hailCTA}...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "nonThunderstormCTA")})
|
||||
MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES. BOATERS...ESPECIALLY THOSE UNDER SAIL...SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THE HIGH WINDS SUBSIDE.
|
||||
|
@ -1058,7 +910,7 @@ ${area.name}...
|
|||
## Replaced default end of warning wording.
|
||||
#######################################################################
|
||||
|
||||
THE ${eventType} !**WEAKENED/MOVED OUT OF THE AREA**! AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.
|
||||
THE ${eventType} !** WEAKENED / MOVED OUT OF THE WARNED AREA **! AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.
|
||||
|
||||
#############
|
||||
## WATCHES ##
|
||||
|
@ -1087,192 +939,6 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#if(${productClass}=="T")
|
||||
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
|
||||
|
||||
#end
|
||||
#######################################################################
|
||||
## List of Event Types. Added several events such as Shower...Cloud and Front.
|
||||
## Removed Strong and Severe Thunderstorm selections and placed logic in the
|
||||
## wind and hail selections that will change wording for Severe Thunderstorms.
|
||||
#######################################################################
|
||||
#set($eventType = "THUNDERSTORM")
|
||||
#if(${list.contains(${bullets}, "thunderstorm")})
|
||||
#set($eventType = "THUNDERSTORM")
|
||||
#set($severeType = "STRONG")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "shower")})
|
||||
#set($eventType = "SHOWER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "cloud")})
|
||||
#set($eventType = "CLOUD")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "front")})
|
||||
#set($eventType = "FRONT")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "volcano")})
|
||||
#set($eventType = "VOLCANO")
|
||||
#end
|
||||
#######################################################################
|
||||
## Added a Threat Section to template that includes Wind...Hail and Waterspout selections.
|
||||
## Strong Thunderstorm will change to Severe Thunderstorm automatically based on
|
||||
## selections in Wind...Hail and Waterspout sections.
|
||||
#######################################################################
|
||||
#set($windTag = "<34")
|
||||
#if(${list.contains(${bullets}, "34ktWind")})
|
||||
#set($windTag = ">34")
|
||||
#set($windType = "STRONG WINDS 34 KNOTS OR GREATER")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "40ktWind")})
|
||||
#set($windTag = "40")
|
||||
#set($windType = "STRONG WINDS TO 40 KNOTS")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "40ktplusWind")})
|
||||
#set($windTag = "40")
|
||||
#set($windType = "STRONG WINDS TO NEARLY 50 KNOTS")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "50ktWind")})
|
||||
#set($windTag = "50")
|
||||
#set($windType = "DANGEROUS WINDS IN EXCESS OF 50 KNOTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "65ktWind")})
|
||||
#set($windTag = "65")
|
||||
#set($windType = "DANGEROUS CAPSIZING WINDS IN EXCESS OF 65 KNOTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#end
|
||||
#set($hailTag = "0.00")
|
||||
#if(${list.contains(${bullets}, "smallHail")})
|
||||
#set($hailTag = "<.75")
|
||||
#set($hailType = "SMALL HAIL")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "largeHail")})
|
||||
#set($hailTag = ">.75")
|
||||
#set($hailType = "LARGE HAIL")
|
||||
#set($severeType = "SEVERE")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "destructiveHail")})
|
||||
#set($hailTag = ">2.0")
|
||||
#set($hailType = "LARGE DESTRUCTIVE HAIL")
|
||||
#set($severeType = "SEVERE")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "sightedSpout")})
|
||||
#set($spoutType = "WATERSPOUTS")
|
||||
#set($severeType = "SEVERE")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "possibleSpout")})
|
||||
#set($spoutType = "WATERSPOUTS")
|
||||
#set($capable = "CAPABLE OF ")
|
||||
#end
|
||||
################################################
|
||||
## Threat section for Volcanic Situations
|
||||
################################################
|
||||
#if(${list.contains(${bullets}, "ashfall")})
|
||||
#set($ashfallType = "ASHFALL")
|
||||
#set($ashfallPath = "VOLCANIC ASH")
|
||||
#set($ctaSelected = "YES")
|
||||
#set($ashfallCTA = "ASH IS AN EYE AND RESPIRATORY IRRITANT AND IS ABRASIVE. THOSE WITH RESPIRATORY SENSITIVITIES SHOULD TAKE EXTRA PRECAUTIONS TO MINIMIZE EXPOSURE. PROTECT ELECTRONICS AND COVER AIR INTAKES IF ASHFALL IS EXPECTED OR CONFIRMED. REMOVE ASH FROM SURFACES WITH WATER IF POSSIBLE TO PREVENT EXCESSIVE ACCUMULATION.")
|
||||
#set($ashfallInfo = "AN ASHFALL WARNING MEANS THAT THE VOLCANO IS UNDERGOING A MAJOR ERUPTION. IT IS VERY LIKELY THAT MARINERS WILL BE AFFECTED BY VOLCANIC HAZARDS IN THE WARNING AREAS SUCH AS SIGNIFICANT DEBRIS...ASHFALL ONE QUARTER INCH OR GREATER...LAVA...OR LAHAR AND DEBRIS FLOWS.")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "debrisFlow")})
|
||||
#set($debrisflowType = "DEBRIS FLOW")
|
||||
#set($debrisflowPath = "DEBRIS FLOW")
|
||||
#set($debrisflowInfo = "THE ERUPTION OF THE VOLCANO CAN CAUSE A SUDDEN 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 AND INTO THE NEARBY WATERS.")
|
||||
#end
|
||||
#######################################################################
|
||||
## Logic to create the Wind/Hail Tags used by CR.
|
||||
#######################################################################
|
||||
#set($windhailTag = "WIND...HAIL ${windTag}KTS ${hailTag}IN")
|
||||
#######################################################################
|
||||
## Logic to put together the threats based on Wind...Hail and Waterspout sections.
|
||||
#######################################################################
|
||||
#if(${spoutType} && ${windType} && ${hailType})
|
||||
#set($threat = "${spoutType}...${windType} AND ${hailType}")
|
||||
#elseif(${spoutType} && ${hailType})
|
||||
#set($threat = "${spoutType} AND ${hailType}")
|
||||
#elseif(${spoutType} && ${windType})
|
||||
#set($threat = "${spoutType} AND ${windType}")
|
||||
#elseif(${windType} && ${hailType})
|
||||
#set($threat = "${windType} AND ${hailType}")
|
||||
#elseif(${spoutType})
|
||||
#set($threat = "${spoutType}")
|
||||
#elseif(${windType})
|
||||
#set($threat = "${windType}")
|
||||
#elseif(${hailType})
|
||||
#set($threat = "${hailType}")
|
||||
#else
|
||||
#set($threat = "!**YOU DID NOT SELECT ANY THREATS. PLEAST RE-GENERATE THIS WARNING!**!")
|
||||
#end
|
||||
#######################################################################
|
||||
## Logic for Volcanic Threats. If selected this will override any
|
||||
## other selections for wind/hail/spouts.
|
||||
#######################################################################
|
||||
#if(${ashfallType} && ${debrisflowType})
|
||||
#set($threat = "${ashfallType} AND ${debrisflowType}")
|
||||
#set($volcanoPath = "${ashfallPath} AND ${debrisflowPath}")
|
||||
#elseif(${ashfallType})
|
||||
#set($threat = "${ashfallType}")
|
||||
#set($volcanoPath = "${ashfallPath}")
|
||||
#elseif(${debrisflowType})
|
||||
#set($threat = "${debrisflowType}")
|
||||
#set($volcanoPath = "${debrisflowPath}")
|
||||
#else
|
||||
#end
|
||||
#######################################################################
|
||||
## Section to determine Thunderstorm Severity based on Threat Selections.
|
||||
#######################################################################
|
||||
#if(${eventType} == "THUNDERSTORM")
|
||||
#set($thunderstormType = "${severeType} ${eventType}")
|
||||
#set($eventType = "${thunderstormType}")
|
||||
#end
|
||||
#######################################################################
|
||||
## Section to create line wording based on track type.
|
||||
#######################################################################
|
||||
#set($stormline = "A ${eventType}")
|
||||
#set($pathheader = "${eventType}")
|
||||
#if(${stormType} == "line")
|
||||
#set($stormline = "A LINE OF ${eventType}S")
|
||||
#set($pathheader = "${eventType}S")
|
||||
#end
|
||||
#######################################################################
|
||||
##Corrective coding to prevent the use of "Line of Fronts" in the Product.
|
||||
#######################################################################
|
||||
#if(${eventType} == "FRONT")
|
||||
#set($stormline = "A ${eventType}")
|
||||
#set($pathheader = "${eventType}")
|
||||
## #set($stormType = "")
|
||||
#end
|
||||
#######################################################################
|
||||
## Coding for volcanos...this will override all other selections.
|
||||
#######################################################################
|
||||
#set($impacted = "LOCATIONS IMPACTED INCLUDE...")
|
||||
#if(${eventType} == "VOLCANO")
|
||||
#set($stormline = "!** NAME OF VOLCANO**! ${eventType}")
|
||||
#set($pathheader = "THE ${volcanoPath}")
|
||||
## #set($stormType = "")
|
||||
#set($impacted = "LOCATIONS IMPACTED BY ${volcanoPath} INCLUDE...")
|
||||
#end
|
||||
#######################################################################
|
||||
## Basis section that incorporates line phenomena...capable vs producing
|
||||
## and threat based on selections above. Added Satellite Imagery to basis.
|
||||
#######################################################################
|
||||
#set($report = "!** YOU DIDN'T SELECT A REPORTER **! ${eventType}")
|
||||
#if(${list.contains(${bullets}, "doppler")})
|
||||
#set($capable = "CAPABLE OF ")
|
||||
#set($report = "NATIONAL WEATHER SERVICE DOPPLER RADAR INDICATED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "marineSpotter")})
|
||||
#set($report = "MARINE WEATHER SPOTTERS REPORTED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "mariner")})
|
||||
#set($report = "A MARINER REPORTED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "public")})
|
||||
#set($report = "THE PUBLIC REPORTED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "pilot")})
|
||||
#set($report = "A PILOT REPORTED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "satellite")})
|
||||
#set($capable = "CAPABLE OF ")
|
||||
#set($report = "SATELLITE IMAGERY INDICATED ${stormline}...${capable}PRODUCING ${threat}...")
|
||||
#end
|
||||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE.##
|
||||
|
@ -1304,15 +970,16 @@ ${area.name}...
|
|||
#if(${productClass}=="T")
|
||||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
AT ${dateUtil.format(${event}, ${timeFormat.clock}, ${localtimezone})}... ${report} LOCATED ##
|
||||
AT ${dateUtil.format(${event}, ${timeFormat.clock}, ${localtimezone})}...${report} LOCATED ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "NM", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "NM", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxMarineNearDistance}, ${overPhrase}, ${maxMarineOverDistance}, ${marineDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if(${eventType} == "VOLCANO")
|
||||
.
|
||||
#elseif($movementSpeed < 3 || ${stationary})
|
||||
#elseif(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
. ${reportType2} NEARLY STATIONARY.
|
||||
#else
|
||||
...MOVING #direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} KNOTS.
|
||||
|
@ -1387,12 +1054,31 @@ PRECAUTIONARY/PREPAREDNESS ACTIONS...
|
|||
${ashfallCTA}
|
||||
|
||||
#if(${list.contains(${bullets}, "genericCTA")})
|
||||
AS THUNDERSTORMS MOVE OVER THE WATER...BOATERS CAN EXPECT GUSTY WIND AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THE STORM PASSES.
|
||||
#if(${stormType} == "line")
|
||||
AS THUNDERSTORMS MOVE OVER THE WATER...BOATERS CAN EXPECT GUSTY WINDS AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
AS THIS THUNDERSTORM MOVES OVER THE WATER...BOATERS CAN EXPECT GUSTY WINDS AND HIGH WAVES. MOVE TO SAFE HARBOR OR STAY CLOSE TO SHORE UNTIL THE STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "gustyWindsCTA")})
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
#if(${stormType} == "line")
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "hailWindsCTA")})
|
||||
#if(${stormType} == "line")
|
||||
MARINERS CAN EXPECT ${windCTA}${hailCTA}...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THESE STORMS PASS.
|
||||
|
||||
#else
|
||||
MARINERS CAN EXPECT ${windCTA}${hailCTA}...HIGH WAVES...DANGEROUS LIGHTNING...AND HEAVY RAINS. BOATERS SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THIS STORM PASSES.
|
||||
|
||||
#end
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "nonThunderstormCTA")})
|
||||
MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES. BOATERS...ESPECIALLY THOSE UNDER SAIL...SHOULD SEEK SAFE HARBOR IMMEDIATELY...UNTIL THE HIGH WINDS SUBSIDE.
|
||||
|
@ -1477,7 +1163,7 @@ ${area.name}...
|
|||
## Section for end of warning statements. Replaced default wording with
|
||||
## a better defined reason for the end to the warning.
|
||||
#######################################################################
|
||||
#set($expwarning = "THE ${eventType} !**WEAKENED/MOVED OUT OF THE AREA**! AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.")
|
||||
#set($expwarning = "THE ${eventType} !** WEAKENED / MOVED OUT OF THE WARNED AREA **! AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.")
|
||||
#if(${list.contains(${bullets}, "weakenedWarnEnd")})
|
||||
#set($expwarning = "THE ${eventType} WEAKENED AND NO LONGER ${pose} A SIGNIFICANT THREAT TO BOATERS.")
|
||||
#end
|
||||
|
|
|
@ -5,9 +5,24 @@
|
|||
Phil Kurimski 23 Sept 2011 Added Volcano Information
|
||||
Phil Kurimski 1 Mar 2012
|
||||
Evan Bookbinder 09-11-2012 Added settings for locations shapefile
|
||||
Added new areaSource variable
|
||||
Added new areaSource variable
|
||||
Phil Kurimski 09-16-2013 Fixed multiple selections in pathcast
|
||||
Phil Kurimski 09-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_MARINE.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>nmi</unitDistance>
|
||||
<unitSpeed>kn</unitSpeed>
|
||||
|
@ -150,14 +165,14 @@
|
|||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Optional Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="EVERYONE AT"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" ****** CALLS TO ACTION (CHOOSE 1 OR MORE) ****** " bulletType="title"/>
|
||||
<bullet bulletName="genericCTA" bulletText="As thunderstorms move over the water.." parseString="AS THUNDERSTORMS MOVE OVER THE WATER..."/>
|
||||
<bullet bulletName="genericCTA" bulletText="As thunderstorms move over the water.." parseString="OVER THE WATER...BOATERS CAN EXPECT"/>
|
||||
<bullet bulletName="gustyWindsCTA" bulletText="Mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES..."/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Mariners can expect cta with hail/wind speeds" parseString="MARINERS CAN EXPECT WIND GUSTS "/>
|
||||
<bullet bulletName="nonThunderstormCTA" bulletText="Non thunderstorm winds - mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES"/>
|
||||
<bullet bulletName="waterspoutCTA" bulletText="Thunderstorms can produce waterspouts" parseString="THUNDERSTORMS CAN PRODUCE SUDDEN WATERSPOUTS"/>
|
||||
<bullet bulletName="lightningCTA" bulletText="Frequent lightning" parseString="FREQUENT LIGHTNING IS OCCURRING WITH THIS STORM"/>
|
||||
|
@ -203,14 +218,14 @@
|
|||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** Optional Pathcast Section **********" bulletType="title"/>
|
||||
<bullet bulletName="pathcast" bulletText="Select for pathcast" bulletGroup="pcast" parseString="WILL BE NEAR..."/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="LOCATIONS IMPACTED INCLUDE" showString="LOCATIONS IMPACTED INCLUDE"/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="LOCATIONS IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listoflocations" bulletText="Select for a list of locations" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="EVERYONE AT"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText=" ****** CALLS TO ACTION (CHOOSE 1 OR MORE) ****** " bulletType="title"/>
|
||||
<bullet bulletName="genericCTA" bulletText="As thunderstorms move over the water.." parseString="AS THUNDERSTORMS MOVE OVER THE WATER..."/>
|
||||
<bullet bulletName="genericCTA" bulletText="As thunderstorms move over the water.." parseString="OVER THE WATER...BOATERS CAN EXPECT"/>
|
||||
<bullet bulletName="gustyWindsCTA" bulletText="Mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...HIGH WAVES..."/>
|
||||
<bullet bulletName="hailWindsCTA" bulletText="Mariners can expect cta with hail/wind speeds" parseString="MARINERS CAN EXPECT WIND GUSTS "/>
|
||||
<bullet bulletName="nonThunderstormCTA" bulletText="Non thunderstorm winds - mariners can expect gusty winds.." parseString="MARINERS CAN EXPECT GUSTY WINDS...AND INCREASING WAVES"/>
|
||||
<bullet bulletName="waterspoutCTA" bulletText="Thunderstorms can produce waterspouts" parseString="THUNDERSTORMS CAN PRODUCE SUDDEN WATERSPOUTS"/>
|
||||
<bullet bulletName="lightningCTA" bulletText="Frequent lightning" parseString="FREQUENT LIGHTNING IS OCCURRING WITH THIS STORM"/>
|
||||
|
@ -219,146 +234,4 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- Default areaSource object to generate zone based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>MarineZones</areaSource>
|
||||
<inclusionPercent>0</inclusionPercent>
|
||||
<inclusionAndOr>AND</inclusionAndOr>
|
||||
<inclusionArea>0</inclusionArea>
|
||||
<areaField>NAME</areaField>
|
||||
<parentAreaField>NAME</parentAreaField>
|
||||
<areaNotationField>NAME</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<fipsField>ID</fipsField>
|
||||
<pointField>NAME</pointField>
|
||||
<sortBy>
|
||||
<sort>parent</sort>
|
||||
</sortBy>
|
||||
<pointFilter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</pointFilter>
|
||||
<includedWatchAreaBuffer>25</includedWatchAreaBuffer>
|
||||
</areaSource>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,C,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>WARNGENLEV</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,C,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>WARNGENLEV</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pathcastConfig>
|
||||
<!-- the withinPolygon variable set to false will bring in points
|
||||
outside of the polygon which is necessary for the pathcast to reference
|
||||
points that are near the water but not on the water -->
|
||||
<withinPolygon>false</withinPolygon>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<distanceThreshold>10.0</distanceThreshold>
|
||||
<interval>5</interval>
|
||||
<delta>5</delta>
|
||||
<maxResults>4</maxResults>
|
||||
<maxGroup>8</maxGroup>
|
||||
<pointField>Name</pointField>
|
||||
<type>AREA</type>
|
||||
<areaField>Name</areaField>
|
||||
<parentAreaField>Name</parentAreaField>
|
||||
<areaNotationField>Name</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2,3" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pathcastConfig>
|
||||
|
||||
<pointSource variable="locationList">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>20</distanceThreshold>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2,3,4" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<type>AREA</type>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>20</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="3,4" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="W,LW" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
</pointSource>
|
||||
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</pointSource>
|
||||
<areaSource>MarineZones</areaSource>
|
||||
<parentAreaSource>MarineZones</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
</warngenConfig>
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
#########################################################
|
||||
## SPS - SPECIAL WEATHER STATEMENT for various THREATS ##
|
||||
## WRITTEN BY: ##
|
||||
## Mike Dangelo WFO CTP 1.25.2013 (BUILD 12.12.1-12) ##
|
||||
## Phil Kurimski WFO DTX 2.05.2013 (BUILD 13.2.1-5) ##
|
||||
#########################################################
|
||||
############################################################
|
||||
## SPS - SPECIAL WEATHER STATEMENT for various THREATS ##
|
||||
## WRITTEN BY: ##
|
||||
## Mike Dangelo WFO CTP 1.25.2013 (BUILD 12.12.1-12) ##
|
||||
## Phil Kurimski WFO DTX 2.05.2013 (BUILD 13.2.1-5) ##
|
||||
## Phil Kurimski WFO DTX 9.16.2013 (BUILD 13.5.2-4) ##
|
||||
## Evan Bookbinder 9.18.2013 Implemented config.vm ##
|
||||
############################################################
|
||||
##
|
||||
## SET SOME INITIAL VARIABLES
|
||||
#parse("config.vm")
|
||||
#set($SvsR = "RAIN")
|
||||
#foreach ($bullet in $bullets)
|
||||
#if($bullet.startsWith("snow"))
|
||||
|
@ -110,43 +113,48 @@
|
|||
## HANDLE WIND POSSIBILITIES ######################
|
||||
###################################################
|
||||
#set($windSpeed = 0)
|
||||
#if(${list.contains($bullets, "wind30")})
|
||||
#set($windThreat = "WIND GUSTS UP TO 30 MPH")
|
||||
#if(${list.contains(${bullets}, "wind30")})
|
||||
#set($windThreat = "WINDS IN EXCESS OF 30 MPH")
|
||||
#set($windSpeed = 30)
|
||||
#set($windTag = "30MPH")
|
||||
#end
|
||||
#if(${list.contains($bullets, "wind40")})
|
||||
#set($windThreat = "WINDS GUSTS UP TO 40 MPH")
|
||||
#if(${list.contains(${bullets}, "wind40")})
|
||||
#set($windThreat = "WINDS IN EXCESS OF 40 MPH")
|
||||
#set($windSpeed = 40)
|
||||
#set($windTag = "40MPH")
|
||||
#end
|
||||
#if(${list.contains($bullets, "wind50")})
|
||||
#set($windThreat = "WINDS GUSTS UP TO 50 MPH")
|
||||
#if(${list.contains(${bullets}, "wind50")})
|
||||
#set($windThreat = "WIND GUSTS UP TO 50 MPH")
|
||||
#set($windSpeed = 50)
|
||||
#set($windTag = "50MPH")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "wind55")})
|
||||
#set($windThreat = "WIND GUSTS OF 50 TO 55 MPH")
|
||||
#set($windSpeed = 50)
|
||||
#set($windTag = "55MPH")
|
||||
#end
|
||||
|
||||
###################################################
|
||||
## HANDLE HAIL POSSIBILITIES ######################
|
||||
###################################################
|
||||
#set($hailSize = 0)
|
||||
#set($smallHail = "")
|
||||
#if(${list.contains($bullets, "smallHail")})
|
||||
#if(${list.contains(${bullets}, "peaHail")})
|
||||
#set($hailSize = 0.25)
|
||||
#set($hailThreat = "SMALL")
|
||||
#set($hailTrail = " HAIL")
|
||||
#end
|
||||
#if(${list.contains($bullets, "peaHail")})
|
||||
#set($hailSize = 0.50)
|
||||
#set($hailThreat = "PEA SIZE")
|
||||
#set($hailTrail = " HAIL")
|
||||
#end
|
||||
#if(${list.contains($bullets, "dimeHail")})
|
||||
#if(${list.contains(${bullets}, "halfHail")})
|
||||
#set($hailSize = 0.50)
|
||||
#set($hailThreat = "HALF INCH")
|
||||
#set($hailTrail = " HAIL")
|
||||
#end
|
||||
#if(${list.contains(${bullets}, "dimeHail")})
|
||||
#set($hailSize = 0.75)
|
||||
#set($hailThreat = "DIME SIZE")
|
||||
#set($hailTrail = " HAIL")
|
||||
#end
|
||||
#if(${list.contains($bullets, "nickelHail")})
|
||||
#if(${list.contains(${bullets}, "nickelHail")})
|
||||
#set($hailSize = 0.88)
|
||||
#set($hailThreat = "NICKEL SIZE")
|
||||
#set($hailTrail = " HAIL")
|
||||
|
@ -172,11 +180,14 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
|
||||
#end
|
||||
${ugcline}
|
||||
#set($zoneList = "")
|
||||
#foreach (${area} in ${areas})
|
||||
#set($zoneList = "${zoneList}${area.name}-")
|
||||
${area.name}##
|
||||
#if(${sAbbreviation}==true)
|
||||
${area.stateabbr}##
|
||||
#end
|
||||
${zoneList}
|
||||
-##
|
||||
#end
|
||||
|
||||
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
||||
|
||||
#if(${productClass}=="T")
|
||||
|
@ -201,12 +212,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
#end
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...##
|
||||
${describeMovement} WAS ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if($movementSpeed < 5 || ${stationary})
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
. ${eventWas} NEARLY STATIONARY.
|
||||
#else
|
||||
#if(${stormType} == "line")
|
||||
|
@ -340,6 +352,7 @@ THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
|
|||
|
||||
#tml(${TMLtime}, ${timeFormat}, ${movementDirection}, ${movementInKnots}, ${eventLocation})
|
||||
|
||||
|
||||
$$
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,23 @@
|
|||
<!-- Special Weather Statement for various THREATS
|
||||
Mike Dangelo 1.25.2013 (on build 12.12.1-12)
|
||||
Phil Kurimski 2.05.2013 (on build 13.2.1-5)
|
||||
Phil Kurimski 9-19-2013 added geospatialConfig.xml
|
||||
-->
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_ZONE.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -13,6 +27,7 @@
|
|||
that can be loaded with each template. -->
|
||||
<maps>
|
||||
<map>Forecast Zones</map>
|
||||
<map>County Names</map>
|
||||
<map>County Warning Areas</map>
|
||||
</maps>
|
||||
|
||||
|
@ -73,13 +88,14 @@
|
|||
<bullet bulletName="wintryMix" bulletText="FZRA/SN/PL: Wintry Mix" bulletGroup="toggle1" parseString="WINTRY MIX"/>
|
||||
<bullet bulletName="flashFreeze" bulletText="Flash Freeze/Black Ice" bulletGroup="toggle1" parseString="FLASH FREEZE"/>
|
||||
<bullet bulletText="******* THREATS (CHOOSE UP TO 1 EACH WIND/HAIL/VIZ) ******" bulletType="title"/>
|
||||
<bullet bulletName="wind30" bulletText="Winds 30 mph or greater" bulletGroup="toggle2" parseString="30 MPH"/>
|
||||
<bullet bulletName="wind40" bulletText="Strong winds 40 mph or greater" bulletGroup="toggle2" parseString="40 MPH"/>
|
||||
<bullet bulletName="wind50" bulletText="Strong winds 50 mph or greater" bulletGroup="toggle2" parseString="50 MPH"/>
|
||||
<bullet bulletName="smallHail" bulletText="Small hail" bulletGroup="toggle3" parseString="SMALL HAIL"/>
|
||||
<bullet bulletName="peaHail" bulletText="Pea sized hail" bulletGroup="toggle3" parseString="PEA SIZED HAIL"/>
|
||||
<bullet bulletName="dimeHail" bulletText="Dime sized hail" bulletGroup="toggle3" parseString="DIME SIZED HAIL"/>
|
||||
<bullet bulletName="nickelHail" bulletText="Nickel sized hail" bulletGroup="toggle3" parseString="NICKLE SIZED HAIL"/>
|
||||
<bullet bulletName="wind30" bulletText="Winds 30 mph or greater" bulletGroup="windThreat" parseString="30 MPH"/>
|
||||
<bullet bulletName="wind40" bulletText="Strong winds 40 mph or greater" bulletGroup="windThreat" parseString="40 MPH"/>
|
||||
<bullet bulletName="wind50" bulletText="Strong winds to 50 mph" bulletGroup="windThreat" parseString="50 MPH"/>
|
||||
<bullet bulletName="wind55" bulletText="Strong winds 50 to 55 mph" bulletGroup="windThreat" parseString="55 MPH"/>
|
||||
<bullet bulletName="peaHail" bulletText="Pea sized hail" bulletGroup="hailThreat" parseString="PEA SIZED HAIL"/>
|
||||
<bullet bulletName="halfHail" bulletText="Half inch hail" bulletGroup="hailThreat" parseString="HALF INCH HAIL"/>
|
||||
<bullet bulletName="dimeHail" bulletText="Dime sized hail" bulletGroup="hailThreat" parseString="DIME SIZED HAIL"/>
|
||||
<bullet bulletName="nickelHail" bulletText="Nickel sized hail" bulletGroup="hailThreat" parseString="NICKEL SIZED HAIL"/>
|
||||
<bullet bulletName="quarterMile" bulletText="SNOW: Visibilities M1/4SM" bulletGroup="toggle4" parseString="BELOW ONE QUARTER"/>
|
||||
<bullet bulletName="zeroMile" bulletText="SNOW: Visibilities near Zero" bulletGroup="toggle4" parseString="NEAR ZERO"/>
|
||||
<bullet bulletText="************ ADDITIONAL INFO **************" bulletType="title"/>
|
||||
|
@ -125,13 +141,14 @@
|
|||
<bullet bulletName="wintryMix" bulletText="FZRA/SN/PL: Wintry Mix" bulletGroup="toggle1" parseString="WINTRY MIX"/>
|
||||
<bullet bulletName="flashFreeze" bulletText="Flash Freeze/Black Ice" bulletGroup="toggle1" parseString="FLASH FREEZE"/>
|
||||
<bullet bulletText="******* THREATS (CHOOSE UP TO 1 EACH WIND/HAIL/VIZ) ******" bulletType="title"/>
|
||||
<bullet bulletName="wind30" bulletText="Winds 30 mph or greater" bulletGroup="toggle2" parseString="30 MPH"/>
|
||||
<bullet bulletName="wind40" bulletText="Strong winds 40 mph or greater" bulletGroup="toggle2" parseString="40 MPH"/>
|
||||
<bullet bulletName="wind50" bulletText="Strong winds 50 mph or greater" bulletGroup="toggle2" parseString="50 MPH"/>
|
||||
<bullet bulletName="smallHail" bulletText="Small hail" bulletGroup="toggle3" parseString="SMALL HAIL"/>
|
||||
<bullet bulletName="peaHail" bulletText="Pea sized hail" bulletGroup="toggle3" parseString="PEA SIZED HAIL"/>
|
||||
<bullet bulletName="dimeHail" bulletText="Dime sized hail" bulletGroup="toggle3" parseString="DIME SIZED HAIL"/>
|
||||
<bullet bulletName="nickelHail" bulletText="Nickel sized hail" bulletGroup="toggle3" parseString="NICKLE SIZED HAIL"/>
|
||||
<bullet bulletName="wind30" bulletText="Winds 30 mph or greater" bulletGroup="windThreat" parseString="30 MPH"/>
|
||||
<bullet bulletName="wind40" bulletText="Strong winds 40 mph or greater" bulletGroup="windThreat" parseString="40 MPH"/>
|
||||
<bullet bulletName="wind50" bulletText="Strong winds to 50 mph" bulletGroup="windThreat" parseString="50 MPH"/>
|
||||
<bullet bulletName="wind55" bulletText="Strong winds 50 to 55 mph" bulletGroup="windThreat" parseString="55 MPH"/>
|
||||
<bullet bulletName="peaHail" bulletText="Pea sized hail" bulletGroup="hailThreat" parseString="PEA SIZED HAIL"/>
|
||||
<bullet bulletName="halfHail" bulletText="Half inch hail" bulletGroup="hailThreat" parseString="HALF INCH HAIL"/>
|
||||
<bullet bulletName="dimeHail" bulletText="Dime sized hail" bulletGroup="hailThreat" parseString="DIME SIZED HAIL"/>
|
||||
<bullet bulletName="nickelHail" bulletText="Nickel sized hail" bulletGroup="hailThreat" parseString="NICKEL SIZED HAIL"/>
|
||||
<bullet bulletName="quarterMile" bulletText="SNOW: Visibilities M1/4SM" bulletGroup="toggle4" parseString="BELOW ONE QUARTER"/>
|
||||
<bullet bulletName="zeroMile" bulletText="SNOW: Visibilities near Zero" bulletGroup="toggle4" parseString="NEAR ZERO"/>
|
||||
<bullet bulletText="************ ADDITIONAL INFO **************" bulletType="title"/>
|
||||
|
@ -165,164 +182,4 @@
|
|||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
<!-- Four variables below have been changed from the County-coded products -->
|
||||
<!-- areaSource.areaField -->
|
||||
<!-- areaSource.fipsField -->
|
||||
<!-- pathcastConfig.areaField and -->
|
||||
<!-- geospatialConfig.areaSource -->
|
||||
|
||||
<areaSource variable="areas">
|
||||
<!-- <areaSource>County</areaSource> -->
|
||||
<areaSource>Zone</areaSource>
|
||||
<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>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<type>AREA</type>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<type>AREA</type>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<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>
|
||||
<!-- <areaField>COUNTYNAME</areaField> -->
|
||||
<areaField>NAME</areaField>
|
||||
<type>AREA</type>
|
||||
<parentAreaField>STATE</parentAreaField>
|
||||
<areaNotationField>STATE</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<sortBy>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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">
|
||||
<inclusionPercent>1</inclusionPercent>
|
||||
<pointField>NAME</pointField>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<type>AREA</type>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
<searchMethod>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<type>AREA</type>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
|
||||
<geospatialConfig>
|
||||
<pointSource>WarnGenLoc</pointSource>
|
||||
<!-- <areaSource>County</areaSource> -->
|
||||
<areaSource>Zone</areaSource>
|
||||
<parentAreaSource>States</parentAreaSource>
|
||||
<timezoneSource>TIMEZONES</timezoneSource>
|
||||
<timezoneField>TIME_ZONE</timezoneField>
|
||||
</geospatialConfig>
|
||||
|
||||
<!-- this "include file" tag will grab the Mile Marker XML pointSource tags,
|
||||
and place into this template -->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<include file="pointMarkers.xml"/>
|
||||
|
||||
</warngenConfig>
|
||||
|
|
|
@ -11,7 +11,7 @@ stormReports.xml
|
|||
#if ($dbTable)
|
||||
#foreach($table in $dbTable)
|
||||
#set($size = ${list.size($table)})
|
||||
#if ($size > 1)
|
||||
#if ($size > 0)
|
||||
!** RECENT LOCAL STORM REPORTS:
|
||||
(COPY AND PASTE VALID REPORTS INTO 3RD BULLET THEN DELETE THIS SECTION)
|
||||
#foreach($report in $table)
|
||||
|
|
|
@ -6,8 +6,6 @@
|
|||
importLSR2DB.sh script and create pointSource objects for
|
||||
WarnGen usage
|
||||
|
||||
|
||||
|
||||
<pointSource variable="lsr_severe">
|
||||
<pointSource>lsr_severe</pointSource>
|
||||
<pointField>NAME</pointField>
|
||||
|
|
|
@ -1,23 +1,15 @@
|
|||
###############################################################################
|
||||
## TORNADO WARNING TEMPLATE ##
|
||||
## VERSION AWIPS II 1.0 ##
|
||||
## MODIFIED ##
|
||||
## JAMIE FREDERICK - WFO TSA 2-24-11 ##
|
||||
## EVAN BOOKBINDER - WFO EAX 3-23-11 - Initial OB11.2 ReWrite ##
|
||||
## 4-13-11 - OB11.4 Modifications ##
|
||||
## 7-11-11 - OB11.7 Modifications ##
|
||||
## 9-16-11 - OB11.8.0-8 Pathcast/City ##
|
||||
## MIKE DANGELO WFO CTP 9-22-11 - OB11.8.0-9 ##
|
||||
## EVAN BOOKBINDER WFO EAX 11-04-11 - OB11.9-3 (DRs) ##
|
||||
## EVAN BOOKBINDER WFO EAX 2-24-12 - OB12.2.1 ##
|
||||
## MIKE REGA 5-03-12 - DR 14885 MND blank line ##
|
||||
## QINGLU LIN 7-31-2012 DR 15217 use roundAndPad ##
|
||||
## QINGLU LIN 8-14-2012 DR 14493 use TMLtime ##
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables} ##
|
||||
## Mike Dangelo 2-4-2013 NWS Mets detected a svr ##
|
||||
## VERSION AWIPS II ##
|
||||
## RECENT CHANGES ##
|
||||
## Mike Dangelo 9-13-2012 minor tweaks to ${variables} ##
|
||||
## Mike Dangelo 2-4-2013 NWS Mets detected a svr ##
|
||||
## PHIL KURIMSKI 2-6-2013 Put tor emergency back in as 3rd bullet ##
|
||||
## PHIL KURIMSKI 9-17-2013 Put tor emergency as a headline ##
|
||||
## Evan Bookbinder 9-18-2013 Implemented config.vm ##
|
||||
###############################################################################
|
||||
## ESTABLISH SOME INITIAL VARIABLES
|
||||
#parse("config.vm")
|
||||
#set($hailSize = 0)
|
||||
#set($hailTag = "<.75IN")
|
||||
#set($reportType = "A TORNADO WAS REPORTED")
|
||||
|
@ -130,12 +122,12 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
|
|||
#end
|
||||
|
||||
#################################################################
|
||||
### TORNADO EMERGENCY HEADLINE...COMING SOON TO A WFO NEAR YOU! #
|
||||
### TORNADO EMERGENCY HEADLINE #
|
||||
#################################################################
|
||||
###if(${list.contains(${bullets}, "torEmergency")})
|
||||
##...TORNADO EMERGENCY FOR !** EDIT LOCATION(S) **!...
|
||||
##
|
||||
###end
|
||||
#if(${list.contains(${bullets}, "torEmergency")})
|
||||
...TORNADO EMERGENCY FOR !** EDIT LOCATION(S) **!...
|
||||
|
||||
#end
|
||||
#headline(${officeLoc}, ${backupSite})
|
||||
|
||||
##################
|
||||
|
@ -295,12 +287,13 @@ THIS IS A TEST MESSAGE. ##
|
|||
THIS IS A TEST MESSAGE. ##
|
||||
#end
|
||||
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})...${reportType} ##
|
||||
##Many of the variables passed below are controlled by config.vm
|
||||
#if(${stormType} == "line")
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", false)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
|
||||
#else
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, "NEAR", 6, "OVER", 2, "MILES", true)
|
||||
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
|
||||
#end
|
||||
#if(${movementSpeed} < 3 || ${stationary})
|
||||
#if(${movementSpeed} < ${landStationary} || ${stationary})
|
||||
#if(${stormType} == "line")
|
||||
. THE LINE OF TORNADIC STORMS WAS NEARLY STATIONARY.
|
||||
#else
|
||||
|
@ -314,7 +307,7 @@ THIS IS A TEST MESSAGE. ##
|
|||
### TORNADO EMERGENCY PER NWS 10-511 DIRECTIVE GOES WITH 3RD BULLET #
|
||||
#####################################################################
|
||||
#if(${list.contains($bullets, "torEmergency")})
|
||||
#wrapText("THIS IS A TORNADO EMERGENCY FOR !** EDIT LOCATION(S) **!...TAKE IMMEDIATE TORNADO PRECAUTIONS NOW." 2 2)
|
||||
#wrapText("THIS IS A TORNADO EMERGENCY FOR !** EDIT LOCATION(S) **!. TAKE COVER NOW." 2 2)
|
||||
|
||||
#end
|
||||
############################
|
||||
|
@ -404,6 +397,8 @@ THOSE ATTENDING THE !**event/venue name or location**! ARE IN THE PATH OF THIS S
|
|||
|
||||
## parse file command here is to pull in mile marker info
|
||||
## #parse("mileMarkers.vm")
|
||||
## Uncomment below pull in point marker info
|
||||
## #parse("pointMarkers.vm")
|
||||
|
||||
#####################
|
||||
## CALL TO ACTIONS ##
|
||||
|
@ -487,6 +482,7 @@ THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
|
|||
#printcoords(${areaPoly}, ${list})
|
||||
|
||||
#tml(${TMLtime}, ${timeFormat}, ${movementDirection}, ${movementInKnots}, ${eventLocation})
|
||||
|
||||
## UNCOMMENT 2 LINES BELOW IF YOU ARE PARTICIPATING IN THE HAIL TAG TESTBED
|
||||
##
|
||||
##<L>HAIL ${hailTag}</L>
|
||||
|
|
|
@ -14,6 +14,20 @@
|
|||
|
||||
<warngenConfig>
|
||||
|
||||
<!-- INCLUDE ALL GEOSPTATIAL INFORMATION FOR THIS PRODUCT
|
||||
ANY pointSource/areaSource/pathcastConfig OVERRIDES TO THAT FILE CAN BE
|
||||
PLACED IN FULL BELOW THE INCLUDE LINE BELOW. -->
|
||||
<include file="geospatialConfig_COUNTY.xml"/>
|
||||
|
||||
<!-- Include Various geospatial XML files to create their objects. These are *NOT*
|
||||
turned on unless the corresponding .vm file is turned on in a given template's .vm file
|
||||
-->
|
||||
<include file="mileMarkers.xml"/>
|
||||
<!-- To enable, make sure mileMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
<include file="pointMarkers.xml"/>
|
||||
<!-- To enable, make sure pointMarkers.vm is added/uncommented in a WarnGen template's .vm file -->
|
||||
|
||||
|
||||
<!-- Config distance/speed units -->
|
||||
<unitDistance>mi</unitDistance>
|
||||
<unitSpeed>mph</unitSpeed>
|
||||
|
@ -108,7 +122,7 @@
|
|||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** CALLS TO ACTION (CHOOSE 1 OR MORE) **********" bulletType="title"/>
|
||||
<bullet bulletName="torEmergencyCTA" bulletText="**TOR EMERGENCY CTA**" parseString="TORNADO EMERGENCY" bulletGroup="cta1"/>
|
||||
<bullet bulletName="replacesSVRCTA" bulletText="TOR Replaces Severe Thunderstorm Warning"/>
|
||||
<bullet bulletName="replacesSVRCTA" bulletText="TOR Replaces Severe Thunderstorm Warning" parseString="TORNADO WARNING REPLACES THE SEVERE"/>
|
||||
<!-- There are two "default" safety rules. The first...which will probably be used by most offices...includes safety rules for mobile homes. The second...which is commented out...is for large urban areas that do not have mobile homes. If you wish to switch defaults or provide both options, remove comment tags as necessary and adjust the bulletDefault="true" as appropriate if both options are allowed -->
|
||||
<bullet bulletName="defaultMobileCTA" bulletText="Default safety rules -- includes mobile homes" parseString="IF IN A MOBILE HOME" bulletDefault="true" bulletGroup="cta1"/>
|
||||
<bullet bulletName="defaultUrbanCTA" bulletText="Default safety rules for urban -- no mobile homes" parseString="IF OUTDOORS" bulletGroup="cta1"/>
|
||||
|
@ -167,14 +181,13 @@
|
|||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="************ 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 IN THE WARNING INCLUDE" showString="LOCATIONS IN THE WARNING INCLUDE"/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString=""LOCATIONS","INCLUDE...""/>
|
||||
<bullet bulletName="listofcities" bulletText="Select for a list of cities" bulletGroup="pcast" parseString="WILL REMAIN OVER" showString="WILL REMAIN OVER"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletName="specialEvent" bulletText="Special heads-up for large event/venue" parseString="THOSE ATTENDING"/>
|
||||
<bullet bulletText="" bulletType="title"/>
|
||||
<bullet bulletText="*********** CALLS TO ACTION (CHOOSE 1 OR MORE) **********" bulletType="title"/>
|
||||
<bullet bulletName="torEmergencyCTA" bulletText="**TOR EMERGENCY CTA**" parseString="TORNADO EMERGENCY" bulletGroup="cta1"/>
|
||||
<bullet bulletName="replacesSVRCTA" bulletText="TOR Replaces Severe Thunderstorm Warning"/>
|
||||
<bullet bulletName="replacesSVRCTA" bulletText="TOR Replaces Severe Thunderstorm Warning" parseString="TORNADO WARNING REPLACES THE SEVERE"/>
|
||||
<!-- There are two "default" safety rules. The first...which will probably be used by most offices...includes safety rules for mobile homes. The second...which is commented out...is for large urban areas that do not have mobile homes. If you wish to switch defaults or provide both options, remove comment tags as necessary and adjust the bulletDefault="true" as appropriate if both options are allowed -->
|
||||
<bullet bulletName="defaultMobileCTA" bulletText="Default safety rules -- includes mobile homes" parseString="IF IN A MOBILE HOME" bulletDefault="true" bulletGroup="cta1"/>
|
||||
<bullet bulletName="defaultUrbanCTA" bulletText="Default safety rules for urban -- no mobile homes" parseString="IF OUTDOORS" bulletGroup="cta1"/>
|
||||
|
@ -190,158 +203,6 @@
|
|||
</bullets>
|
||||
</bulletActionGroup>
|
||||
</bulletActionGroups>
|
||||
|
||||
|
||||
<!-- areaSource object to generate county-based information -->
|
||||
<areaSource variable="areas">
|
||||
<areaSource>County</areaSource>
|
||||
<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>
|
||||
|
||||
<pointSource variable="closestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1,2" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>1</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
<sort>warngenlev</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<pointSource variable="otherClosestPoints">
|
||||
<pointField>NAME</pointField>
|
||||
<type>AREA</type>
|
||||
<searchMethod>POINTS</searchMethod>
|
||||
<filter>
|
||||
<mapping key="WARNGENLEV">
|
||||
<constraint constraintValue="1" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="LANDWATER">
|
||||
<constraint constraintValue="L,LW,LC" constraintType="IN" />
|
||||
</mapping>
|
||||
</filter>
|
||||
<maxResults>5</maxResults>
|
||||
<distanceThreshold>100</distanceThreshold>
|
||||
<sortBy>
|
||||
<sort>distance</sort>
|
||||
</sortBy>
|
||||
</pointSource>
|
||||
|
||||
<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>COUNTYNAME</areaField>
|
||||
<!-- <areaField>NAME</areaField> -->
|
||||
<parentAreaField>STATE</parentAreaField>
|
||||
<areaNotationField>STATE</areaNotationField>
|
||||
<areaNotationTranslationFile>countyTypes.txt</areaNotationTranslationFile>
|
||||
<sortBy>
|
||||
<sort>warngenlev</sort>
|
||||
<sort>population</sort>
|
||||
<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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>20</maxResults>
|
||||
<distanceThreshold>10</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>TRACK</searchMethod>
|
||||
<withinPolygon>true</withinPolygon>
|
||||
<maxResults>10</maxResults>
|
||||
<distanceThreshold>10</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>
|
||||
</warngenConfig>
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ function setupEnv() {
|
|||
|
||||
if [[ ${logDirectory}/${logName} -ot ${logDirectory}/$( basename $0 .sh ).$(date --date='1 day ago' +%A).log ]]
|
||||
then
|
||||
for myFile in ${logName} ${nowTimeDate}-lsof_qpid.out ${nowTimeDate}-qpid-stat.out ${nowTimeDate}-netstat.out ${nowTimeDate}-ipvsadm.out
|
||||
for myFile in ${logName} ${nowTimeDate}-lsof_qpid.out ${nowTimeDate}-qpid-stat.out ${nowTimeDate}-netstat.out ${nowTimeDate}-ipvsadm.out ${nowTimeDate}-captureQpidHeapInfo.out
|
||||
do
|
||||
echo > ${logDirectory}/${myFile}
|
||||
done
|
||||
|
@ -199,6 +199,39 @@ function captureIPVS() {
|
|||
return ${returnCode}
|
||||
}
|
||||
|
||||
function captureQpidHeapInfo() {
|
||||
|
||||
|
||||
local returnCode=0
|
||||
local logFile=${logDirectory}/${nowTimeDate}-$FUNCNAME.out
|
||||
|
||||
echo -ne "\n| START " >> ${logFile} 2>&1
|
||||
echoDate >> ${logFile} 2>&1
|
||||
echo -e "----------------------------------------------------------------|\n" >> ${logFile} 2>&1
|
||||
|
||||
#qpidPid=$( jps -v | grep QPBRKR | awk '{print $1}' )
|
||||
|
||||
if ! ps -p ${qpidPid} > /dev/null ; then
|
||||
echoFail "\tCan not find returned qpidd pid (${qpidPid}): $( jps -v | grep QPBRKR | awk '{print $1}' )"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo -e "\tFound qpidd on PID ${qpidPid}" >> ${logFile}
|
||||
|
||||
echo -e "\tGetting HEAP usage...........................\n\n" >> ${logFile}
|
||||
jmap -heap ${qpidPid} | while read line ; do
|
||||
echo -e "\t\t${line}" >> ${logFile}
|
||||
done
|
||||
|
||||
echo -e "\n\n\tGetting Garbage Collection Information ..................\n\n" >> ${logFile}
|
||||
jstat -gcutil ${qpidPid} 1000 30 | while read line ; do
|
||||
echo -e "\t\t${line}" >> ${logFile}
|
||||
done
|
||||
|
||||
return 0
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
## main()
|
||||
|
@ -238,9 +271,9 @@ else
|
|||
rm ${logDirectory}/testfile
|
||||
fi
|
||||
|
||||
if ! qpidPid=$( jps -v | grep qpid | awk '{print $1}' )
|
||||
if ! qpidPid=$( jps -v | grep QPBRKR | awk '{print $1}' )
|
||||
then
|
||||
echoFail "ERROR:\tCan't find qpidd on this host (run: jps -v | grep qpid failed)."
|
||||
echoFail "ERROR:\tCan't find qpidd on this host (run: jps -v | grep QPBRKR failed)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -271,10 +304,10 @@ while ps -p ${functionPID} > /dev/null
|
|||
do
|
||||
sleep 1
|
||||
_cnt=$(($_cnt+1))
|
||||
if [[ ${_cnt} -ge 20 ]]
|
||||
if [[ ${_cnt} -ge 30 ]]
|
||||
then
|
||||
kill -9 ${functionPID}
|
||||
echoFail "ERROR: qpid-stat running for more than 20 seconds, killing"
|
||||
echoFail "ERROR: qpid-stat running for more than 30 seconds, killing"
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -283,6 +316,25 @@ then
|
|||
echoFail "ERROR: Grabbing of qpid-stat failed"
|
||||
fi
|
||||
|
||||
captureQpidHeapInfo &
|
||||
functionPID=$!
|
||||
_cnt=0
|
||||
while ps -p ${functionPID} > /dev/null
|
||||
do
|
||||
sleep 1
|
||||
_cnt=$(($_cnt+1))
|
||||
if [[ ${_cnt} -ge 60 ]]
|
||||
then
|
||||
kill -9 ${functionPID}
|
||||
echoFail "ERROR: Getting heap infomation running for more than 60 seconds, killing"
|
||||
fi
|
||||
done
|
||||
|
||||
if ! wait ${functionPID}
|
||||
then
|
||||
echoFail "ERROR: Grabbing of heap utilization failed"
|
||||
fi
|
||||
|
||||
captureNetstat &
|
||||
functionPID=$!
|
||||
_cnt=0
|
||||
|
|
Loading…
Add table
Reference in a new issue