The Package for Analysis and Visualization of Environmental data Frequently Asked Questions


Table of Contents

Welcome to the PAVE FAQ. If your question is not answered below, please be sure to examine the Known Bugs and Workarounds for PAVE, and the Main PAVE User's Guide.
  1. What platforms does PAVE run on?
  2. How do I download PAVE and install it on my system?
  3. Where can I find the latest PAVE documentation?
  4. Where can I find the latest FAQ?
  5. How can I get support for PAVE?
  6. Is PAVE available for the PC on NT or Linux? **ANSWER UPDATED 10/13/99**
  7. What are the known bugs in PAVE?
  8. How do I quit displaying PAVE's incredibly long copyright?
  9. What if Help..User Guide doesn't bring up the User Guide?
  10. Can I get the source code so I can build my own version of PAVE?
  11. How do I use a world map?
  12. How do I use my own map background?
  13. How do I get my data into PAVE?
  14. How do I load more than 26 datasets?
  15. How do I view remote data if I can't rsh to the remote machine?
  16. What if I see black spots in a tile plot legend?
  17. How do I control the size of GIF and postscript files?
  18. How do I view data for layers other than layer 1?
  19. How do I view a vector plot (e.g. for wind data)?
  20. How do I view a vector plot with another (scalar) variable in the background?
  21. Why aren't all the wind vectors displayed on vector plots?
  22. How do I view a vertical cross-section of data?
  23. How do I view a vertical cross-section of vector data?
  24. How do I get sliders to scroll one step at a time?
  25. What if I get a message like "Unable to load any usable fontset" on a Sun?
  26. How do I use the mean, sum, mint, and other similar operators?
  27. Why can't I read remote data files when running PAVE on a DEC?
  28. How can I change the default fonts used by PAVE?
  29. What do I do if only the super-user and the owner of the PAVE installation can run PAVE?
  30. Why can't I read back files that I've exported as netCDF?
  31. Why can't I read UAM-IV format files produced by UAM-V?
  32. When do I set the FINE_GRID flag in UAM-V meta files?
  33. How do I write a meta file for a UTM projection?
  34. Where can I get MPEG players for viewing PAVE animations?
  35. How do I create a time series plot for a single grid cell or a group of cells?
  36. How can I use PAVE to extract the time-series of data for a specific pollutant at a specific grid cell?
  37. How can I improve the resolution of postscript files produced by PAVE?
  38. Why does PAVE crash when I try to print a plot?
  39. Why do I sometimes get the message X Error: BadDrawable when saving an image from a script?
  40. How can I view the average of data over multiple time steps (e.g. an 8 hour average)?
  41. Why does PAVE print out some information and then crash with a segmentation fault or a memory fault?
  42. Why does the mpeg_play that comes with PAVE fail on some Suns?
  43. Why is part of the animation I saved obscured by non-PAVE windows?
  44. Can I use datasets with identical domain sizes but different grid resolutions in a single formula?
  45. How do I use scientific notation for numeric labels on tile plots?
  46. Why can't I create GIF files or MPEGs when I display PAVE back to a PC?
  47. Why won't PAVE accept the inputs I'm typing into the configure window?
  48. Why can't I create a mesh plot?
  49. What does the future hold for PAVE?

