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.
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:
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:
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.
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:
If a resource needs to be specifically set for a program, you can place the program name in place of the asterisk:
There are also named resources where a name is used in place of the program:
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".
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:
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.
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.
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:
So to simplify the plot_domain resource, you need to only specify:
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:
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
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.
Here are the methods for setting resources in WXP:
setenv wxpplot_domain at
setenv wxpuacalplt.color_data blue
sfcwx -cu=la -pd=mw -va=all
Enter the region: at
Enter the region: 40,-105,1.5
Enter the variable: temp[C]
Enter the variable: set color_map=lblue
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 firstname.lastname@example.org
Last updated by Dan Vietor on June 20, 2001