Skip Navigation Links 
NOAA logo - Click to go to the NOAA home page National Weather Service   NWS logo - Click to go to the NWS home page
Climate Prediction Center

About Us
   Our Mission
   Who We Are

Contact Us
   CPC Information
   CPC Web Team

HOME > Monitoring_and_Data > Oceanic and Atmospheric Data > Reanalysis: Atmospheric Data > web plotter: POC documentation

web plotter: POC documentation


Using the web plotter involves three people, the owner of the software (Wesley Ebisuzaki, WNE), the owner of the .ctl file and data (point of contact, POC) and the web surfer who is making the plots (surfer). [By owner, I am using the computer definition of the account which owns the files.]

WNE makes available a cgi-bin program which points to the POC's directory. This program has very limited customization options. There are no "custom" versions of this program available because this program undergoes frequent changes which makes maintaining custom versions too time consuming. WNE prefers to own the cgi-bin programs because WNE has scripts to update all the cgi-bin programs.

In the POC's directory are GrADS control files. These control files may refer to data on other directories but the control, index and data files must be visible (NFS mounted) by the web servers (SGI62 and SGI51). The POC's control file is where all the magic occurs. Through commands in the control file, the web plotter can make arbitrary plots. Color choices, titles, etc are controlled from the control file.

Standard GrADS Commands

  • TITLE comment
    The comment appears on the .ctl selection page
  • TDEF (daily data)
    For daily data, use 01may1997 instead of 00Z01may1997, looks nicer
  • TDEF (monthly data)
    For monthly data, use may1997 instead of 00Z01may1997, looks nicer
  • TDEF n
    Try to get n right. It tells people how much data is available.
    Define each variable with units in the comment field!
    Use "(hidden)" in the comment field to "hide" variables.
    Use "(hide)" in the comment field to "hide" variables in lite mode.

New Commands

The web plotter understands a simple language which allows you to customize plots. The syntax is very simple,

* [action]:[variable]:[field 1]:[field 2]:..:[field n]

Each embedded command starts with an asterisk and then a space. This is a GrADS comment so that the control file remains a control file. These new commands can be put anywhere in the file except between the VARS and ENDVARS statements. (Script limitation)

Customized Titles: title

The easiest command is the "title" command. This allows the POC to redefine the plot title.

* title:[variable]:new title

In the title command, you can use the symbolic variables such as $_level, $_hour, $_day, $_month, $_year. (Time series and hovmoller diagrams can also use $_fhour, $_fday, $_fmonth and $_fyear.) Note, the word "title" and the variable are case sensitive. In addition, there can only be one space separating the asterisk and the word "title". An example of a "title" command is,

* title:UGRD:Zonal wind (m/s) $_level mb $_hour $_day$_month$_year

Customized Settings: line, shaded

The variables and functions (following section) are plotted using the "shaded" and/or "line" code. When the default contour interval is chosen, the POC can modify the default contour intervals and colors by using the "line" and "shaded" commands. The "line" and "shaded" commands are ignored when the surfer selects a contour interval.

* [line|shaded]:[variable]:[level|*]:grads command

If the grads command applies to all the levels, use an asterisk in the level field. Almost always both "line" and "shaded" are used together otherwise a "shaded & line" plot will look strange. Any number of "shaded" and "line" commands can be included in the .ctl file. This example sets the default "clevs",

* shaded:precip:*:set clevs 0.1 .5 2 5 10 15 20 30 40 50 75 100

New Variables: function

The web plotter allows you to define new variables. Once a new variable is defined, it can be used in maps, time series and hovmoller diagrams. The syntax is,

* function:[variable]:[number of levels]:[defn]:[comment]

Note, the variable name can include spaces and hyphens, for example,

* function:isotach m/s:17:mag(UGRD,VGRD):wind speed (m/s)

The function command is very powerful when combined with the "init" command. Using the "init" command, one can define function which uses data from other control files.

More Data: init

The "init" commands are executed before any data is accessed. The main purpose of the "init" command is to open additional control files and perhaps process the data. These new data can be used in function and plot definitions. The "init" commands get executed after the domain has been defined but before the time (range) has been defined. They are useful for defining climatologies as that requires time manipulation.

Plotting data from a Second ctl File

Using the "function" and "init" commands, data from an other .ctl can be plotted. This very useful when trying to compare data or use data from someone else's control file. Note, the "original" control file is unit 1 and each control files opened by an "init" command are units 2, 3 etc.
* function:abc UGRD:17:UGRD.2:abc UGRD (m/s)
* init:abc UGRD:open abcdata.ctl

Making an Anomaly

Using the "function" and "init" commands, an anomaly can be created by
* function:olr anom:1:olr-olrclim:olr anomaly (79-95) (w/m/m)
* init:olr anom:open olrmonth.y1979.y1995.climo.ctl
* init:olr anom:set time jan1974 dec1974
* init:olr anom:define olrclim=olrc.2
* init:olr anom:modify olrclim seasonal

The "function" command defines the "OLR anomaly" to be the difference between the OLR and OLR climatology. The following four "init" commands are GrADS commands to create an OLR climatology by opening the OLR climatology, reading the data into a variable and making the variable into a climatology variable.


The "init2" commands are like the "init" commands except they are executed after the domain and time has been defined. "Init2" commands are useful for defining temporary variables.

* function:thick:1:x-y:1000 500 thickness
* init2:thick:define x=hgt(lev=500)
* init2:thick:define y=hgt(lev=1000)

Prespecified Plots: plot

The prespecified plot allows the POC the ultimate control and the web surfer almost no control over the plot. Using the prespecified plot, the POC can generate multi-panel displays, composite plots or vertical cross-sections. The prespecified plot is made by an embedded GrADS script. The POC has control over everything. Prespecified plots are only available for "map" even though the prespecified plots can be hovmoller diagrams and time series. The prespecified plot needs two statements, the "plot" specification

* plot:[variable]:[levels]:comment

and the any number of "display" commands,

* display:[variable]:GrADS command

The "plot" command defines the button that appears on the variable selection page (map only). The "display" commands define the GrADS commands needed to generate the plot. This is an example that plots the isotachs and draws wind barbs,

* plot:winds:17:isotachs (m/s) and wind vectors
* title:winds:isotachs $_level mb $_hour $_day$_month$_year
* display:winds:set gxout shaded
* display:winds:d mag(UGRD,VGRD)
* display:winds:run /your_dir//
* display:winds:set ccolor 98
* display:winds:run /your_dir/ ugrd vgrd


In the initialization code, a call to a modified is made. The main difference between my rgbset and Jae Schemm's is that color 98 is black and color 99 is white. In order that the colors in Xwindows and the png's are identical, you must not use colors 0 and 1. Replace 0 by 98 and 1 by 99.

GrADS Script

When the POC is adding embedded commands, he or she may need to know how the plots are being made. To see the GrADS scripts, make the plot, and then add "gradsfile=1&" into the URL after an "&" and then remake the plot. At the bottom of the plot, you should see the GrADS script.


NOAA/ National Weather Service
National Centers for Environmental Prediction
Climate Prediction Center
5830 University Research Court
College Park, Maryland 20740
Climate Prediction Center Web Team
Page last modified: May 15, 2005
Disclaimer Privacy Policy