WXP Resources 1

What are Resources?

Resources are used to set parameters for WXP programs. Each WXP program has a list of
resources that can be used to change input file parameters to output graphics
characteristics. Each resources has a default value compiled into the program.
Some of these resources default to a user prompt often with a menu of possible values.

You could just prompt the user for all of the resources but some WXP programs have over
30 available resources. This would make it to difficult to run the program. As a
result, many of the resources are not visible (menus or prompts) but can be set either on
the command line, through environment variables or with the resource file.

What are some typical Resources?

WXP has over 50 resources available. Each resource has a resource name and a
value which can either be a number, string or a list of values separated by commas.
Here is a list of typical resources used in WXP and a brief explanation of what
information they contain:

File Resources

name_conv - This defines the file which stores the naming convention information
for WXP. Every file WXP uses must adhere to a specific name convention which how
date and time information are contained in the file name. For example, /noaaport/nwstg/convert/01062023_sao.wxp
is a file name. The name convention specifies /noaaport/nwstg/convert/ as the
path, 01 as the year (2001), 06 as the month (June), 20 as the day, 23
as the hour and sao.wxp as the extension defining the file as surface data in WXP
converted data.

file_path - This defines the path to locate all WXP database files including city
databases (define station locations) and map databases.

data_path - This defines the path to locate all raw encoded data from the Family
of Services. Generally, the decoders and parsers use this resource but it is also used for
locating MOS data and some of the model gridpoint data.

con_path - This defines the path to locate all decoded/converted data files.
The WXP decoders will read data in from the data_path and place their output in the
con_path directory. Most WXP analysis programs then read from this directory

file_param - This resource controls how data files are handled. If the file
exists, should you overwrite it or append to it.

in_file - Defines what type of files are going to be used as input into the
program. This resource is used to define the input file format as well as the naming
convention.

out_file - Defines the type of output files. For some programs such as
decoders, this defines the output file format as well as the naming convention. For
others, it specifies whether the program will produce output or not.

filename - This specifies the actual filename to be used by a program.

Date Resources

current - This defines which data files is to be used based on the current time.
You can specify to use the latest file or a file which is X number of hours old.

hour - This limits the current resource to specific hour during the day.
This would be used if you want the latest 12Z file.

num_hour - This specifies how many data files to use. In parsing programs,
this extends the search for data to more than one data file. In display programs,
this specifies the number of hours to loop through.

Data Analysis Parameters

plot_domain - This specifies the domain and projection of the final plot.
There are several projections available in WXP which are discussed in more detail in
the Users Guide. The plot domain can be a predefined region that can be referenced
by an abbreviation such as "us".

time - This specifies the forecast time to be used in programs that deal with
forecast products.

level - This specifies the vertical level or layer to be used in the program.

variable - The variable or parameter to plot.

identifier - This specifies a list of specific station identifier to use.

stat_prior - Determines the priority level of the stations to be used. The
higher the number, the more stations will be used.

parameter - Some general parameters used in non-graphical programs.

Database Parameters

city_file - This lists the city database file to be used to locate station data.

map_file - This lists the map files to be used in creating the geographical
background maps.

Plotting Parameters

plot_type - Specifies the type of output plot

draw - Defines which parts of the plot are to be drawn such as map, text
labels and the plotted data itself.. This is handy for overlays where certain parts
of the plot may overlap another.

con_interval - Specifies the interval to be used in plotting and contouring data.

color_table - Specifies a file which contains a list of color that will be used
in the plots

Attribute/Color Parameters

color_text - Specifies the colors/attributes of the text labels drawn above and
below the plot.

color_map - Specifies the colors/attributes of the base map used in most
programs.

color_data - Specifies the colors/attributes of plotted data.

color_cont - Specifies the colors/attributes of the line contours.

color_fill - Specifies the colors/attributes of the color fill contours.

Device/Window Parameters

device - Specifies the output device type and parameters.

geometry - Specifies the geometry of the window or output plot.

title - Specifies the title to use on the window.

background - Specifies the background color to be used in the plot

Miscellaneous Parameters

help - Provides help for each program

message - This specifies the message level. This is handy in either
reducing the amount of text output from a program or increasing it for informative
purposes.

