**The Collaborate_PoP_SnowAmt_QPF Procedure and Associated Smart Tools**

**Version 3.0**

John Rozbicki - National Weather Service, Buffalo, NY

phone: (716) 565-0013

email: [John.Rozbicki@noaa.gov]{.underline}

Paul Jendrowski - National Weather Service, Blacksburg, VA

phone (540) 552-1613

email: [Paul.Jendrowski@noaa.gov]{.underline}

**[Applicable IFPS Builds:]{.underline} 12.1+** (RPP equivalent: 18.5+)

**[Changes With This Version:]{.underline}** The procedure has been
modified to create the collaboration grids (PoP12hr, QPF6hr, and
SnowAmt6hr) using time constraints based on GMT (Greenwich Mean Time)
rather than LT (Local Time). **If you are using a previous version of
the tool**, **make sure you modify your localConfig.py file so that the
time constraints for the collaboration grids match those contained in
the samplelocalConfig.py file.** Also, the option to specify a default
edit area over which to run the Procedure has been added.

**[Introduction]{.underline}**

With the introduction of IFPS 11, the PoP, SnowAmt, and QPF grids are
now Afloating@, i.e., they are no longer fixed to specific 6 or 12 hour
intervals. While this change allows for more flexibility in forecast
preparation, it also creates two key problems for forecasters. First,
the duration of the PoP, SnowAmt, and QPF grids now varies considerably
from office to office, making the intersite coordination of these
elements much more difficult. Second, the NDFD Integrated Work Team has
recommended that the graphics for these elements still need to be valid
for fixed durations (12 hours for the PoP graphics and 6 hours for the
SnowAmt and QPF graphics).

The Collaborate_PoP_SnowAmt_QPF procedure addresses both of these
forecast issues by creating fixed 12-hour PoP (PoP12hr), 6-hour SnowAmt
(SnowAmt6hr), and 6-hour QPF (QPF6hr) grids based on the values
contained in the Afloating@ PoP, SnowAmt, and QPF grids. These new grids
may then be used for the purposes of intersite coordination as well as
web graphic generation.

In accordance with the NDFD, PoP12hr grids are created at 12-hour
intervals through 7 days, QPF6hr grids are created at 6-hour intervals
through 72 hours, and the SnowAmt6hr grids are created at 6-hour
intervals through 36 hours.

The procedure calls several Smart Tools which populate the PoP12hr,
SnowAmt6hr, and QPF6hr grids with data from the floating PoP, SnowAmt,
and QPF grids. The getMaxGrid Smart Tool reads the floating PoP grids
and assigns the maximum PoP value for each 12-hr period to the PoP12hr
grids. The getSumGrids Smart Tool is used to sum the SnowAmt and QPF
grids into the SnowAmt6hr and QPF6hr grids. Note that these two Smart
Tools are designed to be called from a procedure and will generate an
error if run interactively from the AEdit Actions@ dialog. A third
SmartTool, MakeTmpGrid, is a generic SmartTool for creating a temporary
grid from the active grid. This is used in this procedure to copy and
fragment the QPF and SnowAmt grids. The procedure deletes these
temporary grids when they are no longer needed within the tool.

**[Requirements]{.underline}**

-   The procedure and tools require that IFPS 12.1 (RPP 18.5) or greater
    be installed.

-   All of the floating PoP, SnowAmt, and QPF grids have been created
    before running the procedure/tools.

-   The PoP12hr, SnowAmt6hr, and QPF6hr elements exist in GFE \[i.e.
    these must be defined in your localConfig.py file (see the
    Installation and Customization section found below)\].

**[Usage]{.underline}**

After creating and saving the floating PoP, SnowAmt, and QPF grids, the
forecaster need only run the Collaborate_PoP_SnowAmt_QPF procedure once
to generate the PoP12hr, SnowAmt6hr, and QPF6hr grids needed for
intersite coordination.

When the forecaster runs the procedure, he/she is presented with a
dialog box that allows a choice of \"All\" or \"Selected Time\". If
AAll@ is chosen, the procedure will generate the collaboration grids
over preset time ranges. These time ranges begin with the current time
and extend out to 192 hours for the PoP12hr grids, 60 hours for the
SnowAmt6hr grids, and 96 hours for the QPF6hr grids. These ranges are
longer than the required minimum collaboration times to account for the
different times during the day when new grids may be added on to the end
of the forecast database. If ASelected Time@ is chosen, only grids that
intersect the active time selection in the grid manager will be used to
compute PoP12hr, SnowAmt6hr, and QPF6hr grids. Regardless of which
option is selected, the procedure checks for the existence of the source
grids so errors will not be generated if grids are missing from the end
of the time range. Errors are generated if the floating grids are
missing within a selected time range.

**[Notable Methodology/Assumptions Used]{.underline}**

When the Collaborate_PoP_SnowAmt_QPF procedure is run by the forecaster,
the floating SnowAmt and QPF grids are first copied to two temporary
elements, tmpSnowAmt and tmpQPF. The tmpSnowAmt and tmpQPF grids are
then **automatically fragmented** before being used by the getSumGrids
Smart Tool to create the SnowAmt6hr and QPF6hr grids. The usage of the
temporary elements in this process allows the original floating SnowAmt
and QPF grids to be preserved; the fragmenting ensures that no
tmpSnowAmt grid overlaps multiple SnowAmt6hr grids/no tmpQPF grid
overlaps multiple QPF6hr grids prior to running the getSumGrids tool.
This latter condition is important because such overlapping grids would
cause the tool to produce inaccurate SnowAmt6hr and QPF6hr grids. Once
the getSumGrids Smart Tool has executed and the SnowAmt6hr and QPF6hr
grids have been produced, the temporary elements are automatically
deleted.

