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

Date Resources

Data Analysis Parameters

Database Parameters

Plotting Parameters

Attribute/Color Parameters

Device/Window Parameters

Miscellaneous Parameters

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:

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:

   % sfcwx -help
   sfcwx: This program plots various types of surface data
   sfcwx syntax (version:5.0-X11)
      sfcwx [options...]
   Keyed options...
    -df file    Resource/defaults file name
    -na name    Program name
    -h          Print this help
    -ba         Run program in batch mode
    -me level   Message level to be displayed:
                  none,print,error,warn,mess,out1,*out2,out3,out4,debug
   ...
    -ic         Open window iconified
    -bg clr     Background color
    -ge wxh+x+y  Window geometry
   Positional options...
    file        Input file name

Program Prompts

Many WXP programs prompt the user for data.  Every prompt is a request for a resource value.  In some cases, you will enter the exact value for the resource as in a filename.

   List of available files:
   /noaaport/nwstg/convert/01062020_sao.wxp
   /noaaport/nwstg/convert/01062021_sao.wxp
   /noaaport/nwstg/convert/01062022_sao.wxp

   Enter the surface filename: 01062022

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.

           Region Menu

     1: Contiguous US                   --------------------               
     2: New England                     10: Western Canada                
     3: Atlantic                        11: Eastern Canada                
     4: Southeastern                    12: Northern Canada               
     5: Midwestern                      13: North America                 
     6: Southern Plains                 14: Indiana                       
     7: Northwestern                    15: Lafayette                     
     8: Southwestern                  
     0: Return to previous menu         -1: Exit program                  

   Enter the region: 3

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:

   Enter the region: ?
   back,us,ne,at,se,mw,sp,nw,sw,--,wc,ec,nc,namer,ind,laf

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:

   Enter the region: list
    Abbr    Description
   us       Contiguous US                                     
   us2      Contiguous US 2x                                    
   ne       New England                                       
   at       Atlantic                                          
   ...                                   
   ngm1     NGM                                               
   namere   North America Ext                                 
   nhem     North Hemisphere                                  
   shem     South Hemisphere                                  
   hi       Hawaii                                            
   ak       Alaska                                            
   ind      Indiana                                           
   laf      Lafayette                                         
   globe    Global
   ... 
   europe   Europe
   easia    East Asia                                           
   ...                               
   aust     Australia                                         
   wpac     West Pacific                                      
   antarc   Antarctica                                        

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:

           Variable Menu

     1: All Data                        13: Cloud Cover                   
     2: Temperature                     14: Pressure Tendency             
     3: Dewpoint                        15: 24 Hr Precip                  
     4: Wind Direction                  16: 24 Hr Maximum Temp            
     5: Wind Speed                      17: 24 Hr Minimum Temp            
     6: Wind Gust                       18: Snow Depth                    
     7: Wind Barb                       19: Wind Chill Temp               
     8: Sea Level Pressure              20: Heat Index                    
     9: Altimeter Setting               21: Relative Humidity             
    10: Present Weather                 22: Equiv Potential Temp          
    11: Visibility                      23: Convergence                   
    12: Cloud Ceiling                   24: Rel Vorticity                 
     0: Return to previous menu         -1: Exit program                  

   Enter the variable:

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:

   Enter the variable: set
   Set resources
   default: /storm/wxp/etc
   file_path: /storm/wxp/etc
   data_path: /rainbow/data/ddplus
   con_path: /rainbow/data/convert
   grid_path: /storm/wxp/grid
   raw_path: /storm/wxp/raw
   ingestor: split
   font_list: modern.fnt,gothic.fnt
   name_conv: hmdy
   current: la

You can then change any of these or set a new one by specifying the resource and its value:

   Enter the variable: set color_map=lblue

The resource is then set and the variable menu prompt returns.

Summary

Here are the methods for setting resources in WXP:

This should give you an idea on where resources can be modified and how to do it.  There will be more information on various resources in later tutorials.



For further information about WXP, email technical-support@weather.unisys.com
Last updated by Dan Vietor on June 20, 2001