VERDI 1.4 User Manual
- 1 Foreward
- 2 Introduction
- 3 Requirements for Using VERDI
- 4 VERDI Installation Instructions
- 5 Starting VERDI and Getting Your Data into VERDI
- 6 Navigating VERDI’s Main Menu Options
- 7 Working with Gridded Datasets
- 7.1 Gridded Input File Formats
- 7.2 Example Datasets
- 7.3 Adding and Removing a Dataset from a Local File System
- 7.4 Adding and Removing a Dataset from a Remote File System
- 7.5 Variables List
- 7.6 Time Steps, Layers Panels
- 7.7 Domain Panel
- 7.8 Saving Projects
- 7.9 Configuring Default Directories
- 8 Working with Formulas
- 9 Working with Area Files
- 10 Spatial and Temporal Data Subsetting
- 11 Creating Plots
- 11.1 Fast Tile Plot
- 11.2 Areal Interpolation Plot
- 11.3 Vertical Cross Section Plot
- 11.4 Time Series Plot
- 11.5 Time Series Bar Plot
- 11.6 Scatter Plot
- 11.7 Vector Plot
- 11.8 Contour Plot
- 11.9 File Menu Options
- 11.10 Configure Menu Option
- 11.11 Controls Menu Options
- 11.11.1 Zoom Using the Left Mouse Button
- 11.11.2 Zoom Using the Right Mouse Button
- 11.11.3 Probing Values at Specific Points
- 11.11.4 Probing a Domain Region of Data
- 11.11.5 Set Data Ranges
- 11.11.6 Showing Latitude and Longitude
- 11.12 Plot Menu Options
- 11.13 GIS Layer Options (Fast Tile Plot)
- 11.14 IO/API-formatted Data
- 11.15 CAMx Gridded Data
- 12 I/O API Utilities, Data Conversion Programs, and Libraries
- 13 Contributing to VERDI Development
- 14 Known Bugs
- 15 Mathematical Functions
- 16 VERDI Script Editor
- 17 Command Line Scripting
- 18 Areal Interpolation Calculations
- 19 Licenses for JAVA Libraries used by VERDI
- 20 Acknowledgments
Figures and Tables
List of Figures
List of Tables
This manual describes how to use the Visualization Environment for Rich Data Interpretation (VERDI). VERDI is a flexible and modular Java-based visualization software tool that allows users to visualize multivariate gridded environmental datasets created by environmental modeling systems such as the Community Multiscale Air Quality (CMAQ) modeling system and the Weather Research and Forecasting (WRF) modeling system. These systems produce files of gridded concentration and deposition fields that users need to visualize and compare with observational data both spatially and temporally. VERDI can facilitate these types of analyses.
Initial development of VERDI was done by the Argonne National Laboratory for the U.S. Environmental Protection Agency (EPA) and its user community. Argonne National Laboratory's work was supported by the EPA though U.S. Department of Energy contract DE-AC02-06CH11357. Further development has been performed by the University of North Carolina Institute for the Environment under U.S. EPA Contract No. EP-W-05-045 and EP-W-09-023, by Lockheed Corporation under U.S. EPA contract No. 68-W-04-005, and Argonne National Laboratory. VERDI is licensed under the Gnu Public License (GPL) version 3, and the source code is available through verdi.sourceforge.net. Instructions for developers within the community are included in the Developer User Guide (see Section 1.3). VERDI is supported by the Community Modeling and Analysis System (CMAS) Center under U.S. EPA Contract No. EP-W-09-023. The batch script and VERDI Script Editor were developed and documented under U.S. EPA Contract No. EP-D-07-102, through an Office of Air Quality Planning and Standards project managed by Kirk Baker. The CMAS Center is located within the Institute for the Environment at the University of North Carolina at Chapel Hill.
This guide describes VERDI version 1.4 released in May 2011.
The following are useful web links for obtaining VERDI downloads and support:
- VERDI Visualization Tool web site:
- CMAS download page for users of VERDI: http://www.cmascenter.org/download/software.cfm
- CMAS SourceForge.net website for developers of VERDI:
- VERDI Frequently Asked Questions (FAQs):
- To query M3USER listserv for VERDI related technical support questions and answers: http://lists.unc.edu/read/?forum=m3user
- To query bugs and submit bug reports, questions, and/or requests: http://bugz.unc.edu/enter_bug.cgi?product=VERDI(If you do not already have a login and password, click the “Home” link for instructions on how to obtain them.)
Where to Obtain VERDI
You can download the latest version of VERDI from http://www.verdi-tool.org/ (see Figure 1-1). When you click on the link to download VERDI, you will be sent to the CMAS Model Download Center. To download and install VERDI, follow the instructions below, skipping step 2. Alternatively, you may also begin at the CMAS web site http://www.cmascenter.org, and follow the instructions below:
- Log in using an existing CMAS account, or create a new CMAS account.
- Hover the cursor over the Download Center link on the left-hand side of the web site and choose MODELS from the menu that appears.
- Select a model family to download, as shown in Figure 1-2. Use the pull-down list to select VERDI, and then click Submit.
- Select the product you wish to download, as shown in Figure 1-3. Also specify the type of computer you are planning to run VERDI on (such as Linux PC, Windows, or Other) from the items in the scroll list. Note that the compilers question is not relevant for VERDI so it can be skipped. Finally, click Submit.
- In the table that appears, follow the links to the Linux or Windows installation instructions, the release notes file, the user’s manual, the test documentation, and either a zip archive for Windows or a gzipped tar archive for Linux (see Figure 1-4).
Where to Obtain VERDI Documentation
Documentation is available in several locations, described below. Each location provides links to the available documentation for VERDI, which can be viewed in your web browser or downloaded and saved to your computer.
- The VERDI download page on the CMAS website (accessed using step 4 in Section 1.2) contains links to all of the available documentation.
- On the left-hand side of the www.cmascenter.org web site, you can hover the cursor over the Help Desk link and choose DOCUMENTATION from the menu that appears. Select the product documentation that you want from the drop-down list (Figure 1-5) and click Submit. Select the model release from the drop-down list and click Search. The resulting documentation pane shows that the available documentation for the chosen release of VERDI.
- From the www.verdi-tool.org web site, there are two ways to access the VERDI documentation on the www.cmascenter.org model documentation web page: (1) A link near the top of the www.verdi-tool.org home page sends you to a new page where you choose the model version. When you click submit, you are taken to the www.cmascenter.org VERDI documentation web page. (2) Direct links from a box on the right-hand side of the www.verdi-tool.org home page take you to the documentation available for VERDI. Figure 1-6 shows the list of documentation that is available for download.
Help Desk Support for VERDI
You are encouraged to check the VERDI FAQs, search archived support requests using the web-based Bugzilla system, search the M3USER listserv for VERDI-related technical support questions, and report errors and/or requests for enhancement to the m3user forum. The m3user forum is supported by the community and also by CMAS to help users resolve issues and identify and fix bugs found in supported software products.
Future VERDI Development
As stated in Schwede et al. (2007), “VERDI is intended to be a community based visualization tool with strong user involvement.” The VERDI source code is available to the public under a GPL license at http://sourceforge.net/projects/verdi/. This allows users who wish to make improvements to VERDI to download the software, and to develop enhancements and improvements that they feel may be useful to the modeling community. Examples could include user-developed readers for additional file formats and modules for additional plot types. Users may wish to contribute data analysis routines such as adding the ability to do bilinear interpolation (smoothing) or adding nonlinear scales (e.g., log) to the color map. The direction of future development will depend on the resources and the needs of the modeling community. If you are interested in contributing code to VERDI, please review the information in Chapter 14, “Contributing to VERDI Development.”
Requirements for Using VERDI
Java Runtime Environment
VERDI requires version 6 of the Java Standard Edition Runtime Environment (JRE). The JRETM 6 is provided as part of the VERDI release for Linux 32 bit and Windows. Instructions for how to download JRETM 6 and the additional third-party libraries for Linux 64 bit are provided in section 3.2.
Memory and CPU Requirements
VERDI’s memory and CPU requirements largely depend on the size of the datasets to be visualized. Small datasets can be visualized and manipulated using less than 1024 megabytes of RAM, while larger datasets may need considerably more. If you are using datasets that require either more or less than 1024 MB of memory, you can change the default maximum memory setting used by VERDI:
- On Windows, edit the Verdi.ini file to specify a different heap size from the default 1024M.
- On Linux or another Unix platform, you can edit verdi.sh and replace the 1024 in –Xmx1024M with a different value; for example, -Xmx2048M will allow VERDI to access up to 2048MB (or 2GB) of RAM.
Note that even slower CPUs can quickly view and animate smaller datasets, whereas larger datasets can take longer. Initially, VERDI’s performance was slow when it was used across the network via ssh. This problem was addressed in version 1.1 with the addition of the Fast Tile Plot. VERDI 1.4 has been improved so that the memory is more effectively managed. As a user opens new Fast Tile plots or other plot types, the memory requirements increase. As the user then closes the plots, the memory is correctly released by VERDI in Version 1.4.
Requirements to Run VERDI Remotely
VERDI may be used to run on a remote compute server and have the graphics display locally on your desktop machine (Unix workstation, Mac, or PC) using the Fast Tile Plot. Your computer needs to be configured to run X-Windows. Typically, you will connect to the remote compute server using secure shell (SSH). If you are using an X-Server and wish to generate 3-D plots using Open GL, you need to turn on Open GL support within the X-Server.
Three-dimensional contour plots require a graphics card with OpenGL or DirectX capability. By default VERDI uses OpenGL for 3D rendering. If you would like to use DirectX instead, add the line: j3d=-Dj3d.rend=d3d to the verdi.ini file.
VERDI works best on screen displays that have been set to a screen resolution of 1280 1024 pixels. To adjust your screen resolution for a Windows XP machine, right click on your desktop and then click on the Settings tab in the pop-up window. Use the slider under the Screen resolution section to set the resolution to 1280 1024 pixels. You will need to reboot your computer for this screen setting to take effect.
VERDI Installation Instructions
Installing VERDI on a Windows operating system is accomplished by running a standard installer program. For Linux and other non-Windows platforms, VERDI is distributed as a gzipped tar file that contains the executable application and the third-party libraries needed for VERDI. Currently, the VERDI distributions provide a platform-specific Java Runtime Environment 6.0 (see Section 3.3) for Windows and Linux. Note that the version of Java provided with VERDI has been customized to support the three-dimensional plots used by VERDI’s contour plot. For more information on supporting the contour plot on your non-windows platform of interest, see the Java3D discussion section 3.2 that follows. Instructions on how to download JRETM 6 for other system configurations that run it are also provided.
Installation Instructions for Linux and Other Non-Windows JRE™ 6 Supported System Configurations
VERDI requires the following third party software: JRE™ 6, Java3D, and Java™ Advanced Imaging (JAI). The Linux 32 bit version of the required third party software is provided in the VERDI release tar file.
- tar -xvf verdi_1.4.tar into a location where you would like to install VERDI.
- Edit verdi_1.4/verdi.sh
- Change the path for the VERDI_HOME variable to reflect the location where VERDI was installed (e.g., VERDI_HOME=/usr/local/verdi)
- If you download JRETM 6 for a version other than Linux 32 bit that is provided with VERDI as described in the next section, change the path for the JAVA variable to reflect where the java executable has been installed.
- If the settings for the variables in step 5 are correct, VERDI should now run if you execute the verdi.sh executable script (e.g., ./verdi.sh).
If your non-Windows computer requires a JRETM 6 other than what was provided in the distribution:
- Download Java 6 for your platform from http://www.java.com/en/download/manual.jsp.
- Download Java3D
- For all platforms, go to http://java.sun.com/javase/technologies/desktop/java3d/
- Go to download section, click on Download Java 3D 1.5.1 Software, select your platform, agree to license agreement, and continue.
- mv java3d-1_5_1-linux-i586.bin to the jre1.6.0_06 directory
- chmod a+x java3d-1_5_1-linux-i586.bin
- ./java3d-1_5_1-linux-i586.bin (this will place the lib/ext and lib/i386 files where they are needed)
- Download JAI 1.1.3
- For all platforms, go to https://jai.dev.java.net/binary-builds.html#Release_builds
- Installation instructions: http://download.java.net/media/jai/builds/release/1_1_3/INSTALL.html
- Download the .tar.gz package and untar. This will create a directory "jai-1_1_3".
- Copy the following files:
- cp jai-1_1_3/lib/libmlib_jai.so /path-to-/verdi_1.4/jre1.6.0_13/lib/i386
- cp jai-1_1_3/lib/*.jar /path-to-/verdi_1.4/jre1.6.0_13/lib/ext
If JRETM 6 is already installed on your Linux platform, and you would like to use the already installed version, you will need to add Java 3D support. Copy the following files from the included version of Java into the JRE_HOME/bin directory used by your version of Java:
j3dcore-d3d.dll j3dcore-ogl.dll j3dcore-ogl-cg.dll j3dcore-ogl-chk.dll j3dutils.dll
For Linux platform with ia64 architecture, please find the installed jre or jdk library directory (ex. /usr/java/jre1.6.0_13/lib/ext or /usr/java/jdk1.6.0_11/jre/lib/ext) and copy all missing library files from $VERDI_HOME/jre1.6.0_13/lib/ext directory. If ia64 jre/jdk package is not installed, please go to java.sun.com download the install file and install the package. Then copy the missing library files from $VERDI_HOME/jre1.6.0_13/lib/ext directory.
Installation Instructions for Windows
To install VERDI for Windows, run the installation program VERDI_1.4_Installer.exe on your Windows machine. Follow the instructions on the installation windows that appear, as shown in Figures 3-1 through 3-6. If you are unable to install VERDI on your computer, please check to see whether your user account is authorized to install software. You may need to request that a user with a computer administrator account install VERDI, or provide you with an account that has permission to install software. For more information about user account types, click Start and select Control Panel and then click on the User Account icon.
Setting VERDI Preferences
The VERDI installation package contains a file called config.properties. On Windows, this file is copied into the verdi subdirectory of your USERPROFILE directory (e.g., “C:\Documents and Settings\yourusername\verdi”). Users are encouraged to edit this file to specify default directories for saving files, for placing the location of configuration files, and for saving project files. An example of the contents of a Windows version of this file is:
verdi.dataset.home=D:\\VERDI verdi.project.home=C:\\Documents and Settings\\user_a\verdi verdi.config.home=D:\\Program Files\\VERDI 1.4\\config
On Linux, this file is copied into the $USER_HOME/verdi/ subdirectory. An example of the contents of a Linux version of this file is:
The items in the config.properties that is installed with VERDI are commented out, and will need to be uncommented by removing the starting ‘#’ sign if you do not want to specify the directories each time a file is loaded or saved. Example settings that are provided in the default file show how to specify the paths to these locations, depending on whether the installation is for a Windows or Linux platform. The dataset.home setting specifies the default location from which to load datasets. The project.home setting specifies the default location from which to load and save projects. The config.home setting specifies the default location from which to load and save plot configurations. Note that VERDI stores the most recently used directory for each of these functions and will go to that directory when you repeat the load or save.
Starting VERDI and Getting Your Data into VERDI
To start VERDI, open the Start menu, then highlight the Programs directory, followed by the VERDI directory, and then select the VERDI icon, as shown in Figure 4-1.
Linux and Other Non-Windows JRETM 6 Supported System Configurations
To start VERDI from Linux and other non-Windows JRETM 6 Supported System Configurations, find the directory where VERDI was installed, then run the verdi.sh script.
After starting VERDI, the main window will come up on the screen (Figure 4-2). At the top of the main window, there is a menu bar with the main window options (File, Plots, Window, and Help). Below the menu bar there are three icons that are shortcuts to some of the options available in the Main Window Menu Bar; the first is an Open Project icon, the second is a Save Project icon, the third is an icon that allows you to Undock All Plots. These shortcuts and the options available in the Main Window Menu Bar are discussed further in Section 5, “Navigating VERDI’s Main Menu Options.” Next to these three shortcut icons are buttons that list all of the available plot types. To the right of all the plot buttons the Selected Formula is listed. The Selected Formula refers to the formula that has been selected in the Formula pane (discussed briefly below and in detail in Section 7), and that will be used to create plots. Below the icons and plot buttons, the window is divided into two main areas: a parameters area on the left side and a plots area on the right side. The parameters area contains three tabbed panes:
- The Datasets pane is used to load in the dataset files that you want to work with in this session (this is discussed in Section 6). Once the datasets are loaded, VERDI automatically displays the lists of variables that are in the datasets. To see the variables in a dataset, click on the dataset, and the variables will be displayed in the Variables panel underneath the list of datasets. In Version 1.05 and later, if you double click on the name of a variable listed on the variables panel, the variable will automatically be added as a formula on the Formula pane and will be the default formula for new plots that are created.
- The Formula pane is used to create a formula that refers to the variable and the dataset that you are interested in plotting (see Section 7 for more information). All plots in VERDI are generated from formulas. A formula can be as simple as a single variable from one dataset or it can be an equation that uses variable(s) from one or more datasets.
- The Areas pane is used to load area files that are used to create areal interpolation plots (see Section 8 for more information). Area files are defined as shapefiles that contain area features such as watersheds and counties, or any other shapefile that consists of a set of closed polygons.
Any plots that are created are shown in the plots area on the right-hand side of the main window. These plots can be placed into their own movable windows using Plots>Undock all Plots on VERDI’s main menu, as discussed in Section 5.2.1. The fast tile plot option was added in VERDI version 1.1. This will replace the current tile plot, once it is fully operational and configurable. The functions that are currently enabled for tile plots and fast tile plots are described in Section 10, “Creating Plots.”
Floating the Dataset and Formula Panes
The Formula, Dataset, and Areas panes can each be configured to float, to allow you to position them alongside one another. To allow a pane to float, click the icon at the top of the pane that looks like a rectangle with an arrow pointing out of the upper left corner. You can then click on the pane and move it to the left of the VERDI main window. This is useful when you are entering a formula in the Formula pane, if you have difficulty remembering the variables that are in a loaded dataset. To re-dock a window or pane, click on the icon in the upper right corner. The icon looks like a circle enclosed in a square. This will return the floating pane back to where it usually lives within the main window.
Figure 5-1 shows a graphic of the main menu options that are available on the top menu bar in VERDI’s main window (Figure 4-2 above). These options are discussed in detail below.
File Menu Options
Open Project retrieves projects that were saved during a previous session (using the two Save Project options described next). Note that when you use a saved project, it is very important to load that project into VERDI before you load any additional datasets or create any additional variables/formulas. If you load a dataset that is not part of the previously saved project and then try to open a previously saved project, you will get a message that says “All currently loaded datasets will be unloaded”, and will be asked if you want to continue.
The Save Project and Save Project As options save dataset lists and associated formulas as a “project” for later re-use.
Note that plots are not saved with a project; only datasets and formulas are saved. If you wish to save a plot configuration for later use, see Section 11.2.2, “Loading and Saving configuration.”
View Script Editor
The View Script Editor allows users to modify and run batch scripts within VERDI. Three sample script files are provided with the VERDI distribution under the $VERDI_HOME/data/scripts directory. On a Windows machine the $VERDI_HOME is typically C://Program Files//VERDI_1.4. Use the Open pop-up window to specify eps.txt, one of the sample script files. The contents of the eps.txt will be displayed in the Script Editor in the right side of the VERDI window. Modify it to specify the local directory path name for the sample data files, the formulas, the type of plots, and the image format. The plots are not rendered within VERDI, but may be viewed using an image viewer. The batch scripting language is described in the sample script files, and will be described in more detail in Section 17: VERDI Script Editor.
Plots Menu Options
VERDI opens a single window for plots, to the right of the Dataset, Formula, and Area panes. As plots are created (each in its own sub-window), the most recent plot is displayed on top of previously created plots. Each plot has a tab beneath it listing the type of plot and the formula used to create it. If you want to view a previously created plot, select the tab associated with its sub-window underneath the current plot, and the desired plot will be brought to the front.
Undock All Plots
As with the Dataset, Formula, and Area panes (Section 4.3), plot sub-windows can be undocked so that you can move them into separate windows. This allows side by side comparisons of plots. Note that undocking is performed only on previously created plots; any newly created plots are docked to the VERDI main window.
Animate Tile Plots
This option opens an Animate Plots dialog box (Figure 5-2) that allows you to select one or more plots, select a subset of the time range, and create an animated GIF file. There is also a separate way to create a Quicktime movie instead of a GIF, if desired.
Within the Animate Plots dialog box, you can select plot(s) to animate by clicking the check box beside each plot name.
You can choose to animate a single plot, or animate multiple plots synchronously. To view multiple animated plots synchronously, undock the plots (see Section 5.2.1) and move them so that they are located side by side for visual comparison during the animation.
Once a plot has been selected, you can select the time range by specifying both the starting time step and ending time step of the animation.
To create an animated GIF, check the Make Animated GIF(s) option in the Animate Plots dialog box. In the Save dialog box that appears, select the directory in which to store the file and the name to use for the animated GIF, then click the save button. When saving as an animated GIF, when multiple plots are selected, each animated plot will be saved to a separate animated GIF file. For example, if three plots were selected, the animated plots would be saved as <filename>-1.gif, <filename>-2.gif, <filename>-3.gif. You can view the animated GIF by opening the file in a web browser.
Creating a Quicktime movie is also an option, but this is not done through the Plots>Animate Tile Plots main menu option. Instead, use the Plot menu option found at the top of each individual plot to make a Quicktime movie.
Window Menu Options
The Window menu provides an alternate way to select windows/panes to be brought to the front, and provides the same function as clicking on the tabs at the bottom of the windows/panes.
Datasets and Formulas
Select from the Window pull-down menu to bring to the front either the Areas pane, Datasets pane or Formulas pane when those panes are docked.
List of Plots
The Window pull-down menu is automatically updated each time a plot is created in a VERDI session; each entry in the plot list indicates the type of plot and the formula used. Clicking on a given plot entry brings that plot to the front for viewing. Alternatively, you can bring a plot to the front by selecting the desired plot tab underneath the plots area of the main window. As in the menu entries, each plot tab is labeled with the plot type and the formula used.
Help Menu Options
The Help pull-down menu contains two items that you can use to learn more about VERDI. When you select VERDI Help Docs, the VERDI user’s manual is displayed in a VERDI Help window. This window is not searchable, but it does allow you to navigate via hyperlinks in the Table of Contents, and to scroll down and read the user’s manual. When you select About a pop-up window that contains the name of the product, the version number, and the date the software was built is displayed.
Working with Gridded Datasets
Gridded Input File Formats
VERDI currently supports visualizing files in three formats: CMAQ Input/Output Applications Programming Interface (I/O API) netCDF, WRF netCDF, and CAMx (UAM-IV). VERDI uses version 4.1 of the netCDF java I/O library (http://www.unidata.ucar.edu/software/netcdf-java).
The CMAQ I/O API was designed as a high-level interface on top of the netCDF Java library. (see http://www.baronams.com/products/ioapi and http://www.unidata.ucar.edu/software/netcdf/ for further info). The I/O API library provides a comprehensive programming interface to files for the air quality model developer and model-related tool developer, in both FORTRAN and C/C++. I/O API files are self-describing and include projection information within the gridded dataset. See section 12 for additional information on what projections and gridded data formats are supported by VERDI.
netCDF and I/O API files are portable across computing platforms. This means that these files can be read regardless of what computer type or operating system you are using. There are routines available to convert data to these formats or new code can be written and contributed to VERDI for use by the community. Discussion of the I/O API conversion programs and how to use them can be found in Section 13, “I/O API Utilities, Data Conversion Programs, and Libraries.” If you write a routine for VERDI to read gridded data from other formats, please consider contributing your code to the user community using sourceforge.net, as described in Section 14.
Several example datasets are provided under the $VERDI_HOME/data directory. These datasets may be used to re-create example plots that are provided in this user guide, including a tile plot with observational data overlay in Section 11.4.3, and the example datasets for the various dataset projections that VERDI supports including LCC, polar stereographic, UTM and Mercator. The data directory currently contains four subdirectories:
- CAMx – contains sample CAMx dataset and camxproj.txt file
- hucRegion – contains Hydrologic Unit (HUC) shapefiles for region 3 (southeast US)
- Model – contains sample WRF and CMAQ I/O API datasets
- Obs – contains observational dataset created by airs2m3 converter
Adding and Removing a Dataset from a Local File System
To load a data set from a local file system, press the yellow plus button at the top of the Datasets pane. A file browser (Figure 6-1) allows you to select a dataset for use in VERDI. Support for loading data from a remote file system has been added in version 1.3. The use of the yellow plus remote button will be discussed in Section 6.4.
After you specify a gridded dataset, VERDI will load header information and display the available variables, time steps, layers, and domain used by the file in the Datasets pane (Figure 6-2). (The actual model data are not loaded until later, when plots are created.) To view the variables for a particular dataset that has been loaded, click on the dataset name in the list to highlight it, and the variables will be listed in the panel below.
Datasets can be removed by highlighting the name of the dataset in the dataset list and pressing the yellow minus button. Note that although the dataset will be removed, the number that was assigned to that dataset will not be reused by VERDI during the current session.
Adding and Removing a Dataset from a Remote File System
The VERDI 1.3 allows the user to select and add variables from datasets on remote file systems. To do this, press the yellow plus remote button at the top of the Datasets pane. In the Remote File Access Browser (Figure 6-3) that appears, enter your user name, choose a host from a list, and enter your password, then click Connect.
Remote File Browser
The top panel displays a listing of the home directory on the remote file system, as shown in Figure 6-4. If the files are in a different directory than your default home directory, please double click on the ../ symbol at the top of the list, to navigate back a directory, then navigate within the remote file system to the directory where your files are located. When you double click on the file that you would like to use, VERDI will provide you with a list of variables that are available within the file. To select variables from the list, use your mouse to click on a single variable, or use either the Shift key with the mouse to select a contiguous list of variables or the Control key with the mouse to select a set of discontinuous variables. Once the variables that you would like VERDI to read are highlighted, click on the Read button.
The variables read from the remote dataset will be displayed in the dataset and variable browser in the same way that variables from a local dataset are added and displayed within VERDI. The subsetted local dataset names are identical to the file names on the remote host, except for an additional extension that enumerates how many times the remote files were read and saved locally by VERDI (i.e., filename1, filename2, filename3, etc.), as shown in Figure 6-5. To add additional variables from the same remote dataset, click on the plus remote button, and repeat the above procedure. The Remote File Browser retains the login session and the directory that was last accessed by the user, to facilitate ease of accessing remote datasets. VERDI will increment the numerical extension to the dataset name, to allow the user to know that this subset file was created using the same remote dataset, but that the subset file with the new numerical extension may contain a different subset of variables. Note that VERDI does not check to see if the same variable from the same remote dataset has already been read. Also note that subset files read in by VERDI will be saved to your home directory on your local file system, ie. C:\Documents and Settings\username on a Windows XP machine. The files are saved on your local machine to facilitate project management. To be able to save and then load a project for future use, the files need to be saved on the local machine. To avoid filling up your local file system, regularly inspect the file list in the home directory and manually delete unneeded subset files.
Remote datasets can be removed from the dataset list in VERDI using the same procedure as for removing local datasets: highlight the name of the dataset in the dataset list and press the yellow minus button. Note that although the dataset will be removed from the dataset list, the number that was assigned to that dataset will not be reused by VERDI during the current session.
Adding Additional Remote Hosts
The VERDI 1.4 release contains the RemoteFileUtility and ncvariable programs that enable VERDI to add your IO/API netCDF or WRF netCDF formatted dataset from a remote file system. A gzipped tar file is available in the $VERDI_HOME directory.
- Provide the RemoteFileReader.tgz file to a System Administrator for the linux server that contains data files you need to access remotely using VERDI.
- The RemoteFileUtility c-shell script and ncvariable binary need to be installed in /usr/local/bin by the System Administrator. (A future release of VERDI will allow the user to specify the location of these programs, rather than requiring the use of /usr/local/bin.)
- A README file provided with the software contains instructions on how to compile the source code if the binaries provided do not match your operating system.
- Edit the ui.properties file in your $VERDI_HOME/plugins/bootstrap/ folder. Add the name or IP address of the linux server, preceded by a comma, at the end of the list of machines defined as remote hosts in the ui.properties file, as shown in Figure 6-6. You will need to restart VERDI in order for it to recognize a newly added remote host name.
The variables list shows all of the variables contained in a loaded dataset (see the example in Figure 6-7). To display a variables list, select the name of the dataset of interest in the Datasets pane. Each of the variables in the list can be used to create a formula in the Formula pane that can then be used to create plots. VERDI allows the user to automatically add a formula by double clicking on the name of a variable. Double clicking on a variable will automatically create a formula that contains the variable for the loaded dataset and it will become the default formula for making plots. In addition, you may right click on the name of the variable to show a popup menu as shown in Figure 6-7. From this menu you can either add the variable as a formula, or you can to add it into the formula editor so that it can be used to compose more complex formulas. Formulas are described in more detail in Section 7.
Time Steps, Layers Panels
The range that is available for the dataset is listed in the Time Steps or Layers Panel in parenthesis next to the label for the panel, e.g. for a dataset that has 5 time steps, the range would be displayed as: Time Steps (1-5). The user can select to use a subset of the full time step range by clicking on the Use Time Range checkbox, and then using the Min and Max spinner controls to set a new minimum or maximum values, for example choosing time step 2 as the minimum time step, and time step 4 as the maximum. When a tile plot is created, it will only display time steps 2-4. Detailed instructions for using the Time Steps, Layers, and Domain panels that you see in Figure 6-4 are discussed in Section 9, “Spatial and Temporal Data Subsetting.”
The domain panel contains an Edit button and a Metadata button. Detailed instructions for using the Edit button are provided in Section 9, “Spatial and Temporal Data Subsetting”.
To display the metadata information about a dataset, click on the Metadata button in the Domain panel. A window containing the metadata will appear (Figure 6-8). Each dataset includes metadata information that is part of the file header. The metadata provided include the map projection information, the number of time steps in the file, the number of columns and rows, and other information.
As noted in Section 5.1.2, lists of datasets and formulas can be saved as “projects” using the Save Project option in the File pull-down menu on the VERDI main window. Refer back to that section for discussion on saving new projects and loading existing projects. Note again that the plots created in VERDI are not saved with the project.
Configuring Default Directories
A config.properties file (discussed previously in Section 3.4) allows the user to customize where VERDI will look by default for the location of datasets and project files. This file is located in the $USER_HOME/verdi/subdirectory, and can be edited to specify where datasets and/or project files are saved and stored. An example is as follows:
# This file should be put in $USER_HOME/verdi/subdirectory
# Please use double backslash for windows platform or slash for UNIX like platforms
# Please uncomment the following lines and modify them to suit your local settings
- Schwede, D., N. Collier, J. Dolph, M.A. Bitz Widing, T. Howe, 2007: A New Tool for Analyzing CMAQ Modeling Results: Visualization Environment for Rich Data Interpretation (VERDI). Proceedings, CMAS 2007 Conference.
Working with Formulas
All plots in VERDI are generated from formulas. A formula is used to compare or manipulate variables in one or more gridded datasets. A formula can be as simple as a single variable from one gridded dataset or it can be an equation that uses variable(s) from one or more gridded datasets. Formulas are used to create visualizations that can assist with model performance evaluations, for example, or that help in comparing model results with observations.
Adding and Removing a Formula
After loading the desired gridded datasets, you can use the variables in them to create formulas. To use a variable to create a simple formula, double click on the name of the variable. This will add the formula <Variable Name>[<Dataset Number>] to the formula list in the Formulas pane—for example, O3. To add a variable to the formula editor window, highlight the variable, right click on the variable name in the Datasets pane, and select Add Variable(s) to Formula Editor. To add all or a subset of variables from the Dataset pane to the formula editor window, click on the first variable to highlight it, hold the Shift key down and click at the last variable that you want to include, then right click and select Add Variables(s). The formulas that are highlighted using this method will be added to the formula editor (Figure 7-1).
After the variable names are added to the Formula Editor, click on the formula pane and use the cursor and the keyboard to type in the mathematical functions and operators where needed to create a valid formula (see Section 7.2 and Section 16). After the formula has been created in the Formula Editor, click the Add button, to place it in the list of formulas available in the Formula pane.
To remove a formula from the formulas list, highlight the name in the list and press the yellow minus button. Note that removing a formula from the formula list does not remove plots that were created prior to the deletion of the formula.
To examine the values of ozone in dataset 1, the formula would be “O3”.
To examine the difference in ozone between datasets 1 and 2, the formula would be “O3-O3”.
To calculate the percent difference in ozone between datasets 1 and 2, the formula would be “(O3-O3)*100/(O3+.001)”.
To identify all cells where the ozone concentration exceeds a certain value, you can use the Boolean operators to “screen out” ranges of your data that are of particular interest. A Boolean expression will evaluate to either True = 1 or False = 0. For example, to plot the cells in which the ozone values in dataset 1 exceed 0.080 ppm, you could use the formula “(O3>0.080)*O3”. In the resulting plot, each cell where O3 exceeds 0.080 will show the value of O3 for that cell; for all other cells the value shown will be zero.
The notations that can be used in formulas to represent various mathematical functions, and the order of precedence of these functions, are listed in Section 16, “Mathematical Functions.”
Selecting a Formula for Plotting
Before creating a plot, a formula must be selected. Check to see which formula is highlighted in the Formula pane, or look to the right of the plot buttons above the plots area of the main window to see the selected formula. By default, VERDI designates the most recently added formula as the selected formula. To change the selected formula to a different one in the list, click on a formula in the list on the Formula pane, and you will then see it displayed as the selected formula above the plots area.
Both formulas and datasets can be saved using the Save Project item in the File pull-down menu on the VERDI main window. Saving new projects and loading existing projects was discussed in Section 5.1.
Time Step Range, Layer Range, and Edit Domain
Instructions for using the Time Steps, Layers, and Domain panels that you see in Figure 7-1 are discussed in the next section, “Spatial and Temporal Data Subsetting.”
Working with Area Files
Area File Formats
Area files are defined as shapefiles that contain area features such as watersheds and counties, or any other shapefile that consists of a set of closed polygons.
The shapefile format (ESRI, 1998) consists of four files.
- The *.shp file contains the actual shape vertices.
- The *.shx file contains the index data pointing to the structures in the .shp file.
- The *.dbf file contains the attributes (e.g., gridded concentrations).
- The *.prj file contains the map projection information used for the gridded concentrations.
Example Area File
Shapefiles that contain closed polygons are used by VERDI to interpolate gridded data to geographic boundary regions to create Areal Interpolation Plots. Shapefiles containing state, county, or census block, for example, or any other shapefile containing polygon areas may be used in VERDI to calculate and map formulas to the user-selected geographic regions. An example shapefile containing the 8-digit HUC watershed boundary map for the Southeast (Region 3) is provided in the VERDI release under the $VERDI_HOME/data/HucRegion directory.
Example on-line data archives for these shapefiles include:
Adding and Removing an Area File
To load a shapefile, press the yellow plus button at the top left corner of the Areas pane (Figure 8-1). A file browser (Figure 8-2) allows you to change directories and select a shapefile file for use in VERDI. Click on the shapefile name and click Next. The Open Area pop-up window will be displayed next which allows you to select the name of the field to read from the file and supply projection information if needed. Use the pull-down menu and click on the Name Field (Figure 8‑3) to be used. If a *.prj file is not provided with the dataset, the user is required to specify the projection information. A pull-down menu will prompt the user to select the coordinate system used in the file: either the Geographic (lat/lon) coordinate system or a Projected (x/y) coordinate system (Figure 8-4). If the user selects Projected, an additional pull-down menu asks what type of projection, and a text box allows users to provide the required information to do the projection (Figures 8-5 and 8-6). After the Name Field and the Coordinate System have been specified, select Finish. The resulting plot will be in the same projection as the gridded information used in the plot.
The shapefile name(s) will be listed in the top panel of the Areas pane, and the name fields for the polygons provided in the shapefile(s) will be listed in the panel underneath (Figure 8-7). The actual model data are not loaded until later, when the Areal Interpolation plots are created. As additional shapefiles are added, the name fields associated with each shapefile are appended to the bottom of the Areas list. Use the scrollbar on the right side of the Areas pane to view the additional name fields that are available. To remove a shapefile, click on the name of the shapefile and press the yellow minus button at the top left corner of the Areas pane.
When the user selects the Areal Interpolation Plot, the selected formula is interpolated over the polygon areas that are listed in the Areas pane. To select a subset of the polygon areas, and view the average and total values for selected formulas, see Section 10.3: Areal Interpolation Plot.
Spatial and Temporal Data Subsetting
Both the Dataset pane and the Formula pane include the three panels discussed in Sections 9.1 through 9.3: Time Steps, Layers, and Domain. Section 9.4 then discusses the precedence rules for subsetting data that determine which pane’s subsettings (Dataset or Formula) take priority.
Specify Time Step Range
Information about the range of time-step values included in a dataset is displayed in the Time Steps panel (Figure 9-1). The maximum time-step range that can be used for a dataset or formula is specified in the Min and Max spinner controls. You can use these controls to select a subset of the available time-step range for plotting. Check the Use Time Range box above the spinner controls to tell VERDI to use the time-step range values you have specified when it creates a plot. By default, a plot will initially display data for the minimum time step that was specified in the Time Steps panel. The range of the time steps available in the Time Step spinner control at the top of the plot will reflect the subset of time steps specified when the Use Time Range box is checked. The date and time of that time step are shown below the plot. Subsetting (also called cropping) a dataset’s or formula’s time-step range will affect any plots made; see Section 9.4 to learn the precedence rules.
Specify Layer Range
Information on the range of vertical model layers included in a dataset is displayed in the Layers panel (Figure 9-2). You can use the Min and Max spinner controls to select a subset of the available layer data for plotting. Check the Use Layer Range box above the spinner controls to tell VERDI to use the layers you have specified. By default, a plot will initially display data for the minimum layer chosen in the Layers panel. The range of the layers available in the Layer spinner control at the top of the plot will reflect the subset of layers specified when the Use Layer Range box is checked. Subsetting a dataset’s or formula’s layer range will affect any plots made; see Section 9.4 to learn the precedence rules.
Specify Domain Range
Datasets contain data for cells over a particular geographic area. In the VERDI program this area is referred to as a “domain.” By default, the entire domain contained in a dataset is used in creating plots. The Edit Domain dialog box can be used to select a subset of this domain for plotting. To access the Edit Domain dialog box, first use the vertical slide bar to bring the Domain panel (located below the Layers panel) into view if it is not already visible (Figure 9-3). To select a subset of the domain, press the Edit button. The Edit Domain dialog box will appear (Figure 9-4). If the area of interest is large, background data such as state and county outlines will be shown on the map. The magnifying glass buttons above the map can be used to zoom in and out on the map. Use the pan icon to drag the map to a position where the desired area is displayed. To select the desired cells, first press the Select Region button. You can then drag a box around the area of interest; selected cells will appear in blue. To clear out the selected area, use the Clear Region button. When you are satisfied with the domain subset you have chosen, click the OK button. Subsetting a dataset’s or formula’s domain range will affect any plots made; see Section 8.4 to learn the precedence rules.
Rules of Precedence for Subsetting Data
Because both the Dataset pane and the Formula pane have the Time Steps, Layers, and Domain panels described above, precedence rules were established that determine which pane’s subsettings take priority. It is important to understand these rules.
- A subset of data specified in the Dataset pane takes precedence over any subset specified in the Formula pane. At the time of this release, the range displayed in the Formula pane does not get updated when a subset range is selected on the Datasets pane. For example, if a dataset has a full time-step range of 0-48, and a time-step range of 2-40 is selected on the Dataset pane, then the 0-48 time-step range that is listed for the formula in the Formula pane is not applicable. When a plot is then created, the time-step range subset you chose in the Dataset pane (2-40) is displayed.
If no subsetting has been done for a particular data type (time steps, layers, or domain) in the Dataset pane, then any subsetting done for that parameter in the Formula pane will take effect.
- When a subset of data is requested in the Dataset pane, this deactivates the ability to further subset the data for this range in the Formula pane. For example, if the data are subset in the Dataset pane to a layer range of 2-7, and then in the Formula pane you attempt to further subset the layer range to 4-5, the further subsetting will be ignored and the plot will be created with a layer range of 2-7.
- When the user wants to create formulas using variables from multiple datasets, it is important to use the Formula pane to subset the domain range (if such subsetting is needed). The user should not try to create matching subset domain ranges for multiple datasets using the Dataset pane for each dataset, because if all of the subsetted domains do not match exactly, an error will occur when the user attempts to create a formula using variables from those datasets (Figure 9-5). Using the Formula pane instead to do the domain subsetting allows the user to select a subset of the domain to be applied for all dataset variables used in the selected formula.
After creating a formula, you are ready to create and view some plots. The available plot types are shown on the buttons at the top of the VERDI main window: tile plot, fast tile plot, vertical cross section plot, time series plot, time series bar plot, scatter plot, vector plot, and contour plot. All of these are described in this section. Once you have selected (highlighted) a formula in the list of formulas you have created in the Formula pane, you generate each plot type by clicking on the appropriate button using your left mouse button. You can also see the selected formula to the right of all of the plot buttons. If additional information is required in order to generate the plot you have requested, a dialog box appears to prompt you for that information.
Each plot contains its own menu bar at the top that has options for configuring and exploring the plot; the four pull-down menus there are File, Configure, Controls, and Plot. The options for each of these menus are described in more detail in Section 11, “Configuring Plots Using the Plot Menu Bar.”
Fast Tile Plot
The Fast Tile Plot was developed with less third-party software, and provides faster rendering of images than the tile plot. The fast tile plot supports all of the functionality of the tile plot with the exception of vector overlays. An example of the Fast Tile Plot window is shown in Figure 10-1. The motivation for developing the fast tile plot was the slow display speed of the original tile plot when VERDI was used on a remote compute server. The fast tile plot draws and animates substantially faster than the original tile plot.
At the top left of the fast tile plot, the spin control can be used to incrementally change the time step by clicking on the up or down arrow. The Layer displayed for the plot can be controlled by clicking on the up or down arrow for the Layer spin control in the top center of the plot. The top right corner of the plot contains buttons that allow the user to use play, reverse, forward, and pause options to control the animation of the plot. A text box labeled Slow allows the user to add a delay between frames by entering a number (delay is in milliseconds); the default delay is 0 milliseconds. Enter a number for the delay in the box and then hit Enter. A larger plot with multiple map layers would not require the user to add a delay between frames, but a small zoomed-in plot with few map layers will require the user to add at least a 200-millisecond delay between frames, to comfortably view the data. Putting in a larger number will further slow the animation.
Areal Interpolation Plot
The areal interpolation plot displays the interpolated value of the selected formula for each polygon in the selected area file. By comparing the colors of the polygons to those shown in the legend, users can see the relative values of the formula for each polygon area. The Areal Interpolation Plot includes several capabilities that are not available for other plot types, so these are described below, rather than in Section 11: Plot Menu Bar.
Option Pull-down Menu Item
The Areal Interpolation Plot Menu contains an Options pull-down menu to allow the user to change the map to display either the Area Averages (Figure 10-2), the Area Totals (Figure 10-3), or the value of the formula contained in the Gridded Dataset (uninterpolated) (Figure 10-4). The Options pull-down menu may also be used to display All area segments that are loaded in the area list, or to display only the area segments that are selected by highlighting the name field from the area list (Figure 10-5).
Areal Values for Polygon Segment
To view the area, total value, and average value for a selected polygon segment use the mouse cursor to hover over a polygon on the map. The values are shown at the bottom left of the information panel (Figure 10-6).
View and Export Areal Plot Data in Spreadsheet Format
To view the average and total interpolation values for selected formulas in a spreadsheet format, right click on the Areal Interpolation Plot and select Area Information (Figure 10-7). The Area Information Spreadsheet contains four columns: the identification number from the name field for the polygon, the total area, average interpolated value, and total interpolated value (Figure 10-8). At the top of the Area Information tab, the user may select File>Export to export the data to a spreadsheet file (Figure 10-9). The save pop-up window allows the user to specify with either a text (.txt) or comma-separated-values (*.csv) format, also known as a comma-delimited file (Figure 10-10).
Export Areal Plot Data to Shapefiles
At the top of the Area Information tab, the user may select File>Export Shape Files to export the data to a shapefile. The data provided in the spreadsheet—name field, total area, average value, total value—are exported to the shapefile. A GIS program such as User-friendly Desktop Internet GIS (uDig; http://udig.refractions.net/), an open-source Java program, may be used to view the shapefiles generated by VERDI. The shapefiles are saved as five separate files that must be kept together as part of the ESRI format (*.shp, *.dbf, *.prj, *.shx, and *.fix). There are no units assigned to the data that are saved in the shapefile, so it is important for the user to keep a copy of the comma-delimited text file, or to keep some alternative text file that specifies the units for each data field.
Vertical Cross Section Plot
The vertical cross section plot allows you to show a slice of data (Figure 10-13). A popup dialog box (Figure 10-14) prompts you for information needed to create the plot. You will need to enter either the column to be used (for an x-axis cross section) or the row to be used (for a y-axis cross section) in the plot. The current time step on the plot can be changed using the Time Step spinner control above the plot. There is also a Column spinner control to change the column number (or row number). The cross-section column number (or row number) is included in the title of the plot.
Time Series Plot
The time series plot shows a line graph with the average values over time (Figure 10-15). The plot is made for the formula’s selected domain, layer range, and time-step range. Each time step’s data are averaged linearly to produce that time step’s data point. The current layer can be changed using the Layer spinner control above the plot. The layer value listed in the title is updated when you change the layer.
Figure 10‑15. Time Series Plot
Time Series Bar Plot
The time series bar plot shows average values over time in a bar plot format (Figure 10-16) rather than a line format (Figure 10-15). Other than that, the description of this plot type is the same as for the time series line plot (see Section 10.5).
The scatter plot shows the relationship between two formulas using an array of dots (Figure 10-17). The user specifies the formulas using the dialog box that comes up before the plot is displayed (Figure 10-18). The current time step and layer can be adjusted using the spinner controls above the plot. The data from a scatter plot may be exported by selecting the File menu option and then selecting Export data. A pop-up window (see Figure 10-19) allows users to specify whether they would like the data for the current layer, or for all layers, and for the current time step, or for all time steps. Specify the time and layer ranges, and then click the OK button. A Save pop-up dialog box will appear. Fill in a file name of your choice with a .csv extension, and specify the directory in which you would like to save this file. The CSV file will be comma delimited, and will contain the following columns of data: layer, time, x-axis formula, y-axis formula.
The vector plot shows vector lines representing the vector formed by using two formulas (one for each component of the vector) across a geographic area; one formula represents the horizontal component, the other represents the vertical component (Figure 10-20). The formulas selected as components of the vector must match in domain, layer range, and time-step range. You specify the components of the vector using the dialog box that comes up before the plot is displayed (Figure 10-21). After the plot is displayed, the current time step and layer can be adjusted using the controls above the plot.
It is also possible to overlay vectors (e.g., wind vectors) on a tile plot. This can be done either from within the vector plot option (discussed here) or from within the tile plot option (discussed in Section 10.4.4). To do this overlay from within the vector plot option, you select a formula for the Tile option in the vector plot dialog box (Figure 10-21) in addition to specifying the formulas to be used for the horizontal and vertical vector components. See Section 11.4.4 for more information on vector overlays.
The contour plot shows a 3‑D representation of values over a geographic area (Figure 10-22). The current time step and layer can be adjusted using controls above the plot. You can also animate the plot over time using an option in the Plot pull-down menu (Figure 10-23). In addition, the contour plots can be rotated in three dimensions to achieve different viewing angles by using the left mouse button to grab and rotate the plot.
Plot Menu Bar
Each VERDI plot contains its own menu bar that has options specific to that type of plot. As an example, the menu options at the top of a Fast Tile plot include those shown in Figure 11-1. Most options are common to all plots, and function in the same way (unless the option is grayed out) for all plot types, so it is easier to describe the function of these configuration menu options once, rather than repeat the same information for each type of plot. Only options that are applicable to a particular plot type are enabled; others are grayed out and cannot be selected. Menu options were rearranged and/or added in VERDI 1.3, which resulted in the Plot Menu Bar being significantly different for the Tile Plot and the Fast Tile Plot. Currently, the Vector Plot is based on the Tile Plot. The Areal Plot is based on the Fast Tile Plot. In a future release the vector plot will also be based on the Fast Tile Plot and the Tile Plot will be removed. The Plot menu bars options will be discussed separately..
The items listed in red font in Figure 11-1 are new options supported in the Fast Tile Plot and Areal Plot; the items listed in blue font are features of the Tile Plot that, for the Fast Tile and Areal Plots, were moved to a new column labeled GIS Layers that is applicable only to those two plot types. Configure GIS Layers is supported in the Tile Plot as an option of Configure>Maps>Configure GIS Layers.
Plot configuration options that are available in VERDI are discussed in this section.
The Plot Menu Bar for the Tile and Vector Plot is shown in Figure 11.2. The map option is highlighted in blue font. When the user selects the map menu option, a pull-down menu allows the user to select map layers, configure GIS layers and set current maps as plot default.
File Menu Options
Options in the File menu include printing a plot and exporting a plot as an image. Plots can be saved as a PNG, JPEG, BMP, EPS, TIFF image file formats, SHP, SHX, DBF Shapefile formats, and ASCII grid (*.asc) formats.
Configure Menu Option
The Configure pull-down menu contains the following options: Configure Plot, Load Configuration, Save Configuration, and Maps.
Figures 11-3 through 11-6 show the dialog boxes that appear when you select Configure Plot. The Configure Plot dialog box contains four tabbed options: Titles, Color Map, Labels, and Other.
- The Titles tab allows you to edit and set the font and color for the title and two subtitles of the plot.
- The Color Map tab allows you to select the number of tiles, the palette type to be used, the color interval, and the number format to be used. As you vary the number of tiles, the palette types that are available to choose from are automatically updated. The palette type options include sequential (similar to what users typically use for PAVE plots), qualitative, and diverging. The Interval pull-down menu is set to Automatic by default. The color intervals are automatically calculated based on the Min and Max values of the dataset and the number of tiles. To change the Min or Max value, type a new value into the text box, and then click Rebuild. To specify the number format used in the map legend, enter the format in the entry box using the C language's printf() routine's format syntax, and then click Rebuild (e.g., for %1.2E, a zero in the legend would be printed with the format “0.00E0”). Click Apply to review changes made to the map while the Configure Plot dialog is open. Use the Apply button as needed to make additional adjustments to the color map, legend range, and/or number of tiles in the range. To use an irregular spacing or to change the spacing between the color tiles, select Custom from the Interval pull-down menu and change the interval start values in the list at the bottom of the dialog box. Specify the interval start values for each color in the legend and then click Apply. If you try to enter a value for an interval that does not fall between the interval start values that are above and below the value that you are changing, then the value will not be accepted and the number will revert back to the previous value. When you have chosen to create custom intervals, the Min and Max text boxes and the Rebuild button are disabled and grayed out, because you are choosing to override automatic calculation of the color interval spacing and instead define the min, max, and number of tiles manually. Once the settings are finalized, click OK and the Configure Plot dialog will close.
- The Labels tab contains options to edit the labels of the Domain Axis (x- axis), the Range Axis (y-axis axis), and the Legend.
- The Other tab allows you to enable or disable showing the grid lines, and to edit the vector arrow color and the series color. The edit series color allows the user to specify the colors used to shade the bars for the time series bar plot, or the colors of the lines on the Time Series Plot.
Loading and Saving Configuration
If you have made changes to the configuration of a plot, and would like to save the configuration for future use on other plots, use the Save Configuration option from the Configure pull-down menu on the plot. It is important to create a file name that indicates the formula name, the dataset, and the type of plot, along with the .cfg extension that indicates that it is a configuration file, so that you will know which plot the configuration file was saved for. An example file name is <FormulaName>_<DatasetFilename>_<PlotType>.cfg, or “O3_CCTM_base_tile.cfg”. This is only an example name; you may use your own naming convention. What is important is not how you name the files, or how you organize the files into directories, but that you remember the datasets and variables to which a specific configuration may be applied. Saved configuration files may also be invoked in batch or command line scripts by setting the parameter configFile; ie. configFile=C:\\Program Files\\VERDI_1.4\\config.txt.
To load a previously saved plot configuration, first create a plot that is of the same type, and uses the same formula that is used within the configuration file. Then select the Load Configuration option from the Configure pull-down menu on the plot. An Open File Dialog window will allow you to look for the directory in which you saved the configuration file, and to open that file. The plot title, color map, and other plot configuration features will be applied to the plot. Note that it is possible to load a saved configuration file that does not apply to the selected plot, so before loading a saved plot configuration check carefully to be sure the plot type and formula of the configuration file match those of the plot.
Controls Menu Options
The Controls pull-down menu contains the following options: Zoom, Probe, Set Data Ranges, and Show Lat/Lon.
Zoom Using the Left Mouse Button
To zoom in and enlarge a subdomain of the data, select the Zoom option. Then hold down the left mouse button and use the mouse to click on a region of the map and then draw a rectangle around the region of interest. To zoom out click on the map in the right bottom corner using the left mouse button, and while holding down the left mouse button, move the mouse to the upper left corner and then release the left mouse button.
Zoom Using the Right Mouse Button
Tile Plot and Vector Plot
On a tile plot or vector plot, right click on the map to see a pop-up window that will allow you to select Zoom In or Zoom Out on either Both Axes, the Domain Axis, or the Range Axis. Select Auto Range>Both Axes to recover the plot of the full domain, or select Auto Range> Domain Axis or Range Axis to zoom out fully along only the domain axis or only the range axis (Figure 11-7).
Fast Tile Plot and Areal Plot
To zoom on a fast tile plot or areal plot, use your mouse button to right click on the map in the area of interest. A pop-up window will appear, allowing you to select Zoom In, Zoom Out, or Max Zoom Out to recover the plot of the full domain (Figure 11-8).
Probing Values at Specific Points
To determine the data value at a specific point, select the Probe option under the Controls pull-down menu. To probe a single data point, use the mouse to hover the cursor over that grid point on the map; the coordinates of the grid points are shown in the lower right-hand side of the plot in the format (column, row). Once you click on the grid point of interest, the value of the datum at that grid point is displayed in the lower left-hand area of VERDI main window (Figure 11-9).
Probing a Domain Region of Data
To probe the values of a selected region of grid points, select the Probe option under the Controls pull-down menu, then draw a rectangle by clicking on a point on the map, holding down the left mouse button, and then releasing the mouse button once the rectangle encloses the region of interest. VERDI will create a spreadsheet displaying the grid values and will place it in the plot area of the VERDI main window as a tabbed window (Figure 11-10). The File>Export menu option at the top of the spreadsheet allows you to save probed data as a comma-delimited text file (*.csv).
Set Data Ranges
The Controls>Set Row and Column Ranges menu item will bring up a pop-up window that allows the user to configure the minimum and maximum values used in the row (x-axis range) and column (y-axis range) (Figure 11-11). Specify the values and then click OK.
Showing Latitude and Longitude
To view the latitude and longitude values for a point on the plot, select the Show Lat/Lon option on the Controls menu, then hover your cursor over the location for which you would like to know those values. The lat/lon coordinates will be displayed in the lower right-hand side of the window (Figure 11‑13). The option to display the lat/lon coordinates may be selected, and works with either the Zoom or the Probe option.
Plot Menu Options
The Plot pull-down menu (Figure 11-14) contains the following options: Time Series of Probed Cell(s), Time Series Bar of Probed Cell(s), Time Series of Min. Cell(s), Time Series of Max Cell(s), Animate Plot, and Add Overlay.
Time Series Plots
The Time Series of Probed Cell(s) and Time Series Bar of Probed Cell(s) allows the user to select a set of cells, and then produce a time series or time series bar plot of the chosen subset of probed cells. The Time Series of Min.[or Max.] Cell(s) option creates a time series plot using data for the currently selected formula at that formula’s domain, layer range, and time step range. The minimum [or maximum] value of that formula over the domain and layer range at that time step is calculated by VERDI and used for each of the time step’s data points.
You can create an animated plot by selecting the Animate Plot option. The Time Series and Time Series Bar Plots do not have an Animate Plot option. The plots that may be animated include: Tile, Fast Tile, Vertical Cross Section, Vector Plot, and Contour Plot. An Animate Plot dialog box (Figure 11-15) will appear, allowing you to save animations either as an animated GIF with a file extension of .gif or as a Quicktime movie with a file extension of .mov. This Plot menu option is plot-specific and so does not allow you to animate more than one plot at a time. To animate multiple plots, you will need to use the Plots pull-down menu at the top of the VERDI main window; see Section 5.2.2, “Animate Tile Plots.”
Observational Data Overlays
It is useful to visually compare the results contained in model output datasets with the data points in observational datasets. You can do this by creating a tile plot or a fast tile plot of the model output and then overlaying observational data points on the plot. The observational dataset needs to be in an I/O API observational data format (see Chapter 13 for more information about how to convert AIRS observational data into this format). A future enhancement of the VERDI Fast Tile Plot will be the ability to support CSV-format observational data.
Sample observational data are provided under the directory $VERDI_HOME/data/obs to allow the user to create a sample Observational Data Overlay Plots. The User is encouraged to use the Fast Tile Plot, as improvements have been made to the Observational Overlays, such as the observational data is plotted at the actual lat/lon rather than in the middle of the corresponding grid cell, and multiple observational overlays are supported. The Observational Data Overlay Dialog is different for the Fast Tile Plot and the Tile Plot
To begin, load both a model output dataset and an observational dataset. Note that when the observational dataset is loaded in the Dataset pane, an (obs) label appears to the right of the dataset name. Next, create a formula in the Formula pane using a variable from the model output dataset. Use this formula to create either a fast tile plot or a tile plot. (Note: If you create a formula referencing a variable from an observational dataset, this formula will appear in the formula list but it cannot be used to create a plot. If you try to use a formula that contains a variable from an observational dataset, the following error will occur: Error while evaluating formula: Selected dataset is observational.
Fast Tile Plot Observational Dialog
To view observational data as an overlay on a fast tile plot, select Add Overlay>Observations from the tile plot’s Plot pull-down menu (Figure 11-14). An Observation dialog box (Figure 11-16) will appear containing the variables that are available in the observational dataset. Select the observational variable or variables that you would like to overlay on the tile plot from the Observation Details list. You then have the option to control the appearance of the symbols that represent the observational data. The stroke size controls the thickness of the line used to draw the symbols, while the shape size controls their diameter. You can use up to six different open-area shapes—circle, diamond, square, star, sun, and triangle—to distinguish among multiple observational datasets. After you select the variable, and optionally set the stroke size, shape size, and symbol, select Add Variable and then OK to overlay the observational data on the fast tile plot (Figure 11-16). If you do not specify the size, shape, or symbol, VERDI will use default values. The symbol shape is set by default to a circle. Repeat the process to add multiple variables. To remove the symbols for a variable on an observational data overlay, or to reset their size or shape or stroke thickness, re-open the Observation dialog by using Add Overlay>Observations and then click on the observational variable you wish to adjust and then change the stroke size, shape size, or symbol, and/or move it up or down, or remove it, and then click OK. The center of the observational data point corresponds to the lat/lon value that is provided in the IO/API observational data file. Figure 11-16 shows a fast tile plot with grid lines drawn illustrating that when more than one observational data point are located at the same location, they are placed side by side.
Tile Plot Observational Dialog
To view observational data as an overlay on a fast tile plot, select Add Overlay>Observations from the tile plot’s Plot pull-down menu (Figure 11-14). An Observation dialog box (Figure 11-18) will appear containing the variables that are available in the observational dataset. Select the observational variable or variables that you would like to overlay on the tile plot from the Observation Details list. Select the stroke size, shape size, and symbol and then click OK. Once the observational data is overlaid on the tile plot, the user is not able to remove or resize an overlay. The center of the observational data point is positioned on the center of the grid for which the observational data point was located, rather than at the lat/lon location. This is different than the Fast Tile Plot.
Note: The Fast Tile Plot does not currently support vector overlays. This feature is available only in the Tile Plot. Vector overlays will be added to the Fast Tile Plot in a future release.
Users have two options to display vectors (e.g., wind vectors) on a plot. One option is to select the vector plot type, using the procedure described in Section 9.7 to display the vectors on a map. The other option is to display the vectors as an overlay on a tile plot, as described below.
To add a vector overlay to a tile plot, select the Add Overlay>Vectors option from the tile plot’s Plot pull-down menu (Figure 11-14). (Because this capability has not yet been added to VERDI for Fast Tile Plots, these options are currently grayed out for that plot type) The Vector Overlay dialog box (Figure 11-19) asks you to select the formula for the horizontal component and the formula for the vertical component. The formulas listed in the Vector Overlay dialog box are obtained from the formula list in the Formula pane. If the formula you would like to use is not listed in the Vector Overlay dialog box, check to be sure that you have loaded the dataset that contains the variable of interest (for example, UWIND), and that you have created a formula UWIND[x], where x is the dataset number associated with the dataset that contains UWIND. Once you have selected the two components, click OK, and the vector overlays will be displayed on the plot. Currently, vectors are plotted in the center of the grid cell. UWIND and VWIND are typically obtained from METDOT3D , which are defined at dot points or cell corners. Plotting the wind vector at their calculated locations and adjusting the length of the wind vector based on the magnitude of the wind speed will be added to the Fast Tile Plot in a future release.
An example of an ozone concentration tile plot with wind vector overlays is shown in Figure 11‑20. By default, the vectors are all given the same length. The thickness of the line width used to draw the vector indicates the magnitude of the vector; a larger-magnitude vector is drawn with a thick line, a smaller-magnitude vector with a thinner line. At this time there is no user control over how the vectors are displayed, and there is no option to remove the vectors from a tile plot.
GIS Layer Options (Fast Tile Plot)
The GIS Layers pull-down menu (Figure 11-21) contains the following options: Add Map Layers, Configure GIS Layers, and Set Current Maps As Plot Default.
Add Map Layers
The Add Maps Layers option in the GIS Layers pull-down menu is used to add maps to a Fast Tile Plot (Figure 11-22). (Tile plots, fast tile plots, and areal interpolation plots are the only plots that have maps.)
For the Fast Tile Plot, a selection of default maps—including World, North America. USA States, USA Counties, HUCs, Rivers, and Roads—can be selected or deselected by clicking with the left mouse button on one of these map names. This will cause a check button to appear or disappear next to the chosen map name, and the selected map to appear on the plot.
The fast tile plot uses a new format for all maps and GIS layers, called the bin format, to improve the speed of displaying the map layers. A shape2bin program that runs on linux platforms has been provided with the VERDI distribution to allow users to convert new map shapefiles to the bin format for the fast tile plot.
- extract the shape2bin.zip that is located under $VERDI_HOME/VERDI_1.3/ directory using: unzip shape2bin.zip
- cd shape2bin
- Several linux binary executables are provided in with the code under the bin directory. A makeit script is provided that documents the compiler flags and options used to build the executables.
- Edit the runit script to specify DATA_DIR as the directory where your shapefiles are located. Run the script using the syntax: ./runit The bin files will be written to the same directory as where the shapefiles are located. After the script has run, copy the new bin file from the DATA_DIR directory to the bin map directory: $VERDI_HOME/Verdi_1.3/plugins/bootstrap/data, as this is where VERDI looks for the bin format files. Several shapefiles and their converted bin files are provided under the bin map directory.
- Extract the win_shape2bin.zip file provided under the $VERDI_HOME/verdi_1.3 directory by double clicking on the file.
- Copy the two files cygwin1.dll and shape2bin.exe to the bin map directory: $VERDI_HOME/VERDI_1.3/data
- Place the shapefile(s) that you would like to convert into the bin map directory
- Start a command line prompt by using Run and type in cmd
- cd C:\Program Files\VERDI_1.3\plugins\bootstrap\data
- type the command shape2bin, and it will provide the format that the user should use to convert a shape file to a bin file (see Figure 11-23)
Configure GIS Layers (Fast Tile Plot)
To show an additional map on the plot, select the Configure GIS Layers option in the GIS Layers pull-down menu. When you click on this item, a dialog box titled Manage Layers gives you the following options: Add Layer, Move Up, Move Down, Remove Layer, and Edit Layer (Figure 11-24).
- When you select Add Layer, an Add Layer pop-up window (Figure 11-25) prompts you to select a map file to import into the base map. Navigate to bootstrap/data directory and select a map file with the .bin extension and click next. The Edit Style pop-up window to allow you to edit the layer style (Figure 11-26), or you can use the default line color and thickness. The outline color of the map layer can be changed to help distinguish between map layers by clicking on the box next to outline color and selecting from the color palette (Figure 11-26). The outline transparency or thickness can be changed by using spin controls to change the values. Once the layer style editing is done, Click Finish, and the new map name will appear in the list on the Manage Layer pop-up window. After the layer you have added and edited is listed in the Manage Layers dialog box, click OK to have the layer added to the plot. If you add multiple layers to the list in this dialog box, the one at the top of the list is the top layer shown on the plot.
- To rearrange the order in which the GIS layers are displayed on the plot, select a layer in the Manage Layers dialog box, and then select Move Up or Move Down, and then click OK to reposition the order of that layer within the list. If the layers that you are selecting are boundaries and were created to have a transparent fill, then rearranging the order of the layers will not change the look of the boundaries on the plot.
- To remove a GIS layer from the plot, select that layer in the list, then select Remove Layer, then click OK to remove it.
- To edit a GIS layer, select the layer from the list under Manage Layers and then select Edit Layer. The Edit Layer pop-up window will allow you to select the map outline color, transparency, and thickness (see Figure 11-26).
Set Current Maps as Default Location
This option is currently greyed out. It will be supported in a future release to allow a user specify and save the maps loaded by default to a configuration file.
Supported Grid and Coordinate Systems (Map Projections)
VERDI makes calls to the netCDF Java library to obtain the grid and coordinate system information about the data directly from the model data input files when the input data files are self-describing (CMAQ, SMOKE, WRF netCDF format files).
For IO/API files, support for Lambert conformal conic (LCC) map projection, Universal Transverse Mercator (UTM) map projection, and polar stereographic map projection was added in VERDI 1.1., and Mercator projection in VERDI 1.2. The grid projections listed on the following website are supported, although not all have been tested: http://www.baronams.com/products/ioapi/GRIDS.html
Users are encouraged to provide small input datasets as attachments to Bugzilla, for testing and to facilitate future development efforts. Figures 12-1-12-3 shows example plots generated for a dataset with an LCC, polar stereographic, and Mercator map projections, respectively.
CAMx Gridded Data
The netCDF-java v4.1 library used in the VERDI 1.3 release includes support for CAMx UAM‑IV binary files, using a pre-set default projection. CAMx or UAM binary files contain information about the x and y offsets from the center of the projection in meters, but do not contain information about the projection. The projection information is available in separate diagnostic files, which are part of the CAMx output along with the UAM binaries (Figure 12-5)
The netCDF-java v4.1 library writes the default projection information to a text file in the directory where the CAMx binary (UAM-IV) file is located. This allows the user to review and edit the projection information to make it consistent with the projection specified in the CAMx diagnostic text files. The definitions of the projection parameters used in the camxproj.txt file are defined using Models-3 IO/API format, http://www.baronams.com/products/ioapi/GRIDS.html. The user must edit the camxproj.txt file to match the grid description information provided in the corresponding camx.diag file. Figure 12-6 shows the definition for the grid projection parameters for a Lambert projection.
Figure 12-7 shows the values of the camxproj.txt once it was edited to match the values of the camx.diag file (Figure 12-5) using the definitions of the Models-3 grid parameters (Figure 12-5). Figure 12-8 shows the resulting Fast Tile Plot of the CAMx sample dataset.
I/O API Utilities, Data Conversion Programs, and Libraries
As discussed in Section 6.1, there are routines available to convert gridded input data to I/O API format or new code can be written and contributed to VERDI for use by the community. The I/O API routines that have been written to convert data into this format are discussed in this section. If you are unable to use the available routines to convert your data and have a gridded dataset that VERDI is unable to read, please submit a bugzilla bug or enhancement request with a description of the dataset, and attach a small example dataset for use in development and testing.
The I/O API Interface contains an extensive set of utility routines. There are example conversion programs to convert data from different data formats into the I/O API format. The I/O API Utilities are command line programs that are easy to script for automating analysis and post processing. An example of an I/O API Utility that may be useful to VERDI users is m3merge. This utility merges selected variables from a set of input files for a specified time period, and writes them to a single output file, with optional variable-renaming in the process. Another utility that you may find useful is m3xtract. This program allows you to extract a few species from a large file and save them to a smaller file on your local computer so you can explore them using VERDI. The I/O API Related Programs and Examples can be found at the following web site: http://www.baronams.com/products/ioapi/AA.html#tools.
Airs2m3 is an example of a data conversion program that converts the standard AIRS AMP350 observational data format to the I/O API format. The airs2m3 program requires the following inputs:
- The input AIRS AMP350 print format file name.
- The time zone conversion file (provided with the obs2api program - tzt.dat).
- Additional hour shift variable. The AIRS data are hourly averaged, and a 00 time flag represents the hour 00-01. You may wish to represent that data segment by the ending hour. In that case, a 1 should be entered here.
- Starting year, month, day, hour (GMT) (e.g., 1997 07 10 12).
- Ending year, month, day, hour (GMT) (e.g., 1997 07 16 12).
- Name of output variable (8 characters max) (e.g., O3_OBS).
Contributing to VERDI Development
If you have made an improvement to the development of VERDI source code, documentation, or anything else, please consider contributing it back to the community.
Instructions on how to set up the Eclipse Development Environment on Windows, and for running and building VERDI within Eclipse are available on www.verdi-tool.org. If you are doing a substantial amount of software development on VERDI, you should become a member of the VERDI project on SourceForge and submit your code updates through the VERDI subversion repository. You may submit a request to become a member of the VERDI project by submitting a Bugzilla request (see below). The SourceForge web site for VERDI is http://sourceforge.net/projects/verdi/.
Once your code has been reviewed by the existing team of developers for VERDI, you will be added to the developer list. Contributions to the code will be tested by the VERDI developers and will be included along the documentation about these contributions in future VERDI releases. Note that anything you contribute must have the same license as the rest of VERDI, i.e. GPL.
Bugzilla can be used to report bugs, check the status of bugs, suggest enhancements, or submit code contributions using the following website: http://bugz.unc.edu/enter_bug.cgi?product=VERDI. First, check to see if your issue is already listed as a bug or request for enhancement If you do not see an entry that matches please submit a new request or bug using Bugzilla. Please use the Bugzilla comment section to inquire if the feature or bug is already under development. Use Bugzilla to notify the VERDI community about improvements to VERDI that you would like to contribute.
As discussed in Section 1.4, you are encouraged to use Bugzilla for submitting bug reports, suggestions, and questions http://bugz.unc.edu/enter_bug.cgi?product=VERDI. To enter information on a bug, you must first register with Bugzilla http://bugz.unc.edu. If you have already registered, you can search for all bugs that reference VERDI by using the website http://bugz.unc.edu/query.cgi and entering the word VERDI then pressing search.
If you would like to be notified of any change of status for a bug that was submitted by another user, you can add your e-mail address to the CC list by clicking on the bug ID, then entering your e-mail address to the Add CC text box.
For a complete list of bugs and enhancement requests that have been submitted for VERDI, and the status of each one, visit the www.verdi-tool.org web site and click on the Query VERDIzilla Tickets link under the Support Quick Links section. The html query that is used to create this list of bugs is extensive, and therefore is not listed here.
All VERDI visualizations are the result of a formula evaluation. Formulas operate on the variables provided by the datasets. The simplest valid formula consists of a single variable; for example, “O3.” Using infix notation, more complicated formulas can be constructed using the following mathematical operators and functions. (Note that the documentation below derives from the equivalent documentation for the Package for Analysis and Visualization of Environmental data [PAVE], which is available at http://www.ie.unc.edu/cempd/EDSS/pave_doc/EntirePaveManual.html.)
Listed in order of precedence, the functions and operators are:
- abs, sqr, sqrt, exp, log, ln, sin, cos, tan, sind, cosd, tand, minx, miny, minz, maxx, maxy, maxz, mint, maxt, mean, sum, min, max
- ** (power)
- /, *
- +, -
- <, <=, >, >=
- ==, !=
VERDI also supports the following constants:
- NROWSNumber of rows in the formula’s currently selected domain
- NCOLSNumber of columns in the formula’s currently selected domain
- NLEVELSNumber of levels in the formula’s currently selected domain
Unary functions are passed a single argument. Depending on the argument and the function type, the function will return a single value or a matrix of data by performing the function on each cell of the arguments array. For example:
- The function sqrt(4) will return 2.0.
- The function sqrt(O3) will return a matrix containing the square root of each value in the O3 variable’s array.
The following functions will return a matrix when passed a dataset variable:
- absReturns the absolute value of the argument
- sqrtReturns the square root of the argument.
- sqrReturns the square of the argument.
- logReturns the base 10 logarithm of the argument.
- expReturns Euler’s number raised the power of the argument.
- lnReturns the natural logarithm of the argument.
- sinReturns the sine of the argument. The argument is in radians.
- cosReturns the cosine of the argument. The argument is in radians.
- tanReturns the tangent of the argument. The argument is in radians.
- sindReturns the sine of the argument. The argument is in degrees.
- cosdReturns the cosine of the argument. The argument is in degrees.
- tandReturns the tangent of the argument. The argument is in degrees.
The following functions will return a single number in all cases when passed a dataset variable:
- meanAverage cell value for all cells in currently selected domain.
- sumSum of all cell values in currently selected domain.
- mintTime step index with minimum value in currently selected domain.
- maxtTime step index with maximum value in currently selected domain.
- minxx index with minimum value in currently selected domain.
- maxxx index with maximum value in currently selected domain.
- minyy index with minimum value in currently selected domain.
- maxyy index with maximum value in currently selected domain.
- minzz index with minimum value in currently selected domain.
- maxzz index with maximum value in currently selected domain.
- minFor 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).
- maxFor 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).
Binary operators are not passed a value but operate on the operands to their left and right. Typically, they will return a matrix of data by performing the operation on each cell of the operand’s arrays. If both of the operands are single numbers then these binary operators will return a single number. For example:
- O3 * 2 multiplies each item in the O3 array by 2 and returns the result.
- O3 * O3 multiplies each item in the O3 array by the corresponding item in the O3 array and returns the result. (Note that this assumes that the arrays are of equivalent shape.)
- 3 * 2 simply multiplies 3 by 2.
The binary operators:
- + Returns the sum of the operands
- - Returns the difference of the operands
- * Returns the product of the operands
- / Returns the ratio of the operands
- ** Returns the left operand raised to the power of the right operand.
Boolean binary operators return either 1 or 0 in each cell of the resulting matrix. If the operands are single numbers, then a single 1 or 0 is returned. The Boolean binary operators:
- < Returns 1 if the left operand is less than the right operand, else 0.
- <= Returns 1 if the left operand is less than or equal to the right operand, else 0.
- > Returns 1 if the left operand is greater than the right operand, else 0.
- >= Returns 1 if the left operand is greater than or equal to the right operand, else 0.
- != Returns 1 if the left operand is not equal to the right operand, else 0.
- == Returns 1 if the left operand is equal to the right operand, else 0.
- && Returns 1 if both operands are non-zero, else 0.
- || Returns 1 if either operand is non-zero, else 0.
Time Step Index
A time step index can be specified after a variable name. For example, “O3:0” is the value of the O3 variable at the first time step.
VERDI Script Editor
To open the Script Editor, use File>View Script Editor, as shown in Figure 17.1 Prior running a batch script, remove all datasets from the dataset list. To remove a dataset, click on each dataset in the dataset panel and press the yellow minus button.
An Open pop-up window will be displayed, click on a sample script file in the VERDI_1.3/data/scripts directory (Figure 17.2).
After you select a script file and click Open in the Open pop-up window, the Script Editor window (Figures 17-3 and 17-4) will appear in the right hand side of VERDI. The Script Editor allows you to edit, save, and run batch scripts within VERDI. The Batch Scripting Language used for the VERDI Script Editor is described in the header of the sample text format script files (Figure 17-3).
As shown in Figure 17-4, the Batch Script File format consists of two blocks, a Global block and a Task Block. The Global block allows a user to specify a set of parameters (such as the file and directory names) on which all other tasks will be performed. In this block, the user can specify any parameters that will be used to run any other tasks. If in any other Task block, the same parameters are specified with different values, these values will over-write the values specified in the Global block. One Global Block is used to specify the common parameters shared by all Task blocks, and multiple task blocks can be defined, to specify the type of batch operations that will be performed, such as defining formulas and creating plots
Prior to running a batch script within the Script Editor, all datasets must be unloaded. If they are not, a pop-up warning message will appear (Figure 17-5) requesting that all datasets be unloaded prior to running a batch script in the script editor.
The multifiles.txt sample script that is provided as part of the VERDI 1.3 release demonstrates how to create a tile plot that uses a mathematical combination of variables, an excerpt of which is shown here:
<Task> dir=D:\\verdi-dist2\\data\\model f=copy.36k.O3MAX f=CCTM46_P16.baseO2a.36k.O3MAX f=another.36k.O3MAX s=O3-O3+O3*2 gtype=tile saveImage=jpeg imageDir=D:\\verdi-dist2 imageFile=three_components_36k.O3MAX </Task>
The above task specifies the name of three input files. The input files are assigned a number based on the order that they are specified.
s=O3-O3+O3*2’ defines a formula that uses variables from the three filenames
This formula takes ozone in file 1 and subtracts the ozone in file 2 and adds two times the ozone in file 3.
The type of plot is specified as a tile plot by setting the parameter gype to tile; ie. gtype=tile.
The image file format is specified by setting the parameter saveImage to jpeg; ie. saveImage=jpeg.
The output directory where the images will be stored is specified by setting the parameter imageDir; ie. imageDir=D:\\verdi-dis2.
The image file name is specified by setting the parameter imageFile; imageFile=three_components_36k.O3MAX.
Use the left mouse button to highlight the task that you would like to run and then click Run in the Script Editor window, a pop-up window will appear that indicates the task ran successfully (Figure 17-6). In the example shown in Figure 17-6, the title and sub-title were obtained from the definition in the global block. Aspects of the plot defined in the global block are used for multiple tasks and are applied even if only a highlighted task is run.
If the user selects Run without highlighting a Text Block, then the entire batch script will be run, and the plots generated. To edit the batch script, highlight a segment that you would like to copy and use ^C to copy the text and then click in an area where you want to paste the text and use ^V to insert the copied text. Test your changes to the script by highlighting the text block and click run, but remember to click Save or Save As… to save the edits that you have made prior to exiting the Script Editor. A successful script run will result in a pop-up window reporting that the run was completed, as shown in Figure 17-7.
After saving the script file (ex. C:\verdi-script\myscript.txt), one can run the batch script directly from command lines without invoking the VERDI GUI windows. On Windows system, bring up a command line window and run this command after change directory to where the run.bat file locates:
>run.bat –batch C:\verdi-script\myscript.txt
On Linux/Mac platforms, change directory to where the Verdi.sh locates and run this command (assuming your script file myscript.txt is saved in /home/user/verdi-script directory):
$./verdi.sh –batch /home/user/verdi-script/myscript.txt
The batch script usage (see Figure 17-3) will also be displayed from the command line after typing the following command:
If the user has specified an incorrect path, or incorrect filename for the input dataset, then a series of error messages will appear, starting with the message shown in Figure 17-8.
The VERDI Batch Editor does not currently check to see if the path specified by the user in either the imageDir or ImageFile exists, and instead will send a message that the script was successfully run, even if it was not. If you are unable to find the images in the directory locations that you specified, check to see if the directory that you specified as imageDir in the batch script exists, and then re-run the script. Double click on the file in the imageDir directory to load and view the image file in your default visualization software. Figure 17-9 illustrates the tile plot image that was generated by running the highlighted text block.
Currently, the VERDI Script Editor creates plots for layer 1 and timestep 1 for the formula and dataset that are specified. A future release of VERDI will allow the user to specify the range of layers and timesteps, set the column and row ranges, to create zoomed plots, and support additional command line scripting options.
Command Line Scripting
The commands described in this section can be executed from the command line through either command line arguments or Windows batch files. In Linux, you can edit the verdi.sh script, adding the command options at the end of the last line of the script. If you are using Windows, edit the run.bat script, again adding the command options at the end of the last line, and submitting the script at the windows command line. An example syntax for all commands follows the format
<command> <command options> \
where the “\” at the end of the command is optional.
Example Command Line Script for Linux Users
Set an environment variable $VERDI_HOME by using
Setenv VERDI_HOME /home/a_username/VERDI_1.3
Where a_username is your username.
The following script options will read in the file as the first dataset, select O3 as the formula from dataset 1, and create a tile plot of the O3.
./verdi.sh -f “$VERDI_HOME/data/model/CCTM46_P16.baseO2a.36k.O3MAX -s O3 -gtype tile
Example script file (Note that quotes (as shown highlighted in red) may be needed around the entire list of parameters” :
#! /bin/csh -f
#### 8hO3 Daily Max Plot
setenv DIR /home/training/verdi_1.3/data/OBS
"-f $DIR/ACONC_O3_8hr.dmax \
-f $DIR/AQS_overlay_2002_07.ncf \
-configFile /home/training/config.txt \
-s O3 \
Example Command Line Script for Windows Users
Edit the run.bat script in the VERDI_1.3 directory by right clicking on the file and selecting edit.
The current run.bat in notepad contains a “%1” at the end that allows it to accept input following the run.bat script using the Windows run command. Unfortunately, this command does not accept directory names that have a space them, such as the “Program Files”. If you would like to enter the script command line options after run.bat, please move the data directory to C:\VERDI\data or some other similar location.
Enter the following in the Run command: cmd
When a command line window opens do the following:
cd C:\Program Files\VERDI_1.3\
run.bat "-f C:\\VERDI\\data\\CCTM46_P16.baseO2a.36k.O3MAX -s O3 -gtype tile"
The other option is to place the script commands within the run.bat itself. Remove the “%1” statement at the end of the run.bat that is provided in the distribution, and add the script options that you would like to use. The following run.bat contains script options that will read in the file C:\Program Files\VERDI_1.3\data\CCTM46_P16.baseO2a.36k.O3MAX, select O3 as the formula, and create a fast tile plot. The changes that you need to make to the run.bat are highlighted in red.
%JAVA% -Xmx512M -classpath "./bootstrap.jar;./lib/saf.core.runtime.jar;./lib/commons-logging.jar;./lib/jpf-boot.jar;./lib/jpf.jar;./lib\log4j-1.2.13.jar" saf.core.runtime.Boot -f C:\Program Files\VERDI_1.3\data\CCTM46_P16.baseO2a.36k.O3MAX -s O3 -gtype fasttile
Run the run.bat script by clicking on Start, then selecting Run, then either using Browse to find the run.bat or typing it in (Figure 18-2).
Script commands that can be used for command line scripting (listed in alphabetical order) are described below. Adding support for these script commands in the Script Editor is planned for a future VERDI release.
[-alias <aliasname=definition>] defines an alias. You can define an alias by creating a definition using variable names and derived variables that are calculated using the mathematical operators described in Section 15: Mathematical Functions. The alias definition does not include the dataset name. The alias is treated like any other formula once the alias definition and the dataset to which it should be applied are specified. If you need to redefine an alias definition, you must first use the -unalias command. The alias definitions are saved to a .verdi.alias file in your home directory. VERDI uses this type of optional file in your home directory to maintain a snapshot of the current aliases being used. The following warning will be reported if an alias is defined more than once: “WARNING: Alias <aliasname> already defined, new definition ignored.” You are also responsible for not making circular references. Use the ‑printAlias command to view what aliases are already defined.
[-animatedGIF<filename>] creates an animated GIF by doing an X Window Dump (XWD) of each of the time steps in the tile plot, then converting them to GIF images. If there are many time steps in the dataset, there will be a slight delay before you are again given control of the GUI.
[-closeWindow “<windowid>”] closes the window with the specified window ID.
[-configFile <configFileName>] specifies a configuration file for VERDI to use for configuring subsequent tile plots.
[-copyright] prints out copyright information for VERDI.
[-drawDomainTicks ON|OFF] turns the domain axis ticks on and off.
[-drawGridLines ON|OFF] turns the plot grid lines on and off.
[-drawLegendTicks ON|OFF] turns the ticks in the legend on and off.
[-drawRangeTicks ON|OFF] turns the range axis ticks on and off.
[-f <filename>] tells VERDI to load in this dataset and make it the currently selected dataset. All datasets will stay in memory.
[-fulldomain] sets the VERDI domain matching the currently selected dataset to be completely selected. The currently selected dataset is usually the most recently added dataset.
[-g <tile|line|bar|contour>] instructs VERDI to create a plot using the specified type and the currently selected formula’s data.
[-gtype <tile|line|bar|contour>] instructs VERDI to create a plot using the specified type and the currently selected formula’s data.
[-help|fullhelp|usage] display the information on all the command line arguments available. Each of these three versions performs the identical function.
[-legendBins "<bin0,bin1,...,bin_n>"] causes VERDI to use the specified numbers as breaks between colors on subsequent plots. The value of this argument is a comma-separated list of numbers. For example, -legendBins “1,10,100,1000” will cause plots to be created with three colors that correspond to values of 1-10, 10-100, and 100-1000. To go back to the default method for determining breaks between bins, enter -legendBins DEFAULT.
[-level <level>] sets the level range of all formulas to the single level specified.
[-levelRange <levelMax> <levelMin>] sets the level range of all formulas to the range specified.
[-openProject <VERDIProjectName>] opens a previously save VERDI project.
[-printAlias] prints existing alias definitions.
[-quicktime (NEW)] creates a Quicktime movie of the currently selected plot.
[-quit|exit] ends the VERDI session.
[-raiseWindow <windowid>] raises the window with the specified plot ID (i.e., brings it to the front).
[-s "<formula>"] loads the specified formula into VERDI’s memory, and makes it the currently selected formula.
[-save2ascii "<filename>"] export data to a tab-delimited data file suitable for reading into a spreadsheet application such as Excel.
[-saveImage "<image type>" <file name>] saves the most recently created plot. This command works for all plot types. Supported formats include PNG, BMP, TIF, and JPG.
[-scatter "<formula1>" "<formula2>"] creates a scatter plot using the two formulas specified. Note that the formulas for the two components should already have been loaded into VERDI, and they are case sensitive.
[-showWindow <windowId> <timestep>] sets the time step of the window with the specified window ID to the specified time step. The time step must be within the allowable range for the dataset.
[-subDomain <xmin> <ymin> <xmax> <ymax>] sets the VERDI domain matching the currently selected dataset to the bounding box specified by its arguments. The currently selected dataset is the most recently added dataset. It is often handy to type -subdomain commands into VERDI’s standard input if you are trying to select a very precise subdomain (such as that needed for a vertical cross-section plot).
[-subTitle1 "<sub title 1 string>"] allow you to control a plot’s subtitles if desired. Subsequent plots will use the default subtitles, unless these arguments are used again.
[-subTitle2"<sub title 2 string>"] allow you to control a plot’s subtitles if desired. Subsequent plots will use the default subtitles, unless these arguments are used again.
[-subTitleFont <fontSize>] allow you to control the font size of the subtitle of a plot.
[-system "<system command>"] sends the specified command to the operating system’s command line.
[-tfinal <final time step>] sets the last time step for each formula’s time-step range to the specified step number, where the first step number is denoted by 0.
[-tinit <initial time step>] sets the first time step for each formula’s time-step range to the specified step number, where the first step number is denoted by 0.
[-titleFont <fontSize>] allows you to control the font size of the title of a plot.
[-titleString "<title string>"] sets the title for the next plot made to the specified title. Subsequent plots will use the default VERDI title, unless this argument is used again.
[-ts <time step>] sets the selected time step for each formula in VERDI’s memory to the specified step number, where the first step number is denoted by 0. This will remain the selected time step until you change it. It affects only tile plots and vertical cross-section plots.
[-unalias <aliasname>] is used to undefine an alias.
[-unitString "<unit string>"] can be used to override the default unit label used for plots. The default value comes from the dataset(s) themselves.
[-vector "<U>" "<V>"] creates a vector plot with U as the left-to-right vector component and V as the down-to-up vector component. There are no background colors used for this type of plot. Note that the formulas for the two components should already have been loaded into VERDI, and they are case sensitive.
[-vectorTile "<formula>" "<U>" "<V>"] creates a vector plot with the result of "formula" as the background tiles, U as the left-to-right vector component, and V as the down-to-up vector component. Note that the formulas for the three components should already have been loaded into VERDI, and they are case sensitive.
[-version] prints out information about the VERDI version being used on the standard output stream.
[-verticalCrossPlot X|Y <row/column> (NEW)] creates a vertical cross-section plot. You indicate whether this will be an x or y cross-section plot and what row or column to use as the base.
[-windowid] prints the window ID of the currently selected plot.
Areal Interpolation Calculations
Before calculating the average value for a polygon segment, the area for each polygon is calculated using the projection of the grid system loaded. The system then calculates the area of overlay between each grid cell and the polygon segment.
The total contribution of a value (concentration, deposition, rainfall, etc) from each cell for a given polygon segment is calculated using the following equation:
TV i = sum (Orci * Vrc) where
Orci = Area of overlay of cell at row r and column c with segment i,
Vrc = value of cell at row r and column c, and
r and c iterate across the rows and columns of the grid.
The Average Value is calculated by dividing the total value by the area of the polygon segment:
AverageVi = TVi / Aiwhere
Ai = Area of the polygon segment i
Licenses for JAVA Libraries used by VERDI
VERDI has been developed using a number of open source Java libraries. Table 21-1 contains a list of the jar files or Java libraries that are used by VERDI, a link to where each library may be acquired, a link to the location where the license is referenced by the documentation for each library, as well as a link to each license. The distribution for VERDI contains a sub-directory called licenses. This directory contains a copy of the licenses for the open source Java libraries used by VERDI.
Contributions to VERDI from the community are greatly appreciated.
Sample CAMx Dataset
Marco Rodriguez, CIRA at Colorado State University http://www.cira.colostate.edu/
Sample Mercator Projection Dataset
Tanya Otte, Atmospheric Modeling and Analysis Division, http://www.epa.gov/amad/index.html
Data Reader Contributions
I/O Service Provider (IOSP) Interface for CAMx:
Barron Henderson, ORISE Fellow, EPA, Ph.D. student UNC Chapel Hill
Incorporating the IOSP into netCDF netcdf-java v4.1 Library:
John Carron, Unidata, http://www.unidata.ucar.edu/software/netcdf/index.html