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 [formerly 0f3c791120 [formerly 5c707a35dcaedf5ae37119e56503aa8af59631fc]]
Former-commit-id: 0f3c791120
Former-commit-id: b95a96f4c9
This commit is contained in:
Max Schenkelberg 2013-08-09 14:24:49 -05:00
parent 3b787e12df
commit cb1d5d1c5b
3306 changed files with 191 additions and 10701 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

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

File diff suppressed because it is too large Load diff

View file

@ -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!!!...
#

View file

@ -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!!!...
#

View file

@ -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!!!...
#

View file

@ -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>.
#

View file

@ -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>.
#

View file

@ -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>.
#

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,5 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.
.,\
localization/

View file

Before

Width:  |  Height:  |  Size: 229 B

After

Width:  |  Height:  |  Size: 229 B

View file

Before

Width:  |  Height:  |  Size: 320 B

After

Width:  |  Height:  |  Size: 320 B

View file

Before

Width:  |  Height:  |  Size: 277 B

After

Width:  |  Height:  |  Size: 277 B

View file

@ -5,4 +5,6 @@ bin.includes = META-INF/,\
plugin.xml,\
statusMessage.xsd,\
config.xml,\
log4j-alertviz.xml
localization/,\
lib/,\
logback-alertviz.xml

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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