To better illustrate the significance of fragmenting the tmpSnowAmt and
tmpQPF grids, let=s consider a simple example utilizing 3 forecast
tmpSnowAmt grids. For the sake of simplicity, we will assume that the
default duration for the tmpSnowAmt grids is 3 hours, and that both the
tmpSnowAmt and SnowAmt6hr grids are based on Greenwich Mean Time (GMT).
Note that the following also applies to tmpQPF even though it is not
discussed here.

The forecast tmpSnowAmt grids are as follows:

Grid 1 - Valid 12-15 GMT, amount = 0\" throughout;

Grid 2 - Valid 15-21 GMT, amount = 4\" throughout;

Grid 3 - Valid 21-24 GMT, amount = 0\" throughout.

If these grids are not fragmented before running the getSumGrids Smart
Tool, the tool will Asee@ a tmpSnowAmt grid with 4\" accumulations that
overlaps both the corresponding 12-18 GMT and 18- 24 GMT SnowAmt6hr
grids - and will therefore assign 4\" accumulations to **both**
SnowAmt6hr grids. This in turn would imply an event total of 8\" - not
exactly what had been intended by the forecaster.

On the other hand, fragmenting the tmpSnowAmt grids before running the
getSumGrids Smart Tool results in the following grids as input to the
tool:

Grid 1 - Valid 12-15 GMT, amount = 0\" throughout;

Grid 2 - Valid 15-18 GMT, amount = 2\" throughout;

Grid 3 - Valid 18-21 GMT, amount = 2\" throughout;

Grid 4 - Valid 21-24 GMT, amount = 0\" throughout.

Note that the 4\" tmpSnowAmt grid valid from 15-21 GMT has been split
into two three-hour grids containing values of 2\" throughout. This is
because GFE assumes a constant snowfall rate when fragmenting the grids.
Naturally, this isn=t always a valid assumption, but its currently the
only one available for the software to work with.

Executing the getSumGrids Smart Tool after fragmenting results in 2\"
accumulations in the corresponding 12-18 GMT and 18-24 GMT SnowAmt6hr
grids, which would imply an event total of 4\" - thereby matching the
original intent of the forecaster.

**[Installation and Customization]{.underline}**

*[Installation:]{.underline}*

1\. Copy the collaborate_v3.tar file to the /tmp directory of the
machine where you will be installing

the tools.

2\. Issue the following commands to untar the file, it will expand into
a collaborate_v3 sub-directory:

cd /tmp

tar -xvf collaborate_v3.tar

cd collaborate_v3

./GFE_module_installer.sh

This will install the Procedure and smart tools as user SITE. You can
use the -u \<user\> switch to specify a different GFE user to install
as.

3\. On dx4, edit your /awips/GFESuite/primary/etc/SITE/localConfig.py
file to define the PoP12hr, SnowAmt6hr, and QPF6hr elements as specified
in the samplelocalConfig.py file. This step is necessary even if you
have already installed Version 1.0, 2.0, or 2.1; the time constraints
for these elements have changed with Version 3.0. When done, be sure to
restart the ifpServer to make your changes take effect. See the sample
localConfig.py file for the lines you need to include in your file .
Note that this is an example file that only shows the lines you need to
insert in your localConfig.py; do not simply copy this file over your
existing file! If you need additional information on modifying your
localConfig.py file, help is available within GFE - go to the \"Help\"
menu and select \"Online Table of Contents\" - this will bring up
Netscape and will load the main GFESuite documentation page. Scroll down
to the \"Configuration Guides\" section; under \"Server Configuration\"
click on the link \"syntax for localConfig\". This will provide you with
a complete guide to modifying the localConfig.py file.

*[Customization:]{.underline}*

\(1\) Once set up, the Collaborate_PoP_SnowAmt_QPF Procedure will be
available under the "Consistency" pulldown menu in GFE. If you wish to
move it to a different menu, just change the MenuItems =
\["Consistency"\] line in the procedure to reflect the menu location you
desire.

\(2\) The time ranges for the \"All\" option are preset in the
Collaborate_PoP_SnowAmt_QPF Procedure. Search for the lines containing
\"self.createTimeRange(localhour\" and change if needed. The preset time
ranges are PoP out to 192 hours, QPF out to 96 hours, and SnowAmt out to
60 hours and should be okay for most sites.

> To change the default time selection from "All" to "Selected Time",
> edit the VariableList section in the Procedure from:

VariableList = \[

(\"Select Time Range:\",\"All\", \"radio\",

\[\"Selected Time\", \"All\"\]),

\]

to:

VariableList = \[

(\"Select Time Range:\",\"Selected Time\", \"radio\",

\[\"Selected Time\", \"All\"\]),

\]

\(3\) You may set up the Procedure to automatically run over a default
edit area if you so wish (the default setting is to not run the
Procedure over such an area). To specify a default edit area, search
within the Collaborate_PoP_SnowAmt_QPF Procedure for the "execute"
method. At the beginning of this method, you will find a section of code
that looks like this:

\# The following variable controls whether the tool uses a pre-defined
edit area.

\# Set to \"yes\" to use a pre-defined area; \"no\" otherwise. Use all
lowercase letters

\# when typing \"yes\" or \"no\".

\# Default Setting: \"no\"

UseDefaultEditArea = \"no\"

\# The following line specifies the pre-defined edit area used by the
tool (if applicable).

\# To use such an area, uncomment the line, and substitute the name of
your edit area for

\# \"editareaname\".

\# Default Setting: Not used (Commented out)

#DefaultEditArea = self.getEditArea(\"editareaname\")

> Following the instructions provided in the comments, first change the
> setting for the UseDefaultEditArea variable from "no" to "yes"; next,
> uncomment the "DefaultEditArea" line and substitute the name of your
> edit area for "editareaname".