VISTA (Visualization Tool and Analyzer)




VISTA provides data retrieval, management, manipulation and visualization. The philosophy is to access, manipulate and visualize data with ease. A graphical user interface is provided for first time and occasional users. A scripting language will be provided for power users to automate batch production.

Data retrieval is accomplished using a two-tier client server architecture. The data resides on a server and the bulk of the application resides on the client. The server can serve data locally and over the network.

Data management is accomplished using data reference. A data reference is to the location of the data set and its characteristics. For instance, a time series data is referred to by a server address, filename, pathname, time window, and a time interval. Some data references do not refer to actual data but to the set of data references and the operations to be performed on them to construct the data set. This provides transparency to the user. For the user there is no difference between such virtual data sets and the actual data sets.

Data references can be aggregated in to a Group (Figure 2). The default view on a database file is a Group. Furthermore, one or more Groups form a Session (Figure 1). A Session can be saved and loaded from a file once created. The initial Session is created by opening a connection to a server and directory. The directory of database files then becomes a Session and each file becomes a Group containing data references.

Data manipulation is done by creating virtual data references which contain the set of data references and the operations to be performed. The actual operations on the data are performed when the data for the reference is requested. Math operation such as division, multiplication, addition and subtraction are available between data sets. Period average and moving average, and merging are data references which are some other examples of manipulations on data sets.

Data visualization is done by two-dimensional plots (Figure 3). Examples of such plots are time series plots and scatter plots. Zooming in and out and paging while zooming are some of the tools that are available. Printing is available in gif and postscript formats. A user has control of the attributes of each element in the graph. The user can change the text, font, size, color and background color of the title. Most of these attributes can be saved to a file and applied to subsequent plots. Data can also be displayed and manipulated in tabular format (Figure 4).

A graphical user interface is used to display a group of data references. The GUI is a view onto the application and does not contain information about the application other than the way the application desires to be displayed. This separation lets support of undo/redo commands and the recording of macros which can be replayed on different sessions.

Scripting is an efficient way of accomplishing repetitive tasks. Scripting would use the same application as the GUI and could use some of the GUI components.



This application was done in Java. Java was chosen for ease of development and wide industry support. This ensures long-term support and multiplatform portability. Java is ideal for a client-server architecture. One of the disadvantages of Java is efficiency of memory and cpu resources. Just-In-Time Compilers and better virtual machine implementations are bringing the efficiency of Java closer to traditional languages such as C++ and Fortran. The client side GUI is in Java and will run as-is on platforms supporting Java. This effort was made to allow the client to run embedded in a web browser. This will enable anyone on the Internet with a web browser to use the latest version of the client and manage and visualize the data in the form that they desire. The server side is written using Java, FORTRAN and C languages and as such will be made available and supported on Solaris and Windows NT platforms. The database used to store data is HEC-DSS, however all the details of database specific access are isolated on the server side. This makes the client unware of the actual mechanisms of data storage. Object-oriented analysis and design techniques with an evolutionary prototype approach was used throughout this project.



The concept of client-server is new in the modeling world. Many new concepts are being tried here for the first time. Other than a few minor glitches work has progressed to the implementation and distribution of the first beta version of VISTA. A second beta version with flag editing and writing data back to the server will be made available in the early part of June.

Some ideas for the future are :

  1. Improving the 2D graphics by using the latest library from Java
  2. Improving the postscript printing to provide production quality printouts
  3. Graph editing tools
  4. Scripting language for batch processing of data
  5. A schematic as an alternative view of a Group
  6. Report generation for the automatic formatted generation of reports
  7. Animation facilities for easy set up of animation of time varying data
  8. Online context sensitive help for the application
  9. Security and access control levels as fine as individual data sets

A first beta version of VISTA was released to the Modeling Section in April 1998. A second beta version of VISTA with more features will be released in early June 1998. A first version of VISTA with all the features will be released in 1999.

Goto: 1998 Annual Report
Goto: Annual Reports

[ Back | Home ]

Copyright 2000. California Department of Water Resources. All rights reserved.
Webmaster: Tawnly Pranger
The URL is
Last modified: June 22, 2000 .

Comments or Questions
Webmaster email to