Issue #2033 Moved some localization files from build.cave to plugins they are used in. Fixed CAVELocalizationAdapter to search all plugins when file not found in base etc folder for cave static base
Change-Id: I2a26ce21ca5127ddb0b32e1f645a544e83f5503f Former-commit-id:d79cfe8ad1
[formerly0f3c791120
[formerly 5c707a35dcaedf5ae37119e56503aa8af59631fc]] Former-commit-id:0f3c791120
Former-commit-id:b95a96f4c9
|
@ -1,113 +0,0 @@
|
|||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 12 Feb 2010 #4502 jelkins Initial Creation.
|
||||
|
||||
class CPointer:
|
||||
""" Simple C Pointer class
|
||||
|
||||
Helps track "pointers" for those functions that have been
|
||||
ported from C and have an insane amount of pointer logic
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, target=None, position=0):
|
||||
""" Construct a CPointer
|
||||
|
||||
@param target
|
||||
value must be an object that assigns itself by
|
||||
reference such as lists or class instances and
|
||||
must be subscriptable
|
||||
@param position
|
||||
the offset from the initial value
|
||||
"""
|
||||
self.target = target
|
||||
self.position = position
|
||||
|
||||
def copy(self, other):
|
||||
""" Obtain a copy of another pointer
|
||||
"""
|
||||
self.target = other.target
|
||||
self.position = other.position
|
||||
def __iadd__(self, offset):
|
||||
""" Move the pointer position
|
||||
"""
|
||||
self.position += offset
|
||||
return self
|
||||
def __isub__(self, offset):
|
||||
return self.__iadd__(- offset)
|
||||
def __getitem__(self, index):
|
||||
""" Get the value of the target at the given index
|
||||
"""
|
||||
return self.target[self.position + index]
|
||||
def __setitem__(self, index, value):
|
||||
""" Set the value of the target at the given index
|
||||
"""
|
||||
self.target[self.position + index] = value
|
||||
def __cmp__(self, other):
|
||||
""" Compare with another pointer
|
||||
"""
|
||||
if id(self.target) == id(other.target):
|
||||
return self.position.__cmp__(other.position)
|
||||
else:
|
||||
return - 1
|
||||
|
||||
def test():
|
||||
""" Unit Test
|
||||
|
||||
"""
|
||||
|
||||
object = [1, 2, 3]
|
||||
|
||||
pointer = CPointer()
|
||||
pointer2 = CPointer()
|
||||
|
||||
# pointer = &object
|
||||
pointer.target = object
|
||||
|
||||
# pointer2 = pointer
|
||||
pointer2.copy(pointer)
|
||||
|
||||
# pointer++
|
||||
pointer += 1
|
||||
|
||||
if not(pointer > pointer2):
|
||||
raise Exception
|
||||
|
||||
# *pointer2 = *pointer
|
||||
pointer2[0] = pointer[0]
|
||||
|
||||
# *pointer += 4
|
||||
pointer[0] += 4
|
||||
|
||||
if not(object == [2, 6, 3]):
|
||||
raise Exception
|
||||
|
||||
# pointer[1] = 7
|
||||
pointer[1] = 7
|
||||
|
||||
if not(object == [2, 6, 7] and pointer[1] == 7):
|
||||
raise Exception
|
||||
|
||||
print "CPointer Test Complete"
|
|
@ -1,463 +0,0 @@
|
|||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 12 Feb 2010 #4502 jelkins Initial Creation.
|
||||
# 17 ........ ..... ....... Combine capeFuncTop logic
|
||||
|
||||
from numpy import log
|
||||
from numpy import power as pow
|
||||
from numpy import sqrt
|
||||
from numpy import log
|
||||
from numpy import zeros
|
||||
from MeteoLibTools import MeteoLibTools as MeteoLib
|
||||
from CPointer import CPointer
|
||||
from Temp_of_te import temp_of_te
|
||||
|
||||
meteoLib = MeteoLib()
|
||||
adiabatic_te = meteoLib.adiabatic_te
|
||||
|
||||
def capeFunc(usetv, p_dat, tve_dat, p0, th0, sh0, ptop=None):
|
||||
""" Calculate Convective Available Potential Energy (CAPE) and Convective Inhibition (Cin)
|
||||
|
||||
This function has been ported from the c capeFunc(Top), but has not yet been optimized
|
||||
and is very slow compared to the native function.
|
||||
|
||||
All inputs, except for usetv, are assumed to be numpy arrays
|
||||
|
||||
@param usetv
|
||||
1 :: use virtual temperatures
|
||||
0 :: use plain temperatures
|
||||
@param p_dat
|
||||
pressure
|
||||
@param tve_dat
|
||||
temperature, if usetv == 1, then virtual temp
|
||||
@param p0
|
||||
0 pressure
|
||||
@param th0
|
||||
0 temperature
|
||||
@param sh0
|
||||
0 specific humidity
|
||||
@param ptop
|
||||
upper termination pressure
|
||||
|
||||
@return a tuple with (cape,cin)
|
||||
|
||||
"""
|
||||
p_dat_ptr = CPointer(p_dat)
|
||||
tve_dat_ptr = CPointer(tve_dat)
|
||||
p0_ptr = CPointer(p0)
|
||||
th0_ptr = CPointer(th0)
|
||||
sh0_ptr = CPointer(sh0)
|
||||
ptop_ptr = CPointer(ptop)
|
||||
|
||||
has_ptop = ptop != None
|
||||
|
||||
# determine the data dimensions
|
||||
dataShape = tve_dat.shape
|
||||
|
||||
nx = dataShape[2] if len(dataShape) > 2 else None
|
||||
ny = dataShape[1] if len(dataShape) > 1 else None
|
||||
nz = dataShape[0]
|
||||
|
||||
# flatten all input arrays
|
||||
p_dat.resize((nz, nx * ny,))
|
||||
tve_dat.resize((nz, nx * ny,))
|
||||
p0.resize((p0.size,))
|
||||
th0.resize((th0.size,))
|
||||
sh0.resize((sh0.size,))
|
||||
|
||||
mnx = nx # we don't worry about subgrids, so mnx and nx will never be different
|
||||
|
||||
#dd = mnx - nx # since we don't subgrid we don't need this variable
|
||||
# any logic that uses dd from the original code has been ommited
|
||||
nn = mnx * ny
|
||||
n2 = nx * ny
|
||||
n3 = n2 * nz
|
||||
nxm = nx - 1
|
||||
|
||||
# return variables
|
||||
cape_dat_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
cin_dat_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
|
||||
# These pointers point to our dynamic storarge.
|
||||
tvp_st_ptr = CPointer(zeros(n3, p_dat.dtype))
|
||||
tec_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
tvc_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
pc_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
pp1_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
|
||||
# Initialize md and pmd, which will be pressure of and max Te delta.
|
||||
pmd_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
md_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
|
||||
# Pointer to output data and end of loop pointer
|
||||
eptr_ptr = CPointer()
|
||||
cap_ptr = CPointer()
|
||||
cin_ptr = CPointer()
|
||||
|
||||
# Working pointers inside our loops
|
||||
pp_ptr = CPointer()
|
||||
tt_ptr = CPointer()
|
||||
tve_ptr = CPointer()
|
||||
tvp_ptr = CPointer()
|
||||
qq_ptr = CPointer()
|
||||
pc_ptr = CPointer()
|
||||
tec_ptr = CPointer()
|
||||
tvc_ptr = CPointer()
|
||||
pmd_ptr = CPointer()
|
||||
md_ptr = CPointer()
|
||||
pp1_ptr = CPointer()
|
||||
tvp1_ptr = CPointer()
|
||||
neg_ptr = CPointer()
|
||||
pos_ptr = CPointer()
|
||||
pp0_ptr = CPointer()
|
||||
pfin_ptr = CPointer()
|
||||
|
||||
t0 = None
|
||||
td = None
|
||||
tdc = None
|
||||
b = None
|
||||
up = None
|
||||
dn = None
|
||||
dlnp = None
|
||||
k = None
|
||||
i = None
|
||||
nzm = None
|
||||
c0 = 26.66082
|
||||
c1 = 0.0091379024
|
||||
c2 = 6106.396
|
||||
c_1 = 223.1986
|
||||
c_2 = 0.0182758048
|
||||
kapa = 0.286
|
||||
kapa_1 = 3.498257
|
||||
|
||||
# Calculate the parcel equivalent temp, virtual temp, and press at LCL.
|
||||
# Make working copy of sfc press, use as press below current 3d pressure.
|
||||
pp0_ptr.copy(p0_ptr)
|
||||
tt_ptr.copy(th0_ptr)
|
||||
qq_ptr.copy(sh0_ptr)
|
||||
pfin_ptr.copy(ptop_ptr)
|
||||
tec_ptr.copy(tec_st_ptr)
|
||||
tvc_ptr.copy(tvc_st_ptr)
|
||||
pc_ptr.copy(pc_st_ptr)
|
||||
pp1_ptr.copy(pp1_st_ptr)
|
||||
eptr_ptr.copy(pp0_ptr)
|
||||
eptr_ptr += nn
|
||||
|
||||
# The following while loop is a pythonish way of writing the equivalent c for loop
|
||||
firstIteration = True
|
||||
while (True):
|
||||
if not (firstIteration):
|
||||
pp0_ptr += 1
|
||||
pp1_ptr += 1
|
||||
tt_ptr += 1
|
||||
qq_ptr += 1
|
||||
pc_ptr += 1
|
||||
tec_ptr += 1
|
||||
tvc_ptr += 1
|
||||
pfin_ptr += 1
|
||||
firstIteration = False
|
||||
if not (pp0_ptr < eptr_ptr):
|
||||
break
|
||||
|
||||
pp1_ptr[0] = pp0_ptr[0]
|
||||
|
||||
if pp0_ptr[0] > 1e36 or tt_ptr[0] > 1e36 or qq_ptr[0] > 1e36 or qq_ptr[0] < 0.0005 or (has_ptop and pp0_ptr[0] < pfin_ptr[0]):
|
||||
tec_ptr[0] = tvc_ptr[0] = pc_ptr[0] = 1e37
|
||||
continue
|
||||
|
||||
t0 = tt_ptr[0] * pow(pp0_ptr[0] / 1000, kapa)
|
||||
b = c0 - log(pp0_ptr[0] / (622. / qq_ptr[0] + 0.378))
|
||||
td = (b - sqrt(b * b - c_1)) / c_2
|
||||
tdc = td - (t0 - td) * (- 0.37329638 + 41.178204 / t0 + 0.0015945203 * td)
|
||||
pc_ptr[0] = pp0_ptr[0] * pow(tdc / t0, kapa_1)
|
||||
tec_ptr[0] = adiabatic_te(tdc, pc_ptr[0])
|
||||
tvc_ptr[0] = td * (1 + usetv * 0.000608 * qq_ptr[0])
|
||||
|
||||
# Now calculate the virtual temperature of the parcel at the pressures
|
||||
# in the input data. Then difference it from the environmental temp,
|
||||
# which has been tweaked to not be cooler than dry adiabatic from the
|
||||
# parcel start. Record the level of max parcel difference.
|
||||
tvp_ptr.copy(tvp_st_ptr)
|
||||
nzm = 0
|
||||
for k in range(0, nz):
|
||||
pp1_ptr.copy(pp1_st_ptr)
|
||||
pfin_ptr.copy(ptop_ptr)
|
||||
pp_ptr.copy(CPointer(p_dat_ptr[k]))
|
||||
tve_ptr.copy(CPointer(tve_dat_ptr[k]))
|
||||
tec_ptr.copy(tec_st_ptr)
|
||||
tvc_ptr.copy(tvc_st_ptr)
|
||||
pc_ptr.copy(pc_st_ptr)
|
||||
md_ptr.copy(md_st_ptr)
|
||||
pmd_ptr.copy(pmd_st_ptr)
|
||||
eptr_ptr.copy(pp_ptr)
|
||||
eptr_ptr += nn
|
||||
|
||||
firstIteration = True
|
||||
while (True):
|
||||
if not (firstIteration):
|
||||
pp1_ptr += 1
|
||||
pp_ptr += 1
|
||||
pc_ptr += 1
|
||||
pfin_ptr += 1
|
||||
tec_ptr += 1
|
||||
tvc_ptr += 1
|
||||
tvp_ptr += 1
|
||||
tve_ptr += 1
|
||||
md_ptr += 1
|
||||
pmd_ptr += 1
|
||||
firstIteration = False
|
||||
if not (pp_ptr < eptr_ptr):
|
||||
break
|
||||
|
||||
if (pc_ptr[0] > 1e36 or pp_ptr[0] > 1e36 or tve_ptr[0] > 1e36 or (has_ptop and pp1_ptr[0] <= pfin_ptr[0])):
|
||||
tvp_ptr[0] = 1e37
|
||||
continue
|
||||
if has_ptop:
|
||||
pp1_ptr[0] = pp_ptr[0]
|
||||
nzm = k
|
||||
t0 = tvc_ptr[0] * pow(pp_ptr[0] / pc_ptr[0], kapa)
|
||||
if (pp_ptr[0] >= pc_ptr[0]):
|
||||
tvp_ptr[0] = t0
|
||||
else:
|
||||
td = tec_ptr[0] * pow(pp_ptr[0] / pc_ptr[0], kapa)
|
||||
td = temp_of_te(td, pp_ptr[0])
|
||||
tvp_ptr[0] = td
|
||||
if (usetv > 0):
|
||||
tvp_ptr[0] *= pp_ptr[0] / (pp_ptr[0] - exp(25.687958917 - c1 * td - c2 / td))
|
||||
|
||||
if (tve_ptr[0] < t0):
|
||||
tvp_ptr[0] -= t0
|
||||
else:
|
||||
tvp_ptr[0] -= tve_ptr[0]
|
||||
if (pp_ptr[0] > pc_ptr[0] or (has_ptop and pp_ptr[0] < pfin_ptr[0]) or tvp_ptr[0] < md_ptr[0]):
|
||||
continue
|
||||
md_ptr[0] = tvp_ptr[0]
|
||||
pmd_ptr[0] = pp_ptr[0]
|
||||
|
||||
if has_ptop:
|
||||
nz = nzm + 1
|
||||
dlnp = 0
|
||||
|
||||
# This loop performs the actual cape and cin calculation. Here we will
|
||||
# reuse storage for virt temp, equiv temp, and max delta for prev parcel
|
||||
# temp, neg and pos. neg and pos are pending negative and positive
|
||||
# contributions we have not yet added into the cape and cin yet.
|
||||
tvp_ptr.copy(tvp_st_ptr)
|
||||
for k in range (0, nz):
|
||||
pp0_ptr.copy(p0_ptr)
|
||||
pc_ptr.copy(pc_st_ptr)
|
||||
pmd_ptr.copy(pmd_st_ptr)
|
||||
pp1_ptr.copy(pp1_st_ptr)
|
||||
pp_ptr.copy(CPointer(p_dat_ptr[k]))
|
||||
pfin_ptr.copy(ptop_ptr)
|
||||
tvp1_ptr.copy(tvc_st_ptr)
|
||||
neg_ptr.copy(tec_st_ptr)
|
||||
pos_ptr.copy(md_st_ptr)
|
||||
cap_ptr.copy(cape_dat_ptr)
|
||||
cin_ptr.copy(cin_dat_ptr)
|
||||
eptr_ptr.copy(pp_ptr)
|
||||
eptr_ptr += nn
|
||||
|
||||
firstIteration = True
|
||||
while (True):
|
||||
if not firstIteration:
|
||||
pp0_ptr += 1
|
||||
pc_ptr += 1
|
||||
pmd_ptr += 1
|
||||
pp1_ptr += 1
|
||||
pp_ptr += 1
|
||||
pfin_ptr += 1
|
||||
tvp1_ptr += 1
|
||||
tvp_ptr += 1
|
||||
cap_ptr += 1
|
||||
cin_ptr += 1
|
||||
pos_ptr += 1
|
||||
neg_ptr += 1
|
||||
firstIteration = False
|
||||
if not (pp_ptr < eptr_ptr):
|
||||
break
|
||||
|
||||
if (k == 0):
|
||||
cin_ptr[0] = cap_ptr[0] = 1e37
|
||||
pos_ptr[0] = neg_ptr[0] = 0
|
||||
elif (pp0_ptr[0] > 1e36):
|
||||
continue
|
||||
elif (pp1_ptr[0] > 1e36 or tvp1_ptr[0] > 1e36):
|
||||
pass
|
||||
elif (pp_ptr[0] >= pp1_ptr[0] or tvp_ptr[0] > 1e36):
|
||||
continue
|
||||
elif (pp_ptr[0] >= pp0_ptr[0]):
|
||||
pass
|
||||
else:
|
||||
# Now we finally have the data we need for calculating
|
||||
# the cape/cin contribution for this layer.
|
||||
if (cap_ptr[0] > 1e36):
|
||||
cap_ptr[0] = cin_ptr[0] = 0
|
||||
if (pmd_ptr[0] == 0):
|
||||
continue # No parcel delta > 0, we're done
|
||||
|
||||
# First deal with possibility of bottom lvl being below the
|
||||
# initial parcel and/or hitting the top of the computation
|
||||
if (has_ptop and pp_ptr[0] < pfin_ptr[0]):
|
||||
b = log(pp1_ptr[0] / pp_ptr[0])
|
||||
dlnp = log(pp1_ptr[0] / pfin_ptr[0])
|
||||
tvp_ptr[0] = tvp1_ptr[0] + (dlnp / b) * (tvp_ptr[0] - tvp1_ptr[0]);
|
||||
if (pp1_ptr[0] > pp0_ptr[0]):
|
||||
if (has_ptop and pp_ptr[0] < pfin_ptr[0]):
|
||||
dlnp = log(pp0_ptr[0] / pfin_ptr[0])
|
||||
else:
|
||||
dlnp = log(pp0_ptr[0] / pp_ptr[0])
|
||||
dn = 0
|
||||
else:
|
||||
if (not(has_ptop) or (has_ptop and pp_ptr[0] >= pfin_ptr[0])):
|
||||
dlnp = log(pp1_ptr[0] / pp_ptr[0])
|
||||
dn = dlnp * 287 * tvp1_ptr[0]
|
||||
|
||||
# Now deal with the fact that not allowing superadiabatic
|
||||
# layers means no cape below condensation pressure
|
||||
if (pp1_ptr[0] >= pc_ptr[0]):
|
||||
if (dn > 0):
|
||||
dn = 0
|
||||
if (tvp_ptr[0] <= 0):
|
||||
up = dlnp * 287 * tvp_ptr[0]
|
||||
elif (pp_ptr[0] >= pc_ptr[0]):
|
||||
up = 0
|
||||
elif (has_ptop and pp_ptr[0] < pfin_ptr[0]):
|
||||
up = log(pc_ptr[0] / pfin_ptr[0]) * 287 * tvp_ptr[0]
|
||||
else:
|
||||
up = log(pc_ptr[0] / pp_ptr[0]) * 287 * tvp_ptr[0]
|
||||
else:
|
||||
up = dlnp * 287 * tvp_ptr[0]
|
||||
|
||||
# Deal with where the break point is
|
||||
b = 0.5 if up * dn >= 0 else up / (up - dn)
|
||||
up *= b
|
||||
dn *= (1 - b)
|
||||
|
||||
# Now consider this layer's contribution, taking into account
|
||||
# transitions between positive and negative acceleration
|
||||
if (up == 0 and dn == 0):
|
||||
pass
|
||||
elif (up <= 0 and (dn < 0 or dn == 0 and (pp_ptr[0] < pmd_ptr[0] or pos_ptr[0] == 0))):
|
||||
# Continuing deceleration
|
||||
neg_ptr[0] -= up + dn
|
||||
elif (up >= 0 and (dn > 0 or dn == 0 and (pp_ptr[0] < pmd_ptr[0] or neg_ptr[0] == 0))):
|
||||
# Continuing upward acceleration
|
||||
pos_ptr[0] += up + dn
|
||||
if (pp_ptr[0] > pmd_ptr[0] and cap_ptr[0] + pos_ptr[0] <= cin_ptr[0] + neg_ptr[0]):
|
||||
pass # no net cape and below max delta
|
||||
elif (pp_ptr[0] > pmd_ptr[0] or cap_ptr[0] == 0):
|
||||
# below max delta or cape uninitialized
|
||||
cap_ptr[0] += pos_ptr[0]
|
||||
cin_ptr[0] += neg_ptr[0]
|
||||
neg_ptr[0] = pos_ptr[0] = 0
|
||||
elif (pos_ptr[0] >= neg_ptr[0]):
|
||||
# cape initialized and net positive contribution
|
||||
cap_ptr[0] += pos_ptr[0] - neg_ptr[0]
|
||||
neg_ptr[0] = pos_ptr[0] = 0
|
||||
elif(up > 0 and dn <= 0):
|
||||
# Transition to upward acceleration
|
||||
neg_ptr[0] += - dn
|
||||
if (pp1_ptr[0] <= pmd_ptr[0]):
|
||||
# above max delta, only use net pos contribution
|
||||
pos_ptr[0] += up
|
||||
if (pos_ptr[0] >= neg_ptr[0]):
|
||||
cap_ptr[0] += pos_ptr[0] - neg_ptr[0]
|
||||
neg_ptr[0] = pos_ptr[0] = 0
|
||||
elif (pp_ptr[0] <= pmd_ptr[0]):
|
||||
# straddle max delta, force cape initialization
|
||||
if (cap_ptr[0] == 0):
|
||||
cin_ptr[0] += neg_ptr[0]
|
||||
cap_ptr[0] += pos_ptr[0]
|
||||
elif (neg_ptr[0] > pos_ptr[0]):
|
||||
cin_ptr[0] += neg_ptr[0] - pos_ptr[0]
|
||||
else:
|
||||
cap_ptr[0] += pos_ptr[0] - neg_ptr[0]
|
||||
cap_ptr[0] += up
|
||||
neg_ptr[0] = pos_ptr[0] = 0
|
||||
elif ((cap_ptr[0] + pos_ptr[0] + up) <= (cin_ptr[0] + neg_ptr[0])):
|
||||
# no net cape to this point
|
||||
if (cap_ptr[0] + pos_ptr[0] > 0):
|
||||
# reinitialize if there was cape before
|
||||
cin_ptr[0] -= cap_ptr[0] + pos_ptr[0]
|
||||
pos_ptr[0] = cap_ptr[0] = 0
|
||||
cin_ptr[0] += neg_ptr[0]
|
||||
pos_ptr[0] += up
|
||||
neg_ptr[0] = 0
|
||||
elif (cap_ptr[0] == 0):
|
||||
# initialize cape
|
||||
cap_ptr[0] += pos_ptr[0] + up
|
||||
cin_ptr[0] += neg_ptr[0]
|
||||
neg_ptr[0] = pos_ptr[0] = 0
|
||||
else:
|
||||
# what remains, only use net pos contribution
|
||||
pos_ptr[0] += up
|
||||
if (pos_ptr[0] >= neg_ptr[0]):
|
||||
cap_ptr[0] += pos_ptr[0] - neg_ptr[0]
|
||||
neg_ptr[0] = pos_ptr[0] = 0
|
||||
else:
|
||||
# Transition to decceleration
|
||||
pos_ptr[0] += dn
|
||||
if (pp1_ptr[0] <= pmd_ptr[0]):
|
||||
# above max delta, only use net pos contribution
|
||||
if (pos_ptr[0] >= neg_ptr[0]):
|
||||
cap_ptr[0] += pos_ptr[0] - neg_ptr[0]
|
||||
neg_ptr[0] = pos_ptr[0] = 0
|
||||
neg_ptr[0] += - up
|
||||
elif (cap_ptr[0] + pos_ptr[0] <= cin_ptr[0] + neg_ptr[0] - up):
|
||||
# no net cape to this point
|
||||
if (cap_ptr[0] > 0):
|
||||
cin_ptr[0] -= cap_ptr[0] + pos_ptr[0]
|
||||
pos_ptr[0] = cap_ptr[0] = 0
|
||||
cin_ptr[0] += neg_ptr[0] - up
|
||||
pos_ptr[0] = neg_ptr[0] = 0
|
||||
elif (cap_ptr[0] == 0):
|
||||
# initialize cape
|
||||
cap_ptr[0] += pos_ptr[0]
|
||||
cin_ptr[0] += neg_ptr[0] - up
|
||||
neg_ptr[0] = pos_ptr[0] = 0
|
||||
else:
|
||||
# what remains, only use net pos contribution
|
||||
if (pos_ptr[0] >= neg_ptr[0]):
|
||||
cap_ptr[0] += pos_ptr[0] - neg_ptr[0]
|
||||
neg_ptr[0] = pos_ptr[0] = 0
|
||||
neg_ptr[0] += - up
|
||||
|
||||
# Make current layer top next layer bottom
|
||||
tvp1_ptr[0] = tvp_ptr[0]
|
||||
pp1_ptr[0] = pp_ptr[0]
|
||||
|
||||
# unallocate our dynamic storage
|
||||
# not needed to be done in python since the memory is released when leaving the method
|
||||
|
||||
# resize the arrays back to the appropriate shape
|
||||
cape_dat_ptr.target.resize((ny, nx))
|
||||
cin_dat_ptr.target.resize((ny, nx))
|
||||
|
||||
return cape_dat_ptr.target, cin_dat_ptr.target
|
||||
|
||||
def test():
|
||||
""" Unit Test
|
||||
"""
|
|
@ -1,504 +0,0 @@
|
|||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 17 Feb 2010 #4502 jelkins Initial Creation.
|
||||
|
||||
from numpy import log
|
||||
from numpy import power as pow
|
||||
from numpy import sqrt
|
||||
from numpy import log
|
||||
from numpy import zeros
|
||||
from MeteoLibTools import MeteoLibTools as MeteoLib
|
||||
from CPointer import CPointer
|
||||
from Temp_of_te import temp_of_te
|
||||
|
||||
meteoLib = MeteoLib()
|
||||
adiabatic_te = meteoLib.adiabatic_te
|
||||
mytw = meteoLib.mytw
|
||||
|
||||
def dcapeFunc(usetv, p_dat, t_dat, td_dat, p0, th0, sh0, max_evap, max_rh):
|
||||
""" Calculate Downdraft Convective Available Potential Energy
|
||||
|
||||
ported from dCapeFunc.c
|
||||
|
||||
NOTE: until this function is optimized it will be very slow
|
||||
|
||||
@param usetv
|
||||
scalar flag to use virtual (1) or plain (0) temperatures
|
||||
@param p_dat
|
||||
3D pressure array
|
||||
@param t_dat
|
||||
3D temperature array
|
||||
@param td_dat
|
||||
3D dewpoint array
|
||||
@param p0
|
||||
pressure array
|
||||
@param th0
|
||||
array of potential temperature
|
||||
@param sh0
|
||||
array of specific humidity
|
||||
@param max_evap
|
||||
scalar indicating the maximum amount of liquid water available
|
||||
to evaporate into the parcel as it descends
|
||||
@param max_rh
|
||||
scalar indicating the desired maximum relative humidity
|
||||
@return
|
||||
an array of dcape_dat
|
||||
"""
|
||||
|
||||
# We input theta and specific humidity for surface conditions because these
|
||||
# are things that can be arithemitically averaged for a mixed layer.
|
||||
# In order for a dcape to be calculated, there must be positive bouyancy
|
||||
# somewhere in the column based on the input surface conditions, neglecting
|
||||
# any cap. Sinking parcel starts from the minimum thetaE level that is above
|
||||
# the condensation pressure and below 400mb and the highest positive
|
||||
# rising parcel bouyancy. max_evap is the limit to how much water can
|
||||
# be evaporated into the parcel as it decends, in Kg/Kg. max_rh is
|
||||
# the desired RH (%) as the parcel reaches the surface. Will initially
|
||||
# evaporate up to one-third of max_evap into the sinking parcel at the
|
||||
# start, afterward attempting to trend the RH toward max_rh at the ground.
|
||||
# If usetv=1, buoyancy is done with virtual temp, if usetv=0 with temp.
|
||||
|
||||
p_dat_pptr = CPointer(p_dat)
|
||||
t_dat_pptr = CPointer(t_dat)
|
||||
td_dat_pptr = CPointer(td_dat)
|
||||
p0_ptr = CPointer(p0)
|
||||
th0_ptr = CPointer(th0)
|
||||
sh0_ptr = CPointer(sh0)
|
||||
|
||||
# determine the data dimensions
|
||||
dataShape = t_dat.shape
|
||||
|
||||
nx = dataShape[2] if len(dataShape) > 2 else None
|
||||
ny = dataShape[1] if len(dataShape) > 1 else None
|
||||
nz = dataShape[0]
|
||||
|
||||
# flatten all input arrays
|
||||
p_dat.resize((nz, nx * ny,))
|
||||
t_dat.resize((nz, nx * ny,))
|
||||
td_dat.resize((nz, nx * ny,))
|
||||
p0.resize((p0.size,))
|
||||
th0.resize((th0.size,))
|
||||
sh0.resize((sh0.size,))
|
||||
|
||||
mnx = nx # we don't worry about subgrids, so mnx and nx will never be different
|
||||
|
||||
#dd = mnx - nx # since we don't subgrid we don't need this variable
|
||||
# any logic that uses dd from the original code has been ommited
|
||||
nn = mnx * ny
|
||||
n2 = nx * ny
|
||||
n3 = n2 * nz
|
||||
nzm = nz - 1
|
||||
nxm = nx - 1
|
||||
|
||||
# return variables
|
||||
dcape_dat_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
|
||||
# These pointers point to our dynamic storarge.
|
||||
tvp_st_ptr = CPointer(zeros(n3, p_dat.dtype))
|
||||
tv0_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
tvc_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
tec_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
pc_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
pm_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
tm_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
tdm_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
wm_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
rhm_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
qm_st_ptr = CPointer(zeros(n2, p_dat.dtype))
|
||||
|
||||
# Pointer to output data and end of loop pointer
|
||||
e_ptr = CPointer()
|
||||
dcape_ptr = CPointer()
|
||||
|
||||
# Working pointers inside our loops
|
||||
pp_ptr = CPointer()
|
||||
tt_ptr = CPointer()
|
||||
tv_ptr = CPointer()
|
||||
tvp_ptr = CPointer()
|
||||
tve_ptr = CPointer()
|
||||
qq_ptr = CPointer()
|
||||
pc_ptr = CPointer()
|
||||
tec_ptr = CPointer()
|
||||
tvc_ptr = CPointer()
|
||||
td3_ptr = CPointer()
|
||||
pm_ptr = CPointer()
|
||||
tm_ptr = CPointer()
|
||||
tdm_ptr = CPointer()
|
||||
wm_ptr = CPointer()
|
||||
rhm_ptr = CPointer()
|
||||
pp1_ptr = CPointer()
|
||||
tvp1_ptr = CPointer()
|
||||
tve1_ptr = CPointer()
|
||||
pp0_ptr = CPointer()
|
||||
|
||||
t0 = None
|
||||
td = None
|
||||
b = None
|
||||
up = None
|
||||
dn = None
|
||||
dlnp = None
|
||||
qd = None
|
||||
qw = None
|
||||
qs = None
|
||||
thve = None
|
||||
eee = None
|
||||
pb = None
|
||||
pr = None
|
||||
rhmx = None
|
||||
k = None
|
||||
i = None
|
||||
c0 = 26.66082
|
||||
c1 = 0.0091379024
|
||||
c2 = 6106.396
|
||||
c_1 = 223.1986
|
||||
c_2 = 0.0182758048
|
||||
kapa = 0.286
|
||||
kapa_1 = 3.498257
|
||||
|
||||
# Calculate the ascending parcel start equivalent temp, virtual temp,
|
||||
# and press at LCL, and the initial virtual temperature. Initialize
|
||||
# pm and wm, which now will be pressure at and min environmetal
|
||||
# virtual theta E.
|
||||
pm_ptr.copy(pm_st_ptr)
|
||||
wm_ptr.copy(wm_st_ptr)
|
||||
pp0_ptr.copy(p0_ptr)
|
||||
tt_ptr.copy(th0_ptr)
|
||||
qq_ptr.copy(sh0_ptr)
|
||||
tec_ptr.copy(tec_st_ptr)
|
||||
tvc_ptr.copy(tvc_st_ptr)
|
||||
pc_ptr.copy(pc_st_ptr)
|
||||
tv_ptr.copy(tv0_st_ptr)
|
||||
e_ptr.copy(pp0_ptr)
|
||||
e_ptr += nn
|
||||
|
||||
# The following while loop is a pythonish way of writing the equivalent c for loop
|
||||
firstIteration = True
|
||||
while (True):
|
||||
if not (firstIteration):
|
||||
pp0_ptr += 1
|
||||
tt_ptr += 1
|
||||
qq_ptr += 1
|
||||
pc_ptr += 1
|
||||
tec_ptr += 1
|
||||
tvc_ptr += 1
|
||||
tv_ptr += 1
|
||||
pm_ptr += 1
|
||||
wm_ptr += 1
|
||||
firstIteration = False
|
||||
if not (pp0_ptr < e_ptr):
|
||||
break
|
||||
|
||||
pm_ptr[0] = wm_ptr[0] = 1e37
|
||||
|
||||
if (pp0_ptr[0] > 1e36 or tt_ptr[0] > 1e36 or qq_ptr[0] > 1e36):
|
||||
tec_ptr[0] = tvc_ptr[0] = pc_ptr[0] = 1e37
|
||||
continue
|
||||
|
||||
t0 = tt_ptr[0] * pow(pp0_ptr[0] / 1000, kapa)
|
||||
tv_ptr[0] = t0 * (1 + usetv * 0.000608 * qq_ptr[0])
|
||||
b = c0 - log(pp0_ptr[0] / (622. / qq_ptr[0] + 0.378))
|
||||
td = (b - sqrt(b * b - c_1)) / c_2
|
||||
td -= (t0 - td) * (- 0.37329638 + 41.178204 / t0 + 0.0015945203 * td)
|
||||
pc_ptr[0] = pp0_ptr[0] * pow(td / t0, kapa_1)
|
||||
tec_ptr[0] = adiabatic_te(td, pc_ptr[0])
|
||||
tvc_ptr[0] = td * (1 + usetv * 0.000608 * qq_ptr[0])
|
||||
|
||||
# Now calculate the virtual temperature of the accending parcel at the
|
||||
# pressures in the input data.
|
||||
tvp_ptr.copy(tvp_st_ptr)
|
||||
for k in range(0, nz):
|
||||
pp_ptr.copy(CPointer(p_dat_pptr[k]))
|
||||
tec_ptr.copy(tec_st_ptr)
|
||||
tvc_ptr.copy(tvc_st_ptr)
|
||||
pc_ptr.copy(pc_st_ptr)
|
||||
e_ptr.copy(pp_ptr)
|
||||
e_ptr += nn
|
||||
|
||||
firstIteration = True
|
||||
while (True):
|
||||
if not (firstIteration):
|
||||
pp_ptr += 1
|
||||
pc_ptr += 1
|
||||
tec_ptr += 1
|
||||
tvc_ptr += 1
|
||||
tvp_ptr += 1
|
||||
firstIteration = False
|
||||
if not (pp_ptr < e_ptr):
|
||||
break
|
||||
|
||||
if (pc_ptr[0] > 1e36 or tec_ptr[0] > 1e36 or tvc_ptr[0] > 1e36 or pp_ptr[0] > 1e36):
|
||||
tvp_ptr[0] = 1e37
|
||||
continue
|
||||
|
||||
if (pp_ptr[0] >= pc_ptr[0]):
|
||||
tvp_ptr[0] = tvc_ptr[0] * pow(pp_ptr[0] / pc_ptr[0], kapa)
|
||||
continue
|
||||
|
||||
t0 = tec_ptr[0] * pow(pp_ptr[0] / pc_ptr[0], kapa)
|
||||
t0 = temp_of_te(t0, pp_ptr[0])
|
||||
tvp_ptr[0] = t0 * pp_ptr[0] / (pp_ptr[0] - usetv * exp(25.687958917 - c1 * t0 - c2 / t0))
|
||||
|
||||
# Calculate environment virtual temp, where we force the environment
|
||||
# to be no cooler than dry adiabatic from the ascending parcel start.
|
||||
# Find pressure of min environmetal virtual theta E above condensation
|
||||
# pressure...record temperature and dewpoint there. Since we do not
|
||||
# need the accending parcel temps to complete the dcape calc, we
|
||||
# will put the environmental virtual temp into the that storage.
|
||||
tm_ptr.copy(tm_st_ptr)
|
||||
tdm_ptr.copy(tdm_st_ptr)
|
||||
tvp_ptr.copy(tvp_st_ptr)
|
||||
tvp_ptr += (n3 + n2)
|
||||
for k in range(nzm, - 1, - 1):
|
||||
tvp_ptr -= (2 * n2)
|
||||
pp_ptr.copy(CPointer(p_dat_pptr[k]))
|
||||
tt_ptr.copy(CPointer(t_dat_pptr[k]))
|
||||
td3_ptr.copy(CPointer(td_dat_pptr[k]))
|
||||
wm_ptr.copy(wm_st_ptr)
|
||||
tm_ptr.copy(tm_st_ptr)
|
||||
tdm_ptr.copy(tdm_st_ptr)
|
||||
pm_ptr.copy(pm_st_ptr)
|
||||
tvc_ptr.copy(tvc_st_ptr)
|
||||
pc_ptr.copy(pc_st_ptr)
|
||||
e_ptr.copy(pp_ptr)
|
||||
e_ptr += nn
|
||||
|
||||
firstIteration = True
|
||||
while (True):
|
||||
if not (firstIteration):
|
||||
pp_ptr += 1
|
||||
tt_ptr += 1
|
||||
td3_ptr += 1
|
||||
tvp_ptr += 1
|
||||
tvc_ptr += 1
|
||||
pc_ptr += 1
|
||||
pm_ptr += 1
|
||||
tm_ptr += 1
|
||||
tdm_ptr += 1
|
||||
wm_ptr += 1
|
||||
firstIteration = False
|
||||
if not (pp_ptr < e_ptr):
|
||||
break
|
||||
|
||||
if (tvc_ptr[0] > 1e36 or pc_ptr[0] > 1e36 or pp_ptr[0] > 1e36 or tvp_ptr[0] > 1e36 or tt_ptr[0] > 1e36 or td3_ptr[0] > 1e36):
|
||||
tvp_ptr[0] = 1e37
|
||||
continue
|
||||
|
||||
t0 = tt_ptr[0]
|
||||
eee = exp(26.186004814 - c1 * td3_ptr[0] - c2 / td3_ptr[0])
|
||||
qd = eee / (pp_ptr[0] - 0.60771703 * eee)
|
||||
eee = (1 + usetv * 0.608 * qd)
|
||||
thve = t0 * eee
|
||||
pr = pow(pp_ptr[0] / pc_ptr[0], kapa)
|
||||
|
||||
if (thve < tvc_ptr[0] * pr):
|
||||
thve = tvc_ptr[0] * pr
|
||||
t0 = thve / eee
|
||||
|
||||
if (tvp_ptr[0] <= thve and wm_ptr[0] > 1e36 or pp_ptr[0] > pc_ptr[0] and pm_ptr[0] >= 400):
|
||||
if (pm_ptr[0] > 1e36 and pp_ptr[0] < pc_ptr[0]):
|
||||
pm_ptr[0] = pc_ptr[0]
|
||||
tvp_ptr[0] = thve
|
||||
continue
|
||||
|
||||
tvp_ptr[0] = thve;
|
||||
thve = (thve + 2529 * qd) * pow(1000 / pp_ptr[0], kapa)
|
||||
if (thve > wm_ptr[0] and pm_ptr[0] >= 400):
|
||||
continue
|
||||
wm_ptr[0] = thve
|
||||
pm_ptr[0] = pp_ptr[0]
|
||||
tm_ptr[0] = t0
|
||||
tdm_ptr[0] = td3_ptr[0]
|
||||
|
||||
# Here we will reuse our condensation level storage for
|
||||
# the level above current. This loop performs the actual dcape
|
||||
# calculation.
|
||||
rhm_ptr.copy(rhm_st_ptr)
|
||||
qq_ptr.copy(qm_st_ptr)
|
||||
tve_ptr.copy(tvp_st_ptr)
|
||||
tve_ptr += (n3 + n2)
|
||||
for k in range(nzm, - 1, - 1):
|
||||
tve_ptr -= (2 * n2)
|
||||
pp_ptr.copy(CPointer(p_dat_pptr[k]))
|
||||
tvp1_ptr.copy(tec_st_ptr)
|
||||
tve1_ptr.copy(tvc_st_ptr)
|
||||
pp1_ptr.copy(pc_st_ptr)
|
||||
wm_ptr.copy(wm_st_ptr)
|
||||
tm_ptr.copy(tm_st_ptr)
|
||||
tdm_ptr.copy(tdm_st_ptr)
|
||||
rhm_ptr.copy(rhm_st_ptr)
|
||||
qq_ptr.copy(qm_st_ptr)
|
||||
pm_ptr.copy(pm_st_ptr)
|
||||
pp0_ptr.copy(p0_ptr)
|
||||
tv_ptr.copy(tv0_st_ptr)
|
||||
dcape_ptr.copy(dcape_dat_ptr)
|
||||
e_ptr.copy(pp_ptr)
|
||||
e_ptr += nn
|
||||
|
||||
firstIteration = True
|
||||
while (True):
|
||||
if not (firstIteration):
|
||||
pp_ptr += 1
|
||||
pp1_ptr += 1
|
||||
tve_ptr += 1
|
||||
tve1_ptr += 1
|
||||
tvp1_ptr += 1
|
||||
pp0_ptr += 1
|
||||
tv_ptr += 1
|
||||
pm_ptr += 1
|
||||
wm_ptr += 1
|
||||
tm_ptr += 1
|
||||
tdm_ptr += 1
|
||||
rhm_ptr += 1
|
||||
qq_ptr += 1
|
||||
dcape_ptr += 1
|
||||
firstIteration = False
|
||||
if not (pp_ptr < e_ptr):
|
||||
break
|
||||
|
||||
if (k == nzm):
|
||||
dcape_ptr[0] = pp1_ptr[0] = tvp1_ptr[0] = tve1_ptr[0] = 1e37
|
||||
if (pm_ptr[0] > 1e36 or pp0_ptr[0] > 1e36 or tv_ptr[0] > 1e36):
|
||||
continue
|
||||
elif (pp1_ptr[0] > 1e36):
|
||||
pass
|
||||
elif (pp1_ptr[0] >= pp0_ptr[0]):
|
||||
continue
|
||||
elif (tve1_ptr[0] > 1e36):
|
||||
pass
|
||||
elif (pp_ptr[0] > 1e36 or tve_ptr[0] > 1e36):
|
||||
continue
|
||||
elif (pp_ptr[0] <= pm_ptr[0]):
|
||||
pass
|
||||
elif (wm_ptr[0] > 1e36):
|
||||
dcape_ptr[0] = 0
|
||||
else:
|
||||
# Now we finally have the data we need for calculating
|
||||
# the dcape contribution for this layer. If we have not
|
||||
# made any dcape calculations to this point, initialize
|
||||
# the decent parcel.
|
||||
if (dcape_ptr[0] > 1e36):
|
||||
dcape_ptr[0] = 0
|
||||
eee = exp(26.186004814 - c1 * tdm_ptr[0] - c2 / tdm_ptr[0])
|
||||
qd = eee / (pm_ptr[0] - 0.60771703 * eee)
|
||||
qw = qd + max_evap / 3
|
||||
t0 = tm_ptr[0] - 2529 * max_evap / 3
|
||||
eee = exp(26.186004814 - c1 * t0 - c2 / t0)
|
||||
qs = eee / (pm_ptr[0] - 0.60771703 * eee)
|
||||
if (qs >= qw):
|
||||
wm_ptr[0] = max_evap - max_evap / 3
|
||||
tm_ptr[0] = t0
|
||||
rhm_ptr[0] = qw / qs
|
||||
b = c0 - log(qw * pm_ptr[0] / (0.622 - 0.378 * qw))
|
||||
tdm_ptr[0] = (b - sqrt(b * b - c_1)) / c_2
|
||||
else:
|
||||
tm_ptr[0] = tdm_ptr[0] = mytw(tm_ptr[0], tdm_ptr[0], pm_ptr[0])
|
||||
rhm_ptr[0] = 1.0
|
||||
eee = exp(26.186004814 - c1 * tm_ptr[0] - c2 / tm_ptr[0])
|
||||
qw = eee / (pm_ptr[0] - 0.60771703 * eee)
|
||||
wm_ptr[0] = max_evap - (qw - qd)
|
||||
|
||||
qq_ptr[0] = qw
|
||||
tvp1_ptr[0] = tm_ptr[0] * (1 + usetv * 0.608 * qw)
|
||||
pp1_ptr[0] = pm_ptr[0]
|
||||
|
||||
# Deal with reaching the surface, add in top of layer part.
|
||||
if (pp_ptr[0] > pp0_ptr[0]):
|
||||
pb = pp0_ptr[0]
|
||||
dlnp = log(pb / pp1_ptr[0])
|
||||
thve = tv_ptr[0]
|
||||
else:
|
||||
pb = pp_ptr[0]
|
||||
dlnp = log(pb / pp1_ptr[0])
|
||||
thve = tve_ptr[0]
|
||||
|
||||
up = -dlnp * 287* 0.5 * (tvp1_ptr[0]-tve1_ptr[0])
|
||||
if (up<-dcape_ptr[0]):
|
||||
dcape_ptr[0] = 0
|
||||
else:
|
||||
dcape_ptr[0] += up
|
||||
|
||||
# Deal with letting parcel fall to pb
|
||||
pr = pow(pb/pp1_ptr[0],kapa)
|
||||
if (wm_ptr[0]<=0):
|
||||
tvp1_ptr[0] *= pr
|
||||
else:
|
||||
rhmx = rhm_ptr[0]+(pb-pp1_ptr[0])*(max_rh-rhm_ptr[0])/(pp0_ptr[0]-pp1_ptr[0])
|
||||
t0 = tm_ptr[0]*pr
|
||||
eee = exp(26.186004814-c1*t0-c2/t0)
|
||||
qs = eee/(pb-0.60771703*eee)
|
||||
if (qq_ptr[0]/qs>rhmx):
|
||||
tm_ptr[0] = t0
|
||||
b = c0-log( qq_ptr[0]*pb/(0.622-0.378*qq_ptr[0]) )
|
||||
tdm_ptr[0] = (b-sqrt(b*b-c_1))/c_2;
|
||||
tvp1_ptr[0] *= pr
|
||||
rhm_ptr[0] = qq_ptr[0]/qs
|
||||
else:
|
||||
qd = (rhmx*qs-qq_ptr[0])/sqrt(1000* (rhmx*qs+qq_ptr[0]) )
|
||||
if (qd>wm_ptr[0]):
|
||||
qd = wm_ptr[0]
|
||||
qw = qq_ptr[0] + qd
|
||||
td = t0 - 2529*wm_ptr[0]
|
||||
eee = exp(26.186004814-c1*td-c2/td)
|
||||
qs = eee/(pb-0.60771703*eee)
|
||||
if (qs>=qw):
|
||||
tm_ptr[0] = td
|
||||
rhm_ptr[0] = qw/qs
|
||||
b = c0-log( qw*pb/(0.622-0.378*qw) )
|
||||
tdm_ptr[0] = (b-sqrt(b*b-c_1))/c_2
|
||||
else:
|
||||
b = c0-log( qq_ptr[0]*pb/(0.622-0.378*qq_ptr[0]) )
|
||||
tdm_ptr[0] = (b-sqrt(b*b-c_1))/c_2
|
||||
tm_ptr[0] = tdm_ptr[0] = mytw(t0, tdm_ptr[0], pb)
|
||||
rhm_ptr[0] = 1.0
|
||||
eee = exp(26.186004814-c1*tm_ptr[0]-c2/tm_ptr[0])
|
||||
qw = eee/(pb-0.60771703*eee)
|
||||
qd = qw-qq_ptr[0]
|
||||
|
||||
wm_ptr[0] -= qd
|
||||
qq_ptr[0] = qw
|
||||
tvp1_ptr[0] = tm_ptr[0]*(1+usetv*0.608*qw)
|
||||
|
||||
# Add contribution of bottom of layer.
|
||||
dn = -dlnp*287*0.5*(tvp1_ptr[0]-thve)
|
||||
if (dn<-dcape_ptr[0]):
|
||||
dcape_ptr[0] = 0
|
||||
else:
|
||||
dcape_ptr[0] += dn
|
||||
|
||||
# Make current layer top next layer bottom.
|
||||
tve1_ptr[0] = tve_ptr[0]
|
||||
pp1_ptr[0] = pp_ptr[0]
|
||||
|
||||
# unallocate our dynamic storage
|
||||
# not needed to be done in python since the memory is released when leaving the method
|
||||
|
||||
# resize the arrays back to the appropriate shape
|
||||
dcape_dat_ptr.target.resize((ny, nx))
|
||||
|
||||
return dcape_dat_ptr.target
|
||||
|
||||
def test():
|
||||
""" Unit Test
|
||||
"""
|
|
@ -1,159 +0,0 @@
|
|||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
||||
#
|
||||
# Interface for retrieving combinations
|
||||
#
|
||||
#
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 12/08/08 mnash Initial Creation.
|
||||
#
|
||||
#
|
||||
|
||||
import MeteoLibTools
|
||||
import ForecastConstants as fore
|
||||
import MeteoLibConstants as meteoCons
|
||||
import math
|
||||
from numpy import *
|
||||
|
||||
class Forecast:
|
||||
|
||||
def __init__(self):
|
||||
self.__mete = MeteoLibTools.MeteoLibTools()
|
||||
|
||||
def forecast(self, yr, mon, day, hr, minute, stnId, snow, slat, slon, p, h, t, td):
|
||||
|
||||
#Exit if we dont have a lat/lon
|
||||
if slat < -90.0 or slat > 90.0 or slon < -180.0 or slon > 180.0 :
|
||||
forecastMaxTemp = t[0][0]
|
||||
return forecastMaxTemp
|
||||
|
||||
hour = hr + (minute / 60.0)
|
||||
|
||||
# Compute the julian day
|
||||
julday = self.__mete.cv_date2jul(yr,mon,day)
|
||||
|
||||
if stnId not in fore.TMAX.keys():
|
||||
stnId = 'MISC'
|
||||
|
||||
#Determine diurnal range (degrees celsius)
|
||||
trng = self.__mete.drange(fore.TMAX.get(stnId)[mon], fore.TMIN.get(stnId)[mon])
|
||||
|
||||
tstart = hour + (slon/15)
|
||||
|
||||
decl = fore.SDECMX * math.sin(2 * math.pi * (julday - fore.VEDAY) / fore.YRLEN)
|
||||
|
||||
hilat = 0
|
||||
|
||||
# Check for high latitude conditions where the sun never rises nor sets.
|
||||
# If so, tsrad is assumed to be undefined, and set to 0.
|
||||
|
||||
# Define the angle of maximum sun height
|
||||
max_alt = (1.570796327 - abs(slat) * math.pi / 180) + decl
|
||||
|
||||
# Define the angle of minimum sun height
|
||||
min_alt = (abs(slat) * math.pi / 180) - (1.570796327 - decl)
|
||||
|
||||
if max_alt < 0.0 or min_alt > 0.0 :
|
||||
tsrad = 0.0
|
||||
hilat = 1
|
||||
else :
|
||||
haset = math.acos(math.tan(slat * math.pi / 180) * math.tan(decl))
|
||||
tset = 12 + 12 * (haset / math.pi)\
|
||||
# The solar input is allowed until 2 hours before sunset...subtract 2 hours.
|
||||
tstop = tset - 2
|
||||
t_julday = julday
|
||||
t_mon = mon
|
||||
t_slat = slat
|
||||
|
||||
tsrad = self.__mete.solax(t_julday,t_mon,t_slat,fore.TYMINC,tstart,tstop)
|
||||
|
||||
tc = t - meteoCons.KELVIN_ZERO
|
||||
tdc = td - meteoCons.KELVIN_ZERO
|
||||
|
||||
thePressures, theHeights, theTemperatures, theDewpoints = self.__mete.eqp(fore.DELTAP, p, h, tc, tdc)
|
||||
|
||||
sfcp = thePressures[0]
|
||||
sfct = theTemperatures[0]
|
||||
sfctd = theDewpoints[0]
|
||||
|
||||
|
||||
albdhi = fore.ALBMAX.get(stnId) / 100
|
||||
albdlo = fore.ALBMIN.get(stnId) / 100
|
||||
|
||||
albdo = albdlo + 0.2 * snow * (albdhi - albdlo)
|
||||
|
||||
if albdo > albdhi :
|
||||
albdo = albdhi
|
||||
|
||||
endlvl = array([0,0,0])
|
||||
endlvl[0] = sfcp - 150
|
||||
endlvl[1] = sfcp - 300
|
||||
endlvl[2] = sfcp - 500
|
||||
|
||||
mrh = self.__mete.rhbar(endlvl,fore.NCLYR,sfcp,thePressures,theTemperatures,theDewpoints)
|
||||
|
||||
tcld = 0.0
|
||||
cover = []
|
||||
for i in range(fore.NCLYR):
|
||||
cover.insert(i, 0.0001 * mrh[i] * mrh[i])
|
||||
tcld = max(tcld,cover[i])
|
||||
|
||||
stemp = sfct + (0.5 * trng) + meteoCons.KELVIN_ZERO
|
||||
|
||||
ulw = fore.EMIS * meteoCons.STEFMAN_BOLTZMANN_CONSTANT * (math.pow(stemp,4))
|
||||
|
||||
a=0.61
|
||||
b=0.05
|
||||
|
||||
vpmm = 0.75 * self.__mete.esat(sfctd)
|
||||
dlwclr = ulw * (a + b * math.sqrt(vpmm))
|
||||
|
||||
cldcor = 1-0.01 * (fore.CL *mrh[0] + fore.CM *mrh[1] + fore.CH * mrh[2])
|
||||
if cldcor < 0.0 :
|
||||
cldcor = 0.0
|
||||
|
||||
flw = (ulw - dlwclr) * cldcor
|
||||
|
||||
if hilat == 1 :
|
||||
blw = flw
|
||||
else :
|
||||
blw = flw * (tstop - tstart) * 60
|
||||
|
||||
|
||||
sw = (1-albdo) * (1-tcld) * tsrad
|
||||
|
||||
heat = sw - blw
|
||||
if heat <= 0.0 :
|
||||
forecastMaxTemp = sfct + 273.15
|
||||
return forecastMaxTemp
|
||||
|
||||
cnv = fore.CP * fore.DELTAP * (fore.CMBD / meteoCons.GRAVITY)
|
||||
asol = heat / cnv
|
||||
deltaz = []
|
||||
for i in range(1,len(t[0])-1) :
|
||||
deltaz.insert(i-1,(h[0][i] - h[0][i-1]))
|
||||
forecastMaxTemp = self.__mete.mxtp(asol,fore.DELTAP,sfcp,thePressures[1],theTemperatures,deltaz)
|
||||
forecastMaxTemp = forecastMaxTemp + 273.15
|
||||
return forecastMaxTemp
|
|
@ -1,301 +0,0 @@
|
|||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
TMAX = {'72201':[76,77,79,83,85,88,89,90,88,84,80,76],
|
||||
'72203':[75,76,79,83,86,88,90,90,88,84,80,76],
|
||||
'72208':[60,62,68,76,83,88,89,89,85,77,68,61],
|
||||
'72210':[70,72,76,82,88,90,90,90,89,84,77,72],
|
||||
'72213':[00,00,00,00,00,00,00,00,00,00,00,00],
|
||||
'72220':[61,63,68,75,82,86,88,88,85,78,69,63],
|
||||
'72229':[58,61,68,77,84,89,91,91,87,78,67,59],
|
||||
'72232':[62,65,70,78,85,90,90,91,87,80,70,64],
|
||||
'72235':[60,62,69,78,85,91,93,93,88,80,69,61],
|
||||
'72240':[62,65,70,78,84,90,91,91,88,82,71,64],
|
||||
'72247':[00,00,00,00,00,00,00,00,00,00,00,00],
|
||||
'72250':[70,73,77,83,87,91,93,93,90,85,78,72],
|
||||
'72255':[63,67,72,80,85,91,93,94,89,83,73,67],
|
||||
'72260':[00,00,00,00,00,00,00,00,00,00,00,00],
|
||||
'72261':[63,69,76,85,90,96,99,99,92,83,72,65],
|
||||
'72265':[58,62,69,79,87,93,95,94,88,79,68,60],
|
||||
'72270':[57,63,69,79,87,95,95,93,87,79,66,58],
|
||||
'72274':[65,67,72,81,90,98,98,95,93,84,72,69],
|
||||
'72290':[65,66,66,68,69,72,75,77,77,74,70,66],
|
||||
'72304':[52,53,58,66,74,81,84,83,80,71,63,55],
|
||||
'72311':[51,55,61,71,79,85,87,86,81,73,62,53],
|
||||
'72317':[52,53,61,72,79,86,88,87,82,72,62,52],
|
||||
'72327':[50,51,59,71,80,88,90,89,84,73,59,50],
|
||||
'72340':[50,54,62,74,81,89,93,93,86,76,62,52],
|
||||
'72349':[43,48,55,68,76,84,89,89,81,71,56,46],
|
||||
'72353':[48,53,60,72,79,87,93,93,85,74,61,51],
|
||||
'72363':[49,53,60,71,79,88,91,90,83,73,60,52],
|
||||
'72365':[47,53,59,70,80,90,92,90,83,72,57,48],
|
||||
'72374':[46,53,60,70,80,90,94,91,85,73,58,47],
|
||||
'72393':[00,00,00,00,00,00,00,00,00,00,00,00],
|
||||
'72403':[44,46,55,67,77,85,88,87,80,70,57,45],
|
||||
'72407':[41,43,51,62,72,81,85,83,77,68,56,44],
|
||||
'72425':[43,45,55,68,76,83,86,85,79,69,55,45],
|
||||
'72429':[40,43,52,66,75,84,87,86,80,69,53,42],
|
||||
'72433':[42,45,55,68,77,86,89,88,81,71,55,44],
|
||||
'72451':[43,47,54,67,76,86,91,90,81,71,55,45],
|
||||
'72456':[38,44,53,66,76,84,89,89,80,70,54,42],
|
||||
'DEN':[44,46,50,61,70,80,87,86,78,67,53,46],
|
||||
'72476':[37,44,53,65,76,86,93,89,81,68,51,39],
|
||||
'72493':[00,00,00,00,00,00,00,00,00,00,00,00],
|
||||
'72518':[30,33,43,58,70,79,84,81,74,63,48,34],
|
||||
'72520':[37,40,49,63,72,81,84,83,77,66,52,40],
|
||||
'72528':[30,31,39,53,64,75,80,78,71,60,46,34],
|
||||
'72532':[32,26,46,62,72,82,86,86,84,76,66,48],
|
||||
'72550':[33,39,48,64,74,83,89,87,79,69,51,38],
|
||||
'72562':[37,41,47,61,71,81,88,87,77,67,51,40],
|
||||
'72572':[37,43,51,62,72,81,93,90,80,66,50,39],
|
||||
'72576':[31,38,44,55,66,75,86,84,73,60,43,34],
|
||||
'72583':[41,47,52,61,70,79,91,89,80,67,52,43],
|
||||
'72597':[44,52,57,64,72,79,90,88,82,67,53,44],
|
||||
'72606':[31,33,41,53,64,73,79,78,70,60,48,35],
|
||||
'72637':[30,32,41,57,67,77,81,80,72,62,46,34],
|
||||
'72645':[24,27,37,54,66,76,81,79,70,60,42,29],
|
||||
'72654':[23,29,39,58,70,79,87,86,74,63,43,29],
|
||||
'STC':[19,24,36,54,67,76,82,80,69,59,39,25],
|
||||
'72662':[34,38,43,57,67,76,86,86,75,64,48,38],
|
||||
'72681':[37,44,52,61,71,78,91,88,78,65,49,39],
|
||||
'72694':[45,51,55,61,68,74,82,81,77,64,53,47],
|
||||
'72712':[20,23,33,46,60,70,76,73,65,53,38,24],
|
||||
'72734':[22,24,33,47,59,70,75,73,65,55,39,27],
|
||||
'72747':[13,19,32,49,63,72,78,76,64,54,33,18],
|
||||
'72764':[19,25,35,55,67,76,84,84,71,60,39,26],
|
||||
'72768':[19,25,36,55,67,74,84,83,70,59,39,27],
|
||||
'72775':[29,36,40,55,65,72,84,82,70,59,43,35],
|
||||
'72785':[31,39,46,57,67,74,84,82,73,58,42,34],
|
||||
'72797':[44,48,49,54,60,63,68,68,66,59,51,46],
|
||||
'MISC':[00,00,00,00,00,00,00,00,00,00,00,00]}
|
||||
TMIN = {'72201':[66,67,70,74,76,79,80,80,79,75,71,67],
|
||||
'72203':[56,56,60,65,69,73,74,74,75,70,63,57],
|
||||
'72208':[37,39,45,53,61,68,71,71,66,55,44,38],
|
||||
'72210':[50,52,56,62,67,72,74,74,73,66,56,51],
|
||||
'72213':[00,00,00,00,00,00,00,00,00,00,00,00],
|
||||
'72220':[46,49,54,62,68,74,75,75,72,63,53,48],
|
||||
'72229':[37,40,45,54,61,69,72,71,66,54,43,38],
|
||||
'72232':[44,46,51,59,65,71,73,73,70,60,50,45],
|
||||
'72235':[39,38,43,53,60,68,71,70,64,52,42,37],
|
||||
'72240':[43,46,51,60,66,72,74,73,69,58,49,44],
|
||||
'72247':[00,00,00,00,00,00,00,00,00,00,00,00],
|
||||
'72250':[51,54,59,67,71,75,76,76,73,67,59,53],
|
||||
'72255':[44,47,52,62,68,74,75,75,71,62,52,46],
|
||||
'72260':[00,00,00,00,00,00,00,00,00,00,00,00],
|
||||
'72261':[38,43,49,59,66,72,74,74,69,59,47,40],
|
||||
'72265':[29,34,39,49,58,67,70,69,63,52,39,32],
|
||||
'72270':[30,34,40,49,57,66,70,68,61,50,37,31],
|
||||
'72274':[38,40,44,50,58,66,74,72,67,56,45,35],
|
||||
'72290':[45,48,50,54,57,60,64,65,63,58,52,47],
|
||||
'72304':[38,39,43,52,60,68,72,72,68,59,49,41],
|
||||
'72311':[33,36,41,51,59,67,69,69,63,52,41,34],
|
||||
'72317':[32,31,37,47,55,63,67,66,60,48,38,31],
|
||||
'72327':[32,31,38,49,57,66,69,68,61,49,38,31],
|
||||
'72340':[29,32,39,50,58,67,70,69,61,48,38,31],
|
||||
'72349':[23,27,33,45,54,63,67,65,57,47,35,26],
|
||||
'72353':[26,30,37,49,58,67,70,70,61,51,37,29],
|
||||
'72363':[23,26,31,42,52,61,66,65,57,46,33,26],
|
||||
'72365':[24,27,32,41,51,60,65,63,57,45,32,25],
|
||||
'72374':[20,25,29,37,46,54,63,62,54,41,28,21],
|
||||
'72393':[00,00,00,00,00,00,00,00,00,00,00,00],
|
||||
'72403':[28,29,35,46,56,65,69,68,61,50,39,30],
|
||||
'72407':[24,25,32,41,51,60,65,64,57,46,36,26],
|
||||
'72425':[26,27,34,44,53,61,65,63,56,45,36,27],
|
||||
'72429':[24,26,34,45,54,63,66,64,57,47,36,27],
|
||||
'72433':[24,26,34,46,54,63,67,64,57,45,35,27],
|
||||
'72451':[19,23,28,41,52,61,67,66,56,45,30,22],
|
||||
'72456':[18,23,30,43,53,63,67,66,56,45,32,22],
|
||||
'DEN':[16,19,24,34,44,52,59,57,48,37,25,19],
|
||||
'72476':[17,23,30,39,49,57,64,62,53,42,29,20],
|
||||
'72493':[00,00,00,00,00,00,00,00,00,00,00,00],
|
||||
'72518':[13,14,24,36,46,56,60,58,50,40,31,18],
|
||||
'72520':[24,24,32,42,52,62,65,63,56,45,37,27],
|
||||
'72528':[18,18,25,36,46,56,61,59,52,43,34,22],
|
||||
'72532':[16,19,28,41,51,61,65,63,55,44,31,20],
|
||||
'72550':[12,17,26,40,52,61,66,64,54,43,29,18],
|
||||
'72562':[10,15,21,34,45,55,61,59,48,35,22,14],
|
||||
'72572':[19,23,28,37,44,51,61,59,49,38,28,22],
|
||||
'72576':[8,13,19,30,40,47,55,54,44,33,20,12],
|
||||
'72583':[16,21,23,29,37,45,51,47,39,29,22,18],
|
||||
'72597':[29,31,33,37,43,49,54,53,47,39,34,31],
|
||||
'72606':[12,13,23,33,42,51,57,55,47,38,30,16],
|
||||
'72637':[15,16,24,35,45,55,58,57,50,41,31,20],
|
||||
'72645':[7,9,20,34,43,53,58,56,48,39,26,13],
|
||||
'72654':[2,7,19,34,44,55,61,59,47,36,21,9],
|
||||
'STC':[-1,2,16,32,43,54,59,57,46,36,21,07],
|
||||
'72662':[10,14,20,32,43,52,59,57,46,36,23,15],
|
||||
'72681':[21,27,31,37,44,51,59,57,49,39,31,25],
|
||||
'72694':[32,34,35,39,43,48,51,51,47,42,37,35],
|
||||
'72712':[02,03,14,28,39,49,54,52,43,35,25,8],
|
||||
'72734':[6,7,16,29,39,47,53,53,46,38,27,13],
|
||||
'72747':[-9,-6,9,27,38,48,53,51,42,33,17,-1],
|
||||
'72764':[-3,2,15,31,42,52,57,55,44,33,18,05],
|
||||
'72768':[-1,5,15,31,42,50,57,55,44,34,19,8],
|
||||
'72775':[12,17,21,32,42,50,55,53,45,37,26,18],
|
||||
'72785':[20,25,29,35,43,49,55,54,47,38,29,24],
|
||||
'72797':[33,35,35,38,42,47,50,50,47,43,38,35],
|
||||
'MISC':[00,00,00,00,00,00,00,00,00,00,00,00]}
|
||||
|
||||
ALBMIN = {'72201':10,
|
||||
'72203':15,
|
||||
'72208':13,
|
||||
'72210':16,
|
||||
'72213':13,
|
||||
'72220':12,
|
||||
'72229':16,
|
||||
'72232':13,
|
||||
'72235':15,
|
||||
'72240':14,
|
||||
'72247':16,
|
||||
'72250':16,
|
||||
'72255':16,
|
||||
'72260':16,
|
||||
'72261':17,
|
||||
'72265':19,
|
||||
'72270':19,
|
||||
'72274':20,
|
||||
'72290':15,
|
||||
'72304':14,
|
||||
'72311':15,
|
||||
'72317':15,
|
||||
'72327':14,
|
||||
'72340':15,
|
||||
'72349':16,
|
||||
'72353':17,
|
||||
'72363':18,
|
||||
'72365':16,
|
||||
'72374':14,
|
||||
'72393':14,
|
||||
'72403':15,
|
||||
'72407':15,
|
||||
'72425':14,
|
||||
'72429':16,
|
||||
'72433':16,
|
||||
'72451':16,
|
||||
'72456':17,
|
||||
'72469':20,
|
||||
'72476':17,
|
||||
'72493':14,
|
||||
'72518':14,
|
||||
'72520':14,
|
||||
'72528':16,
|
||||
'72532':16,
|
||||
'72550':15,
|
||||
'72562':17,
|
||||
'72572':20,
|
||||
'72576':20,
|
||||
'72583':14,
|
||||
'72597':16,
|
||||
'72606':15,
|
||||
'72637':16,
|
||||
'72645':16,
|
||||
'72654':18,
|
||||
'STC':14,
|
||||
'72662':18,
|
||||
'72681':11,
|
||||
'72694':15,
|
||||
'72712':15,
|
||||
'72734':16,
|
||||
'72747':16,
|
||||
'72764':14,
|
||||
'72768':15,
|
||||
'72775':17,
|
||||
'72785':15,
|
||||
'72797':15,
|
||||
'MISC':14}
|
||||
ALBMAX = {'72201':10,
|
||||
'72203':15,
|
||||
'72208':13,
|
||||
'72210':16,
|
||||
'72213':13,
|
||||
'72220':12,
|
||||
'72229':33,
|
||||
'72232':13,
|
||||
'72235':15,
|
||||
'72240':16,
|
||||
'72247':30,
|
||||
'72250':16,
|
||||
'72255':16,
|
||||
'72260':17,
|
||||
'72261':17,
|
||||
'72265':20,
|
||||
'72270':19,
|
||||
'72274':20,
|
||||
'72290':15,
|
||||
'72304':33,
|
||||
'72311':35,
|
||||
'72317':35,
|
||||
'72327':40,
|
||||
'72340':37,
|
||||
'72349':37,
|
||||
'72353':42,
|
||||
'72363':42,
|
||||
'72365':37,
|
||||
'72374':55,
|
||||
'72393':14,
|
||||
'72403':43,
|
||||
'72407':43,
|
||||
'72425':40,
|
||||
'72429':52,
|
||||
'72433':37,
|
||||
'72451':52,
|
||||
'72456':52,
|
||||
'72469':50,
|
||||
'72476':53,
|
||||
'72493':14,
|
||||
'72518':38,
|
||||
'72520':40,
|
||||
'72528':50,
|
||||
'72532':37,
|
||||
'72550':55,
|
||||
'72562':52,
|
||||
'72572':40,
|
||||
'72576':65,
|
||||
'72583':65,
|
||||
'72597':16,
|
||||
'72606':48,
|
||||
'72637':45,
|
||||
'72645':60,
|
||||
'72654':55,
|
||||
'STC':50,
|
||||
'72662':52,
|
||||
'72681':44,
|
||||
'72694':31,
|
||||
'72712':40,
|
||||
'72734':70,
|
||||
'72747':37,
|
||||
'72764':65,
|
||||
'72768':65,
|
||||
'72775':65,
|
||||
'72785':45,
|
||||
'72797':38,
|
||||
'MISC':14}
|
||||
|
||||
TYMINC = 30.0
|
||||
YRLEN = 365.2563
|
||||
VEDAY= 79.75
|
||||
SDECMX = 0.40927
|
||||
DELTAP = 10.0
|
||||
NCLYR = 3
|
||||
EMIS = 0.95
|
||||
CL = 0.80
|
||||
CM = 0.67
|
||||
CH = 0.22
|
||||
CP = 0.24
|
||||
CMBD = 1000.0
|
|
@ -1,44 +0,0 @@
|
|||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
import math
|
||||
|
||||
KELVIN_ZERO = 273.15
|
||||
FLAG = 1e37
|
||||
FLG = 99998.0
|
||||
TOP_FLG = 99999.0
|
||||
INVALID = -9999.0
|
||||
MISSING = -9998.0
|
||||
SURFACE_EMISS = 0.95
|
||||
STEFMAN_BOLTZMANN_CONSTANT = 8.12e-11
|
||||
LOW_CLOUD_COEFF=0.80
|
||||
MID_CLOUD_COEFF=0.67
|
||||
HIGH_CLOUD_COEFF=0.22
|
||||
GRAVITY = 980.0
|
||||
|
||||
DEG2RAD = math.pi / 180
|
||||
TWOPI = math.pi * 2
|
||||
YRLEN = 365.2563
|
||||
ECC = 0.0167330
|
||||
SDECMX = 0.40927
|
||||
VEDAY = 79.25
|
||||
CN = 1.0
|
||||
S = 1.94
|
||||
DRYLAPS = 0.009767
|
||||
GE=9.8
|
|
@ -1,110 +0,0 @@
|
|||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 16 Feb 2010 #4502 jelkins Initial Creation.
|
||||
|
||||
from com.raytheon.edex.meteoLib import MeteoLibUtil
|
||||
import numpy as np
|
||||
import ctypes as ct
|
||||
|
||||
def capeFunc(usetv, p_dat, tve_dat, p0, th0, sh0, ptop = None):
|
||||
""" Use the native capeFunc function
|
||||
"""
|
||||
|
||||
# define the c_float_ptr type
|
||||
c_float_ptr = ct.POINTER(ct.c_float)
|
||||
|
||||
# determine the input dimensions
|
||||
dataShape = tve_dat.shape
|
||||
|
||||
nx = dataShape[2] if len(dataShape) > 2 else None
|
||||
ny = dataShape[1] if len(dataShape) > 1 else None
|
||||
nz = dataShape[0]
|
||||
|
||||
gridArea = nx * ny
|
||||
|
||||
# flatten all input arrays
|
||||
p_dat.resize((nz, nx * ny,))
|
||||
tve_dat.resize((nz, nx * ny,))
|
||||
p0.resize((p0.size,))
|
||||
th0.resize((th0.size,))
|
||||
sh0.resize((sh0.size,))
|
||||
|
||||
if ptop != None:
|
||||
ptop.resize((ptop.size,))
|
||||
|
||||
|
||||
# load the library
|
||||
meteoLibPath = MeteoLibUtil.getSoPath()
|
||||
meteoLib = np.ctypeslib.load_library(meteoLibPath,"")
|
||||
capeFunc = meteoLib.capeFunc if ptop == None else meteoLib.capeFuncTop
|
||||
|
||||
# "define" the capeFunc signature
|
||||
capeFunc.restype = None # return type
|
||||
capeFunc.argtypes = [ct.c_float,
|
||||
ct.POINTER(c_float_ptr),
|
||||
ct.POINTER(c_float_ptr),
|
||||
c_float_ptr,
|
||||
c_float_ptr,
|
||||
c_float_ptr,
|
||||
ct.c_int,
|
||||
ct.c_int,
|
||||
ct.c_int,
|
||||
ct.c_int,
|
||||
c_float_ptr,
|
||||
c_float_ptr]
|
||||
|
||||
if ptop != None:
|
||||
capeFunc.argtypes.append(c_float_ptr)
|
||||
|
||||
# result arrays
|
||||
cape_dat = np.zeros(gridArea,p_dat.dtype)
|
||||
cin_dat = np.zeros(gridArea,p_dat.dtype)
|
||||
|
||||
capeFuncArgs = [ct.c_float(usetv),
|
||||
|
||||
# get c_style pointers to the 2D input arrays
|
||||
(c_float_ptr*len(p_dat))(*[row.ctypes.data_as(c_float_ptr) for row in p_dat]),
|
||||
(c_float_ptr*len(tve_dat))(*[row.ctypes.data_as(c_float_ptr) for row in tve_dat]),
|
||||
|
||||
p0.ctypes.data_as(c_float_ptr),
|
||||
th0.ctypes.data_as(c_float_ptr),
|
||||
sh0.ctypes.data_as(c_float_ptr),
|
||||
ct.c_int(nx),
|
||||
ct.c_int(nx),
|
||||
ct.c_int(ny),
|
||||
ct.c_int(nz),
|
||||
cape_dat.ctypes.data_as(c_float_ptr),
|
||||
cin_dat.ctypes.data_as(c_float_ptr)]
|
||||
|
||||
if ptop != None:
|
||||
capeFuncArgs.append(ptop.ctypes.data_as(c_float_ptr))
|
||||
|
||||
capeFunc(*capeFuncArgs)
|
||||
|
||||
# resize the cape and cin data to the appropriate grid size
|
||||
cape_dat.resize((ny,nx))
|
||||
cin_dat.resize((ny,nx))
|
||||
|
||||
return cape_dat, cin_dat
|
|
@ -1,103 +0,0 @@
|
|||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 17 Feb 2010 #4502 jelkins Initial Creation.
|
||||
|
||||
from com.raytheon.edex.meteoLib import MeteoLibUtil
|
||||
import numpy as np
|
||||
import ctypes as ct
|
||||
|
||||
def dcapeFunc(usetv, p_dat, t_dat, td_dat, p0, th0, sh0, max_evap, max_rh):
|
||||
""" Use the native dcapeFunc function
|
||||
"""
|
||||
|
||||
# define the c_float_ptr type
|
||||
c_float_ptr = ct.POINTER(ct.c_float)
|
||||
|
||||
# determine the input dimensions
|
||||
dataShape = t_dat.shape
|
||||
|
||||
nx = dataShape[2] if len(dataShape) > 2 else None
|
||||
ny = dataShape[1] if len(dataShape) > 1 else None
|
||||
nz = dataShape[0]
|
||||
|
||||
gridArea = nx * ny
|
||||
|
||||
# flatten all input arrays
|
||||
p_dat.resize((nz, nx * ny,))
|
||||
t_dat.resize((nz, nx * ny,))
|
||||
td_dat.resize((nz, nx * ny,))
|
||||
p0.resize((p0.size,))
|
||||
th0.resize((th0.size,))
|
||||
sh0.resize((sh0.size,))
|
||||
|
||||
# load the library
|
||||
meteoLibPath = MeteoLibUtil.getSoPath()
|
||||
meteoLib = np.ctypeslib.load_library(meteoLibPath,"")
|
||||
dcapeFunc = meteoLib.dcapeFunc
|
||||
|
||||
# "define" the capeFunc signature
|
||||
dcapeFunc.restype = None # return type
|
||||
dcapeFunc.argtypes = [ct.c_float,
|
||||
ct.POINTER(c_float_ptr),
|
||||
ct.POINTER(c_float_ptr),
|
||||
ct.POINTER(c_float_ptr),
|
||||
c_float_ptr,
|
||||
c_float_ptr,
|
||||
c_float_ptr,
|
||||
ct.c_int,
|
||||
ct.c_int,
|
||||
ct.c_int,
|
||||
ct.c_int,
|
||||
ct.c_float,
|
||||
ct.c_float,
|
||||
c_float_ptr]
|
||||
|
||||
# result arrays
|
||||
dcape_dat = np.zeros(gridArea,p_dat.dtype)
|
||||
|
||||
dcapeFuncArgs = [ct.c_float(usetv),
|
||||
|
||||
# get c_style pointers to the 2D input arrays
|
||||
(c_float_ptr*len(p_dat))(*[row.ctypes.data_as(c_float_ptr) for row in p_dat]),
|
||||
(c_float_ptr*len(t_dat))(*[row.ctypes.data_as(c_float_ptr) for row in t_dat]),
|
||||
(c_float_ptr*len(td_dat))(*[row.ctypes.data_as(c_float_ptr) for row in td_dat]),
|
||||
|
||||
p0.ctypes.data_as(c_float_ptr),
|
||||
th0.ctypes.data_as(c_float_ptr),
|
||||
sh0.ctypes.data_as(c_float_ptr),
|
||||
ct.c_int(nx),
|
||||
ct.c_int(nx),
|
||||
ct.c_int(ny),
|
||||
ct.c_int(nz),
|
||||
ct.c_float(max_evap),
|
||||
ct.c_float(max_rh),
|
||||
dcape_dat.ctypes.data_as(c_float_ptr)]
|
||||
|
||||
dcapeFunc(*dcapeFuncArgs)
|
||||
|
||||
# resize the cape data to the appropriate grid size
|
||||
dcape_dat.resize((ny,nx))
|
||||
|
||||
return dcape_dat
|
|
@ -1,203 +0,0 @@
|
|||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 12 Feb 2010 #4502 jelkins Initial Creation.
|
||||
|
||||
from MeteoLibTools import MeteoLibTools as MeteoLib
|
||||
from CPointer import CPointer
|
||||
from numpy import zeros
|
||||
from numpy import sqrt
|
||||
|
||||
meteoLib = MeteoLib()
|
||||
adiabatic_te = meteoLib.adiabatic_te
|
||||
|
||||
tmin = 193
|
||||
tmax = 333
|
||||
nval = 1 + tmax - tmin
|
||||
TeData_ptr = CPointer(zeros(7 * nval,'f'))
|
||||
Te1000_ptr = CPointer()
|
||||
Te850_ptr = CPointer()
|
||||
Te700_ptr = CPointer()
|
||||
Te600_ptr = CPointer()
|
||||
Te500_ptr = CPointer()
|
||||
Te350_ptr = CPointer()
|
||||
Te200_ptr = CPointer()
|
||||
|
||||
def temp_of_te(te, press):
|
||||
""" This routine calculates the saturation tempurature of an equivalent
|
||||
temperature at given pressure using the adiabatic definition
|
||||
|
||||
This function has been ported from the c language temp_of_te
|
||||
|
||||
"""
|
||||
press_ptr = CPointer([press])
|
||||
te_ptr = CPointer([te])
|
||||
|
||||
# grant access to the static variables
|
||||
from Temp_of_te import tmin
|
||||
from Temp_of_te import tmax
|
||||
from Temp_of_te import nval
|
||||
from Temp_of_te import TeData_ptr
|
||||
from Temp_of_te import Te1000_ptr
|
||||
from Temp_of_te import Te850_ptr
|
||||
from Temp_of_te import Te700_ptr
|
||||
from Temp_of_te import Te600_ptr
|
||||
from Temp_of_te import Te500_ptr
|
||||
from Temp_of_te import Te350_ptr
|
||||
from Temp_of_te import Te200_ptr
|
||||
|
||||
TeLookup_ptr = CPointer()
|
||||
base = None
|
||||
t = None
|
||||
p = None
|
||||
t1 = None
|
||||
t2 = None
|
||||
d = None
|
||||
d1 = None
|
||||
d2 = None
|
||||
w = None
|
||||
i = None
|
||||
|
||||
# very first time, construct lookup table Te's of T from 193 to 343 K
|
||||
if (Te1000_ptr.target == None):
|
||||
Te1000_ptr.copy(TeData_ptr)
|
||||
Te1000_ptr -= tmin
|
||||
Te850_ptr.copy(Te1000_ptr)
|
||||
Te850_ptr += nval;
|
||||
Te700_ptr.copy(Te850_ptr)
|
||||
Te700_ptr += nval
|
||||
Te600_ptr.copy(Te700_ptr)
|
||||
Te600_ptr += nval
|
||||
Te500_ptr.copy(Te600_ptr)
|
||||
Te500_ptr += nval
|
||||
Te350_ptr.copy(Te500_ptr)
|
||||
Te350_ptr += nval
|
||||
Te200_ptr.copy(Te350_ptr)
|
||||
Te200_ptr += nval
|
||||
p = 1000
|
||||
for t in range(tmin, tmax+1):
|
||||
Te1000_ptr[t] = adiabatic_te(t, p)
|
||||
p = 850;
|
||||
for t in range(tmin, tmax+1):
|
||||
Te850_ptr[t] = adiabatic_te(t, p)
|
||||
p = 700;
|
||||
for t in range(tmin, tmax+1):
|
||||
Te700_ptr[t] = adiabatic_te(t, p)
|
||||
p = 600;
|
||||
for t in range(tmin, tmax+1):
|
||||
Te600_ptr[t] = adiabatic_te(t, p)
|
||||
p = 500;
|
||||
for t in range(tmin, tmax+1):
|
||||
Te500_ptr[t] = adiabatic_te(t, p)
|
||||
p = 350;
|
||||
for t in range(tmin, tmax+1):
|
||||
Te350_ptr[t] = adiabatic_te(t, p)
|
||||
p = 200;
|
||||
for t in range(tmin, tmax+1):
|
||||
Te200_ptr[t] = adiabatic_te(t, p)
|
||||
|
||||
# find correct table, check for beyond bounds of table
|
||||
if (press_ptr[0] <= 250):
|
||||
TeLookup_ptr.copy(Te200_ptr)
|
||||
base = 200;
|
||||
elif (press_ptr[0] <= 400):
|
||||
TeLookup_ptr.copy(Te350_ptr)
|
||||
base = 350;
|
||||
elif (press_ptr[0] <= 550) :
|
||||
TeLookup_ptr.copy(Te500_ptr)
|
||||
base = 500;
|
||||
elif (press_ptr[0] <= 650):
|
||||
TeLookup_ptr.copy(Te600_ptr)
|
||||
base = 600;
|
||||
elif (press_ptr[0] <= 750):
|
||||
TeLookup_ptr.copy(Te700_ptr)
|
||||
base = 700;
|
||||
elif (press_ptr[0] <= 900) :
|
||||
TeLookup_ptr.copy(Te850_ptr)
|
||||
base = 850;
|
||||
else:
|
||||
TeLookup_ptr.copy(Te1000_ptr)
|
||||
base = 1000;
|
||||
|
||||
if (te_ptr[0] < TeLookup_ptr[tmin + 1]):
|
||||
return te_ptr[0]
|
||||
if (te_ptr[0] >= TeLookup_ptr[tmax]):
|
||||
return 1e37
|
||||
|
||||
# use table to get first guesses for value of temp
|
||||
# if (diag) printf("te,base %.2f %.0f\n",*te,base);
|
||||
t1 = tmin
|
||||
t2 = te_ptr[0]
|
||||
if (t2 > tmax):
|
||||
t2 = tmax
|
||||
while (t2 - t1 >= 3):
|
||||
t = ((t1 + t2) / 2)
|
||||
if (TeLookup_ptr[t] > te_ptr[0]):
|
||||
t2 = t
|
||||
elif (TeLookup_ptr[t] < te_ptr[0]):
|
||||
t1 = t
|
||||
else:
|
||||
if (t1 < t - 1):
|
||||
t1 = t - 1
|
||||
if (t2 > t + 1):
|
||||
t2 = t + 1
|
||||
break
|
||||
|
||||
# if (diag) printf("t1,t2,te1,te2 %.2f %.2f %.2f %.2f\n",t1,t2,
|
||||
# TeLookup[(int)t1],TeLookup[(int)t2]);
|
||||
w = sqrt(base / (press_ptr[0]))
|
||||
t1 = (1 - w) * TeLookup_ptr[t1] + w * t1;
|
||||
t2 = (1 - w) * TeLookup_ptr[t2] + w * t2;
|
||||
# if (diag) printf("t1,t2 %.2f %.2f\n",t1,t2);
|
||||
|
||||
# Iterate to find the exact solution
|
||||
d1 = te_ptr[0] - adiabatic_te(t1, press_ptr[0])
|
||||
d2 = adiabatic_te(t2, press_ptr[0]) - te_ptr[0]
|
||||
w = d2 / (d1 + d2)
|
||||
t = w * t1 + (1 - w) * t2
|
||||
d = adiabatic_te(t, press_ptr[0]) - te_ptr[0]
|
||||
|
||||
for i in range(0,10):
|
||||
if (d > 0.01):
|
||||
d2 = d
|
||||
t2 = t
|
||||
elif (d < -0.01):
|
||||
d1 = -d
|
||||
t1 = t
|
||||
else:
|
||||
break
|
||||
w = d2 / (d1 + d2)
|
||||
t = w * t1 + (1 - w) * t2
|
||||
d = adiabatic_te(t, press_ptr[0]) - te_ptr[0];
|
||||
|
||||
# if (diag) printf("t,i %.2f %d\n",t,i);
|
||||
|
||||
return t;
|
||||
|
||||
def test():
|
||||
""" Unit Test
|
||||
"""
|
||||
|
||||
result = temp_of_te(270, 500)
|
||||
print result
|
|
@ -1,11 +0,0 @@
|
|||
# BASIS SECTION TEMPLATES
|
||||
# -----------------------
|
||||
#
|
||||
name: system
|
||||
phrasestr:The current weather is dominated by a [...].
|
||||
phrasestr:This weather system will produce rainfall amounts ranging from [...].
|
||||
phrasestr:The extended outlook is for [...].
|
||||
#
|
||||
name: default
|
||||
phrasestr: ...insert basis section here!!!...
|
||||
#
|
|
@ -1,11 +0,0 @@
|
|||
# BASIS SECTION TEMPLATES
|
||||
# -----------------------
|
||||
#
|
||||
name: system
|
||||
phrasestr:The current weather is dominated by a [...].
|
||||
phrasestr:This weather system will produce rainfall amounts ranging from [...].
|
||||
phrasestr:The extended outlook is for [...].
|
||||
#
|
||||
name: default
|
||||
phrasestr: ...insert basis section here!!!...
|
||||
#
|
|
@ -1,11 +0,0 @@
|
|||
# BASIS SECTION TEMPLATES
|
||||
# -----------------------
|
||||
#
|
||||
name: system
|
||||
phrasestr:The current weather is dominated by a [...].
|
||||
phrasestr:This weather system will produce rainfall amounts ranging from [...].
|
||||
phrasestr:The extended outlook is for [...].
|
||||
#
|
||||
name: default
|
||||
phrasestr: ...insert basis section here!!!...
|
||||
#
|
|
@ -1,22 +0,0 @@
|
|||
# HISTORICAL CREST COMPARISON SUBSECTION TEMPLATES
|
||||
#
|
||||
#-------------------------------------------------
|
||||
name: default
|
||||
varlist: <HistCrestDate>
|
||||
formats: T_CAMDDYYYY
|
||||
bulletstr:This crest compares to a previous crest of <HistCrestStg> &
|
||||
feet on <HistCrestDate>.
|
||||
#
|
||||
name: ref_stgval_compare
|
||||
varlist: <HistCrestDate>
|
||||
formats: T_CAMDDYYYY
|
||||
phrasestr:The crest near <HistCrestRefStg> feet compares to &
|
||||
a previous crest of <HistCrestStg> feet on <HistCrestDate>.
|
||||
#
|
||||
#
|
||||
name: ref_stgtype_compare
|
||||
varlist: <HistCrestDate>
|
||||
formats: T_CAMDDYYYY
|
||||
phrasestr:The <HistCrestRefType> crest near <HistCrestRefStg> feet compares to &
|
||||
a previous crest of <HistCrestStg> feet on <HistCrestDate>.
|
||||
#
|
|
@ -1,22 +0,0 @@
|
|||
# HISTORICAL CREST COMPARISON SUBSECTION TEMPLATES
|
||||
#
|
||||
#-------------------------------------------------
|
||||
name: default
|
||||
varlist: <HistCrestDate>
|
||||
formats: T_CAMDDYYYY
|
||||
bulletstr:This crest compares to a previous crest of <HistCrestStg> &
|
||||
feet on <HistCrestDate>.
|
||||
#
|
||||
name: ref_stgval_compare
|
||||
varlist: <HistCrestDate>
|
||||
formats: T_CAMDDYYYY
|
||||
phrasestr:The crest near <HistCrestRefStg> feet compares to &
|
||||
a previous crest of <HistCrestStg> feet on <HistCrestDate>.
|
||||
#
|
||||
#
|
||||
name: ref_stgtype_compare
|
||||
varlist: <HistCrestDate>
|
||||
formats: T_CAMDDYYYY
|
||||
phrasestr:The <HistCrestRefType> crest near <HistCrestRefStg> feet compares to &
|
||||
a previous crest of <HistCrestStg> feet on <HistCrestDate>.
|
||||
#
|
|
@ -1,22 +0,0 @@
|
|||
# HISTORICAL CREST COMPARISON SUBSECTION TEMPLATES
|
||||
#
|
||||
#-------------------------------------------------
|
||||
name: default
|
||||
varlist: <HistCrestDate>
|
||||
formats: T_CAMDDYYYY
|
||||
bulletstr:This crest compares to a previous crest of <HistCrestStg> &
|
||||
feet on <HistCrestDate>.
|
||||
#
|
||||
name: ref_stgval_compare
|
||||
varlist: <HistCrestDate>
|
||||
formats: T_CAMDDYYYY
|
||||
phrasestr:The crest near <HistCrestRefStg> feet compares to &
|
||||
a previous crest of <HistCrestStg> feet on <HistCrestDate>.
|
||||
#
|
||||
#
|
||||
name: ref_stgtype_compare
|
||||
varlist: <HistCrestDate>
|
||||
formats: T_CAMDDYYYY
|
||||
phrasestr:The <HistCrestRefType> crest near <HistCrestRefStg> feet compares to &
|
||||
a previous crest of <HistCrestStg> feet on <HistCrestDate>.
|
||||
#
|
|
@ -1,53 +0,0 @@
|
|||
# CALL-TO-ACTION SECTION TEMPLATES
|
||||
#---------------------------------
|
||||
#
|
||||
name: dollar_signs
|
||||
phrasestr:||$$
|
||||
#
|
||||
name: CTABANNER
|
||||
phrasestr:Call-to-action statements...
|
||||
#
|
||||
name: cardrive
|
||||
phrasestr:For your safety...Do not drive through flooded areas.
|
||||
#
|
||||
name: riverbanks
|
||||
phrasestr:Caution is urged when walking near riverbanks.
|
||||
#
|
||||
name: noaaradio
|
||||
phrasestr:Stay tuned to NOAA weather radio or local media for
|
||||
phrasestr: the latest on this situation.
|
||||
#
|
||||
name: laterproduct
|
||||
phrasestr: A followup product will be issued later this afternoon.
|
||||
#
|
||||
name: laststatement
|
||||
phrasestr:This will be the last statement issued for these sites
|
||||
phrasestr: for the recent flood event. If conditions change, more
|
||||
phrasestr: statements will be issued as needed.
|
||||
#
|
||||
name: drive
|
||||
phrasestr:Never attempt to drive through a flooded roadway...this is how most
|
||||
phrasestr:flood deaths result.
|
||||
#
|
||||
name: QPF
|
||||
phrasestr:River flood forecasts are based on forecast amounts of
|
||||
phrasestr: precipitation over the next 24 to 48 hours. If precipitation
|
||||
phrasestr: amounts are greater or less than anticipated...river
|
||||
phrasestr: forecasts will differ. Updated river flood statements or
|
||||
phrasestr: warnings will be issued when necessary.
|
||||
#
|
||||
name: nextstatement
|
||||
phrasestr: A followup statement will be issued in approximately 6 hours.
|
||||
#
|
||||
name: EAX_FF_1
|
||||
phrasestr:DO NOT DRIVE YOUR VEHIVLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY.
|
||||
phrasestr: THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY.
|
||||
phrasestr: VEHICLES CAUGHT IN RISING WATER SHOULD BE ABANDONED QUICKLY. MOVE TO HIGHER GROUND.
|
||||
#
|
||||
name: EAX_FF_2
|
||||
phrasestr:|| ||A FLASH FLOOD WARNING MEANS THAT FLOODING IS IMMINENT OR OCCURRING.
|
||||
phrasestr: IF YOU ARE IN THE WARNING AREA MOVE TO HIGHER GROUND IMMEDIATELY.
|
||||
phrasestr: RESIDENTS LIVING ALONG STREAMS AND CREEKS SHOULD TAKE IMMEDIATE PRECAUTIONS TO PROTECT LIFE AND PROPERTY.
|
||||
#
|
||||
name:EAX_latlon_lid
|
||||
phrasestr:|| ||LAT...LON 3901 9456 3887 9439 3889 9426 3902 9413 3918 9432 || ||$$
|
|
@ -1,53 +0,0 @@
|
|||
# CALL-TO-ACTION SECTION TEMPLATES
|
||||
#---------------------------------
|
||||
#
|
||||
name: dollar_signs
|
||||
phrasestr:||$$
|
||||
#
|
||||
name: CTABANNER
|
||||
phrasestr:Call-to-action statements...
|
||||
#
|
||||
name: cardrive
|
||||
phrasestr:For your safety...Do not drive through flooded areas.
|
||||
#
|
||||
name: riverbanks
|
||||
phrasestr:Caution is urged when walking near riverbanks.
|
||||
#
|
||||
name: noaaradio
|
||||
phrasestr:Stay tuned to NOAA weather radio or local media for
|
||||
phrasestr: the latest on this situation.
|
||||
#
|
||||
name: laterproduct
|
||||
phrasestr: A followup product will be issued later this afternoon.
|
||||
#
|
||||
name: laststatement
|
||||
phrasestr:This will be the last statement issued for these sites
|
||||
phrasestr: for the recent flood event. If conditions change, more
|
||||
phrasestr: statements will be issued as needed.
|
||||
#
|
||||
name: drive
|
||||
phrasestr:Never attempt to drive through a flooded roadway...this is how most
|
||||
phrasestr:flood deaths result.
|
||||
#
|
||||
name: QPF
|
||||
phrasestr:River flood forecasts are based on forecast amounts of
|
||||
phrasestr: precipitation over the next 24 to 48 hours. If precipitation
|
||||
phrasestr: amounts are greater or less than anticipated...river
|
||||
phrasestr: forecasts will differ. Updated river flood statements or
|
||||
phrasestr: warnings will be issued when necessary.
|
||||
#
|
||||
name: nextstatement
|
||||
phrasestr: A followup statement will be issued in approximately 6 hours.
|
||||
#
|
||||
name: EAX_FF_1
|
||||
phrasestr:DO NOT DRIVE YOUR VEHIVLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY.
|
||||
phrasestr: THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY.
|
||||
phrasestr: VEHICLES CAUGHT IN RISING WATER SHOULD BE ABANDONED QUICKLY. MOVE TO HIGHER GROUND.
|
||||
#
|
||||
name: EAX_FF_2
|
||||
phrasestr:|| ||A FLASH FLOOD WARNING MEANS THAT FLOODING IS IMMINENT OR OCCURRING.
|
||||
phrasestr: IF YOU ARE IN THE WARNING AREA MOVE TO HIGHER GROUND IMMEDIATELY.
|
||||
phrasestr: RESIDENTS LIVING ALONG STREAMS AND CREEKS SHOULD TAKE IMMEDIATE PRECAUTIONS TO PROTECT LIFE AND PROPERTY.
|
||||
#
|
||||
name:EAX_latlon_lid
|
||||
phrasestr:|| ||LAT...LON 3901 9456 3887 9439 3889 9426 3902 9413 3918 9432 || ||$$
|
|
@ -1,53 +0,0 @@
|
|||
# CALL-TO-ACTION SECTION TEMPLATES
|
||||
#---------------------------------
|
||||
#
|
||||
name: dollar_signs
|
||||
phrasestr:||$$
|
||||
#
|
||||
name: CTABANNER
|
||||
phrasestr:Call-to-action statements...
|
||||
#
|
||||
name: cardrive
|
||||
phrasestr:For your safety...Do not drive through flooded areas.
|
||||
#
|
||||
name: riverbanks
|
||||
phrasestr:Caution is urged when walking near riverbanks.
|
||||
#
|
||||
name: noaaradio
|
||||
phrasestr:Stay tuned to NOAA weather radio or local media for
|
||||
phrasestr: the latest on this situation.
|
||||
#
|
||||
name: laterproduct
|
||||
phrasestr: A followup product will be issued later this afternoon.
|
||||
#
|
||||
name: laststatement
|
||||
phrasestr:This will be the last statement issued for these sites
|
||||
phrasestr: for the recent flood event. If conditions change, more
|
||||
phrasestr: statements will be issued as needed.
|
||||
#
|
||||
name: drive
|
||||
phrasestr:Never attempt to drive through a flooded roadway...this is how most
|
||||
phrasestr:flood deaths result.
|
||||
#
|
||||
name: QPF
|
||||
phrasestr:River flood forecasts are based on forecast amounts of
|
||||
phrasestr: precipitation over the next 24 to 48 hours. If precipitation
|
||||
phrasestr: amounts are greater or less than anticipated...river
|
||||
phrasestr: forecasts will differ. Updated river flood statements or
|
||||
phrasestr: warnings will be issued when necessary.
|
||||
#
|
||||
name: nextstatement
|
||||
phrasestr: A followup statement will be issued in approximately 6 hours.
|
||||
#
|
||||
name: EAX_FF_1
|
||||
phrasestr:DO NOT DRIVE YOUR VEHIVLE INTO AREAS WHERE THE WATER COVERS THE ROADWAY.
|
||||
phrasestr: THE WATER DEPTH MAY BE TOO GREAT TO ALLOW YOUR CAR TO CROSS SAFELY.
|
||||
phrasestr: VEHICLES CAUGHT IN RISING WATER SHOULD BE ABANDONED QUICKLY. MOVE TO HIGHER GROUND.
|
||||
#
|
||||
name: EAX_FF_2
|
||||
phrasestr:|| ||A FLASH FLOOD WARNING MEANS THAT FLOODING IS IMMINENT OR OCCURRING.
|
||||
phrasestr: IF YOU ARE IN THE WARNING AREA MOVE TO HIGHER GROUND IMMEDIATELY.
|
||||
phrasestr: RESIDENTS LIVING ALONG STREAMS AND CREEKS SHOULD TAKE IMMEDIATE PRECAUTIONS TO PROTECT LIFE AND PROPERTY.
|
||||
#
|
||||
name:EAX_latlon_lid
|
||||
phrasestr:|| ||LAT...LON 3901 9456 3887 9439 3889 9426 3902 9413 3918 9432 || ||$$
|
|
@ -1,29 +0,0 @@
|
|||
# fcst_trend_phrase.xxx, this file is located at /awips/hydroapps/whfs/local/
|
||||
# data/app/riverpro. It defines the trend phrases for different trend index,
|
||||
# for normal forecast points,the trend indexes are RISE_STEADY, RISE_ABOVEFS, RISE_ABOVEWS, RISE_CONT,
|
||||
# RISE_CREST, FLUCTUATE_NEAR, FALL_STEADY, FALL_BELOWFS and FALL_BELOWWS.
|
||||
# for the weir points, the trend indexes are
|
||||
#
|
||||
#
|
||||
RISE_STEADY:forecast to rise to near
|
||||
RISE_ABOVEFS:expected to rise above flood stage of
|
||||
RISE_ABOVEWS:forecast to rise above warning stage of
|
||||
RISE_CONT:forecast to rise to near xx ft with continued rise expected
|
||||
RISE_CREST:forecast to crest near
|
||||
FLUCTUATE_NEAR:forecast to fluctuate near
|
||||
FALL_STEADY:forecast to recede to near
|
||||
FALL_BELOWFS:forecast to fall below flood stage of
|
||||
FALL_BELOWWS:forecast to fall below warning stage of
|
||||
#end of trend indexs and associated phrases for normal forecast points.
|
||||
|
||||
#For weir points
|
||||
WEIR_NO_OVERFLOW:no overflow is expected
|
||||
WEIR_SLIGHT_OVERFLOW:possibility of slight overflow
|
||||
WEIR_BEGIN_OVERFLOW:forecast to begin overflow
|
||||
WEIR_OVERFLOW_INC:overflow depth at weir increasing to
|
||||
WEIR_PRESENT_OVERFLOW:present overflow depth is about
|
||||
WEIR_REMAIN_OVERFLOW:overflow to remain near depth of
|
||||
WEIR_OVERFLOW_DEC:overflow depth at weir decreasing to
|
||||
WEIR_END_OVERFLOW:forecast to end overflow
|
||||
WEIR_STOP_OVERFLOW:overflow stopped
|
||||
WEIR_RENEW_OVERFLOW:forecast to begin renewed overflow
|
|
@ -1,29 +0,0 @@
|
|||
# fcst_trend_phrase.xxx, this file is located at /awips/hydroapps/whfs/local/
|
||||
# data/app/riverpro. It defines the trend phrases for different trend index,
|
||||
# for normal forecast points,the trend indexes are RISE_STEADY, RISE_ABOVEFS, RISE_ABOVEWS, RISE_CONT,
|
||||
# RISE_CREST, FLUCTUATE_NEAR, FALL_STEADY, FALL_BELOWFS and FALL_BELOWWS.
|
||||
# for the weir points, the trend indexes are
|
||||
#
|
||||
#
|
||||
RISE_STEADY:forecast to rise to near
|
||||
RISE_ABOVEFS:expected to rise above flood stage of
|
||||
RISE_ABOVEWS:forecast to rise above warning stage of
|
||||
RISE_CONT:forecast to rise to near xx ft with continued rise expected
|
||||
RISE_CREST:forecast to crest near
|
||||
FLUCTUATE_NEAR:forecast to fluctuate near
|
||||
FALL_STEADY:forecast to recede to near
|
||||
FALL_BELOWFS:forecast to fall below flood stage of
|
||||
FALL_BELOWWS:forecast to fall below warning stage of
|
||||
#end of trend indexs and associated phrases for normal forecast points.
|
||||
|
||||
#For weir points
|
||||
WEIR_NO_OVERFLOW:no overflow is expected
|
||||
WEIR_SLIGHT_OVERFLOW:possibility of slight overflow
|
||||
WEIR_BEGIN_OVERFLOW:forecast to begin overflow
|
||||
WEIR_OVERFLOW_INC:overflow depth at weir increasing to
|
||||
WEIR_PRESENT_OVERFLOW:present overflow depth is about
|
||||
WEIR_REMAIN_OVERFLOW:overflow to remain near depth of
|
||||
WEIR_OVERFLOW_DEC:overflow depth at weir decreasing to
|
||||
WEIR_END_OVERFLOW:forecast to end overflow
|
||||
WEIR_STOP_OVERFLOW:overflow stopped
|
||||
WEIR_RENEW_OVERFLOW:forecast to begin renewed overflow
|
|
@ -1,29 +0,0 @@
|
|||
# fcst_trend_phrase.xxx, this file is located at /awips/hydroapps/whfs/local/
|
||||
# data/app/riverpro. It defines the trend phrases for different trend index,
|
||||
# for normal forecast points,the trend indexes are RISE_STEADY, RISE_ABOVEFS, RISE_ABOVEWS, RISE_CONT,
|
||||
# RISE_CREST, FLUCTUATE_NEAR, FALL_STEADY, FALL_BELOWFS and FALL_BELOWWS.
|
||||
# for the weir points, the trend indexes are
|
||||
#
|
||||
#
|
||||
RISE_STEADY:forecast to rise to near
|
||||
RISE_ABOVEFS:expected to rise above flood stage of
|
||||
RISE_ABOVEWS:forecast to rise above warning stage of
|
||||
RISE_CONT:forecast to rise to near xx ft with continued rise expected
|
||||
RISE_CREST:forecast to crest near
|
||||
FLUCTUATE_NEAR:forecast to fluctuate near
|
||||
FALL_STEADY:forecast to recede to near
|
||||
FALL_BELOWFS:forecast to fall below flood stage of
|
||||
FALL_BELOWWS:forecast to fall below warning stage of
|
||||
#end of trend indexs and associated phrases for normal forecast points.
|
||||
|
||||
#For weir points
|
||||
WEIR_NO_OVERFLOW:no overflow is expected
|
||||
WEIR_SLIGHT_OVERFLOW:possibility of slight overflow
|
||||
WEIR_BEGIN_OVERFLOW:forecast to begin overflow
|
||||
WEIR_OVERFLOW_INC:overflow depth at weir increasing to
|
||||
WEIR_PRESENT_OVERFLOW:present overflow depth is about
|
||||
WEIR_REMAIN_OVERFLOW:overflow to remain near depth of
|
||||
WEIR_OVERFLOW_DEC:overflow depth at weir decreasing to
|
||||
WEIR_END_OVERFLOW:forecast to end overflow
|
||||
WEIR_STOP_OVERFLOW:overflow stopped
|
||||
WEIR_RENEW_OVERFLOW:forecast to begin renewed overflow
|
|
@ -1,509 +0,0 @@
|
|||
#
|
||||
# HEADER SECTION TEMPLATES
|
||||
#
|
||||
name: rvs
|
||||
# RIVER STATEMENT
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCRVSWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:HYDROLOGIC STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BALTIMORE MD/WASHINGTON DC
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: rvs_daily_fcst
|
||||
# DAILY RIVER FORECAST
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCRVSWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:RIVER STATEMENT - DAILY FORECAST
|
||||
phrasestr:NATIONAL WEATHER SERVICE BALTIMORE MD/WASHINGTON DC
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: rva_river_stages
|
||||
# ROUTINE RIVER STAGES
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCRVAWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:HYDROLOGIC SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: fls
|
||||
# FLOOD STATEMENT
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCFLSWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:ISSUANCE NUMBER <IssuanceNumber>
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: flt
|
||||
# TERMINATING FLOOD STATEMENT
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCFLSWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
#phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#phrasestr:ISSUANCE NUMBER <IssuanceNumber>
|
||||
phrasestr:
|
||||
#phrasestr:* THIS PRODUCT TERMINATES PREVIOUSLY ISSUED FLOOD STATEMENT *
|
||||
#
|
||||
#
|
||||
#
|
||||
name: flw
|
||||
# FLOOD WARNING
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCFLWWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:ISSUANCE NUMBER <IssuanceNumber>
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: test
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
phrasestr:RIVER STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:
|
||||
phrasestr: TEST...RIVER STATEMENT...TEST
|
||||
#
|
||||
#phrasestr:TEST HEADER SECTION
|
||||
#phrasestr:Prodid = <ProdId>
|
||||
#phrasestr:CurDate = <CurDate>
|
||||
#phrasestr:Clist = <UGCListC>
|
||||
#phrasestr:Zlist = <UGCListZ>
|
||||
#phrasestr:Countylist = <CountyList>
|
||||
#phrasestr:Riverlist = <RiverList>
|
||||
#phrasestr:IssuanceNumber = <IssuanceNumber>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: hyd
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:DCZ001-WVZ048>055-MDZ001>007-009>011-013-014-016>018-
|
||||
phrasestr:VAZ021-025>031-038>042-051-WVZ048>055-
|
||||
phrasestr:
|
||||
phrasestr:PRECIPITATION AND TEMPERATURE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: NWR_rva
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:DCZ001-WVC048>055-MDZ001>007-009>011-013-014-016>18- <Date>1800-
|
||||
#
|
||||
name: stp
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:DCZ001-WVZ048>055-MDZ001>007-009>011-013-014-016>018
|
||||
phrasestr:
|
||||
phrasestr:PRECIPITATION AND TEMPERATURE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: pns
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:PUBLIC INFORMATION STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: hym
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:MONTHLY RAINFALL SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: wrk
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:RIVER STAGES...NWR SCRIPT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: rvm
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:MISCELLANEOUS HYDROLOGIC INFORMATION
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: precip
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:MISCELLANEOUS HYDROLOGIC INFORMATION
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: PHI_daily_rvs
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:RIVER STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: PHI_flw
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: PHI_fls
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: PHI-flt
|
||||
formatss: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS NGTON
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: RNK_daily_rvs
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:RIVER STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: RNK_flw
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:RNK_fls
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:RNK_flt
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_daily_rvs
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:RIVER STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_flw
|
||||
formats:T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_fls
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_flt
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVCIE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:rvd
|
||||
#RIVER AND LAKE SUMMARY
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:DCZ001-MDZ001-004-013-WVZ051-052-054-VAZ025>031-038>040-042-052-054>056-<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:DAILY RIVER AND LAKE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:PHI_rvd
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:DAILY RIVER AND LAKE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_rvd
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:DAILY RIVER AND LAKE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:RNK_rvd
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:DAILY RIVER AND LAKE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:EAX_FFS
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLASH FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
name:EAX_FFW
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - EAS ACTIVATION REQUESTED
|
||||
phrasestr:FLASH FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
name: rtp_am_shef
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
phrasestr: MORNING TEMPERATURE AND PRECIPITATION SUMMARY
|
||||
phrasestr: NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr: <CurDate>
|
||||
#
|
||||
#
|
||||
name: test_flw
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:TEST ... FLOOD WARNING ... TEST
|
||||
phrasestr:NATIONAL WEATHER SERVICE MYOFFICE
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
phrasestr:|| ... THIS MESSAGE IS FOR TEST PURPOSES ONLY ...
|
||||
phrasestr:|| ... THERE IS NO FLOODING OCCURRING ...
|
||||
#
|
||||
#
|
||||
name: test_fls
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:TEST ... FLOOD WARNING ... TEST
|
||||
phrasestr:NATIONAL WEATHER SERVICE MYOFFICE
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
phrasestr:|| ... THIS MESSAGE IS FOR TEST PURPOSES ONLY ...
|
||||
phrasestr:|| ... THERE IS NO FLOODING OCCURRING ...
|
||||
#
|
||||
name: flw_vtec
|
||||
# HEADER FOR VTEC FLOOD WARNING
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE (city, state)
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
name: fls_vtec
|
||||
# HEADER FOR VTEC FLOOD STATEMENT
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE (city, state)
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
name: ffa_vtec
|
||||
# HEADER FOR VTEC FLOOD WATCH
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:URGENT - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WATCH
|
||||
phrasestr:NATIONAL WEATHER SERVICE (city, state)
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
name: fls_advisory_vtec
|
||||
# HEADER FOR VTEC FLOOD ADVISORY
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:FLOOD ADVISORY
|
||||
phrasestr:NATIONAL WEATHER SERVICE (city, state)
|
||||
phrasestr:<CurDate>
|
||||
#
|
|
@ -1,509 +0,0 @@
|
|||
#
|
||||
# HEADER SECTION TEMPLATES
|
||||
#
|
||||
name: rvs
|
||||
# RIVER STATEMENT
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCRVSWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:HYDROLOGIC STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BALTIMORE MD/WASHINGTON DC
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: rvs_daily_fcst
|
||||
# DAILY RIVER FORECAST
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCRVSWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:RIVER STATEMENT - DAILY FORECAST
|
||||
phrasestr:NATIONAL WEATHER SERVICE BALTIMORE MD/WASHINGTON DC
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: rva_river_stages
|
||||
# ROUTINE RIVER STAGES
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCRVAWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:HYDROLOGIC SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: fls
|
||||
# FLOOD STATEMENT
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCFLSWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:ISSUANCE NUMBER <IssuanceNumber>
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: flt
|
||||
# TERMINATING FLOOD STATEMENT
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCFLSWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
#phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#phrasestr:ISSUANCE NUMBER <IssuanceNumber>
|
||||
phrasestr:
|
||||
#phrasestr:* THIS PRODUCT TERMINATES PREVIOUSLY ISSUED FLOOD STATEMENT *
|
||||
#
|
||||
#
|
||||
#
|
||||
name: flw
|
||||
# FLOOD WARNING
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCFLWWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:ISSUANCE NUMBER <IssuanceNumber>
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: test
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
phrasestr:RIVER STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:
|
||||
phrasestr: TEST...RIVER STATEMENT...TEST
|
||||
#
|
||||
#phrasestr:TEST HEADER SECTION
|
||||
#phrasestr:Prodid = <ProdId>
|
||||
#phrasestr:CurDate = <CurDate>
|
||||
#phrasestr:Clist = <UGCListC>
|
||||
#phrasestr:Zlist = <UGCListZ>
|
||||
#phrasestr:Countylist = <CountyList>
|
||||
#phrasestr:Riverlist = <RiverList>
|
||||
#phrasestr:IssuanceNumber = <IssuanceNumber>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: hyd
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:DCZ001-WVZ048>055-MDZ001>007-009>011-013-014-016>018-
|
||||
phrasestr:VAZ021-025>031-038>042-051-WVZ048>055-
|
||||
phrasestr:
|
||||
phrasestr:PRECIPITATION AND TEMPERATURE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: NWR_rva
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:DCZ001-WVC048>055-MDZ001>007-009>011-013-014-016>18- <Date>1800-
|
||||
#
|
||||
name: stp
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:DCZ001-WVZ048>055-MDZ001>007-009>011-013-014-016>018
|
||||
phrasestr:
|
||||
phrasestr:PRECIPITATION AND TEMPERATURE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: pns
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:PUBLIC INFORMATION STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: hym
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:MONTHLY RAINFALL SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: wrk
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:RIVER STAGES...NWR SCRIPT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: rvm
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:MISCELLANEOUS HYDROLOGIC INFORMATION
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: precip
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:MISCELLANEOUS HYDROLOGIC INFORMATION
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: PHI_daily_rvs
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:RIVER STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: PHI_flw
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: PHI_fls
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: PHI-flt
|
||||
formatss: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS NGTON
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: RNK_daily_rvs
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:RIVER STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: RNK_flw
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:RNK_fls
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:RNK_flt
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_daily_rvs
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:RIVER STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_flw
|
||||
formats:T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_fls
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_flt
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVCIE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:rvd
|
||||
#RIVER AND LAKE SUMMARY
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:DCZ001-MDZ001-004-013-WVZ051-052-054-VAZ025>031-038>040-042-052-054>056-<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:DAILY RIVER AND LAKE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:PHI_rvd
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:DAILY RIVER AND LAKE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_rvd
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:DAILY RIVER AND LAKE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:RNK_rvd
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:DAILY RIVER AND LAKE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:EAX_FFS
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLASH FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
name:EAX_FFW
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - EAS ACTIVATION REQUESTED
|
||||
phrasestr:FLASH FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
name: rtp_am_shef
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
phrasestr: MORNING TEMPERATURE AND PRECIPITATION SUMMARY
|
||||
phrasestr: NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr: <CurDate>
|
||||
#
|
||||
#
|
||||
name: test_flw
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:TEST ... FLOOD WARNING ... TEST
|
||||
phrasestr:NATIONAL WEATHER SERVICE MYOFFICE
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
phrasestr:|| ... THIS MESSAGE IS FOR TEST PURPOSES ONLY ...
|
||||
phrasestr:|| ... THERE IS NO FLOODING OCCURRING ...
|
||||
#
|
||||
#
|
||||
name: test_fls
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:TEST ... FLOOD WARNING ... TEST
|
||||
phrasestr:NATIONAL WEATHER SERVICE MYOFFICE
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
phrasestr:|| ... THIS MESSAGE IS FOR TEST PURPOSES ONLY ...
|
||||
phrasestr:|| ... THERE IS NO FLOODING OCCURRING ...
|
||||
#
|
||||
name: flw_vtec
|
||||
# HEADER FOR VTEC FLOOD WARNING
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE (city, state)
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
name: fls_vtec
|
||||
# HEADER FOR VTEC FLOOD STATEMENT
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE (city, state)
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
name: ffa_vtec
|
||||
# HEADER FOR VTEC FLOOD WATCH
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:URGENT - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WATCH
|
||||
phrasestr:NATIONAL WEATHER SERVICE (city, state)
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
name: fls_advisory_vtec
|
||||
# HEADER FOR VTEC FLOOD ADVISORY
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:FLOOD ADVISORY
|
||||
phrasestr:NATIONAL WEATHER SERVICE (city, state)
|
||||
phrasestr:<CurDate>
|
||||
#
|
|
@ -1,509 +0,0 @@
|
|||
#
|
||||
# HEADER SECTION TEMPLATES
|
||||
#
|
||||
name: rvs
|
||||
# RIVER STATEMENT
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCRVSWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:HYDROLOGIC STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BALTIMORE MD/WASHINGTON DC
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: rvs_daily_fcst
|
||||
# DAILY RIVER FORECAST
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCRVSWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:RIVER STATEMENT - DAILY FORECAST
|
||||
phrasestr:NATIONAL WEATHER SERVICE BALTIMORE MD/WASHINGTON DC
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: rva_river_stages
|
||||
# ROUTINE RIVER STAGES
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCRVAWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:HYDROLOGIC SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: fls
|
||||
# FLOOD STATEMENT
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCFLSWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:ISSUANCE NUMBER <IssuanceNumber>
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: flt
|
||||
# TERMINATING FLOOD STATEMENT
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCFLSWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
#phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#phrasestr:ISSUANCE NUMBER <IssuanceNumber>
|
||||
phrasestr:
|
||||
#phrasestr:* THIS PRODUCT TERMINATES PREVIOUSLY ISSUED FLOOD STATEMENT *
|
||||
#
|
||||
#
|
||||
#
|
||||
name: flw
|
||||
# FLOOD WARNING
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
# phrasestr:WBCFLWWBC
|
||||
# phrasestr:TTAA00 KLWX DDHHMM
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:ISSUANCE NUMBER <IssuanceNumber>
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: test
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
phrasestr:RIVER STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:
|
||||
phrasestr: TEST...RIVER STATEMENT...TEST
|
||||
#
|
||||
#phrasestr:TEST HEADER SECTION
|
||||
#phrasestr:Prodid = <ProdId>
|
||||
#phrasestr:CurDate = <CurDate>
|
||||
#phrasestr:Clist = <UGCListC>
|
||||
#phrasestr:Zlist = <UGCListZ>
|
||||
#phrasestr:Countylist = <CountyList>
|
||||
#phrasestr:Riverlist = <RiverList>
|
||||
#phrasestr:IssuanceNumber = <IssuanceNumber>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: hyd
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:DCZ001-WVZ048>055-MDZ001>007-009>011-013-014-016>018-
|
||||
phrasestr:VAZ021-025>031-038>042-051-WVZ048>055-
|
||||
phrasestr:
|
||||
phrasestr:PRECIPITATION AND TEMPERATURE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: NWR_rva
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:DCZ001-WVC048>055-MDZ001>007-009>011-013-014-016>18- <Date>1800-
|
||||
#
|
||||
name: stp
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:DCZ001-WVZ048>055-MDZ001>007-009>011-013-014-016>018
|
||||
phrasestr:
|
||||
phrasestr:PRECIPITATION AND TEMPERATURE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: pns
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:PUBLIC INFORMATION STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: hym
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:MONTHLY RAINFALL SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: wrk
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:RIVER STAGES...NWR SCRIPT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: rvm
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:MISCELLANEOUS HYDROLOGIC INFORMATION
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: precip
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:MISCELLANEOUS HYDROLOGIC INFORMATION
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: PHI_daily_rvs
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:RIVER STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: PHI_flw
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: PHI_fls
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: PHI-flt
|
||||
formatss: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS NGTON
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: RNK_daily_rvs
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:RIVER STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name: RNK_flw
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:RNK_fls
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:RNK_flt
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_daily_rvs
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:RIVER STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_flw
|
||||
formats:T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_fls
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_flt
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVCIE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:rvd
|
||||
#RIVER AND LAKE SUMMARY
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:DCZ001-MDZ001-004-013-WVZ051-052-054-VAZ025>031-038>040-042-052-054>056-<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:DAILY RIVER AND LAKE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:PHI_rvd
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:DAILY RIVER AND LAKE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE MT HOLLY NJ
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:AKQ_rvd
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:DAILY RIVER AND LAKE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE WAKEFIELD VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:RNK_rvd
|
||||
formats: T_HEADER
|
||||
varlist:<CurDate>
|
||||
#
|
||||
phrasestr:<UGCListZ>
|
||||
phrasestr:
|
||||
phrasestr:DAILY RIVER AND LAKE SUMMARY
|
||||
phrasestr:NATIONAL WEATHER SERVICE BLACKSBURG VA
|
||||
phrasestr:ISSUED BY NWS BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
#
|
||||
name:EAX_FFS
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:FLASH FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
name:EAX_FFW
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:<UGCListC>
|
||||
phrasestr:
|
||||
phrasestr:BULLETIN - EAS ACTIVATION REQUESTED
|
||||
phrasestr:FLASH FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
#
|
||||
name: rtp_am_shef
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
phrasestr: MORNING TEMPERATURE AND PRECIPITATION SUMMARY
|
||||
phrasestr: NATIONAL WEATHER SERVICE BOSTON MA
|
||||
phrasestr: <CurDate>
|
||||
#
|
||||
#
|
||||
name: test_flw
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:TEST ... FLOOD WARNING ... TEST
|
||||
phrasestr:NATIONAL WEATHER SERVICE MYOFFICE
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
phrasestr:|| ... THIS MESSAGE IS FOR TEST PURPOSES ONLY ...
|
||||
phrasestr:|| ... THERE IS NO FLOODING OCCURRING ...
|
||||
#
|
||||
#
|
||||
name: test_fls
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:TEST ... FLOOD WARNING ... TEST
|
||||
phrasestr:NATIONAL WEATHER SERVICE MYOFFICE
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
phrasestr:|| ... THIS MESSAGE IS FOR TEST PURPOSES ONLY ...
|
||||
phrasestr:|| ... THERE IS NO FLOODING OCCURRING ...
|
||||
#
|
||||
name: flw_vtec
|
||||
# HEADER FOR VTEC FLOOD WARNING
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:BULLETIN - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WARNING
|
||||
phrasestr:NATIONAL WEATHER SERVICE (city, state)
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
name: fls_vtec
|
||||
# HEADER FOR VTEC FLOOD STATEMENT
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:FLOOD STATEMENT
|
||||
phrasestr:NATIONAL WEATHER SERVICE (city, state)
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
name: ffa_vtec
|
||||
# HEADER FOR VTEC FLOOD WATCH
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:URGENT - IMMEDIATE BROADCAST REQUESTED
|
||||
phrasestr:FLOOD WATCH
|
||||
phrasestr:NATIONAL WEATHER SERVICE (city, state)
|
||||
phrasestr:<CurDate>
|
||||
#
|
||||
name: fls_advisory_vtec
|
||||
# HEADER FOR VTEC FLOOD ADVISORY
|
||||
formats: T_HEADER
|
||||
varlist: <CurDate>
|
||||
#
|
||||
phrasestr:FLOOD ADVISORY
|
||||
phrasestr:NATIONAL WEATHER SERVICE (city, state)
|
||||
phrasestr:<CurDate>
|
||||
#
|
|
@ -1,248 +0,0 @@
|
|||
# HEADLINE SECTION TEMPLATES
|
||||
#
|
||||
name:flw_fls_nonsegment
|
||||
phrasestr: This product includes the following rivers: <RiverList>.
|
||||
phrasestr: This product applies to the : <GrpsFPList>.
|
||||
#
|
||||
#
|
||||
name: rvs
|
||||
phrasestr:The headline phrase for rvs
|
||||
#
|
||||
#
|
||||
name: default
|
||||
phrasestr: This product includes the following rivers: <RiverList>.
|
||||
phrasestr: This product applies to the : <GrpsFPList>.
|
||||
#
|
||||
#
|
||||
#headline sections for event based product such as
|
||||
#Flood Warning, Follow-up Flood Warning, Flood Watch for forecast point,
|
||||
#and Flood Advisory for forecast point.
|
||||
#
|
||||
name:flw_fls_vtec
|
||||
action_begin: COR
|
||||
phrasestr:...The flood warning is corrected for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CAN
|
||||
phrasestr:...The flood warning is cancelled for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:EXP
|
||||
phrasestr:...The flood warning has expired for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proiximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: EXT
|
||||
phrasestr:...The flood warning extended for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CON
|
||||
phrasestr:...The flood warning continues for the following rivers &
|
||||
in <ActionStateList>..
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:NEW
|
||||
phrasestr:...The National Weather Service in <OfficeName> has issued a flood &
|
||||
warning for the following rivers <ActionRiverList> in &
|
||||
<ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
formats:T_WWA T_WWA T_WWA T_WWA
|
||||
varlist:<EventBeginTime> <EventEndTime> <PrevEventBeginTime> <PrevEventEndTime>
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
condition: ( <PrevCat> NE MISSING )
|
||||
indentstr:Observed flooding changed from <PrevCat> to <ObsCat> &
|
||||
severity (from <PrevCatName to <ObsCatName> for the &
|
||||
following <River> in <LocGeoArea>
|
||||
#
|
||||
condition: ( <PrevCat> NE MISSING )
|
||||
indentstr:Forecast flooding changed from <PrevCat> to <MaxFcstCat> &
|
||||
severity (from <PrevCatName> to <MaxFcstCatName>) for the following &
|
||||
<River> in <OfficeName>...
|
||||
#
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
phrasestr:(optional) general hydrometeorological synopsis
|
||||
phrasestr:
|
||||
#
|
||||
#
|
||||
name: fls_advisory_vtec
|
||||
action_begin: COR
|
||||
phrasestr:...The flood advisory is corrected for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CAN
|
||||
phrasestr:...The flood advisory is cancelled for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:EXP
|
||||
phrasestr:...The flood advisory has expired for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proiximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: EXT
|
||||
phrasestr:...The National Weather Service in <OfficeName> has extended &
|
||||
the flood advisory for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CON
|
||||
phrasestr:...The National Weather Service in <OfficeName> is continuing &
|
||||
the flood advisory for the <ActionRiverList>...
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:NEW
|
||||
phrasestr:...The National Weather Service in <OfficeName> has issued a flood &
|
||||
advisory for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
action_end:
|
||||
phrasestr:(optional) general hydrometeorological synopsis
|
||||
phrasestr:
|
||||
|
||||
#
|
||||
#
|
||||
name: fld_watch_vtec
|
||||
action_begin: COR
|
||||
phrasestr:...The flood watch is corrected for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CAN
|
||||
phrasestr:...The flood watch is cancelled for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:EXP
|
||||
phrasestr:...The flood watch has expired for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proiximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: EXT
|
||||
phrasestr:...The flood watch is extended for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CON
|
||||
phrasestr:...The flood watch continues for the following rivers &
|
||||
in <ActionStateList>...
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:NEW
|
||||
phrasestr:...The National Weather Service in <OfficeName> has issued a flood &
|
||||
watch for the following rivers <ActionRiverList> in &
|
||||
<ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
action_end:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
|
@ -1,248 +0,0 @@
|
|||
# HEADLINE SECTION TEMPLATES
|
||||
#
|
||||
name:flw_fls_nonsegment
|
||||
phrasestr: This product includes the following rivers: <RiverList>.
|
||||
phrasestr: This product applies to the : <GrpsFPList>.
|
||||
#
|
||||
#
|
||||
name: rvs
|
||||
phrasestr:The headline phrase for rvs
|
||||
#
|
||||
#
|
||||
name: default
|
||||
phrasestr: This product includes the following rivers: <RiverList>.
|
||||
phrasestr: This product applies to the : <GrpsFPList>.
|
||||
#
|
||||
#
|
||||
#headline sections for event based product such as
|
||||
#Flood Warning, Follow-up Flood Warning, Flood Watch for forecast point,
|
||||
#and Flood Advisory for forecast point.
|
||||
#
|
||||
name:flw_fls_vtec
|
||||
action_begin: COR
|
||||
phrasestr:...The flood warning is corrected for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CAN
|
||||
phrasestr:...The flood warning is cancelled for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:EXP
|
||||
phrasestr:...The flood warning has expired for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proiximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: EXT
|
||||
phrasestr:...The flood warning extended for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CON
|
||||
phrasestr:...The flood warning continues for the following rivers &
|
||||
in <ActionStateList>..
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:NEW
|
||||
phrasestr:...The National Weather Service in <OfficeName> has issued a flood &
|
||||
warning for the following rivers <ActionRiverList> in &
|
||||
<ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
formats:T_WWA T_WWA T_WWA T_WWA
|
||||
varlist:<EventBeginTime> <EventEndTime> <PrevEventBeginTime> <PrevEventEndTime>
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
condition: ( <PrevCat> NE MISSING )
|
||||
indentstr:Observed flooding changed from <PrevCat> to <ObsCat> &
|
||||
severity (from <PrevCatName to <ObsCatName> for the &
|
||||
following <River> in <LocGeoArea>
|
||||
#
|
||||
condition: ( <PrevCat> NE MISSING )
|
||||
indentstr:Forecast flooding changed from <PrevCat> to <MaxFcstCat> &
|
||||
severity (from <PrevCatName> to <MaxFcstCatName>) for the following &
|
||||
<River> in <OfficeName>...
|
||||
#
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
phrasestr:(optional) general hydrometeorological synopsis
|
||||
phrasestr:
|
||||
#
|
||||
#
|
||||
name: fls_advisory_vtec
|
||||
action_begin: COR
|
||||
phrasestr:...The flood advisory is corrected for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CAN
|
||||
phrasestr:...The flood advisory is cancelled for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:EXP
|
||||
phrasestr:...The flood advisory has expired for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proiximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: EXT
|
||||
phrasestr:...The National Weather Service in <OfficeName> has extended &
|
||||
the flood advisory for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CON
|
||||
phrasestr:...The National Weather Service in <OfficeName> is continuing &
|
||||
the flood advisory for the <ActionRiverList>...
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:NEW
|
||||
phrasestr:...The National Weather Service in <OfficeName> has issued a flood &
|
||||
advisory for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
action_end:
|
||||
phrasestr:(optional) general hydrometeorological synopsis
|
||||
phrasestr:
|
||||
|
||||
#
|
||||
#
|
||||
name: fld_watch_vtec
|
||||
action_begin: COR
|
||||
phrasestr:...The flood watch is corrected for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CAN
|
||||
phrasestr:...The flood watch is cancelled for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:EXP
|
||||
phrasestr:...The flood watch has expired for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proiximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: EXT
|
||||
phrasestr:...The flood watch is extended for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CON
|
||||
phrasestr:...The flood watch continues for the following rivers &
|
||||
in <ActionStateList>...
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:NEW
|
||||
phrasestr:...The National Weather Service in <OfficeName> has issued a flood &
|
||||
watch for the following rivers <ActionRiverList> in &
|
||||
<ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
action_end:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
|
@ -1,248 +0,0 @@
|
|||
# HEADLINE SECTION TEMPLATES
|
||||
#
|
||||
name:flw_fls_nonsegment
|
||||
phrasestr: This product includes the following rivers: <RiverList>.
|
||||
phrasestr: This product applies to the : <GrpsFPList>.
|
||||
#
|
||||
#
|
||||
name: rvs
|
||||
phrasestr:The headline phrase for rvs
|
||||
#
|
||||
#
|
||||
name: default
|
||||
phrasestr: This product includes the following rivers: <RiverList>.
|
||||
phrasestr: This product applies to the : <GrpsFPList>.
|
||||
#
|
||||
#
|
||||
#headline sections for event based product such as
|
||||
#Flood Warning, Follow-up Flood Warning, Flood Watch for forecast point,
|
||||
#and Flood Advisory for forecast point.
|
||||
#
|
||||
name:flw_fls_vtec
|
||||
action_begin: COR
|
||||
phrasestr:...The flood warning is corrected for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CAN
|
||||
phrasestr:...The flood warning is cancelled for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:EXP
|
||||
phrasestr:...The flood warning has expired for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proiximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: EXT
|
||||
phrasestr:...The flood warning extended for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CON
|
||||
phrasestr:...The flood warning continues for the following rivers &
|
||||
in <ActionStateList>..
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:NEW
|
||||
phrasestr:...The National Weather Service in <OfficeName> has issued a flood &
|
||||
warning for the following rivers <ActionRiverList> in &
|
||||
<ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
formats:T_WWA T_WWA T_WWA T_WWA
|
||||
varlist:<EventBeginTime> <EventEndTime> <PrevEventBeginTime> <PrevEventEndTime>
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
condition: ( <PrevCat> NE MISSING )
|
||||
indentstr:Observed flooding changed from <PrevCat> to <ObsCat> &
|
||||
severity (from <PrevCatName to <ObsCatName> for the &
|
||||
following <River> in <LocGeoArea>
|
||||
#
|
||||
condition: ( <PrevCat> NE MISSING )
|
||||
indentstr:Forecast flooding changed from <PrevCat> to <MaxFcstCat> &
|
||||
severity (from <PrevCatName> to <MaxFcstCatName>) for the following &
|
||||
<River> in <OfficeName>...
|
||||
#
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
phrasestr:(optional) general hydrometeorological synopsis
|
||||
phrasestr:
|
||||
#
|
||||
#
|
||||
name: fls_advisory_vtec
|
||||
action_begin: COR
|
||||
phrasestr:...The flood advisory is corrected for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CAN
|
||||
phrasestr:...The flood advisory is cancelled for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:EXP
|
||||
phrasestr:...The flood advisory has expired for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proiximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: EXT
|
||||
phrasestr:...The National Weather Service in <OfficeName> has extended &
|
||||
the flood advisory for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CON
|
||||
phrasestr:...The National Weather Service in <OfficeName> is continuing &
|
||||
the flood advisory for the <ActionRiverList>...
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:NEW
|
||||
phrasestr:...The National Weather Service in <OfficeName> has issued a flood &
|
||||
advisory for the <ActionRiverList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
action_end:
|
||||
phrasestr:(optional) general hydrometeorological synopsis
|
||||
phrasestr:
|
||||
|
||||
#
|
||||
#
|
||||
name: fld_watch_vtec
|
||||
action_begin: COR
|
||||
phrasestr:...The flood watch is corrected for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CAN
|
||||
phrasestr:...The flood watch is cancelled for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:EXP
|
||||
phrasestr:...The flood watch has expired for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proiximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: EXT
|
||||
phrasestr:...The flood watch is extended for the following rivers &
|
||||
in <ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr:<River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin: CON
|
||||
phrasestr:...The flood watch continues for the following rivers &
|
||||
in <ActionStateList>...
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
||||
action_end:
|
||||
#
|
||||
action_begin:NEW
|
||||
phrasestr:...The National Weather Service in <OfficeName> has issued a flood &
|
||||
watch for the following rivers <ActionRiverList> in &
|
||||
<ActionStateList>...
|
||||
phrasestr:
|
||||
event_begin:
|
||||
indentstr: <River> <Proximity> <IdName> AFFECTING <LocCntyList>
|
||||
event_end:
|
||||
phrasestr:
|
||||
action_end:
|
||||
phrasestr:(optional) AFFECTING the following <ActionStateCntyList>
|
||||
phrasestr:
|
|
@ -1,11 +0,0 @@
|
|||
# IMPACT SUBSECTION TEMPLATES
|
||||
#-----------------------------
|
||||
name: default
|
||||
phrasestr:At <ImpactStg> feet, <ImpactDescr>.
|
||||
#
|
||||
name: refstage
|
||||
phrasestr:At stages near <ImpactRefStg> feet, <ImpactDescr>.
|
||||
#
|
||||
name: test
|
||||
phrasestr:Reference stage= <ImpactRefType>, <ImpactRefStg>; &
|
||||
Impact= <ImpactStg> <ImpactDescr>...
|
|
@ -1,11 +0,0 @@
|
|||
# IMPACT SUBSECTION TEMPLATES
|
||||
#-----------------------------
|
||||
name: default
|
||||
phrasestr:At <ImpactStg> feet, <ImpactDescr>.
|
||||
#
|
||||
name: refstage
|
||||
phrasestr:At stages near <ImpactRefStg> feet, <ImpactDescr>.
|
||||
#
|
||||
name: test
|
||||
phrasestr:Reference stage= <ImpactRefType>, <ImpactRefStg>; &
|
||||
Impact= <ImpactStg> <ImpactDescr>...
|
|
@ -1,11 +0,0 @@
|
|||
# IMPACT SUBSECTION TEMPLATES
|
||||
#-----------------------------
|
||||
name: default
|
||||
phrasestr:At <ImpactStg> feet, <ImpactDescr>.
|
||||
#
|
||||
name: refstage
|
||||
phrasestr:At stages near <ImpactRefStg> feet, <ImpactDescr>.
|
||||
#
|
||||
name: test
|
||||
phrasestr:Reference stage= <ImpactRefType>, <ImpactRefStg>; &
|
||||
Impact= <ImpactStg> <ImpactDescr>...
|
|
@ -1,437 +0,0 @@
|
|||
# ROUNDUP SUBSECTION TEMPLATES
|
||||
# ----------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
name: rvs_default
|
||||
formats: T_HHW T_HHW
|
||||
varlist: <ObsTime> <MaxFcstTime>
|
||||
condition: ( <NumObsStg> GT 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, the latest stage is <ObsStg> feet at <ObsTime>.
|
||||
condition: ( <NumObsStg> EQ 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, no observed stage is available.
|
||||
varlist: <ObsStg,+3.0>
|
||||
formats: F6.3
|
||||
condition: ( <ObsStg,+0.3> GT 3.0 )
|
||||
phrasestr:The current observed stage plus 3.0 is <ObsStg,+3.0>, which is greater than 3.0
|
||||
condition: ( <SPGM3,HG,0,RP,Z,LATEST,MATH+5.0> GT 5.0 )
|
||||
phrasestr:The latest observed stage with dur 0, ts RP, extreme Z, plus 5.0 is <SPGM3,HG,0,RP,Z,LATEST,MATH+5.0>, which is greater than 5.0
|
||||
#
|
||||
name: default
|
||||
formats: T_HHW T_HHW T_HHW T_HHW T_HHW T_HHW T_HHW
|
||||
varlist: <ObsTime> <MaxFcstTime> <ObsRiseFSTime> <ObsFallFSTime> &
|
||||
<FcstRiseFSTime> <FcstFallFSTime> <FcstCrestTime>
|
||||
condition: ( <ObsCat> EQ 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, the latest stage is &
|
||||
<ObsStg> feet at <ObsTime>.
|
||||
condition: ( <ObsCat> GT 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, <ObsCatName> flooding &
|
||||
is occuring, with a stage of <ObsStg> feet measured at <ObsTime>.
|
||||
condition: ( <NumObsStg> EQ 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, no observed stage is available.
|
||||
#
|
||||
condition: ( <MaxFcstCat> EQ 0 )
|
||||
phrasestr:No flooding is forecasted.
|
||||
condition: ( ( <NumObsStg> EQ 0 ) AND ( <MaxFcstStg> NE MISSING ) )
|
||||
phrasestr:The maximum stage forecasted is <MaxFcstStg> at<MaxFcstTime>.
|
||||
condition: ( ( <MaxFcstCat> GT 0 ) AND ( <MaxFcstStg> GT <ObsStg> ) AND &
|
||||
( <FcstFSDeparture> GT 0 ) )
|
||||
phrasestr:<MaxFcstCatName> flooding is forecast, with a maximum stage of &
|
||||
<MaxFcstStg> feet at <MaxFcstTime>, which is <FcstFSDeparture> feet above &
|
||||
flood stage.
|
||||
condition: ( ( <MaxFcstCat> GT 0 ) AND ( <MaxFcstStg> GT <ObsStg> ) AND &
|
||||
( <FcstFSDeparture> EQ 0 ) )
|
||||
phrasestr:<MaxFcstCatName> flooding is forecasted, with a maximum stage of &
|
||||
<MaxFcstStg> feet at <MaxFcstTime>, which is equal to the flood stage.
|
||||
condition: ( ( <MaxFcstCat> GT 0 ) AND ( <MaxFcstStg> GT <ObsStg> ) AND &
|
||||
( <FcstFSDeparture> LT 0 ) )
|
||||
phrasestr:<MaxFcstCatName> flooding is forecasted, with a maximum stage of &
|
||||
<MaxFcstStg> feet at <MaxFcstTime>.
|
||||
#
|
||||
condition: ( <ObsRiseFSTime> NE MISSING )
|
||||
phrasestr: The stage exceeded the flood stage of <FldStg> feet at <ObsRiseFSTime>.
|
||||
#condition: ( <ObsFallFSTime> NE MISSING )
|
||||
#phrasestr:The stage fell below the flood stage of <FldStg> feet at <ObsFallFSTime>.
|
||||
condition: ( <FcstRiseFSTime> NE MISSING )
|
||||
phrasestr:The stage will rise above the flood stage of <FldStg> feet &
|
||||
at <FcstRiseFSTime>.
|
||||
condition: ( <FcstFallFSTime> NE MISSING )
|
||||
phrasestr:The stage will fall below flood stage at <FcstFallFSTime>.
|
||||
#
|
||||
#condition: ( <FcstCrestStg> GT <FldStg> )
|
||||
#phrasestr: The stage will crest around <FcstCrestStg> feet at <FcstCrestTime>.
|
||||
condition: TRUE
|
||||
phrasestr:<FcstTrend>.
|
||||
#
|
||||
#
|
||||
#
|
||||
name: teste19
|
||||
#name: bigtest
|
||||
# TEMPLATE TO TEST E19 DATA RETRIEVAL W/O IMPACT OR CREST STUFF
|
||||
condition: TRUE
|
||||
phrasestr:Dump of data for Id, IdName = <Id> <IdName>...
|
||||
condition: TRUE
|
||||
phrasestr:River = <River>...Proximity = <Proximity>...
|
||||
condition: TRUE
|
||||
phrasestr:County = <County>...
|
||||
condition: TRUE
|
||||
phrasestr:Reach = <Reach>...
|
||||
condition: TRUE
|
||||
phrasestr:FldStg = <FldStg>...Bankfull = <BankStg>...Warning Stage = <WStg>...
|
||||
condition: TRUE
|
||||
phrasestr:CatVals= <MinCatVal> <ModCatVal> <MajCatVal> <RecCatVal>...
|
||||
#
|
||||
#
|
||||
#
|
||||
name: teststage
|
||||
# TEMPLATE TO TEST THE STAGE DATA RETRIEVAL
|
||||
formats: T_HHW T_HHW
|
||||
varlist: <ObsTime> <MaxFcstTime>
|
||||
condition: TRUE
|
||||
phrasestr:IdName = <IdName>...
|
||||
condition: TRUE
|
||||
phrasestr:Numobs, fcst stage = <NumObsStg> <NumFcstStg>
|
||||
condition: TRUE
|
||||
phrasestr:ObsStage, Cat#, Name, Time = <ObsStg> <ObsCat> <ObsCatName> &
|
||||
<ObsTime>...
|
||||
condition: TRUE
|
||||
phrasestr:MaxFcstStg, Cat#, Name, Time = <MaxFcstStg> <MaxFcstCat> &
|
||||
<MaxFcstCatName> <MaxFcstTime>...
|
||||
condition: TRUE
|
||||
phrasestr:OMFVal, Cat#, Name = <OMFVal> <OMFCat> <OMFMaxCatName>...
|
||||
condition: TRUE
|
||||
phrasestr:MaxObsStg24, 06 = <MaxObsStg24> <MaxObsStg06>...
|
||||
condition: TRUE
|
||||
phrasestr: ObsRise, Fall FSTime = <ObsRiseFSTime> <ObsFallFSTime>...
|
||||
condition: TRUE
|
||||
phrasestr: FcstRise, Fall FSTime = <FcstRiseFSTime> <FcstFallFSTime>...
|
||||
condition: TRUE
|
||||
phrasestr: Obs Crest Stg,Time = <ObsCrestStg> <ObsCrestTime>...
|
||||
condition: TRUE
|
||||
phrasestr: Fcst Crest Stg,Time = <FcstCrestStg> <FcstCrestTime>...
|
||||
condition: TRUE
|
||||
phrasestr: ObsA/FcstA FS Depart = <ObsFSDepartureA> <FcstFSDepartureA>...
|
||||
condition: TRUE
|
||||
phrasestr: Metric = <WOOR1,TA,0,RZ,Z,LATEST,MET>
|
||||
condition: TRUE
|
||||
phrasestr: English = <WOOR1,TA,0,RZ,Z,LATEST>
|
||||
#
|
||||
name: testtime
|
||||
# TEMPLATE TO TEST THE TIME FORMATSTAGE DATA RETRIEVAL
|
||||
formats: T_AWH T_AWH
|
||||
varlist: <ObsTime> <MaxFcstTime>
|
||||
condition: TRUE
|
||||
phrasestr:IdName = <IdName>...
|
||||
condition: TRUE
|
||||
phrasestr:Obs Stage/CatName/Time = <ObsStg> <ObsCatName> <ObsTime>...
|
||||
condition: TRUE
|
||||
phrasestr:MaxFcst Stg/CatName/Time = <MaxFcstStg> <MaxFcstCatName> &
|
||||
<MaxFcstTime>...
|
||||
#ROUNDUP SUBSECTION TEMPLATES - Event based product such as
|
||||
#Flood Warning, Follow-up Flood Warning, Flood Watch for forecast point,
|
||||
#and Flood Advisory for forecast point.
|
||||
#
|
||||
name: flw_fls_vtec
|
||||
formats:T_WWA T_WWA T_HHW T_HHW T_HHW T_HHW T_HHW
|
||||
varlist:<EventBeginTime> <EventEndTime> <ObsTime> <FcstRiseFSTime> &
|
||||
<MaxFcstTime> <FcstFallFSTime>
|
||||
condition: TRUE
|
||||
phrasestr:(optional)...Headline
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
###for new event
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr:THE NATIONAL WEATHER SERVICE IN <OfficeName> HAS ISSUED A
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD WARNING FOR
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FROM <EventBeginTime> until <EventEndTime>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FORECAST...FLOOD STAGE WILL BE REACHED AT <FcstRiseFSTime>. &
|
||||
MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>. FLOOD &
|
||||
STAGE WILL FALL BELOW FLOOD STAGE AT <FcstFallFSTime>.
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for cancelled event
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr:THE FLOOD WARNING IS CANCELLED FOR
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: FELL BELOW FLOOD STAGE AT <ObsFallFSTime>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for continued event
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr:THE FLOOD WARNING CONTINUES FOR
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for extended event
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr:THE FLOOD WARNING CONTINUES FOR
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for expired event
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr:THE FLOOD WARNING HAS EXPIRED FOR
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: FELL BELOW FLOOD STAGE AT <ObsFallFSTime>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
name: ffa_vtec
|
||||
formats:T_WWA T_WWA T_HHW T_HHW T_HHW T_HHW T_HHW
|
||||
varlist:<EventBeginTime> <EventEndTime> <ObsTime> <FcstRiseFSTime> &
|
||||
<MaxFcstTime> <FcstFallFSTime>
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
###for new event
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: (optional...Headline...)
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr:THE NATIONAL WEATHER SERVICE IN <OfficeName> HAS ISSUED A
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD WATCH FOR
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FROM <EventBeginTime> until <EventEndTime>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FORECAST...FLOOD STAGE WILL BE REACHED AT <FcstRiseFSTime>. &
|
||||
MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>. FLOOD &
|
||||
STAGE WILL FALL BELOW FLOOD STAGE AT <FcstFallFSTime>.
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for cancelled event
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr:THE FLOOD WATCH IS CANCELLED FOR
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for continued event
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr:THE FLOOD WATCH CONTINUES FOR
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for extended event
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr:THE FLOOD WATCH IS EXTENDED FOR
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for expired event
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr:THE FLOOD WATCH HAS EXPIRED FOR
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#
|
||||
name: fls_advisory_vtec
|
||||
formats:T_WWA T_WWA T_HHW T_HHW T_HHW T_HHW T_HHW
|
||||
varlist:<EventBeginTime> <EventEndTime> <ObsTime> <FcstRiseFSTime> &
|
||||
<MaxFcstTime> <FcstFallFSTime>
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
###for new event
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: (optional...Headline...)
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr:THE NATIONAL WEATHER SERVICE IN <OfficeName> HAS ISSUED A
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD ADVISORY FOR
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FROM <EventBeginTime> until <EventEndTime>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FORECAST...FLOOD STAGE WILL BE REACHED AT <FcstRiseFSTime>. &
|
||||
MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>. FLOOD &
|
||||
STAGE WILL FALL BELOW FLOOD STAGE AT <FcstFallFSTime>.
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for cancelled event
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr:THE FLOOD ADVISORY IS CANCELLED FOR
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for continued event
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr:THE FLOOD ADVISORY CONTINUES FOR
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for extended event
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr:THE FLOOD ADVISORY IS EXTENDED FOR
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for expired event
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr:THE FLOOD ADVISORY HAS EXPIRED FOR
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
|
@ -1,437 +0,0 @@
|
|||
# ROUNDUP SUBSECTION TEMPLATES
|
||||
# ----------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
name: rvs_default
|
||||
formats: T_HHW T_HHW
|
||||
varlist: <ObsTime> <MaxFcstTime>
|
||||
condition: ( <NumObsStg> GT 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, the latest stage is <ObsStg> feet at <ObsTime>.
|
||||
condition: ( <NumObsStg> EQ 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, no observed stage is available.
|
||||
varlist: <ObsStg,+3.0>
|
||||
formats: F6.3
|
||||
condition: ( <ObsStg,+0.3> GT 3.0 )
|
||||
phrasestr:The current observed stage plus 3.0 is <ObsStg,+3.0>, which is greater than 3.0
|
||||
condition: ( <SPGM3,HG,0,RP,Z,LATEST,MATH+5.0> GT 5.0 )
|
||||
phrasestr:The latest observed stage with dur 0, ts RP, extreme Z, plus 5.0 is <SPGM3,HG,0,RP,Z,LATEST,MATH+5.0>, which is greater than 5.0
|
||||
#
|
||||
name: default
|
||||
formats: T_HHW T_HHW T_HHW T_HHW T_HHW T_HHW T_HHW
|
||||
varlist: <ObsTime> <MaxFcstTime> <ObsRiseFSTime> <ObsFallFSTime> &
|
||||
<FcstRiseFSTime> <FcstFallFSTime> <FcstCrestTime>
|
||||
condition: ( <ObsCat> EQ 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, the latest stage is &
|
||||
<ObsStg> feet at <ObsTime>.
|
||||
condition: ( <ObsCat> GT 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, <ObsCatName> flooding &
|
||||
is occuring, with a stage of <ObsStg> feet measured at <ObsTime>.
|
||||
condition: ( <NumObsStg> EQ 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, no observed stage is available.
|
||||
#
|
||||
condition: ( <MaxFcstCat> EQ 0 )
|
||||
phrasestr:No flooding is forecasted.
|
||||
condition: ( ( <NumObsStg> EQ 0 ) AND ( <MaxFcstStg> NE MISSING ) )
|
||||
phrasestr:The maximum stage forecasted is <MaxFcstStg> at<MaxFcstTime>.
|
||||
condition: ( ( <MaxFcstCat> GT 0 ) AND ( <MaxFcstStg> GT <ObsStg> ) AND &
|
||||
( <FcstFSDeparture> GT 0 ) )
|
||||
phrasestr:<MaxFcstCatName> flooding is forecast, with a maximum stage of &
|
||||
<MaxFcstStg> feet at <MaxFcstTime>, which is <FcstFSDeparture> feet above &
|
||||
flood stage.
|
||||
condition: ( ( <MaxFcstCat> GT 0 ) AND ( <MaxFcstStg> GT <ObsStg> ) AND &
|
||||
( <FcstFSDeparture> EQ 0 ) )
|
||||
phrasestr:<MaxFcstCatName> flooding is forecasted, with a maximum stage of &
|
||||
<MaxFcstStg> feet at <MaxFcstTime>, which is equal to the flood stage.
|
||||
condition: ( ( <MaxFcstCat> GT 0 ) AND ( <MaxFcstStg> GT <ObsStg> ) AND &
|
||||
( <FcstFSDeparture> LT 0 ) )
|
||||
phrasestr:<MaxFcstCatName> flooding is forecasted, with a maximum stage of &
|
||||
<MaxFcstStg> feet at <MaxFcstTime>.
|
||||
#
|
||||
condition: ( <ObsRiseFSTime> NE MISSING )
|
||||
phrasestr: The stage exceeded the flood stage of <FldStg> feet at <ObsRiseFSTime>.
|
||||
#condition: ( <ObsFallFSTime> NE MISSING )
|
||||
#phrasestr:The stage fell below the flood stage of <FldStg> feet at <ObsFallFSTime>.
|
||||
condition: ( <FcstRiseFSTime> NE MISSING )
|
||||
phrasestr:The stage will rise above the flood stage of <FldStg> feet &
|
||||
at <FcstRiseFSTime>.
|
||||
condition: ( <FcstFallFSTime> NE MISSING )
|
||||
phrasestr:The stage will fall below flood stage at <FcstFallFSTime>.
|
||||
#
|
||||
#condition: ( <FcstCrestStg> GT <FldStg> )
|
||||
#phrasestr: The stage will crest around <FcstCrestStg> feet at <FcstCrestTime>.
|
||||
condition: TRUE
|
||||
phrasestr:<FcstTrend>.
|
||||
#
|
||||
#
|
||||
#
|
||||
name: teste19
|
||||
#name: bigtest
|
||||
# TEMPLATE TO TEST E19 DATA RETRIEVAL W/O IMPACT OR CREST STUFF
|
||||
condition: TRUE
|
||||
phrasestr:Dump of data for Id, IdName = <Id> <IdName>...
|
||||
condition: TRUE
|
||||
phrasestr:River = <River>...Proximity = <Proximity>...
|
||||
condition: TRUE
|
||||
phrasestr:County = <County>...
|
||||
condition: TRUE
|
||||
phrasestr:Reach = <Reach>...
|
||||
condition: TRUE
|
||||
phrasestr:FldStg = <FldStg>...Bankfull = <BankStg>...Warning Stage = <WStg>...
|
||||
condition: TRUE
|
||||
phrasestr:CatVals= <MinCatVal> <ModCatVal> <MajCatVal> <RecCatVal>...
|
||||
#
|
||||
#
|
||||
#
|
||||
name: teststage
|
||||
# TEMPLATE TO TEST THE STAGE DATA RETRIEVAL
|
||||
formats: T_HHW T_HHW
|
||||
varlist: <ObsTime> <MaxFcstTime>
|
||||
condition: TRUE
|
||||
phrasestr:IdName = <IdName>...
|
||||
condition: TRUE
|
||||
phrasestr:Numobs, fcst stage = <NumObsStg> <NumFcstStg>
|
||||
condition: TRUE
|
||||
phrasestr:ObsStage, Cat#, Name, Time = <ObsStg> <ObsCat> <ObsCatName> &
|
||||
<ObsTime>...
|
||||
condition: TRUE
|
||||
phrasestr:MaxFcstStg, Cat#, Name, Time = <MaxFcstStg> <MaxFcstCat> &
|
||||
<MaxFcstCatName> <MaxFcstTime>...
|
||||
condition: TRUE
|
||||
phrasestr:OMFVal, Cat#, Name = <OMFVal> <OMFCat> <OMFMaxCatName>...
|
||||
condition: TRUE
|
||||
phrasestr:MaxObsStg24, 06 = <MaxObsStg24> <MaxObsStg06>...
|
||||
condition: TRUE
|
||||
phrasestr: ObsRise, Fall FSTime = <ObsRiseFSTime> <ObsFallFSTime>...
|
||||
condition: TRUE
|
||||
phrasestr: FcstRise, Fall FSTime = <FcstRiseFSTime> <FcstFallFSTime>...
|
||||
condition: TRUE
|
||||
phrasestr: Obs Crest Stg,Time = <ObsCrestStg> <ObsCrestTime>...
|
||||
condition: TRUE
|
||||
phrasestr: Fcst Crest Stg,Time = <FcstCrestStg> <FcstCrestTime>...
|
||||
condition: TRUE
|
||||
phrasestr: ObsA/FcstA FS Depart = <ObsFSDepartureA> <FcstFSDepartureA>...
|
||||
condition: TRUE
|
||||
phrasestr: Metric = <WOOR1,TA,0,RZ,Z,LATEST,MET>
|
||||
condition: TRUE
|
||||
phrasestr: English = <WOOR1,TA,0,RZ,Z,LATEST>
|
||||
#
|
||||
name: testtime
|
||||
# TEMPLATE TO TEST THE TIME FORMATSTAGE DATA RETRIEVAL
|
||||
formats: T_AWH T_AWH
|
||||
varlist: <ObsTime> <MaxFcstTime>
|
||||
condition: TRUE
|
||||
phrasestr:IdName = <IdName>...
|
||||
condition: TRUE
|
||||
phrasestr:Obs Stage/CatName/Time = <ObsStg> <ObsCatName> <ObsTime>...
|
||||
condition: TRUE
|
||||
phrasestr:MaxFcst Stg/CatName/Time = <MaxFcstStg> <MaxFcstCatName> &
|
||||
<MaxFcstTime>...
|
||||
#ROUNDUP SUBSECTION TEMPLATES - Event based product such as
|
||||
#Flood Warning, Follow-up Flood Warning, Flood Watch for forecast point,
|
||||
#and Flood Advisory for forecast point.
|
||||
#
|
||||
name: flw_fls_vtec
|
||||
formats:T_WWA T_WWA T_HHW T_HHW T_HHW T_HHW T_HHW
|
||||
varlist:<EventBeginTime> <EventEndTime> <ObsTime> <FcstRiseFSTime> &
|
||||
<MaxFcstTime> <FcstFallFSTime>
|
||||
condition: TRUE
|
||||
phrasestr:(optional)...Headline
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
###for new event
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr:THE NATIONAL WEATHER SERVICE IN <OfficeName> HAS ISSUED A
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD WARNING FOR
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FROM <EventBeginTime> until <EventEndTime>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FORECAST...FLOOD STAGE WILL BE REACHED AT <FcstRiseFSTime>. &
|
||||
MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>. FLOOD &
|
||||
STAGE WILL FALL BELOW FLOOD STAGE AT <FcstFallFSTime>.
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for cancelled event
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr:THE FLOOD WARNING IS CANCELLED FOR
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: FELL BELOW FLOOD STAGE AT <ObsFallFSTime>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for continued event
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr:THE FLOOD WARNING CONTINUES FOR
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for extended event
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr:THE FLOOD WARNING CONTINUES FOR
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for expired event
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr:THE FLOOD WARNING HAS EXPIRED FOR
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: FELL BELOW FLOOD STAGE AT <ObsFallFSTime>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
name: ffa_vtec
|
||||
formats:T_WWA T_WWA T_HHW T_HHW T_HHW T_HHW T_HHW
|
||||
varlist:<EventBeginTime> <EventEndTime> <ObsTime> <FcstRiseFSTime> &
|
||||
<MaxFcstTime> <FcstFallFSTime>
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
###for new event
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: (optional...Headline...)
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr:THE NATIONAL WEATHER SERVICE IN <OfficeName> HAS ISSUED A
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD WATCH FOR
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FROM <EventBeginTime> until <EventEndTime>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FORECAST...FLOOD STAGE WILL BE REACHED AT <FcstRiseFSTime>. &
|
||||
MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>. FLOOD &
|
||||
STAGE WILL FALL BELOW FLOOD STAGE AT <FcstFallFSTime>.
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for cancelled event
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr:THE FLOOD WATCH IS CANCELLED FOR
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for continued event
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr:THE FLOOD WATCH CONTINUES FOR
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for extended event
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr:THE FLOOD WATCH IS EXTENDED FOR
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for expired event
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr:THE FLOOD WATCH HAS EXPIRED FOR
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#
|
||||
name: fls_advisory_vtec
|
||||
formats:T_WWA T_WWA T_HHW T_HHW T_HHW T_HHW T_HHW
|
||||
varlist:<EventBeginTime> <EventEndTime> <ObsTime> <FcstRiseFSTime> &
|
||||
<MaxFcstTime> <FcstFallFSTime>
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
###for new event
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: (optional...Headline...)
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr:THE NATIONAL WEATHER SERVICE IN <OfficeName> HAS ISSUED A
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD ADVISORY FOR
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FROM <EventBeginTime> until <EventEndTime>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FORECAST...FLOOD STAGE WILL BE REACHED AT <FcstRiseFSTime>. &
|
||||
MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>. FLOOD &
|
||||
STAGE WILL FALL BELOW FLOOD STAGE AT <FcstFallFSTime>.
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for cancelled event
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr:THE FLOOD ADVISORY IS CANCELLED FOR
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for continued event
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr:THE FLOOD ADVISORY CONTINUES FOR
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for extended event
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr:THE FLOOD ADVISORY IS EXTENDED FOR
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for expired event
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr:THE FLOOD ADVISORY HAS EXPIRED FOR
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
|
@ -1,437 +0,0 @@
|
|||
# ROUNDUP SUBSECTION TEMPLATES
|
||||
# ----------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
name: rvs_default
|
||||
formats: T_HHW T_HHW
|
||||
varlist: <ObsTime> <MaxFcstTime>
|
||||
condition: ( <NumObsStg> GT 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, the latest stage is <ObsStg> feet at <ObsTime>.
|
||||
condition: ( <NumObsStg> EQ 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, no observed stage is available.
|
||||
varlist: <ObsStg,+3.0>
|
||||
formats: F6.3
|
||||
condition: ( <ObsStg,+0.3> GT 3.0 )
|
||||
phrasestr:The current observed stage plus 3.0 is <ObsStg,+3.0>, which is greater than 3.0
|
||||
condition: ( <SPGM3,HG,0,RP,Z,LATEST,MATH+5.0> GT 5.0 )
|
||||
phrasestr:The latest observed stage with dur 0, ts RP, extreme Z, plus 5.0 is <SPGM3,HG,0,RP,Z,LATEST,MATH+5.0>, which is greater than 5.0
|
||||
#
|
||||
name: default
|
||||
formats: T_HHW T_HHW T_HHW T_HHW T_HHW T_HHW T_HHW
|
||||
varlist: <ObsTime> <MaxFcstTime> <ObsRiseFSTime> <ObsFallFSTime> &
|
||||
<FcstRiseFSTime> <FcstFallFSTime> <FcstCrestTime>
|
||||
condition: ( <ObsCat> EQ 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, the latest stage is &
|
||||
<ObsStg> feet at <ObsTime>.
|
||||
condition: ( <ObsCat> GT 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, <ObsCatName> flooding &
|
||||
is occuring, with a stage of <ObsStg> feet measured at <ObsTime>.
|
||||
condition: ( <NumObsStg> EQ 0 )
|
||||
phrasestr:For the <River> <Proximity> <IdName>, no observed stage is available.
|
||||
#
|
||||
condition: ( <MaxFcstCat> EQ 0 )
|
||||
phrasestr:No flooding is forecasted.
|
||||
condition: ( ( <NumObsStg> EQ 0 ) AND ( <MaxFcstStg> NE MISSING ) )
|
||||
phrasestr:The maximum stage forecasted is <MaxFcstStg> at<MaxFcstTime>.
|
||||
condition: ( ( <MaxFcstCat> GT 0 ) AND ( <MaxFcstStg> GT <ObsStg> ) AND &
|
||||
( <FcstFSDeparture> GT 0 ) )
|
||||
phrasestr:<MaxFcstCatName> flooding is forecast, with a maximum stage of &
|
||||
<MaxFcstStg> feet at <MaxFcstTime>, which is <FcstFSDeparture> feet above &
|
||||
flood stage.
|
||||
condition: ( ( <MaxFcstCat> GT 0 ) AND ( <MaxFcstStg> GT <ObsStg> ) AND &
|
||||
( <FcstFSDeparture> EQ 0 ) )
|
||||
phrasestr:<MaxFcstCatName> flooding is forecasted, with a maximum stage of &
|
||||
<MaxFcstStg> feet at <MaxFcstTime>, which is equal to the flood stage.
|
||||
condition: ( ( <MaxFcstCat> GT 0 ) AND ( <MaxFcstStg> GT <ObsStg> ) AND &
|
||||
( <FcstFSDeparture> LT 0 ) )
|
||||
phrasestr:<MaxFcstCatName> flooding is forecasted, with a maximum stage of &
|
||||
<MaxFcstStg> feet at <MaxFcstTime>.
|
||||
#
|
||||
condition: ( <ObsRiseFSTime> NE MISSING )
|
||||
phrasestr: The stage exceeded the flood stage of <FldStg> feet at <ObsRiseFSTime>.
|
||||
#condition: ( <ObsFallFSTime> NE MISSING )
|
||||
#phrasestr:The stage fell below the flood stage of <FldStg> feet at <ObsFallFSTime>.
|
||||
condition: ( <FcstRiseFSTime> NE MISSING )
|
||||
phrasestr:The stage will rise above the flood stage of <FldStg> feet &
|
||||
at <FcstRiseFSTime>.
|
||||
condition: ( <FcstFallFSTime> NE MISSING )
|
||||
phrasestr:The stage will fall below flood stage at <FcstFallFSTime>.
|
||||
#
|
||||
#condition: ( <FcstCrestStg> GT <FldStg> )
|
||||
#phrasestr: The stage will crest around <FcstCrestStg> feet at <FcstCrestTime>.
|
||||
condition: TRUE
|
||||
phrasestr:<FcstTrend>.
|
||||
#
|
||||
#
|
||||
#
|
||||
name: teste19
|
||||
#name: bigtest
|
||||
# TEMPLATE TO TEST E19 DATA RETRIEVAL W/O IMPACT OR CREST STUFF
|
||||
condition: TRUE
|
||||
phrasestr:Dump of data for Id, IdName = <Id> <IdName>...
|
||||
condition: TRUE
|
||||
phrasestr:River = <River>...Proximity = <Proximity>...
|
||||
condition: TRUE
|
||||
phrasestr:County = <County>...
|
||||
condition: TRUE
|
||||
phrasestr:Reach = <Reach>...
|
||||
condition: TRUE
|
||||
phrasestr:FldStg = <FldStg>...Bankfull = <BankStg>...Warning Stage = <WStg>...
|
||||
condition: TRUE
|
||||
phrasestr:CatVals= <MinCatVal> <ModCatVal> <MajCatVal> <RecCatVal>...
|
||||
#
|
||||
#
|
||||
#
|
||||
name: teststage
|
||||
# TEMPLATE TO TEST THE STAGE DATA RETRIEVAL
|
||||
formats: T_HHW T_HHW
|
||||
varlist: <ObsTime> <MaxFcstTime>
|
||||
condition: TRUE
|
||||
phrasestr:IdName = <IdName>...
|
||||
condition: TRUE
|
||||
phrasestr:Numobs, fcst stage = <NumObsStg> <NumFcstStg>
|
||||
condition: TRUE
|
||||
phrasestr:ObsStage, Cat#, Name, Time = <ObsStg> <ObsCat> <ObsCatName> &
|
||||
<ObsTime>...
|
||||
condition: TRUE
|
||||
phrasestr:MaxFcstStg, Cat#, Name, Time = <MaxFcstStg> <MaxFcstCat> &
|
||||
<MaxFcstCatName> <MaxFcstTime>...
|
||||
condition: TRUE
|
||||
phrasestr:OMFVal, Cat#, Name = <OMFVal> <OMFCat> <OMFMaxCatName>...
|
||||
condition: TRUE
|
||||
phrasestr:MaxObsStg24, 06 = <MaxObsStg24> <MaxObsStg06>...
|
||||
condition: TRUE
|
||||
phrasestr: ObsRise, Fall FSTime = <ObsRiseFSTime> <ObsFallFSTime>...
|
||||
condition: TRUE
|
||||
phrasestr: FcstRise, Fall FSTime = <FcstRiseFSTime> <FcstFallFSTime>...
|
||||
condition: TRUE
|
||||
phrasestr: Obs Crest Stg,Time = <ObsCrestStg> <ObsCrestTime>...
|
||||
condition: TRUE
|
||||
phrasestr: Fcst Crest Stg,Time = <FcstCrestStg> <FcstCrestTime>...
|
||||
condition: TRUE
|
||||
phrasestr: ObsA/FcstA FS Depart = <ObsFSDepartureA> <FcstFSDepartureA>...
|
||||
condition: TRUE
|
||||
phrasestr: Metric = <WOOR1,TA,0,RZ,Z,LATEST,MET>
|
||||
condition: TRUE
|
||||
phrasestr: English = <WOOR1,TA,0,RZ,Z,LATEST>
|
||||
#
|
||||
name: testtime
|
||||
# TEMPLATE TO TEST THE TIME FORMATSTAGE DATA RETRIEVAL
|
||||
formats: T_AWH T_AWH
|
||||
varlist: <ObsTime> <MaxFcstTime>
|
||||
condition: TRUE
|
||||
phrasestr:IdName = <IdName>...
|
||||
condition: TRUE
|
||||
phrasestr:Obs Stage/CatName/Time = <ObsStg> <ObsCatName> <ObsTime>...
|
||||
condition: TRUE
|
||||
phrasestr:MaxFcst Stg/CatName/Time = <MaxFcstStg> <MaxFcstCatName> &
|
||||
<MaxFcstTime>...
|
||||
#ROUNDUP SUBSECTION TEMPLATES - Event based product such as
|
||||
#Flood Warning, Follow-up Flood Warning, Flood Watch for forecast point,
|
||||
#and Flood Advisory for forecast point.
|
||||
#
|
||||
name: flw_fls_vtec
|
||||
formats:T_WWA T_WWA T_HHW T_HHW T_HHW T_HHW T_HHW
|
||||
varlist:<EventBeginTime> <EventEndTime> <ObsTime> <FcstRiseFSTime> &
|
||||
<MaxFcstTime> <FcstFallFSTime>
|
||||
condition: TRUE
|
||||
phrasestr:(optional)...Headline
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
###for new event
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr:THE NATIONAL WEATHER SERVICE IN <OfficeName> HAS ISSUED A
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD WARNING FOR
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FROM <EventBeginTime> until <EventEndTime>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FORECAST...FLOOD STAGE WILL BE REACHED AT <FcstRiseFSTime>. &
|
||||
MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>. FLOOD &
|
||||
STAGE WILL FALL BELOW FLOOD STAGE AT <FcstFallFSTime>.
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for cancelled event
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr:THE FLOOD WARNING IS CANCELLED FOR
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: FELL BELOW FLOOD STAGE AT <ObsFallFSTime>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for continued event
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr:THE FLOOD WARNING CONTINUES FOR
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for extended event
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr:THE FLOOD WARNING CONTINUES FOR
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for expired event
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr:THE FLOOD WARNING HAS EXPIRED FOR
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: FELL BELOW FLOOD STAGE AT <ObsFallFSTime>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
name: ffa_vtec
|
||||
formats:T_WWA T_WWA T_HHW T_HHW T_HHW T_HHW T_HHW
|
||||
varlist:<EventBeginTime> <EventEndTime> <ObsTime> <FcstRiseFSTime> &
|
||||
<MaxFcstTime> <FcstFallFSTime>
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
###for new event
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: (optional...Headline...)
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr:THE NATIONAL WEATHER SERVICE IN <OfficeName> HAS ISSUED A
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD WATCH FOR
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FROM <EventBeginTime> until <EventEndTime>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FORECAST...FLOOD STAGE WILL BE REACHED AT <FcstRiseFSTime>. &
|
||||
MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>. FLOOD &
|
||||
STAGE WILL FALL BELOW FLOOD STAGE AT <FcstFallFSTime>.
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for cancelled event
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr:THE FLOOD WATCH IS CANCELLED FOR
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for continued event
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr:THE FLOOD WATCH CONTINUES FOR
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for extended event
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr:THE FLOOD WATCH IS EXTENDED FOR
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for expired event
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr:THE FLOOD WATCH HAS EXPIRED FOR
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#
|
||||
name: fls_advisory_vtec
|
||||
formats:T_WWA T_WWA T_HHW T_HHW T_HHW T_HHW T_HHW
|
||||
varlist:<EventBeginTime> <EventEndTime> <ObsTime> <FcstRiseFSTime> &
|
||||
<MaxFcstTime> <FcstFallFSTime>
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
###for new event
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: (optional...Headline...)
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr:THE NATIONAL WEATHER SERVICE IN <OfficeName> HAS ISSUED A
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD ADVISORY FOR
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FROM <EventBeginTime> until <EventEndTime>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: FORECAST...FLOOD STAGE WILL BE REACHED AT <FcstRiseFSTime>. &
|
||||
MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>. FLOOD &
|
||||
STAGE WILL FALL BELOW FLOOD STAGE AT <FcstFallFSTime>.
|
||||
condition: ( <Action> SEQ "NEW" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for cancelled event
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr:THE FLOOD ADVISORY IS CANCELLED FOR
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CAN" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for continued event
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr:THE FLOOD ADVISORY CONTINUES FOR
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "CON" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for extended event
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr:THE FLOOD ADVISORY IS EXTENDED FOR
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: UNTIL <EventEndTime>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: <MaxFcstCatName> FLOODING IS FORECAST
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: FORECAST...MAXIMUM STAGE WILL BE <MaxFcstStg> <StgFlowUnits> AT <MaxFcstTime>.
|
||||
condition: ( <Action> SEQ "EXT" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
||||
#
|
||||
#for expired event
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr:THE FLOOD ADVISORY HAS EXPIRED FOR
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
phrasestr: <River> <Proximity> <IdName>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: AT <ObsTime> THE STAGE WAS... <ObsStage> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: FLOOD STAGE IS...<FldStg> <StgFlowUnits>
|
||||
condition: ( <Action> SEQ "EXP" )
|
||||
bulletstr: (optional)...
|
||||
condition: TRUE
|
||||
phrasestr:
|
|
@ -1,130 +0,0 @@
|
|||
# SUMMARY SECTION TEMPLATES
|
||||
#
|
||||
name: default
|
||||
#
|
||||
# list the names of the forecast points included
|
||||
#
|
||||
condition: TRUE
|
||||
phrasestr:For the <GrpIdName>, the following locations are included: <GrpFPList>.
|
||||
#
|
||||
name:rvs
|
||||
#
|
||||
# checks if observed and forecast data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, no flooding is observed or forecast.
|
||||
#
|
||||
# checks if only observed data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ FALSE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, no flooding is observed.
|
||||
#
|
||||
# checks if only forecast data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ FALSE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, no flooding is forecast.
|
||||
#
|
||||
#
|
||||
#
|
||||
name:fls_flw
|
||||
#
|
||||
# checks if observed and forecast data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, no flooding is observed &
|
||||
or forecast.
|
||||
#
|
||||
# checks if only observed data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ FALSE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, no flooding is observed.
|
||||
#
|
||||
# checks if only forecast data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ FALSE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, no flooding is forecast.
|
||||
#
|
||||
# checks if observed and forecast data, and current cat greater than max
|
||||
# forecast and max cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxCurCat> GT <GrpMaxFcstCat> ) AND ( <GrpOMFCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxCurCatName> &
|
||||
flooding is occuring, with river levels forecasted to decrease.
|
||||
#
|
||||
#
|
||||
# checks if observed and forecast data, and observed cat equal to max fcst
|
||||
# cat and max cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxCurCat> EQ <GrpMaxFcstCat> ) AND ( <GrpOMFCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxCurCatName> flooding &
|
||||
is occuring and is expected to continue.
|
||||
#
|
||||
# checks if observed and forecast data, and current cat less than max fcst cat
|
||||
# and current cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxCurCat> LT <GrpMaxFcstCat> ) AND ( <GrpMaxCurCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxFcstCatName> flooding &
|
||||
is forecasted.
|
||||
#
|
||||
# checks if observed and forecast data, and current cat less than max fcst cat
|
||||
# and current cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxCurCat> LT <GrpMaxFcstCat> ) AND ( <GrpMaxCurCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxCurCatName> flooding &
|
||||
is occuring, with <GrpMaxFcstCatName> flooding forecasted.
|
||||
#
|
||||
# checks if only observed data, and current cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ FALSE ) &
|
||||
AND ( <GrpMaxCurCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxCurCatName> flooding &
|
||||
is occuring.
|
||||
#
|
||||
# checks if only forecast data, and max forecast cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ FALSE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxFcstCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxFcstCatName> flooding &
|
||||
is forecasted.
|
||||
#
|
||||
#
|
||||
#
|
||||
name:flt
|
||||
condition: TRUE
|
||||
phrasestr:Water levels have receded to below flood stage for all locations &
|
||||
for the <GrpIdName>.
|
||||
#
|
||||
#
|
||||
#
|
||||
name:test
|
||||
#
|
||||
condition: TRUE
|
||||
phrasestr:MaxObs, CurObs, Fcst, ObsMaxFcst, RiseFall for:
|
||||
#
|
||||
#
|
||||
condition: TRUE
|
||||
phrasestr:For <GrpIdName> (<GrpId>) = <GrpMaxCurCatName> &
|
||||
<GrpMaxFcstCatName>, <GrpOMFCatName>...
|
||||
condition: TRUE
|
||||
phrasestr: Numgrps = <NumGrps>...
|
||||
condition: TRUE
|
||||
phrasestr: River list = <RiverList>...
|
||||
condition: TRUE
|
||||
phrasestr: Group list = <GrpList>...
|
||||
condition: TRUE
|
||||
phrasestr: GroupForecast point list = <GrpFPList>...
|
||||
condition: TRUE
|
||||
phrasestr: County list = <CountyList>...
|
||||
condition: TRUE
|
||||
phrasestr: GrpObs,Fcst Found = <GrpObsFound> <GrpFcstFound>
|
||||
#
|
|
@ -1,130 +0,0 @@
|
|||
# SUMMARY SECTION TEMPLATES
|
||||
#
|
||||
name: default
|
||||
#
|
||||
# list the names of the forecast points included
|
||||
#
|
||||
condition: TRUE
|
||||
phrasestr:For the <GrpIdName>, the following locations are included: <GrpFPList>.
|
||||
#
|
||||
name:rvs
|
||||
#
|
||||
# checks if observed and forecast data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, no flooding is observed or forecast.
|
||||
#
|
||||
# checks if only observed data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ FALSE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, no flooding is observed.
|
||||
#
|
||||
# checks if only forecast data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ FALSE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, no flooding is forecast.
|
||||
#
|
||||
#
|
||||
#
|
||||
name:fls_flw
|
||||
#
|
||||
# checks if observed and forecast data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, no flooding is observed &
|
||||
or forecast.
|
||||
#
|
||||
# checks if only observed data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ FALSE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, no flooding is observed.
|
||||
#
|
||||
# checks if only forecast data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ FALSE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, no flooding is forecast.
|
||||
#
|
||||
# checks if observed and forecast data, and current cat greater than max
|
||||
# forecast and max cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxCurCat> GT <GrpMaxFcstCat> ) AND ( <GrpOMFCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxCurCatName> &
|
||||
flooding is occuring, with river levels forecasted to decrease.
|
||||
#
|
||||
#
|
||||
# checks if observed and forecast data, and observed cat equal to max fcst
|
||||
# cat and max cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxCurCat> EQ <GrpMaxFcstCat> ) AND ( <GrpOMFCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxCurCatName> flooding &
|
||||
is occuring and is expected to continue.
|
||||
#
|
||||
# checks if observed and forecast data, and current cat less than max fcst cat
|
||||
# and current cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxCurCat> LT <GrpMaxFcstCat> ) AND ( <GrpMaxCurCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxFcstCatName> flooding &
|
||||
is forecasted.
|
||||
#
|
||||
# checks if observed and forecast data, and current cat less than max fcst cat
|
||||
# and current cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxCurCat> LT <GrpMaxFcstCat> ) AND ( <GrpMaxCurCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxCurCatName> flooding &
|
||||
is occuring, with <GrpMaxFcstCatName> flooding forecasted.
|
||||
#
|
||||
# checks if only observed data, and current cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ FALSE ) &
|
||||
AND ( <GrpMaxCurCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxCurCatName> flooding &
|
||||
is occuring.
|
||||
#
|
||||
# checks if only forecast data, and max forecast cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ FALSE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxFcstCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxFcstCatName> flooding &
|
||||
is forecasted.
|
||||
#
|
||||
#
|
||||
#
|
||||
name:flt
|
||||
condition: TRUE
|
||||
phrasestr:Water levels have receded to below flood stage for all locations &
|
||||
for the <GrpIdName>.
|
||||
#
|
||||
#
|
||||
#
|
||||
name:test
|
||||
#
|
||||
condition: TRUE
|
||||
phrasestr:MaxObs, CurObs, Fcst, ObsMaxFcst, RiseFall for:
|
||||
#
|
||||
#
|
||||
condition: TRUE
|
||||
phrasestr:For <GrpIdName> (<GrpId>) = <GrpMaxCurCatName> &
|
||||
<GrpMaxFcstCatName>, <GrpOMFCatName>...
|
||||
condition: TRUE
|
||||
phrasestr: Numgrps = <NumGrps>...
|
||||
condition: TRUE
|
||||
phrasestr: River list = <RiverList>...
|
||||
condition: TRUE
|
||||
phrasestr: Group list = <GrpList>...
|
||||
condition: TRUE
|
||||
phrasestr: GroupForecast point list = <GrpFPList>...
|
||||
condition: TRUE
|
||||
phrasestr: County list = <CountyList>...
|
||||
condition: TRUE
|
||||
phrasestr: GrpObs,Fcst Found = <GrpObsFound> <GrpFcstFound>
|
||||
#
|
|
@ -1,130 +0,0 @@
|
|||
# SUMMARY SECTION TEMPLATES
|
||||
#
|
||||
name: default
|
||||
#
|
||||
# list the names of the forecast points included
|
||||
#
|
||||
condition: TRUE
|
||||
phrasestr:For the <GrpIdName>, the following locations are included: <GrpFPList>.
|
||||
#
|
||||
name:rvs
|
||||
#
|
||||
# checks if observed and forecast data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, no flooding is observed or forecast.
|
||||
#
|
||||
# checks if only observed data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ FALSE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, no flooding is observed.
|
||||
#
|
||||
# checks if only forecast data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ FALSE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, no flooding is forecast.
|
||||
#
|
||||
#
|
||||
#
|
||||
name:fls_flw
|
||||
#
|
||||
# checks if observed and forecast data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, no flooding is observed &
|
||||
or forecast.
|
||||
#
|
||||
# checks if only observed data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ FALSE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, no flooding is observed.
|
||||
#
|
||||
# checks if only forecast data, and max cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ FALSE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpOMFCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, no flooding is forecast.
|
||||
#
|
||||
# checks if observed and forecast data, and current cat greater than max
|
||||
# forecast and max cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxCurCat> GT <GrpMaxFcstCat> ) AND ( <GrpOMFCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxCurCatName> &
|
||||
flooding is occuring, with river levels forecasted to decrease.
|
||||
#
|
||||
#
|
||||
# checks if observed and forecast data, and observed cat equal to max fcst
|
||||
# cat and max cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxCurCat> EQ <GrpMaxFcstCat> ) AND ( <GrpOMFCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxCurCatName> flooding &
|
||||
is occuring and is expected to continue.
|
||||
#
|
||||
# checks if observed and forecast data, and current cat less than max fcst cat
|
||||
# and current cat is non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxCurCat> LT <GrpMaxFcstCat> ) AND ( <GrpMaxCurCat> EQ 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxFcstCatName> flooding &
|
||||
is forecasted.
|
||||
#
|
||||
# checks if observed and forecast data, and current cat less than max fcst cat
|
||||
# and current cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxCurCat> LT <GrpMaxFcstCat> ) AND ( <GrpMaxCurCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxCurCatName> flooding &
|
||||
is occuring, with <GrpMaxFcstCatName> flooding forecasted.
|
||||
#
|
||||
# checks if only observed data, and current cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ TRUE ) AND ( <GrpFcstFound> EQ FALSE ) &
|
||||
AND ( <GrpMaxCurCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxCurCatName> flooding &
|
||||
is occuring.
|
||||
#
|
||||
# checks if only forecast data, and max forecast cat is greater than non-flood
|
||||
#
|
||||
condition: ( ( <GrpObsFound> EQ FALSE ) AND ( <GrpFcstFound> EQ TRUE ) &
|
||||
AND ( <GrpMaxFcstCat> GT 0 ) )
|
||||
phrasestr:For the <GrpIdName>, including <GrpFPList>, <GrpMaxFcstCatName> flooding &
|
||||
is forecasted.
|
||||
#
|
||||
#
|
||||
#
|
||||
name:flt
|
||||
condition: TRUE
|
||||
phrasestr:Water levels have receded to below flood stage for all locations &
|
||||
for the <GrpIdName>.
|
||||
#
|
||||
#
|
||||
#
|
||||
name:test
|
||||
#
|
||||
condition: TRUE
|
||||
phrasestr:MaxObs, CurObs, Fcst, ObsMaxFcst, RiseFall for:
|
||||
#
|
||||
#
|
||||
condition: TRUE
|
||||
phrasestr:For <GrpIdName> (<GrpId>) = <GrpMaxCurCatName> &
|
||||
<GrpMaxFcstCatName>, <GrpOMFCatName>...
|
||||
condition: TRUE
|
||||
phrasestr: Numgrps = <NumGrps>...
|
||||
condition: TRUE
|
||||
phrasestr: River list = <RiverList>...
|
||||
condition: TRUE
|
||||
phrasestr: Group list = <GrpList>...
|
||||
condition: TRUE
|
||||
phrasestr: GroupForecast point list = <GrpFPList>...
|
||||
condition: TRUE
|
||||
phrasestr: County list = <CountyList>...
|
||||
condition: TRUE
|
||||
phrasestr: GrpObs,Fcst Found = <GrpObsFound> <GrpFcstFound>
|
||||
#
|
|
@ -1,67 +0,0 @@
|
|||
# TABULAR SECTION TEMPLATES
|
||||
# -------------------------
|
||||
#
|
||||
name: daily_rvs
|
||||
#
|
||||
#literal: FLD OBSERVED FORECAST 7AM
|
||||
#formats: "LOCATION STG " " STG DAY TIME" X4 T_AW X4 T_AW X4 T_AW
|
||||
#varlist: <Day1> <Day2> <Day3>
|
||||
#miscwrt:
|
||||
#
|
||||
formats: "LOCATION STG " " STG DAY TIME" X4 T_AW X4 T_AW X4 T_AW X4 T_AW
|
||||
varlist: <ObsTime> <Day1> <Day1> <Day1>
|
||||
fp_id: BLKO2
|
||||
literal: 7AM 1AM 7AM 1PM
|
||||
#
|
||||
grpname: skip
|
||||
varlist: <IdName> <FldStg> <ObsStg> <ObsTime> <SpecFcstStg> <SpecFcstStg> &
|
||||
<SpecFcstStg>
|
||||
specstagetime: TODAY 07:00 +1 +0 4 +2 +0 4 +3 +0 4
|
||||
#
|
||||
formats: X2 S10 X3 F2.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
fp_id: DOVO2
|
||||
#
|
||||
formats: X2 S10 X2 F3.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
fp_id: BLKO2
|
||||
#
|
||||
formats: X2 S10 X3 F2.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
fp_id: ALXO2
|
||||
fp_id: ANDO2
|
||||
fp_id: DURO2
|
||||
fp_id: PLVO2
|
||||
fp_id: ARCT2
|
||||
fp_id: BLUO2
|
||||
fp_id: CNEO2
|
||||
fp_id: FRSO2
|
||||
#
|
||||
#
|
||||
#
|
||||
name: fls_and_flw
|
||||
grpname: skip
|
||||
#
|
||||
literal: FLD OBSERVED FORECAST 7AM
|
||||
formats: "LOCATION STG " " STG DAY TIME" X4 T_AW X4 T_AW X4 T_AW
|
||||
varlist: <Day1> <Day2> <Day3>
|
||||
miscwrt:
|
||||
#
|
||||
formats: X2 S10 X2 F2.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
varlist: <IdName> <FldStg> <ObsStg> <ObsTime> <SpecFcstStg> <SpecFcstStg> &
|
||||
<SpecFcstStg>
|
||||
specstagetime: TODAY 07:00 +1 +0 4 +2 +0 4 +3 +0 4
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
name: all_rvs
|
||||
grpname: skip
|
||||
#
|
||||
literal: FLD OBSERVED FORECAST 7AM
|
||||
formats: "LOCATION STG " " STG DAY TIME" X4 T_AW X4 T_AW X4 T_AW
|
||||
varlist: <Day1> <Day2> <Day3>
|
||||
miscwrt:
|
||||
#
|
||||
formats: X2 S10 X2 F2.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
varlist: <IdName> <FldStg> <ObsStg> <ObsTime> <SpecFcstStg> <SpecFcstStg> &
|
||||
<SpecFcstStg>
|
||||
specstagetime: TODAY 07:00 +1 +0 4 +2 +0 4 +3 +0 4
|
||||
#
|
|
@ -1,67 +0,0 @@
|
|||
# TABULAR SECTION TEMPLATES
|
||||
# -------------------------
|
||||
#
|
||||
name: daily_rvs
|
||||
#
|
||||
#literal: FLD OBSERVED FORECAST 7AM
|
||||
#formats: "LOCATION STG " " STG DAY TIME" X4 T_AW X4 T_AW X4 T_AW
|
||||
#varlist: <Day1> <Day2> <Day3>
|
||||
#miscwrt:
|
||||
#
|
||||
formats: "LOCATION STG " " STG DAY TIME" X4 T_AW X4 T_AW X4 T_AW X4 T_AW
|
||||
varlist: <ObsTime> <Day1> <Day1> <Day1>
|
||||
fp_id: BLKO2
|
||||
literal: 7AM 1AM 7AM 1PM
|
||||
#
|
||||
grpname: skip
|
||||
varlist: <IdName> <FldStg> <ObsStg> <ObsTime> <SpecFcstStg> <SpecFcstStg> &
|
||||
<SpecFcstStg>
|
||||
specstagetime: TODAY 07:00 +1 +0 4 +2 +0 4 +3 +0 4
|
||||
#
|
||||
formats: X2 S10 X3 F2.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
fp_id: DOVO2
|
||||
#
|
||||
formats: X2 S10 X2 F3.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
fp_id: BLKO2
|
||||
#
|
||||
formats: X2 S10 X3 F2.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
fp_id: ALXO2
|
||||
fp_id: ANDO2
|
||||
fp_id: DURO2
|
||||
fp_id: PLVO2
|
||||
fp_id: ARCT2
|
||||
fp_id: BLUO2
|
||||
fp_id: CNEO2
|
||||
fp_id: FRSO2
|
||||
#
|
||||
#
|
||||
#
|
||||
name: fls_and_flw
|
||||
grpname: skip
|
||||
#
|
||||
literal: FLD OBSERVED FORECAST 7AM
|
||||
formats: "LOCATION STG " " STG DAY TIME" X4 T_AW X4 T_AW X4 T_AW
|
||||
varlist: <Day1> <Day2> <Day3>
|
||||
miscwrt:
|
||||
#
|
||||
formats: X2 S10 X2 F2.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
varlist: <IdName> <FldStg> <ObsStg> <ObsTime> <SpecFcstStg> <SpecFcstStg> &
|
||||
<SpecFcstStg>
|
||||
specstagetime: TODAY 07:00 +1 +0 4 +2 +0 4 +3 +0 4
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
name: all_rvs
|
||||
grpname: skip
|
||||
#
|
||||
literal: FLD OBSERVED FORECAST 7AM
|
||||
formats: "LOCATION STG " " STG DAY TIME" X4 T_AW X4 T_AW X4 T_AW
|
||||
varlist: <Day1> <Day2> <Day3>
|
||||
miscwrt:
|
||||
#
|
||||
formats: X2 S10 X2 F2.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
varlist: <IdName> <FldStg> <ObsStg> <ObsTime> <SpecFcstStg> <SpecFcstStg> &
|
||||
<SpecFcstStg>
|
||||
specstagetime: TODAY 07:00 +1 +0 4 +2 +0 4 +3 +0 4
|
||||
#
|
|
@ -1,67 +0,0 @@
|
|||
# TABULAR SECTION TEMPLATES
|
||||
# -------------------------
|
||||
#
|
||||
name: daily_rvs
|
||||
#
|
||||
#literal: FLD OBSERVED FORECAST 7AM
|
||||
#formats: "LOCATION STG " " STG DAY TIME" X4 T_AW X4 T_AW X4 T_AW
|
||||
#varlist: <Day1> <Day2> <Day3>
|
||||
#miscwrt:
|
||||
#
|
||||
formats: "LOCATION STG " " STG DAY TIME" X4 T_AW X4 T_AW X4 T_AW X4 T_AW
|
||||
varlist: <ObsTime> <Day1> <Day1> <Day1>
|
||||
fp_id: BLKO2
|
||||
literal: 7AM 1AM 7AM 1PM
|
||||
#
|
||||
grpname: skip
|
||||
varlist: <IdName> <FldStg> <ObsStg> <ObsTime> <SpecFcstStg> <SpecFcstStg> &
|
||||
<SpecFcstStg>
|
||||
specstagetime: TODAY 07:00 +1 +0 4 +2 +0 4 +3 +0 4
|
||||
#
|
||||
formats: X2 S10 X3 F2.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
fp_id: DOVO2
|
||||
#
|
||||
formats: X2 S10 X2 F3.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
fp_id: BLKO2
|
||||
#
|
||||
formats: X2 S10 X3 F2.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
fp_id: ALXO2
|
||||
fp_id: ANDO2
|
||||
fp_id: DURO2
|
||||
fp_id: PLVO2
|
||||
fp_id: ARCT2
|
||||
fp_id: BLUO2
|
||||
fp_id: CNEO2
|
||||
fp_id: FRSO2
|
||||
#
|
||||
#
|
||||
#
|
||||
name: fls_and_flw
|
||||
grpname: skip
|
||||
#
|
||||
literal: FLD OBSERVED FORECAST 7AM
|
||||
formats: "LOCATION STG " " STG DAY TIME" X4 T_AW X4 T_AW X4 T_AW
|
||||
varlist: <Day1> <Day2> <Day3>
|
||||
miscwrt:
|
||||
#
|
||||
formats: X2 S10 X2 F2.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
varlist: <IdName> <FldStg> <ObsStg> <ObsTime> <SpecFcstStg> <SpecFcstStg> &
|
||||
<SpecFcstStg>
|
||||
specstagetime: TODAY 07:00 +1 +0 4 +2 +0 4 +3 +0 4
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
name: all_rvs
|
||||
grpname: skip
|
||||
#
|
||||
literal: FLD OBSERVED FORECAST 7AM
|
||||
formats: "LOCATION STG " " STG DAY TIME" X4 T_AW X4 T_AW X4 T_AW
|
||||
varlist: <Day1> <Day2> <Day3>
|
||||
miscwrt:
|
||||
#
|
||||
formats: X2 S10 X2 F2.0 X1 F5.1 X1 T_AWHH X2 F5.1 X2 F5.1 X2 F5.1
|
||||
varlist: <IdName> <FldStg> <ObsStg> <ObsTime> <SpecFcstStg> <SpecFcstStg> &
|
||||
<SpecFcstStg>
|
||||
specstagetime: TODAY 07:00 +1 +0 4 +2 +0 4 +3 +0 4
|
||||
#
|
|
@ -1,15 +0,0 @@
|
|||
|
||||
<mapDescriptor>
|
||||
<resource class="com.raytheon.viz.pngtile.rsc.QuadTiledRasterResource">
|
||||
<properties>
|
||||
<value field="name">TiledResource (MONICA)</value>
|
||||
<value field="filename">MONICA/</value>
|
||||
</properties>
|
||||
<resourceProperties>
|
||||
<isVisible>true</isVisible>
|
||||
<opacity>1.0</opacity>
|
||||
<isLabeled>false</isLabeled>
|
||||
<isHoverOn>false</isHoverOn>
|
||||
</resourceProperties>
|
||||
</resource>
|
||||
</mapDescriptor>
|
|
@ -1,21 +0,0 @@
|
|||
|
||||
<mapDescriptor>
|
||||
<resource class="com.raytheon.viz.shapefile.rsc.ShapefileResource">
|
||||
<properties>
|
||||
<value field="name">Marine Warnings</value>
|
||||
<value field="filename">Shapefile/mv.shp</value>
|
||||
<value field="labelFields">MESSAGE</value>
|
||||
<value field="regularPolygon">false</value>
|
||||
<value field="outlineDrawn">true</value>
|
||||
<value field="color">RGB {0, 0, 255}</value>
|
||||
<value field="outlineWidth">0</value>
|
||||
<value field="outlineOn">true</value>
|
||||
</properties>
|
||||
<resourceProperties>
|
||||
<isVisible>true</isVisible>
|
||||
<opacity>1.0</opacity>
|
||||
<isLabeled>false</isLabeled>
|
||||
<isHoverOn>false</isHoverOn>
|
||||
</resourceProperties>
|
||||
</resource>
|
||||
</mapDescriptor>
|
|
@ -1,18 +0,0 @@
|
|||
|
||||
<mapDescriptor>
|
||||
<resource class="com.raytheon.viz.pngtile.rsc.QuadTiledRasterResource">
|
||||
<properties>
|
||||
<value field="name">TiledResource (AVHRR)</value>
|
||||
<value field="filename">AVHRR/</value>
|
||||
<value field="contrast">1.0</value>
|
||||
<value field="brightness">1.0</value>
|
||||
<value field="interpolationState">false</value>
|
||||
</properties>
|
||||
<resourceProperties>
|
||||
<isVisible>true</isVisible>
|
||||
<opacity>1.0</opacity>
|
||||
<isLabeled>false</isLabeled>
|
||||
<isHoverOn>false</isHoverOn>
|
||||
</resourceProperties>
|
||||
</resource>
|
||||
</mapDescriptor>
|
|
@ -1,16 +0,0 @@
|
|||
|
||||
<mapDescriptor>
|
||||
<resource class="com.raytheon.viz.core.rsc.hdf5.TestSatResource">
|
||||
<properties>
|
||||
<value field="colorMap">COLORMAP { grey }</value>
|
||||
<value field="colorMapMin">0.0</value>
|
||||
<value field="colorMapMax">255.0</value>
|
||||
</properties>
|
||||
<resourceProperties>
|
||||
<isVisible>true</isVisible>
|
||||
<opacity>1.0</opacity>
|
||||
<isLabeled>false</isLabeled>
|
||||
<isHoverOn>false</isHoverOn>
|
||||
</resourceProperties>
|
||||
</resource>
|
||||
</mapDescriptor>
|
|
@ -1,16 +0,0 @@
|
|||
|
||||
<bundle>
|
||||
<mapDescriptor>
|
||||
<resourcePair>
|
||||
<resource name="BlueMarbleLayer">
|
||||
<properties/>
|
||||
</resource>
|
||||
<resourceProperties>
|
||||
<isVisible>true</isVisible>
|
||||
<opacity>1.0</opacity>
|
||||
<isLabeled>false</isLabeled>
|
||||
<isHoverOn>false</isHoverOn>
|
||||
</resourceProperties>
|
||||
</resourcePair>
|
||||
</mapDescriptor>
|
||||
</bundle>
|
|
@ -1,24 +0,0 @@
|
|||
|
||||
<bundle>
|
||||
<mapDescriptor>
|
||||
<resourcePair>
|
||||
<resource name="TopoResource">
|
||||
<properties>
|
||||
<value field="contrast">1.0</value>
|
||||
<value field="brightness">1.0</value>
|
||||
<value field="interpolationState">true</value>
|
||||
<value field="colorMap">COLORMAP { topo }</value>
|
||||
<value field="colorMapMin">0.0</value>
|
||||
<value field="colorMapMax">3000.0</value>
|
||||
</properties>
|
||||
</resource>
|
||||
<resourceProperties>
|
||||
<isVisible>true</isVisible>
|
||||
<opacity>1.0</opacity>
|
||||
<isLabeled>false</isLabeled>
|
||||
<isHoverOn>false</isHoverOn>
|
||||
</resourceProperties>
|
||||
</resourcePair>
|
||||
</mapDescriptor>
|
||||
</bundle>
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
|
||||
<mapDescriptor>
|
||||
<resource class="com.raytheon.viz.shapefile.rsc.ShapefileResource">
|
||||
<properties>
|
||||
<value field="name">US Counties</value>
|
||||
<value field="filename">counties/c_16mr06.shp</value>
|
||||
<value field="labelFields">COUNTYNAME</value>
|
||||
<value field="regularPolygon">false</value>
|
||||
<value field="outlineDrawn">true</value>
|
||||
<value field="color">RGB {191, 191, 191}</value>
|
||||
<value field="outlineWidth">1</value>
|
||||
<value field="outlineOn">true</value>
|
||||
</properties>
|
||||
<resourceProperties>
|
||||
<isVisible>true</isVisible>
|
||||
<opacity>1.0</opacity>
|
||||
<isLabeled>false</isLabeled>
|
||||
<isHoverOn>false</isHoverOn>
|
||||
<isMapLayer>true</isMapLayer>
|
||||
</resourceProperties>
|
||||
</resource>
|
||||
</mapDescriptor>
|
|
@ -1,20 +0,0 @@
|
|||
|
||||
<mapDescriptor>
|
||||
<resource class="com.raytheon.viz.shapefile.rsc.ShapefileResource">
|
||||
<properties>
|
||||
<value field="name">US Rivers</value>
|
||||
<value field="filename">rv14fe02.shp</value>
|
||||
<value field="labelFields">PNAME</value>
|
||||
<value field="regularPolygon">false</value>
|
||||
<value field="outlineDrawn">true</value>
|
||||
<value field="spatiallySplit">true</value>
|
||||
<value field="color">RGB {0, 0, 255}</value>
|
||||
<value field="outlineWidth">0</value>
|
||||
<value field="outlineOn">true</value>
|
||||
</properties>
|
||||
<resourceProperties>
|
||||
<isVisible>true</isVisible>
|
||||
<opacity>1.0</opacity>
|
||||
</resourceProperties>
|
||||
</resource>
|
||||
</mapDescriptor>
|
|
@ -1,22 +0,0 @@
|
|||
|
||||
<mapDescriptor>
|
||||
<resource class="com.raytheon.viz.shapefile.rsc.ShapefileResource">
|
||||
<properties>
|
||||
<value field="name">US States</value>
|
||||
<value field="filename">S_14jl05/s_14jl05.shp</value>
|
||||
<value field="labelFields">NAME</value>
|
||||
<value field="regularPolygon">false</value>
|
||||
<value field="outlineDrawn">true</value>
|
||||
<value field="color">RGB {255, 255, 255}</value>
|
||||
<value field="outlineWidth">0</value>
|
||||
<value field="outlineOn">true</value>
|
||||
</properties>
|
||||
<resourceProperties>
|
||||
<isVisible>true</isVisible>
|
||||
<opacity>1.0</opacity>
|
||||
<isLabeled>false</isLabeled>
|
||||
<isHoverOn>false</isHoverOn>
|
||||
<isMapLayer>true</isMapLayer>
|
||||
</resourceProperties>
|
||||
</resource>
|
||||
</mapDescriptor>
|
|
@ -1,22 +0,0 @@
|
|||
|
||||
<mapDescriptor>
|
||||
<resource class="com.raytheon.viz.shapefile.rsc.ShapefileResource">
|
||||
<properties>
|
||||
<value field="name">World Political</value>
|
||||
<value field="filename">world.shp</value>
|
||||
<value field="labelFields">CNTRY_NAME</value>
|
||||
<value field="regularPolygon">false</value>
|
||||
<value field="outlineDrawn">true</value>
|
||||
<value field="color">RGB {255, 255, 255}</value>
|
||||
<value field="outlineWidth">0</value>
|
||||
<value field="outlineOn">true</value>
|
||||
</properties>
|
||||
<resourceProperties>
|
||||
<isVisible>true</isVisible>
|
||||
<opacity>1.0</opacity>
|
||||
<isLabeled>false</isLabeled>
|
||||
<isHoverOn>false</isHoverOn>
|
||||
<isMapLayer>true</isMapLayer>
|
||||
</resourceProperties>
|
||||
</resource>
|
||||
</mapDescriptor>
|
|
@ -1,4 +1,5 @@
|
|||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
.,\
|
||||
localization/
|
||||
|
|
Before Width: | Height: | Size: 363 B After Width: | Height: | Size: 363 B |
Before Width: | Height: | Size: 427 B After Width: | Height: | Size: 427 B |
Before Width: | Height: | Size: 204 B After Width: | Height: | Size: 204 B |
Before Width: | Height: | Size: 229 B After Width: | Height: | Size: 229 B |
Before Width: | Height: | Size: 320 B After Width: | Height: | Size: 320 B |
Before Width: | Height: | Size: 277 B After Width: | Height: | Size: 277 B |
Before Width: | Height: | Size: 73 B After Width: | Height: | Size: 73 B |
|
@ -5,4 +5,6 @@ bin.includes = META-INF/,\
|
|||
plugin.xml,\
|
||||
statusMessage.xsd,\
|
||||
config.xml,\
|
||||
log4j-alertviz.xml
|
||||
localization/,\
|
||||
lib/,\
|
||||
logback-alertviz.xml
|
||||
|
|
|
@ -114,8 +114,7 @@
|
|||
id="com.raytheon.uf.viz.spellchecker"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.viz.alertviz"
|
||||
|
|
|
@ -27,8 +27,7 @@
|
|||
id="com.raytheon.viz.bcd"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.viz.geotiff"
|
||||
|
@ -41,15 +40,13 @@
|
|||
id="com.raytheon.viz.lpi"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.viz.spi"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.viz.shapefile"
|
||||
|
|
|
@ -6,6 +6,6 @@ bin.includes = META-INF/,\
|
|||
config.xml,\
|
||||
scriptTemplates/,\
|
||||
schema/,\
|
||||
log4j-viz-core.xml,\
|
||||
res/,\
|
||||
logback-viz-core.xml
|
||||
logback-viz-core.xml,\
|
||||
localization/
|
||||
|
|
|
@ -28,6 +28,7 @@ import java.util.Arrays;
|
|||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
@ -60,6 +61,9 @@ import com.raytheon.uf.common.util.FileUtil;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* May 08, 2008 878 chammack Initial creation
|
||||
* Aug 02, 2013 2202 bsteffen Add edex specific connectivity checking.
|
||||
* Aug 09, 2013 2033 mschenke Made CAVE_STATIC BASE search all plugins
|
||||
* if not found in etc base dir if no context
|
||||
* name set
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -69,10 +73,28 @@ import com.raytheon.uf.common.util.FileUtil;
|
|||
|
||||
public class CAVELocalizationAdapter implements ILocalizationAdapter {
|
||||
|
||||
private final Map<LocalizationType, LocalizationContext[]> contexts;
|
||||
private static final Map<LocalizationType, LocalizationContext[]> contexts = new HashMap<LocalizationType, LocalizationContext[]>();
|
||||
|
||||
public CAVELocalizationAdapter() {
|
||||
this.contexts = new HashMap<LocalizationType, LocalizationContext[]>();
|
||||
private static final Map<String, File> caveStaticBaseFiles = new HashMap<String, File>();
|
||||
|
||||
private static final LocalizationContext CAVE_STATIC_BASE = new LocalizationContext(
|
||||
LocalizationType.CAVE_STATIC, LocalizationLevel.BASE);
|
||||
|
||||
private static final LocalizationContext CAVE_CONFIG_BASE = new LocalizationContext(
|
||||
LocalizationType.CAVE_CONFIG, LocalizationLevel.BASE);
|
||||
|
||||
private static boolean isCaveStaticBase(LocalizationContext ctx) {
|
||||
return ctx.getLocalizationType() == CAVE_STATIC_BASE
|
||||
.getLocalizationType()
|
||||
&& ctx.getLocalizationLevel() == CAVE_STATIC_BASE
|
||||
.getLocalizationLevel();
|
||||
}
|
||||
|
||||
private static boolean isCaveConfigBase(LocalizationContext ctx) {
|
||||
return ctx.getLocalizationType() == CAVE_CONFIG_BASE
|
||||
.getLocalizationType()
|
||||
&& ctx.getLocalizationLevel() == CAVE_CONFIG_BASE
|
||||
.getLocalizationLevel();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -102,39 +124,59 @@ public class CAVELocalizationAdapter implements ILocalizationAdapter {
|
|||
*/
|
||||
@Override
|
||||
public File getPath(LocalizationContext context, String fileName) {
|
||||
|
||||
String baseDir = null;
|
||||
String typeString = getDirNameForType(context.getLocalizationType());
|
||||
LocalizationLevel level = context.getLocalizationLevel();
|
||||
if (level == LocalizationLevel.BASE) {
|
||||
if (context.getLocalizationType() == LocalizationType.COMMON_STATIC
|
||||
|| context.getLocalizationType() == LocalizationType.CAVE_CONFIG) {
|
||||
// Common files are downloaded for all levels, including base
|
||||
baseDir = FileUtil.join(LocalizationManager.getUserDir(),
|
||||
typeString, "base");
|
||||
} else {
|
||||
if (context.getLocalizationType() == LocalizationType.CAVE_STATIC) {
|
||||
String typeDir = getDirNameForType(context.getLocalizationType());
|
||||
String levelDir = level.toString().toLowerCase();
|
||||
if (isCaveStaticBase(context)) {
|
||||
// Check to see if it is resident in a bundle first
|
||||
// else go to the cave static dir
|
||||
if (context.getContextName() != null) {
|
||||
return BundleScanner.searchInBundle(
|
||||
context.getContextName(), fileName);
|
||||
return BundleScanner.searchInBundle(context.getContextName(),
|
||||
fileName);
|
||||
} else {
|
||||
File file = new File(FileUtil.join(
|
||||
LocalizationManager.getBaseDir(), typeDir, fileName));
|
||||
if (file.exists()) {
|
||||
return file;
|
||||
} else {
|
||||
File bundleFile = null;
|
||||
boolean containsKey = false;
|
||||
synchronized (caveStaticBaseFiles) {
|
||||
containsKey = caveStaticBaseFiles.containsKey(fileName);
|
||||
if (containsKey) {
|
||||
bundleFile = caveStaticBaseFiles.get(fileName);
|
||||
}
|
||||
}
|
||||
baseDir = FileUtil.join(LocalizationManager.getBaseDir(),
|
||||
typeString);
|
||||
if (!containsKey) {
|
||||
for (String bundle : BundleScanner
|
||||
.getListOfBundles(true)) {
|
||||
file = BundleScanner.searchInBundle(bundle,
|
||||
fileName);
|
||||
if (file != null && file.exists()) {
|
||||
bundleFile = file;
|
||||
break;
|
||||
}
|
||||
}
|
||||
synchronized (caveStaticBaseFiles) {
|
||||
caveStaticBaseFiles.put(fileName, bundleFile);
|
||||
}
|
||||
}
|
||||
return bundleFile;
|
||||
}
|
||||
}
|
||||
} else if (level != LocalizationLevel.UNKNOWN) {
|
||||
baseDir = FileUtil.join(LocalizationManager.getUserDir(),
|
||||
typeString, level.name().toLowerCase(),
|
||||
context.getContextName());
|
||||
String baseDir = FileUtil.join(LocalizationManager.getUserDir(),
|
||||
typeDir, levelDir);
|
||||
if (context.getContextName() != null) {
|
||||
baseDir = FileUtil.join(baseDir, context.getContextName());
|
||||
}
|
||||
return new LocalizationInternalFile(
|
||||
FileUtil.join(baseDir, fileName));
|
||||
} else {
|
||||
throw new IllegalArgumentException(
|
||||
"Unsupported localization level: "
|
||||
+ context.getLocalizationLevel());
|
||||
}
|
||||
|
||||
return new LocalizationInternalFile(FileUtil.join(baseDir, fileName));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -154,8 +196,7 @@ public class CAVELocalizationAdapter implements ILocalizationAdapter {
|
|||
List<LocalizationContext> localContexts = new ArrayList<LocalizationContext>(
|
||||
context.length);
|
||||
for (LocalizationContext ctx : context) {
|
||||
if (ctx.getLocalizationType() == LocalizationType.CAVE_CONFIG
|
||||
&& ctx.getLocalizationLevel() == LocalizationLevel.BASE) {
|
||||
if (isCaveConfigBase(ctx)) {
|
||||
// No need to check CAVE_CONFIG - BASE as they are locally
|
||||
// available and are not "protectable"
|
||||
localContexts.add(ctx);
|
||||
|
@ -167,10 +208,10 @@ public class CAVELocalizationAdapter implements ILocalizationAdapter {
|
|||
List<ListResponse> responses = new ArrayList<ListResponse>(
|
||||
context.length);
|
||||
|
||||
if (serverContexts.size() > 0) {
|
||||
if (serverContexts.isEmpty() == false) {
|
||||
List<ListResponseEntry[]> entriesList = LocalizationManager
|
||||
.getInstance().getListResponseEntry(context, fileName,
|
||||
true, false);
|
||||
false, false);
|
||||
|
||||
for (int i = 0; i < context.length; i++) {
|
||||
ListResponseEntry[] entries = entriesList.get(i);
|
||||
|
@ -216,9 +257,7 @@ public class CAVELocalizationAdapter implements ILocalizationAdapter {
|
|||
// cave_static.base and cave_config.base is baselined locally, not on
|
||||
// the server
|
||||
|
||||
if ((context.getLocalizationLevel() == LocalizationLevel.BASE)
|
||||
&& ((context.getLocalizationType() == LocalizationType.CAVE_STATIC) || (context
|
||||
.getLocalizationType() == LocalizationType.CAVE_CONFIG))) {
|
||||
if (isCaveConfigBase(context) || isCaveStaticBase(context)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -275,8 +314,8 @@ public class CAVELocalizationAdapter implements ILocalizationAdapter {
|
|||
*/
|
||||
@Override
|
||||
public LocalizationContext[] getLocalSearchHierarchy(LocalizationType type) {
|
||||
synchronized (this.contexts) {
|
||||
LocalizationContext[] ctx = this.contexts.get(type);
|
||||
synchronized (contexts) {
|
||||
LocalizationContext[] ctx = contexts.get(type);
|
||||
LocalizationLevel[] levels = getAvailableLevels();
|
||||
|
||||
if (ctx != null) {
|
||||
|
@ -296,26 +335,11 @@ public class CAVELocalizationAdapter implements ILocalizationAdapter {
|
|||
Arrays.sort(levels, LocalizationLevel.REVERSE_COMPARATOR);
|
||||
|
||||
ctx = new LocalizationContext[levels.length];
|
||||
for (int i = 0; i < levels.length - 1; ++i) {
|
||||
for (int i = 0; i < levels.length; ++i) {
|
||||
ctx[i] = getContext(type, levels[i]);
|
||||
}
|
||||
|
||||
if (type == LocalizationType.CAVE_STATIC) {
|
||||
// only search bundles for cave_static
|
||||
Set<String> bndls = BundleScanner.getListOfBundles();
|
||||
|
||||
ctx = Arrays.copyOf(ctx, ctx.length + bndls.size());
|
||||
|
||||
int i = levels.length - 1;
|
||||
for (String b : bndls) {
|
||||
ctx[i] = getContext(type, LocalizationLevel.BASE);
|
||||
ctx[i].setContextName(b);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
ctx[ctx.length - 1] = getContext(type, LocalizationLevel.BASE);
|
||||
this.contexts.put(type, ctx);
|
||||
contexts.put(type, ctx);
|
||||
}
|
||||
|
||||
// return a copy for safety in case someone messes with references
|
||||
|
@ -337,10 +361,8 @@ public class CAVELocalizationAdapter implements ILocalizationAdapter {
|
|||
*/
|
||||
@Override
|
||||
public LocalizationType[] getStaticContexts() {
|
||||
LocalizationType[] type = new LocalizationType[] {
|
||||
LocalizationType.CAVE_STATIC, LocalizationType.COMMON_STATIC };
|
||||
|
||||
return type;
|
||||
return new LocalizationType[] { LocalizationType.CAVE_STATIC,
|
||||
LocalizationType.COMMON_STATIC };
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -356,15 +378,22 @@ public class CAVELocalizationAdapter implements ILocalizationAdapter {
|
|||
String path, boolean recursive, boolean filesOnly)
|
||||
throws LocalizationOpFailedException {
|
||||
Set<String> addedFiles = new HashSet<String>();
|
||||
List<LocalizationContext> serverContexts = new ArrayList<LocalizationContext>(
|
||||
Set<LocalizationContext> serverContexts = new LinkedHashSet<LocalizationContext>(
|
||||
contexts.length);
|
||||
List<LocalizationContext> localContexts = new ArrayList<LocalizationContext>(
|
||||
Set<LocalizationContext> localContexts = new LinkedHashSet<LocalizationContext>(
|
||||
contexts.length);
|
||||
for (LocalizationContext context : contexts) {
|
||||
if ((context.getLocalizationType() == LocalizationType.CAVE_STATIC || context
|
||||
.getLocalizationType() == LocalizationType.CAVE_CONFIG)
|
||||
&& context.getLocalizationLevel() == LocalizationLevel.BASE) {
|
||||
// CAVE_STATIC and CAVE_CONFIG - BASE are locally available
|
||||
if (isCaveStaticBase(context)) {
|
||||
localContexts.add(context);
|
||||
if (context.getContextName() == null) {
|
||||
// Also search bundles if CAVE_STATIC without context name
|
||||
for (String bundle : BundleScanner.getListOfBundles()) {
|
||||
localContexts.add(new LocalizationContext(context
|
||||
.getLocalizationType(), context
|
||||
.getLocalizationLevel(), bundle));
|
||||
}
|
||||
}
|
||||
} else if (isCaveConfigBase(context)) {
|
||||
localContexts.add(context);
|
||||
} else {
|
||||
serverContexts.add(context);
|
||||
|
@ -375,7 +404,7 @@ public class CAVELocalizationAdapter implements ILocalizationAdapter {
|
|||
contexts.length);
|
||||
|
||||
LocalizationManager manager = LocalizationManager.getInstance();
|
||||
if (serverContexts.size() > 0) {
|
||||
if (serverContexts.isEmpty() == false) {
|
||||
List<ListResponseEntry[]> entryList = manager.getListResponseEntry(
|
||||
serverContexts
|
||||
.toArray(new LocalizationContext[serverContexts
|
||||
|
@ -427,7 +456,7 @@ public class CAVELocalizationAdapter implements ILocalizationAdapter {
|
|||
}
|
||||
}
|
||||
|
||||
if (commands.size() > 0) {
|
||||
if (commands.isEmpty() == false) {
|
||||
UtilityRequestMessage msg = new UtilityRequestMessage(
|
||||
commands.toArray(new AbstractUtilityCommand[commands.size()]));
|
||||
|
||||
|
@ -493,9 +522,7 @@ public class CAVELocalizationAdapter implements ILocalizationAdapter {
|
|||
lr.date = entry.getDate();
|
||||
lr.fileName = entry.getFileName();
|
||||
lr.checkSum = entry.getChecksum();
|
||||
if (context.getLocalizationLevel() == LocalizationLevel.BASE
|
||||
&& (context.getLocalizationType() == LocalizationType.CAVE_CONFIG || context
|
||||
.getLocalizationType() == LocalizationType.CAVE_STATIC)) {
|
||||
if (isCaveConfigBase(context) || isCaveStaticBase(context)) {
|
||||
File file = getPath(context, lr.fileName);
|
||||
lr.isDirectory = file != null && file.isDirectory();
|
||||
} else {
|
||||
|
|
|
@ -96,8 +96,7 @@
|
|||
id="com.raytheon.uf.viz.core"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="org.apache.commons.collections"
|
||||
|
@ -164,8 +163,7 @@
|
|||
id="com.raytheon.uf.viz.alertviz.ui"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.common.status"
|
||||
|
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 150 B After Width: | Height: | Size: 150 B |
|
@ -19,8 +19,6 @@
|
|||
**/
|
||||
package com.raytheon.uf.viz.monitor.ffmp.ui.dialogs;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.events.PaintEvent;
|
||||
import org.eclipse.swt.events.PaintListener;
|
||||
|
@ -50,6 +48,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* Initial creation
|
||||
* Dec 7, 2012 1353 rferrel Covert to CaveSWTDialog and make non-blocking.
|
||||
* Aug 9, 2013 2033 mschenke Switched File.separator to IPathManager.SEPARATOR
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -194,8 +193,9 @@ public class FFMPSplash extends CaveSWTDialog {
|
|||
private String loadImage() {
|
||||
IPathManager pm = PathManagerFactory.getPathManager();
|
||||
String path = pm.getStaticFile(
|
||||
"ffmp" + File.separatorChar + "images" + File.separatorChar
|
||||
+ "ffmpLoading.png").getAbsolutePath();
|
||||
"ffmp" + IPathManager.SEPARATOR + "images"
|
||||
+ IPathManager.SEPARATOR + "ffmpLoading.png")
|
||||
.getAbsolutePath();
|
||||
return path;
|
||||
}
|
||||
|
||||
|
|