The Package for Analysis and Visualization of Environmental data Frequently Asked Questions |
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
/pub/storage/edss/framework/EDSS/scripts/mosaic.wrapper: No such file or directorythen 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_rcrestart PAVE, and try to load the User Guide again.
<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 outlinesTile 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.0Lines 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
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.
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.aThese 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.
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.
netscape -ncols 64If you cannot get enough colors by restarting PAVE, try quitting other applications that use a lot of colors and then restart PAVE.
-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.
-vector UWINDa VWINDaThis 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
-vectorTile TMPRh UWINDa VWINDaand 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 VWINDaThe 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).
After selecting the layers you want to see, type a statement of the following form into PAVE's standard input:
-subdomain 80 20 80 90Here 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.
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.
> 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.
##!/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
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.
cd PAVE_DIR/SunOS5_sparc/bin/OPTIMIZE chmod 666 .pave_exe.pave_usage.log
time must be in the range 00:00:00 1/1/1970 to 03:14:07 1/19/2038is 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.
-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.
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.
... -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.
(O3a:1+O3a:2+O3a:3+O3a:4+O3a:5+O3a:6)/6For 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.
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 FaultTo correct this problem, the person who installed PAVE must do
chmod a+w $EDSS_DIR/$EDSS_ENV/bin/OPTIMIZE/.pave_exe.pave_usage.logBetter error reporting for this situation is implemented in version 1.5.
ld.so.1: mpeg_play: fatal: libX11.so.5.0: can't open file: errno=2 KilledThis 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.
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).
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.2eand you start pave using
pave -configFile /home/user/configthen all of your plots will automatically use this notation. In fact, you might want to just alias "pave" to be "pave -configFile
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 failedFor 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.
Some of the features we would like to add are listed below.
(This is being funded for development for PAVE release 2.1 Alpha)
There are many possibilities here - we can plot explicit points, or gridded observations. There are a several potential types of rendering including colored circles or textual numbers at observation sites, and contour lines showing the observations (with the first two being easier to incorporate). It is likely that once we have the ability to plot explicit points, we can use the software to view point source emissions data of various types.
All (This is being funded for development for PAVE release 2.1 Alpha)
PAVE capabilities (as are practical) should be available via scripts and standard input.
People often want to use simple statistics to assist with there data analysis (e.g. mean, std. dev.). It would be good if PAVE could produce these. In addition, people may want to slice the data in different ways to obtain these statistics (e.g. mean for each time step or for each vertical layer). There are also a number of commonly used statistics that deal with comparing model data with observations. We may want to examine the "tables" generated for OTAG for ideas for other typically used statistics.
PAVE performance, both CPU and memory related, can be improved in a number of ways. For example, loops can be reordered to reduce paging to disk, memory leaks can be plugged, and memory can be reused in some formulas.
The PAVE user interface could use a number of enhancements. Probably the most important of these is to make all plots accessible via the user interface. For example, vector plots, scatter plots, and time series plots with multiple lines are not currently available via the user interface. In addition, small usability improvements could include: an hourglass cursor when PAVE is busy, an indicator of which "mode" a PAVE tile plot is in (e.g. probing, zooming, time series), making changes to the min and max take effect without hitting return, giving windows more meaningful names, and many more.
Additional kinds of plots have been requested by users. Some examples include: vertical cross section plots where the size of the layers is proportional to actual layer size, vertical profiles, contour plots, flux plots, observational data plots described above, PIG plots, nested grid plots, adaptive grid plots, box & whisker plots. Also, making scatter plots internal to PAVE would help reduce the problems associated with transferring data to BLT and would provide additional flexibility.
Currently, long formulas are often difficult to use. This might be improved by providing some defaults for commonly used long formulas (e.g. VOC, TOC, wind speed). Allowing user-defined aliases for long formulas and hierarchical formulas (e.g. NOy - NOx) would be very useful. Allowing the user to specify that multiple parts of a formula refer to the same data set would reduce the complexity involved with long formulas (e.g. [NO + NO2]a where the a is applied to both NO and NO2).
It would be useful to be able to plot multiple maps (e.g. state + counties, or counties + roads) using different colors and thicknesses as needed. Another possibility would be to allow backgrounds generated by packages such as GISs to be displayed - these might show roads, water, cities, etc.
It would be useful in some cases to allow users to define the cutoffs between the colors plotted (currently PAVE makes each bin of equal size from the min to the max). Another alternative might include assigning bins according to percentiles. Additional configuration options could be added to vector plots wrt the density of the vectors plotted.
We might use the colors allocated by netscape so the two packages do not fight for colors, we could prevent allocation of colors that are not actually being used, and provide the user with the option of a private color table so that PAVE is not at the mercy of other applications when allocating colors. Also, we could improve the options for black and white plots by adding patterns to the existing shades of gray.
The density and location of grid cell numbering on tile plots and in the domain selector could be improved. Also, the legend could be outlined in black to set off any white or light values and be positioned relative to the size of the legend labels. The size of tile plots could be made user configurable, and the aspect ratio preserved when the plot is manually resized. Data plotted on time series plots could be labeled more clearly.
(This is being funded for development for PAVE release 2.1 Alpha)
It may be possible to include additional readers for PAVE. Also, enhancements of the data export facility would be very useful. For example, one might want to create a new data set out of components several other data sets, or from the result of several complex formulas. For this, PAVE would need to allow multiple formulas to be selected for export, and allow the renaming of variables in the output dataset (e.g. call a variable NOy instead of the long formula used to calculate NOy).