PAVE Questions and Answers

  1. What platforms does PAVE run on?
  2. The Package for Analysis and Visualization of Environmental data is available for AIX 4.x (IBM), IRIX 5.x (SGI), Solaris 2.x (Sun), OSF1 (DEC Alpha), and HP-UX 9.x (HP), Linux 2.x, and Windows NT. (Note: the NT version requires Interix and an X11 server such as Exceed.) Note that PAVE will also work on most operating system versions later than the ones specified here.

  3. How do I download PAVE and install it on my system?
  4. For instructions on how to download PAVE for your workstation and install it, please see http://www.cmascenter.org or http://www.ie.unc.edu/cempd.

  5. Where can I find the latest PAVE documentation?
  6. The latest PAVE documentation can be found at index.shtml.

  7. Where can I find the latest FAQ?
  8. The latest PAVE FAQ can be found at Pave.FAQ.html.

  9. How can I get support for PAVE?
  10. A bug tracking system that allows you to submit problems, questions, and suggestions via a web-based interface available at http://bugz.unc.edu. You can also query previously entered questions to check their status, etc. If you cannot use the new system for some reason, you may submit a problem or question via email to cmas@unc.edu.

    Please note that although the CMAS Pave Support staff welcome your suggestions for PAVE enhancements and bug fixes, they can not guarantee implementation of these suggestions. If you require detailed support or would like to fund enhancements to PAVE, a support contract can be put in place. If you are interested in such an arrangement, please contact us via e-mail to cmas@unc.edu

  11. Is PAVE available for the PC on Windows or Linux? **ANSWER UPDATED 10/13/99**
  12. PAVE is now available for Linux and for Windows machines with Interix (was OpenNT) installed!

  13. What are the known bugs in PAVE?
  14. The known bugs in PAVE are described in paveKnownBugs.html#Bugs.

  15. How do I quit displaying PAVE's incredibly long copyright?
  16. PAVE's copyright information can be displayed by typing -copyright as a command line argument, or into PAVE's standard input. (It is long because all of the copyrights for the public domain software used by PAVE are included.) Once you have read enough, you can quit from viewing this by typing Control-C or :q. This will return you to a standard PAVE session.

  17. What if Help..User Guide doesn't bring up the User Guide?
  18. If you try to bring up the User Guide from the Help menu, and you get a message like
    /pub/storage/edss/framework/EDSS/scripts/mosaic.wrapper: No such file or directory 
    then there is a problem with one of the dot files in your home directory. To correct this, quit out of PAVE, and type
    rm ~/.edss_exec_rc
    restart PAVE, and try to load the User Guide again.

  19. Can I get the source code so I can build my own version of PAVE?
  20. Source code for PAVE is now available from http://www.cmascenter.org. Note that there are a number of external libraries that are required to build PAVE from scratch. If you are building on a preexisting platform, try using the libraries and executables available with the PAVE distribution for that platform - otherwise you have a lot of compiling to do.

  21. How do I use a world map?
  22. As of PAVE version 1.4.1, you can display a world map for data whose domain falls partially or completely outside North America. First, a little background on how maps are drawn in PAVE. Maps are projected onto your data's grid from polylines stored in lat/lon coordinates in files in the directory:

    <top level PAVE dir>/<platform type>/bin/OPTIMIZE/maps/
    
    The map files in this directory include:

      OUTLCOUNTIES - county outlines
          OUTLHRES - country outlines for the world
    OUTLRIVERS3000 - rivers
     OUTLROADS3000 - roads
    OUTLSTATES3000 - high resolution state outlines
          OUTLUSAM - medium resolution state outlines
    
    Tile plots have a Map menu item which allows you to choose which one of these maps will be used in your plot. The default is medium resolution state outlines, which come from the file OUTLUSAM.

    When PAVE projects the map outlines onto your plot, it first "pre-clips" out many of the polylines in the file before projecting them. In this way, significant trigonometric calculations can be avoided on lines that wouldn't show up on your plot anyway. The default pre-clip range is as follows:

    	llLat =   10.0
    	llLon = -125.0
    	urLat =   80.0
    	urLon =  -60.0
    
    Lines falling outside of the pre-clip range will not be drawn on your PAVE plot. So any domain which partially or completely falls outside of this default pre-clip range will have an incomplete map when rendered within a default PAVE tile plot. The way to get around this is two-fold: first you will need to modify the default pre-clip range used by PAVE, and second you'll need to tell PAVE to use the world map rather than the default medium resolution state outlines.

    To modify the default pre-clip range used by PAVE, you can use either 1) environment variables set prior to launching PAVE, 2) command line arguments sent to PAVE at startup, or 3) arguments sent to PAVE's standard input after startup. First, choose a clipping range (bounded by lower-left and upper-right latitude, longitude coordinate pairs) that will enclose the entire geographic domain of your dataset. To use environment variables, enter the following commands at the command line prior to launching PAVE:

    	setenv PRECLIP_LLLAT <llLat>
    	setenv PRECLIP_LLLON <llLon>
    	setenv PRECLIP_URLAT <urLat>
    	setenv PRECLIP_URLON <urLon>
    
    Arguments used to modify the pre-clip range used by PAVE, are of the form:

    	-preClip <llLat> <llLon> <urLat> <urLon>
    
    In either of the above cases, all subsequent tile plots in that PAVE session will use the newly supplied default clipping range until the range is changed again.

    To tell PAVE to use the world map rather than the default medium resolution state outlines, there are two methods. One way is to use the -mapName command line argument with the full pathname/filename to the OUTLHRES file :

    -mapName "<pathname>/<mapFileName>" 
    
    causes PAVE to use the supplied map name instead of the default map for all subsequent tile plots. An easier way to obtain the same results for a given plot is to simply use a tile plot's pull down "Map" menu to select the world map, and that plot will then use the world map. However if you are creating multiple plots of your data, you will probably find the first method easier, as it affects all subsequent plots rather than just a single plot.

    Here is an example script which was used to create a tile plot with a dataset whose domain stretches from North America over to Europe and down to North Africa:

    #!/bin/csh
    #
    # world map example script
    #
    pave \
    -mapName \
    /pub/storage/edss/framework/EDSS/IRIX5_mips/bin/OPTIMIZE/maps/OUTLHRES \
    -preClip 0 -180 85 70 \
    -f /200p_scratch/thorpe/NA02_mc2_g0 \
    -s HFXa \
    -gtype tile
    

  23. How do I use my own map background?
  24. PAVE maps are stored in a binary format called McIDAS. McIDAS is a tricky little format, but it is very efficient space wise. The data itself is a series of polylines in lat/lon coordinates. You can specify for PAVE to use a different McIDAS map background file by using PAVE's -mapName argument.

    There is now a utility called arc2mcidas that allows you to translate ArcInfo '.gen' files with map line data into the McIDAS format, and then read it into PAVE. arc2mcidas is distributed with the latest PAVE release; you should be able to find it in

        <top level PAVE dir>/<platform type>/bin/OPTIMIZE/arc2mcidas
    

    The arc2mcidas input .gen format is pretty simple to get your data into, if you don't already have ArcInfo to generate that kind of file for you. Here is an excerpt from a sample .gen file:

    -----EXCERPT BEGINS AFTER THIS LINE-----
    1
     -85.684761         34.982353
     -85.683899         34.990894
    END
    2
     -85.691048         34.946201
     -85.688698         34.947845
     -85.685623         34.953197
     -85.684258         34.958153
     -85.682869         34.963562
     -85.683784         34.967682
     -85.684746         34.970894
     -85.684639         34.973164
     -85.684547         34.974976
     -85.684479         34.976337
     -85.684433         34.977245
     -85.684341         34.979057
     -85.684814         34.980892
     -85.684761         34.982353
    END
    ------------END EXCERPT-----------------
    
    The format of the .gen files used as input to the arc2mcidas program is simply some arbitrary number of polylines, each polyline's data is denoted by:
    -------------------------------------------------
    <integer polyline number>
      <float lat1> <float lon1>
      <float lat2> <float lon2>
      :
      :
      <float lastlat> <float lastlon>
    END
    -------------------------------------------------
    
    where the polyline number is totally ignored by arc2mcidas, and the lons are negative in the western hemisphere, the lats negative in the southern hemisphere, and every lat and lon must have a decimal in it. (note the ---- lines aren't part of the file format).

    See the How do I use a world map? FAQ question for more information on using different maps within PAVE.

  25. How do I get my data into PAVE?
  26. PAVE currently supports four input file formats: IO/API (netCDF), UAM-IV, UAM-V, and "chain files". These formats are further described in PAVE's User Guide, at paveDataInto.html#Data.

    If you have another data format which you would like to look at using PAVE, you should probably convert it into Models-3 I/O API format. There are several library and include files included with the PAVE installation for your architecture that will help you with the conversion. You will need to write either a C/C++ or a FORTRAN program linking with these libraries in order to translate your data. Or your might decide to modify the original code which generates your data to just generate Models-3 I/O API data directly.

    The files included with your PAVE installation are:

    	FDESC3.EXT
    	IODECL3.EXT
    	PARMS3.EXT
    	NETCDF.EXT
    	fdesc3.h      
    	iodecl3.h     
    	netcdf.h      
    	parms3.h
    	libm3io.a     
    	libnetcdf.a   
    
    These can be found under the lib directory for the architecture you are on. For example, on an SGI, they would be located in IRIX5_mips/lib/.

    There is source code for two example conversion programs is included with the PAVE distribution. One of them converts an ASCII ROM dataset with a Lat/Lon map projection, and the other converts a binary SAQM dataset with a Lambert Conformal map projection. Note that you will need additional libraries, and possibly header files, in order to successfully compile this code. These libraries and header files can be found in:

    <top level PAVE dir>/<platform type>/lib/*
    
    The example conversion code is in:

    <top level PAVE dir>/doc/pave/convert_to_m3ioapi/rom_to_m3ioapi/*
    <top level PAVE dir>/doc/pave/convert_to_m3ioapi/saqm_to_m3ioapi/*
    

    NOTE: these example codes will probably need to be adapted for use with your data files. They were written for specific data files being used for testing purposes, and were NOT originally intended to be cleanly written examples of how to easily convert generic gridded data data into PAVE format. However, they are being included here with the hope that you may find them useful.

    For more detailed information on how to use these libraries and header files with your conversion code, please see the EDSS/Models-3 I/O API Help Pages at http://www.ie.unc.edu/cempd/EDSS/ioapi/index.html.

  27. How do I view remote data if I can't rsh to the remote machine?
  28. Viewing remote data is easiest if you can rsh to the remote machine. Once your set up is correct (see the Requirements for Use section of the PAVE User Guide), all you should need to do is to click on the button in the center of the EDSS File Browser and pick a different machine on which to browse data. However, things are more complicated (but not impossible) if you can't rsh to the machine.

    First, you need to configure your account on the remote machine. (This should only need to be done once if you usually run PAVE on the same local machine.) To do this, add the following to your ~/.cshrc on that machine:

    Here the local_machine is the machine on which you will be running the PAVE user interface. To have the changes take effect, type source ~/.cshrc on the remote machine. Type `which visd` on the remote machine and make sure it returns a directory name. If it doesn't, then the setup_edss script on the remote machine may not be properly configured.

    To get started viewing remote data,

    If things have worked properly, you should see some messages appear on the remote machine. You should then be able to browse remote data on that machine. To choose the remote machine for browsing files, click on the button in the center of the browser (below the file and directory lists) and type in a host.

    For example, assume the local machine = tom.ncsc.org, the local user ID is george, and the remote machine=flyer.ncsc.org.

    Note that you will need to do the last step only each time you want to browse data with a new PAVE session.

  29. How do I load more than 26 datasets?
  30. Currently, the maximum number of datasets that can be loaded into PAVE is 26. There are no plans to increase this in the future. If you try to load in more datasets such that the letter that will be associated with a new data set is higher than z, bad things will happen. In this situation you need to delete some data sets and restart PAVE.

  31. What if I see black spots in a tile plot legend?
  32. Sometimes, PAVE is unable to allocate a color that it tried to allocate. In this case, you will see black regions appear in the legend of your tile plot. This situation usually occurs when you have gone back and forth between different color maps or adjusted the # Tiles slider multiple times. This is often accompanied by a message to standard output that says "Can't allocate ramp color xxx". To clear this situation, exit and restart PAVE. Note that the number of available colors can be affected by other applications running on your workstation that are using colors (such as netscape or mosaic). You can control the number of colors used by netscape with the -ncols command line argument. PAVE and netscape coexist better if you run netscape in the following way:
    netscape -ncols 64
    If you cannot get enough colors by restarting PAVE, try quitting other applications that use a lot of colors and then restart PAVE.

  33. How do I control the size of GIF and postscript files output from PAVE?
  34. You can adjust the size of the GIF and postscript images produced by PAVE by resizing the Tile Plot window before saving a GIF or postscript file. Also, the following command line arguments have been added to PAVE, to allow the user to control a tile or vector plot's height and/or width in pixels:

    	-height <tile plot height in pixels>
    	-width <tile plot width in pixels>   
    

    All subsequent plots will use the supplied value for height/width, until a non-positive value is supplied as a subsequent argument. At that point PAVE's default height/width will be used.

  35. How do I view data for layers other than layer 1?
  36. To view data for a layer other than Layer 1, first click on the dataset in the Dataset_popup for which you would like to view the other layers of data. Then under the Datasets menu, choose "Select Layer Ranges Matching Current Dataset". If the selected dataset has more than one layer, you should see a window with sliders for the highest and lowest layers to use. Set these both to the layer that you would like to see (i.e. they should have the same value). You can then draw a plot with any of the standard plot types from the Graphics menu. Note that all formulas that refer to the selected dataset will be changed to refer to the new layers.

  37. How do I view a vector plot (e.g. for wind data)?
  38. To view a vector plot, first load and select the data set that contains the vector data. Let's assume that this is wind data for this example. Next, click on each of the vector "species" in the species list for the file (e.g. UWINDa and VWINDa) to add them to the formula list. Then, paste a line like this into the window from which you started PAVE (i.e. PAVE's standard input):
    -vector UWINDa VWINDa 
    This will cause PAVE to draw a basic vector plot. By default the plot will appear with fixed length vectors. You can make the vectors scaled by their size using the Configure window for the vector plot - click on "Scale Vectors".

    If you are doing a vector plot from a script, you must enter the following commands before the -vector command:

    -s UWINDa
    -s VWINDa
    

  39. How do I view a vector plot with another (scalar) variable in the background?
  40. You can plot a variable in the background behind the vectors of a vector plot (but the other variable must be on the same grid). For example, if you loaded in a temperature data set for the same grid that the wind data is on, you can paste a line like the following into PAVE's standard input:
    -vectorTile TMPRh UWINDa VWINDa 
    and you will get a plot with wind vectors in the foreground and color temperature data as tiles in the background. A more common use might be to plot wind speed in the background like this:
    -s UWINDa
    -s VWINDa
    -s "sqrt(UWINDa*UWINDa+VWINDa*VWINDa)" 
    -vectorTile "sqrt(UWINDa*UWINDa+VWINDa*VWINDa)" UWINDa VWINDa 
    The first lines add the formulas for the scalar wind compenents and the wind speed to the formula list, and the last line draws the plot. This way you can show wind direction with fixed length vector and wind speed in the background.

    Note that you don't have to "type" the lines into standard input - you can copy and paste them with your X-windows system (with the middle mouse button if you're using xterms).

  41. Why aren't all the wind vectors displayed on vector plots?
  42. In versions prior to 1.6, PAVE used an algorithm to "thin" the vectors displayed on a plot so that the plot looked nice. However, some users found this limiting / confusing. In version 1.6, all vectors are displayed by default, but a command line argument is now available for plotting every n vectors.

  43. How do I view a vertical cross-section of data?
  44. To view a vertical cross section of data using the Tile Plot, first select the dataset in the Dataset List for which you would like to view the cross section. Then under the datasets menu, choose "Select Layer Ranges Matching Current Dataset". You should see a window with sliders for the highest and lowest layers to use. Set these appropriately depending on which layers you want to see. To see a vertical cross section, the lowest and highest should be different layers (as opposed to just plotting a horizontal cross section - in that case the min and max layers are set to the same value). [Note that you can also select a layer range for a formula using the corresponding options under the Formulas menu.]

    After selecting the layers you want to see, type a statement of the following form into PAVE's standard input:

    -subdomain 80 20 80 90
    
    Here the arguments to -subdomain are: x1 y1 x2 y2 to define the region to be selected. This will cause the data where x = 80, and y is between 20 and 90 to be selected. To see this region on the screen, you can choose "Select Regions of Interest Matching Current Dataset". A window showing the domain will come up. Alternatively, you can select the cells with the mouse, but this gets difficult when grid cells are small and you want to select a very precise area.

    Now that the layers and region to be plotted are selected, you need to set the cross section type. Under the Graphics menu, choose "Set Tile Plot Cross Section Type" and you will see a submenu of X, Y, or Z cross sections. To make a plot for the above example choose "X Cross Section" (remember this by noting that x is constant). Next, draw the plot with a formula using your dataset by choosing "Create Tile Plot" from the Graphics menu, and you will see the plot of that cross section. Currently, you cannot draw vectors on vertical cross section plots.

  45. How do I view a vertical cross-section of vector data?
  46. This is an abbreviated combination of the previous two questions (viewing vector plots and viewing a vertical cross section). In summary:
    1. Load and select a data set that contains vector data
    2. Click on the variables you want to use for the vector plot in the species list (e.g. UWINDa, VWINDa)
    3. From the Datasets menu, choose "Select Layer Ranges Matching Current Dataset"
    4. Set the sliders to the highest and lowest layers for which you want to see a cross section.
    5. Select the single row or column to plot either by typing
      -subdomain xmin ymin xmax ymax (note that either xmin=xmax or ymin=ymax for a vertical cross-section) into PAVE's standard input
    6. Choose "Select Regions of Interest Matching Current Dataset" from the Dataset menu to visualize the cross section you'll be viewing
    7. Under the Graphics menu, pull down "Set Tile Plot Cross Section Type", and select X Cross Section if xmin=xmax, or Y Cross Section if ymin=ymax
    8. For a vector only plot, type a line of the form -vector UWINDa VWINDa into PAVE's standard input; for an example of a vector plot with a tile background, type -vectorTile tile_formula UWINDa VWINDa
    On a vertical cross-section plot of vector data, the arrows displayed are actually showing horizontal direction (up for North, down for South, left for West, and right for East). For more information on vector plots in general, see the question about viewing vector plots.

  47. How do I get sliders to scroll one step at a time?
  48. To scroll only one step in any of the sliders used in PAVE (e.g. for the Hour in the animation window, or the # Tiles on the configure window), first click on the slider itself to select it, then use your left or right arrow buttons to scroll one step up or down.

  49. What if I get a message like "Unable to load any usable fontset" on a Sun?
  50. If you are running on a Sun whose OS has recently been upgraded, you may experience problems with PAVE's font settings. You may see messages like the following:

    Warning: Unable to load any usable fontset
    Warning: Cannot convert string "-dt-interface
    system-medium-r-normal-m*-*-*-*-*-*-*-*-*:" to type FontList
    Warning: Cannot convert string "-dt-interface
    user-medium-r-normal-m*-*-*-*-*-*-*-*-*" to type FontSet
    Warning: Unable to load any usable fontset
    Warning: Cannot convert string "-dt-interface
    user-medium-r-normal-m*-*-*-*-*-*-*-*-*:" to type FontList
    

    If this happens, in your .Xdefaults file, add the following lines:

    EDSS_Pave*background:   antiquewhite
    EDSS_Pave*foreground:   black
    EDSS_Pave*geometry:     +175+150
    EDSS_Pave*fontSet:      -b&h-lucida sans-medium-r-normal-*-*-*-*-*-*-*-*-*
    EDSS_Pave*fontList:     -b&h-lucida sans-medium-r-normal-*-*-*-*-*-*-*-*-*
    Browser*fontSet:        -b&h-lucida sans-medium-r-normal-*-*-*-*-*-*-*-*-*
    Browser*fontList:       -b&h-lucida sans-medium-r-normal-*-*-*-*-*-*-*-*-*
    

    This should do the trick. Note: you will either need to log out and log back in again, or do an "xrdb ~/.Xdefaults", in order for these changes to take effect.

  51. How do I use the mean, sum, mint, and other similar operators?
  52. > Hi:
    > Assuming that mean would provide average I tried and 
    > found that it does not work, The error is 'a formula must 
    > produce a grid of data' It appears that PAVE is intending to 
    > generate a number rather than averaging each grid cell in time.
    > I a m using the data consisting of 24 hr extract as xymap*.
    > Can you provide any explanation for the following mean, 
    > sum, mint, and maxt  which are part of PAVE formulas?
    > Thanks
    

    The operators you mention produce a single number calculated over the currently selected levels, rows, columns, and time steps for the given formula. The version of PAVE you have (PAVE 1.4beta or earlier) expects to always calculate an array of data to make a plot - so if your formula is something like mean(O3a), you get that message. If the formula is mean(O3a)/NO2a, you will get a plot.

    Subsequent versions of PAVE changed how this is handled. If you make a "plot" of mean(O3a), PAVE will now calculate the result and display it in the PAVE message window along with information about the currently selected domain from which that number was calculated.

    Here is what the operators you mention above specifically do, along with a number of other operators which also return a single number:

    mean    average cell value for all cells in currently selected domain
    sum     sum of all cell values in currently selected domain
    mint    time step index with minimum value in currently selected domain
    maxt    time step index with maximum value in currently selected domain
    minx    x index with minimum value in currently selected domain
    maxx    x index with maximum value in currently selected domain
    miny    y index with minimum value in currently selected domain
    maxy    y index with maximum value in currently selected domain
    minz    z index with minimum value in currently selected domain
    maxz    z index with maximum value in currently selected domain
    nrows   number of rows in the currently selected domain
    ncols   number of rows in the currently selected domain
    nlevels number of levels in the currently selected domain
    
            where "currently selected domain" includes the currently
            selected rows, columns, layers, and time steps.  So the
            currently selected domain is bounded by
    
                    (minx,miny,minz,mint)<->(maxx,maxy,maxz,maxt)
    
    

    The min and max operators behave a little differently:

    min     For each cell (i,j,k) in the currently selected domain,
    	this calculates the minimum value for that cell
    	over the currently selected time steps.  In other words,
    	the minimum value in cells (i,j,k,tmin..tmax).
    
    max     For each cell (i,j,k) in the currently selected domain,
            this calculates the maximum value for that cell
            over the currently selected time steps.  In other words,
            the maximum value in cells (i,j,k,tmin..tmax).
    
    Prior to PAVE version 2.1 alpha, there was a way (albeit cumbersome!) to get PAVE to average each grid cell in time. PAVE has a not well-known feature which allows you to specify an hour index after a variable name. For example, O3a:1 is the first hour of ozone. So, if you wanted to plot an each cell averaged in time over the first twelve hours of your data, you could enter and plot the following formula:

    (O3a:1+O3a:2+O3a:3+O3a:4+O3a:5+O3a:6+O3a:7+O3a:8+O3a:9+O3a:10+O3a:11+O3a:12)/12

    This is cumbersome and it also uses a lot of memory

    We currently recommend that you download the latest version of PAVE, and use the -nhouraverage option, or from the Graphics menu, select the Create NHour Average Tile Plot Menu item.

  53. Why can't I read remote data files when running PAVE on a DEC?
  54. You can read them, however this is only through a workaround script provided with the PAVE distribution in the scripts directory. The script is called decterm, and its contents are included here. You will need to modify it slightly in order to use it, according to the instructions at the top of the file.

    ##!/bin/ksh
    #
    # decpave - run PAVE on a dec
    #
    # Use this script if you want to run PAVE on a DEC alpha while
    # reading data on a remote machine.  There is a bug in the code
    # which prevents PAVE from successfully launching the remote
    # processes necessary to read data elsewhere.  This script
    # (which "wraps" around the pave script) takes care of launching
    # those processes for you.
    #
    # You will need to modify the following 6 lines to match your
    # remote machine name, remote login name, complete path
    # names to the remote visd and busd executables, local pave
    # script location, and complete path name to your local
    # busMaster executable.  Please see the PAVE documentation
    # if you need additional information on how to set up to
    # read data from remote machines.
    #
    REMOTEMACHINE=flyer
    REMOTELOGIN=thorpe
    REMOTEVISD=/usr/local/edss/framework/EDSS/unicos9_TS/bin/OPTIMIZE/visd
    REMOTEBUSD=/usr/local/edss/framework/EDSS/unicos9_TS/bin/OPTIMIZE/busd
    PAVE=/usr/staff/thorpe/pave/scripts/pave
    BUSMASTER=/usr/staff/thorpe/pave/OSF1_alpha/bin/OPTIMIZE/busMaster
    #
    $BUSMASTER > /dev/null 2>&1 &
    BUS_PID=${!}
    grep `hostname` /etc/hosts | grep -v '#' | head -1 | awk '{print $1}' | read SBUSHOST
    sleep 3
    SBUSPORT=`cat /tmp/sbus_port_$USER`
    rsh -l $REMOTELOGIN $REMOTEMACHINE env SBUSHOST=$SBUSHOST SBUSPORT=$SBUSPORT $REMOTEVISD &
    rsh -l $REMOTELOGIN $REMOTEMACHINE env SBUSHOST=$SBUSHOST SBUSPORT=$SBUSPORT $REMOTEBUSD &
    $PAVE "$@"
    echo kill $BUS_PID
    kill $BUS_PID
    

  55. How can I change the default fonts used by PAVE?
  56. If you don't like the default fonts used by PAVE, you can set your own fonts by putting lines like this in your ~/.Xdefaults file:

    EDSS_Pave*fontList: -*-lucida sans typewriter-*-r-*-*-14-*-*-*-*-*-*-*
    EDSS_Browser*fontList: -*-lucida sans typewriter-*-r-*-*-14-*-*-*-*-*-*-*
    
    The second line sets the font for the file browser used by PAVE. After adding these to ~/.Xdefaults, you must either logout and log back in again or enter "xrdb ~/.Xdefaults", then restart PAVE for these changes to take effect.

  57. What do I do if only the super-user and the owner of the PAVE installation can run PAVE?
  58. If you get a segmentation fault when running PAVE, but the super-user and the owner of the PAVE directories can run successfully, there is a likely file permission problem. Try changing the permissions of the .pave_exe.pave_usage.log file in your installation directory to be read/write for everyone. For example, on the Sun platform, this can be accomplished by

    	cd PAVE_DIR/SunOS5_sparc/bin/OPTIMIZE
    	chmod 666 .pave_exe.pave_usage.log
    

  59. Why can't I read back files that I've exported as netCDF?
  60. There is a problem with PAVE's Export to netCDF feature in PAVE versions prior to 1.5. If you export a formula more complex than a single species to netCDF, PAVE names the variable in such a way that it can't read the exported dataset back in. You may be able to read the dataset if you successfully update the variable name in the netCDF header. If you are having this problem and are using a version prior to 1.5, please download the latest version of PAVE.

  61. Why can't I read UAM-IV format files produced by UAM-V?
  62. The UAM-V documentation specifies that the dates in coarse grid AVERAGE and INSTANT files are Julian days. However, in some cases, these files have been generated with YYMMDD format instead of YYDDD format. Some versions of PAVE will not visualize these files if the date format is not YYDDD and an error message in the form of
    time must be in the range 00:00:00 1/1/1970 to 03:14:07 1/19/2038
    is printed. Ways to work around this include: convert the file to ASCII, change the date to YYDDD, then change it back to binary; or if you want to look at OTAG data, try getting xymap (low level ozone) files for the scenario(s) of interest. A workaround for this problem is implemented in PAVE 1.5. Please download the latest version of PAVE if you are having this problem.

  63. When do I set the FINE_GRID flag in UAM-V meta files?
  64. You should set the FIND_GRID flag in UAM-V meta files only for fine grid average and instantaneous files. The purpose of this flag is to account for the extra layer of grid cells in the x & y dimensions that exists in these files. The FINE_GRID flag should not be set for fine grid meteorology files. Note that scripts are available in $EDSS_DIR/scripts/make_in_metas and $EDSS_DIR/scripts/make_out_metas to assist you with generating meta files.

  65. How do I write a meta file for a UTM projection?
  66. A new example has been put in the user guide. See: paveDataInto.html#UTMMetaFile. Make sure the UTM_ZONE follows DX and DY.

  67. Where can I get MPEG players for viewing PAVE animations?
  68. The web site http://www.perry.com/resources.html has links to MPEG players.

  69. How do I create a time series plot for a single grid cell or a group of cells?
  70. First, you must select the cell(s) of interest, then you can create the plot. Select the cell(s) of interest by choosing Select Regions of Interest Matching Current Dataset (or Formula) from the Datasets or Formulas menu, or you can issue a command of the following form to PAVE standard input:
    -subdomain <xmin> <ymin> <xmax> <ymax>              
    Please see paveSubsetting.html#Subsetting for more information on subsetting. Once you have your subdomain of one or more cells selected, you can choose Create Time Series Line [or Bar] Plot from the Graphics menu.

  71. How can I use PAVE to extract the time-series of data for a specific pollutant at a specific grid cell?
  72. How can I improve the resolution of postscript files produced by PAVE?
  73. The PostScript format saved to by PAVE is simply a pixel map, so it doesn't actually have the drawing commands in it to provide good resolution on a printer. However, one workaround you could try is making your image huge. This would provide better resolution on a printer.

    You can resize a PAVE plot window interactively, or you can control the exact size of an image (height and width) using PAVE command line arguments -height and -width. If you'd like to make an image really really huge (bigger than the screen, for example), you'd need to use this method. See the PAVE documentation at paveScripting.html#Scripting for further information on the -height and -width command line arguments.

  74. Why does PAVE crash when I try to print a plot?
  75. In versions prior to 1.5, PAVE would crash if the PRINTER environment variable was not defined. Version 1.5 fixes this problem.

  76. Why do I sometimes get the message X Error: BadDrawable when saving an image from a script?
  77. If you get an X Error such as BadDrawable when creating a plot in a script it may be due to a timing error. e.g. this occurred with the following script:
    ...
    -titleString "Layer 1 VOC to NOx Ratio" \
    -subTitle1 "OTAG 1988 Basecase D" \
    -subTitle2 " < 4 = VOC limited, > 15 = NOx limited" \
    -gtype tile -saveImage MPEG /ssa/modeling/uamv/post/ratio88b.mpg \
    
    This is due to a timing problem. You can correct this by placing: -system \"sleep 5\" in between the -gtype tile and the -saveImage. This gives the plot time to draw before saving it.

  78. How can I view the average of data over multiple time steps (e.g. an 8 hour average)?
  79. In PAVE version 2.1 alpha, it is possible to compute nHour averages using the -NhourAverage command line option, or from PAVE's main GUI select the Graphics menu item and then select the menu Create N-Hour Average Tile Plot. Prior to PAVE version 2.1 it was possible to do this with PAVE, but the syntax was currently difficult. Here is an example of a formula to compute a six hour average:
    (O3a:1+O3a:2+O3a:3+O3a:4+O3a:5+O3a:6)/6
    For versions prior to PAVE version 2.1 we recommended that you preprocess the data with a program external to PAVE and then use PAVE to view the results. EPA's SCRAM site at http://www.epa.gov/ttn/scram may have such a utility.

  80. Why does PAVE print out some information and then crash with a segmentation fault or a memory fault?
  81. Note that the example below should not occur with PAVE version 2.1 or later. If the file $EDSS_DIR/$EDSS_ENV/bin/OPTIMIZE/.pave_exe.pave_usage.log is not writable by the user running PAVE, then versions of PAVE prior to 1.5 will crash as in this example from a Sun:
    pave
     
    Starting up the software bus...
     
        Package for Analysis and Visualization of Environmental data        
                   PAVE v1.4.2 15 Dec 1997 12:12:57
                                                                            
                    For further information on PAVE:                        
    Copyright Info: type -copyright in PAVE's standard input                
             Usage: type -usage in PAVE's standard input                    
        User Guide: http://www.emc.mcnc.org/EDSS/pave_doc/index.shtml       
               FAQ: http://www.emc.mcnc.org/EDSS/pave_doc/Pave.FAQ.html   
             Email: pave@emc.mcnc.org                                 
     
    /env/apps/edss/subsys/frmwk/scripts/pave[531]: 28068 Segmentation Fault
    
    To correct this problem, the person who installed PAVE must do
    chmod a+w $EDSS_DIR/$EDSS_ENV/bin/OPTIMIZE/.pave_exe.pave_usage.log
    
    Better error reporting for this situation is implemented in version 1.5.

  82. Why does the mpeg_play that comes with PAVE fail on some Suns?
  83. On some Sun machines, you may get an error such as the following when running the mpeg_play that comes with PAVE:
    ld.so.1: mpeg_play: fatal: libX11.so.5.0: can't open file: errno=2
        Killed
    
    This occurs because mpeg_play was compiled on a computer with access to libX11.so.5.0. If this is not available on your system, then mpeg_play may not run. However, you can download mpeg_play off the internet and build it to run on your system. The web site http://www.perry.com/resources.html has links to mpeg_play and other MPEG players.

  84. Why is part of the animation I saved obscured by non-PAVE windows?
  85. The way images are saved in PAVE is by grabbing it off of the X-windows display (after which point it is saved to an XWD formatted image and then converted to gif or another format). Therefore if there is another window obscuring all or part of the image while it is being saved, that part of the other window will be saved instead.

    Thus, if you are exporting animations or otherwise saving images in PAVE, the window of interest must be in the foreground and should not be obscured by any other windows during the time that the images are captured. When saving an animation, the images are first captured, and then go through several conversion steps. It is OK to put the PAVE window in the background during the conversion steps (i.e. once it has finished animating the image).

  86. Can I use datasets with identical domain sizes but different grid resolutions in a single formula?
  87. You cannot combine two datasets with different grid resolutions in a formula in PAVE (e.g. to calculate a difference). Think of the datasets as matrices - you can't add or subtract two matrices of different dimensions and get a meaningful result. If you need to do something like this, use a program external to PAVE to aggregate the finer grid to the same dimensions as the coarser one or to interpolate the coarser grid to the same dimensions as the finer one, then load the resulting dataset into PAVE.

  88. How do I use scientific notation for numeric labels on tile plots?
  89. The Format field on a tile plot's Control...Configure menu's dialog box can be set to adjust the tile plot legend's number format. For example, if you set it to (in the C language's printf() routine's format syntax) %4.2e (then hit return), the numbers on the legend will then look like:

    9.49e-02

    These configurations can be saved to a file, and used in future pave sessions. For example, if /home/user/config contains the single line:

    Legend_Format   %4.2e
    
    and you start pave using
    pave -configFile /home/user/config
    
    then all of your plots will automatically use this notation. In fact, you might want to just alias "pave" to be "pave -configFile " if you always want this. Please see the Configuring Plots section of the PAVE User Guide at paveConfigure.html#Configuring for further information on how to do this.

  90. Why can't I create GIF files or MPEGs when I display PAVE back to a PC?
  91. With PAVE version 2.1 Alpha, we have changed how we generate gif images, to avoid this problem. If you experience it with a previous version, we recommend that you download the latest version of PAVE.

    Prior to PAVE version 2.1 Alpha, when you displayed PAVE back to a PC using software such as Hummingbird's Exceed, a problem can result when trying to create GIFs or MPEGs due to the number of colors available on the PC display. You may see a message in the PAVE window like:

    Writing XWD image '/home/eyth/test.gif.xwd'...
    Converting '/home/eyth/test.gif.xwd' to GIF image '/home/eyth/test.gif'...
    imconv: /home/eyth/test.gif.xwd: XWD 24-bit images must be stored in 32-bit units
    imconv: Read failed
    
    For versions prior to PAVE 2.1 Alpha, if you wish to capture images while displaying to a PC, bring up your PC's Display properties and set the Color Palette to use 256 colors. This problem does not occur when displaying back to UNIX machines.

  92. Why won't PAVE accept the inputs I'm typing into the configure window?
  93. If you're entering a value on the configure window (e.g. minimum or maximum) and the change isn't reflected in the plot, be sure to hit return after typing in the new value. This will cause PAVE to accept the new value and adjust the plot accordingly.

  94. Why can't I create a mesh plot?
  95. If you are using a display with other than 8 bit color (i.e. 256 colors), the mesh plot may not work. Many systems allow you to configure this display setting. On windows, you can bring up the display properties window and on the Settings tab set the Color Palette to 256. On Linux, you can start X-windows with the command startx -bpp 8.

  96. What does the future hold for PAVE?
  97. We would love to add a number of features to PAVE, but unfortunately at the current time we are out of funds to use for PAVE development. If you or someone you know is interested in some of these features and has ideas about how to obtain funding to continue development, please contact us via email to cmas@unc.edu.

    Some of the features we would like to add are listed below.