This tour will introduce the basic capabilities
 of the FERRET program through examples.
 As you continue your tour,
 you'll see exactly the commands that control Ferret.   
The commands will be in capital letters;  FERRET prompts 
for input with the word "yes?"
Click one time  with mouse button one on the small image under the commands to bring up a full-sized image of the plot produced.
  Suppose we want to plot values of 1/i for the first 10 integers
 i = 1, 2, 3, ..., 10
 We can do that with the following command:
yes? PLOT/i=1:10 1/i
 
We can change the aspect ratio of the plot to a more pleasing size and shape and re-draw the plot
yes? SET WINDOW/SIZE=0.5/ASPECT=0.5 yes? PLOT/i=1:10 1/i
 
We can do the plot with marker symbols instead of a smooth curve:
yes? PLOT/i=1:10/SYMBOLS 1/i
 
We can define a new variable, "inverse", and give it a title of our choosing. In this plot we use both custom plot marks and a line and we specify the vertical plotting axis range.
yes? LET/TITLE="My inverse of I" iinverse = 1/i yes? PLOT/i=1:10/SYMBOLS=2/LINE/VLIMITS=-1:2:0.25 iinverse
 
We can combine several functions on the same plot
yes? PLOT/i=1:10 1/i, 1/(i+3), 1/i + 1/(10-i)
 
Now we'll plot all of the preceding graphs again, but in a single window. The parts of the window are called "viewports". They are named UL (for "upper left"!), LL, LR, and UR.
yes? SET WINDOW/SIZE=.9 ! (bigger 'cause there will be 4 plots) yes? SET VIEWPORT UL yes? PLOT/i=1:10 1/i yes? SET VIEWPORT LL yes? PLOT/i=1:10/SYMBOLS 1/i yes? SET VIEWPORT LR yes? PLOT/i=1:10/SYMBOLS=2/LINE/VLIMITS=-1:2:0.25 iinverse yes? SET VIEWPORT UR yes? PLOT/i=1:10 1/i, 1/(i+3), 1/i + 1/(10-i)
 
Other forms of graphics are also available. Here we are just playing with simple 2-dimensional mathematical functions. Contouring ...
yes? CANCEL VIEWPORT yes? SET WINDOW/ASPECT=0.8/SIZE=0.5 yes? LET circle = ((i-20)^2 + (j-20)^2) ^ 0.5 yes? CONTOUR/i=1:40/j=1:40 circle * exp((10-(i+j))/50)
 
Vector arrows ... (later you will see how to overlay vector arrows)
VECTOR/i=1:20/j=1:20 i+cos(j/5)+5,i-j
 
A "raster" of color-shaded grid rectangles and a color key ...
yes? SHADE/i=1:40/j=1:40 cos(i/5)*sin(j/10)
 
The same figure drawn as a color-filled contour plot ...
yes? FILL/i=1:40/j=1:40 cos(i/5)*sin(j/10)
 
And a wire frame drawing (using more advanced grid definition commands)
yes? DEFINE AXIS/X=-4:4:.2 xax40 yes? DEFINE AXIS/Y=-4:4:.2 yax40 yes? DEFINE GRID/X=xax40/Y=yax40 g_gauss yes? SET GRID g_gauss yes? LET GAUSS = 2*EXP(-1*((x[g=g_gauss]/2)^2 + y[g=g_gauss]^2)) yes? WIRE/VIEWPOINT=-4,-10,4 gauss yes? SET GRID ABSTRACT ! restore default grid for demos
 
 Now we'll look at some real world data.
   To begin we inform FERRET of the "data set" of interest using the
  SET DATA command.  The ETOPO120 data set contains the relief of the
  surface of the earth at 120 minute resolution
yes? SET DATA etopo120
We can query FERRET for the contents of the data set with the SHOW DATA command. The output of SHOW DATA immediately follows the command, below.
 
yes? SHOW DATA
     currently SET data sets:
    1> /home/e1/tmap/fer_dsets/descr/etopo120.des  (default)
 name     title                             I         J         K         L
 ROSE     RELIEF OF THE SURFACE OF THE EA  1:180     1:90      1:1       1:1
 What we see is a single variable, "ROSE", and its 4-dimensional limits.
  The letters I,J,K and L refer to its limits along the X,Y,Z, and T axes,
  respectively.  ROSE is a 2-dimensional variable;  it exists in the XY
  (latitude-longitude) plane.
   Lets look at a shaded plot of the earth's relief.
  Since we don't specify any limits the full extent of the data
  will be used.
yes? SHADE ROSE
 
Or we can zoom in on North America (long. 160W:40W, lat. 20N:70N) using a 500 meter vertical resolution and a filled-contour plot.
yes? FILL/X=160W:40W/Y=20N:70N/level=(-7000,4000,500) ROSE
 
... and overlay the continental boundaries. The "1" below specifies pen color one (black) for the continents. The GO command can run "scripts" to perform a wide variety of tasks. Go scripts are files of ordinary FERRET commands.
yes? GO land 1
 
Now let's turn our attention to another data set -- the Comprehensive Ocean Atmosphere Data Set ("COADS")
yes? SET DATA coads_climatology
yes? SHOW DATA coads_climatology
     currently SET data sets:
    2> /home/e1/tmap/fer_dsets/descr/coads_climatology.des  (default)
 name     title                             I         J         K         L
 SST      SEA SURFACE TEMPERATURE          1:180     1:90      1:1       1:12
 AIRT     AIR TEMPERATURE                  1:180     1:90      1:1       1:12
 SPEH     SPECIFIC HUMIDITY                1:180     1:90      1:1       1:12
 WSPD     WIND SPEED                       1:180     1:90      1:1       1:12
 UWND     ZONAL WIND                       1:180     1:90      1:1       1:12
 VWND     MERIDIONAL WIND                  1:180     1:90      1:1       1:12
 SLP      SEA LEVEL PRESSURE               1:180     1:90      1:1       1:12
As you can see there are a number of variables and there are 12 points on the time (L) axis. Within FERRET "variables" are always defined on "grids"; "grids" are always composed of 1 to 4 "axes"; and "axes" are composed of numerous points. We can query FERRET to learn more about the grid and axes upon which the variable SST is defined using the SHOW GRID command. (The output of "SHOW GRID SST" follows the command.)
yes? SHOW GRID SST
    GRID COADS2
 name       axis              # pts   start                end
 COADSX    LONGITUDE          180mr   21E                  19E(379)
 COADSY    LATITUDE            90 r   89S                  89N
 normal    Z
 TIME1     TIME                12mr   16-JAN      06:00    16-DEC      01:2    
We can further enquire about the coordinates of axis points by specifying which axis and what range of values we are interested in. For example:
yes? SHOW GRID/L=1:4 SST
    GRID COADS2
 name       axis              # pts   start                end
 COADSX    LONGITUDE          180mr   21E                  19E(379)
 COADSY    LATITUDE            90 r   89S                  89N
 normal    Z
 TIME1     TIME                12mr   16-JAN      06:00    16-DEC      01:20
           L     T                 BOX_SIZE       TIME_STEP (hour)
           1>  16-JAN      06:00     730.48         366
           2>  15-FEB      16:29     730.48         1096.5
           3>  17-MAR      02:58     730.48         1827
           4>  16-APR      13:27     730.48         2557.5
OK. Now lets use the SHADE command to make a color shaded plot of the sea surface temperature at the first time step, and overlay "filled" continents instead of an outline. Notice the regions where there are gaps in the COADS data set
yes? SHADE/L=1 SST yes? GO fland
 
Just as simply we can look at the air-sea temperature difference.
yes? SHADE/L=1 AIRT-SST yes? GO fland ! overlay "filled" continents
 
And we can overlay a vector arrow plot of the surface winds, too. The combination of high wind speeds and large air-sea temperature difference suggests some regions of the worlds oceans where the sensible heat exchange may be very large -- for example off the Atlantic coast of North America.
VECTOR/OVERLAY/L=1 UWND, VWND
 
  A thought exercise to the viewer:
 If sensible heat exchange can be computed by the equation
 OK... Lets look at the annual variation of the sea surface temperature
 by displaying the four seasons on a single plot.
  QSENS = COEF * WSPD * (AIRT-SST)
 where WSPD is the COADS wind speed and COEF is an arbitrary coefficient
yes? SET WINDOW/SIZE=0.7 yes? SET VIEW Ul yes? SHADE/L=3 sst yes? SET VIEW UR yes? SHADE/L=6 sst yes? SET VIEW LL yes? SHADE/L=9 sst yes? SET VIEW LR yes? SHADE/L=12 sst
 
 It's difficult to pick out the differences in the fields, isn't it ?
   FERRET has many ways to help you explore this kind of problem.
  Lets begin by looking at the average over all 12 time steps.
  We do this with the "AVE" transformation applied to the time axis.
   "SHADE/LINE" tells FERRET to overlay contour lines instead of
  putting a color key on the plot.
yes? CANCEL VIEWPORTS yes? SHADE/LINE SST[L=1:12@AVE]
 
 
  Now lets look at how the first time step differs from this average.
  We'll use a color palette that emphasizes which regions are
  positive and which are negative.
   Notice that the plot is for January.  The northern hemisphere is in
  winter -- hence colder than the annual average.  The opposite is true
  in the southern hemisphere.
yes? SHADE/PALETTE=centered SST[L=1] - SST[L=1:12@AVE] yes? GO fland
 
Now lets look at the four seasons as we did before -- but this time plotting the anomaly from the annual average field. The contour levels were chosen to emphasize the variations.
yes? SET WINDOW/SIZE=.7 yes? LET SST_AVE = SST[L=1:12@AVE] yes? LET/TITLE="SST Anomaly" SST_ANOM = SST - SST_AVE yes? SET VIEW UL yes? SHADE/L=3/LEVELS=(-14)(-5,5,1)(14) sst_anom yes? SET VIEW UR yes? SHADE/L=6/LEVELS=(-14)(-5,5,1)(14) sst_anom yes? SET VIEW LL yes? SHADE/L=9/LEVELS=(-14)(-5,5,1)(14) sst_anom yes? SET VIEW LR yes? SHADE/L=12/LEVELS=(-14)(-5,5,1)(14) sst_anom
 
 
  Lets focus our attention at a particular longitude, say, X=180, the
  International Dateline.  We can get an accurate picture of the SST
  changes there by producing a 2-dimensional view along the Y and T axes.
  We will use the SET REGION command to confine ourselves to X=180.
  The time axis of this data set is referred to as a "modulo" axis
  -- that is, the first month follows on after the last in a circular way.  
  So the L=1:48 qualifier
  repeats the data over 4 cycles in time -- emphasizing its modular nature.
yes? CANCEL VIEWPORTS yes? SET WINDOW/SIZE=.5 yes? SET REGION/X=180 yes? FILL/Y=70S:70N/L=1:48/LEVELS=(-7,7,1) SST_ANOM
 
Our plot shows the expected out of phase behavior between north and south. Lets summarize the results by averaging separately within the northern and southern temperate zones (23.5 to 65 degrees latitude). We can then plot the two time series that result.
yes? SET WINDOW/ASPECT=0.4 yes? LET NORTH = SST_ANOM[Y=23.5N:65N@AVE] yes? LET SOUTH = SST_ANOM[Y=65S:23.5S@AVE] yes? PLOT/L=1:48 NORTH, SOUTH
 
We can list the first 5 months to the screen with the LIST command:
yes? LIST/L=1:5 NORTH, SOUTH
             DATA SET: /home/e1/tmap/fer_dsets/descr/coads_climatology.des
             COADS Monthly Climatology (1946-1989)
             TIME: 01-JAN to 01-JUN
             LONGITUDE: 179E
 Column  1: NORTH[Y=23.5N:65N] is SST_ANOM[Y=23.5N:65N@AVE]
 Column  2: SOUTH[Y=65S:23.5S] is SST_ANOM[Y=65S:23.5S@AVE]
                  NORTH  SOUTH
 16-JAN      / 1: -2.475  1.818
 15-FEB      / 2: -3.063  2.203
 17-MAR      / 3: -3.153  1.931
 16-APR      / 4: -2.765  1.183
 16-MAY      / 5: -1.677  0.049
 Sending the listed results to a file (with a variety of formats)
  requires only the addition of "/FILE=filename".
  This is the end of the tour.  
You've been shown a number of FERRET's capabilities:
  And there's much more.  Thanks for stopping by!