How to set WXP Resources

WXP has several methods for accessing and modifying resources. Not every resource is
called into a WXP program. For example, a decoder won't need color resources so it
is set up to ignore these resources even if they are modified. We will now discuss
each method in a bit more detail:

WXP Program Defaults

Each WXP program sets a default value for each of the resources that program needs.
These are hardcoded into the program but often these are modified. For
example, the data_path resource defaults to the current directory. Of course
you would rarely store data in the current working directory so this resource is usually
set to some other value. Some program defaults, allow the user to enter the value
of the resource through a menu and prompt. An example of this is the plot_domain
resource. As we saw in the previous tutorial, this resource is usually left to a
user prompt and a menu of possible choices is display.

WXP Resource File

Resources that rarely change should be listed in the resource file. This file
essentially contains WXP's default settings. The file can contain both global as
well as program specific resource values. Generally, at the top of the resource file
are all global resource values. An example of a global resource is:

*data_path: /noaaport/nwstg/data

If a resource needs to be specifically set for a program, you can place the program
name in place of the asterisk:

grbcalc.data_path: /noaaport/nwstg/model

There are also named resources where a name is used in place of the
program:

nids.data_path: /noaaport/nwstg/nids

The concept of a named resource will be discussed later.

The default resource file is .wxpdef (wxp.def for DOS/Windows).
The default location is the current working directory. If this file is
located in a different directory, the directory must be listed in the wxpdefault
environment variable:

setenv wxpdefault /home/wxp/etc

This is usually set up by the system administator and added to your shell
initialization script.

NOTE: WXP uses a license file whose location is dependent on the file_path
resource. If this is not set, you may get "invalid license to use WXP".

Environment Variables

WXP offers a complete set of environment variables for setting WXP resources. In
general, these will be used to set resources that will have the same value over a WXP
session. A good example of this is if you want to use the latest available file for
every program. To do this, you set the environment variable associated with the current
resource. The name of the environment variable is just "wxp" + the
resource name. So the current resource has an associated
environment variable named "wxpcurrent". Now returning to the
example, you would set the environment variable as such:

setenv wxpcurrent la

which is the way to specify the latest (la) available. Now each WXP
program will use the latest file and it won't prompt you for the file name.

All WXP resources have named environment variables as well. This works just like
the resource file by specifying "wxp" + program name + "."
+ resource. So if you want color_data resource for only uacalplt to be
red, then you would specify:

setenv wxpuacalplt.color_data red

Environment variables can be unset at any time to return WXP to its default setup:

unsetenv wxpuacalplt.color_data

So this makes a convenient mechanism for setting temporary values. The other place that
environment values are useful are in scripts, which will be discussed later. If
these settings are used often, you may want to add them to the resource file as named
resources.

Command Line

As expected, each resource can be specified on the command line. Most WXP
programs will prompt the user for critical information needed to run the program. But
prompting for everything would make WXP impossible to use. Thus command line
parameters/resource offer additional tailoring capabilities. Command line resources
only affect the WXP program that you are invoking. If you want resources to carry over to
other WXP programs, consider using environment variables. Using environment
variables for common resources will often reduce the number of resources you need to
specify on the command line.

The syntax for the command line is very similar to the to that for other methods.
Most of the WXP resources are keyed resources. This means that the resource
must be listed first and then the value. To specify that the resource is a keyed
resource, the resource name is preceded by a "-". The syntax is
"-" + resource name + "=" (optional) + its value.

sfcwx -plot_domain=at

In many cases it would be nice to not list the entire resource name in the key.
WXP provides two shortcuts. First, each resource has a 2 (sometimes 3) letter
abbreviation associated with it. Here is a sample list of abbreviations:

Resource

Abbr

Resource

Abbr

Resource

Abbr

Resource

Abbr

name_conv

nc

file_path

fp

data_path

dp

con_path

cp

grid_path

gp

raw_path

rp

file_param

pf

in_file

if

out_file

of

current

cu

num_hour

nh

hour

ho

decode_hour

dh

plot_domain

pd

region

re

time

ft

level

le

variable

va

identifier

id

stat_prior

pr

object_param

oa

parameter

pa

city_file

cf

map_file

mf

plot_type

pl

draw

dr

con_interval

in

con_base

cb

plot_scale

sc

plot_param

pp

font_list

fl

color_table

ct

color_text

cot

color_map

com

color_cmap

cocm

color_line

coln

color_data

cod

color_wind

cowd

color_cloud

cocd

color_cont

coco

color_fill

cof

color_front

cofr

device

de

geometry

ge

title

ti

icon

ic

background

bg

default

df

name

na

help

h

batch

ba

message

me

Command Line Resource Abbreviations

So to simplify the plot_domain resource, you need to only specify:

sfcwx -pd=at

The term keyed resource means that since each value is keyed, many
resources can be set, each with its key and entered onto the command line in any order.
For example:

sfcwx -de=d -pd=us -me=none -va=all -ti=US_PLOT -cu=la

This will plot a surface map with:

device output is the display "d"

the plot domain is the contiguous United States "us"

the message level is "none" which means all print statements
will be disabled cleaning up run for scripting

the plot variable is "all" which is a station model
(temperature, dewpoint, clouds, wind barb and pressure)

the window title is "US_PLOT"

the latest "la" will be used

Most WXP programs allow positional (non-keyed) resources. In most cases, this is
the filename resource. A positional parameter does not need to have the
resource specified and ONLY its value is listed:

sfcwx 01062022

Some programs like wxploop allow you to specify more than one file:

wxploop sfc1.gif sfc2.gif sfc3.gif sfc4.gif

The term positional means that they are order dependent. For wxploop, it
uses this list of files to load GIF images into the program for animation or looping.
They are loaded in the order they appear.

Keyed and Positional resources can be intermixed on the command line:

sfcwx -re=us -va=all 01062022 -de=d -me=none -ti=US_PLOT

In this case, we use the positional file parameter instead of the current resource
(-cu=la).

NOTE: Keyed resources can be listed more than once on a command line.
The LAST occurrence of a keyed resource is the value taken. All other
occurrences are ignored.

To get help on available resources, you can specify the help resource:

In most menu/option prompts, shorthands can be used. For example, the filename
can be entered as the full path "/noaaport/nwstg/convert/01062022_sao.wxp", the
name of the file "01062022_sao.wxp" or just the date portion of the file
"01062022". WXP handles putting the extension and the path on the filename
if not specified.

In other cases, a menu will appear. Each menu item has a resource value
associated with it. By entering the number from the menu, you are essentially
entering that value. It is just an abbreviation for the value.

As with the file prompt, there are several ways of entering data at a menu prompt.
First, you can enter the number associated with the selection. For example, I
want the Atlantic region, I would pick "3". Second, there is the
menu listing. You could have entered "Midwestern". There is
also the resource value. To get a list of possible resource values, you can type
"?" at the menu prompt:

The values are then listed and the prompt returns. You can see that the
associated value is "mw" so this could have been entered as well.
There are a number of preset regions that don't show up on the menu because of space
concerns. To get a full list of predefined regions, use the "list"
command:

Often the values are short and mostly easy to remember. As you get more adept at using
WXP, you will rarely look at the menu but will almost always enter the resource value.

Finally, there are non-menu resource values that can be selected. For the region
menu, a full plot domain value can be entered. This really generalizes the use of
menus to being interfaces into setting the resource:

Enter the region: lc,40,-105,1.4

Here, the values represent the projection (optional), central latitude, longitude and
the scale size of the plot (1 is appropriate for regional plots).

For the variable regions, the non-menu values encompass a whole list of variables WXP
can calculate. Each program has a predefined set of parameters either defined within
the program or through a variable file:

This menu only lists a small subset of what WXP can calculate. Again, you can
list the resource values with the "?" but this will only list those
values enabled in the menu. If you want all the available values, you can use the
"list" command. You can also create your own variables and modify
existing ones. Exactly how to do this will be left to a later tutorial. A
simple example of this is changing the units of a variable. For example, temperature
on surface plots is plotted in Fahrenheit. To change it to Celsius, just put the
desired units in brackets "[ ]":

Enter the variable: temp[C]

Finally, any WXP resource can be set from any WXP prompt. To view a list of set
resources (those with values other than the program defaults), use the "set"
command: