Science Data Analysis
dasml Applications
das2 Layout and Event Model
das2 Graphics Primatives
Java Platform (jdk 1.4)

The Java Platform.

One of the original design goals of the das2 project was to provide a platform-independent, installationless system for data analysis. Java is the clear choice for this, since it is highly integrated with the web and provides true platform independence. This is the only configuration required for use of the system, and java is often included with up-to-date operating systems. We provide an area to verify the operation of your java platform.

Java Web Start is used to automatically maintain the software on remote sites. Each time the software is invoked, the software server is contacted to see if any updates need to be downloaded.

Graphics Primatives.

Java provides an excellent library for creating 2D graphics. The library provides anti-aliased, scalable lines, shapes, and fonts, as well as platform-independent printing. The das2 graphics library developed on top of this platform provides beautiful axes, spectrograms, and line plots. Equations can be rendered as well, specified using IDL's syntax (e.g. E=mc!e2).

Layout and Event Model.

Plot components and controls are implemented as Java Swing components. You can easily control any component, for instance, if you wish to change an axis' range, you can right-click and select "configure" to change the parameters. As much as possible, we provide graphical methods for configuration, like zooming in on a plot.

We also introduce mouse gestures to science data analysis, which have been used successfully in the web browser Opera. Mouse gestures allow us to pack more functions into the mouse in an intuitive way. For instance, clicking and shifting the mouse to the left performs the operation "zoom previous," so you can get back after zooming in. clicking and shifting the mouse down performs the operation "zoom out," which allows one to see what's going on just outside the bounds of the current plot.

The familiar spectrogram slicer shows a cross-section of a spectrogram. We generalize this idea into a event model, so that components can be connected in unimagined ways. For instance, the tool that zooms in time doesn't have to do just that. It simply raises a "dasTimeSelectionEvent," which can be sent to the axis (which then zooms), but can also be sent to another process that might integrate the data within that time range. Not only does this provide a quantum leap in functionality, but it also means we'll have recyclable components. Lots of function, not much code!

Java also provides layered panes for drawing, so that drawing selection markers and annotations is trivial.

XML Applications.

The lower layers provide all the functionality needed for a highly interactive, intuitive, and flexible system for scientific data analysis, but how do you write programs for it? We use XML, an HTML-like language, to specify the plot layout and initial state. Here is a prototype specification file, and a screenshot(no ref) of the application it describes.

XML allows use to define a layout specification that is portable, extensible, and is easily verified for correctness. Because it is a flexible ascii format, it can be transmitted without fear of corruption. It is extensible, so we can easily expand the specification to include new functions without breaking existing configuration files. XML is widely used and java provides syntax verification and correctness checking. This will greatly reduce the time required for the generation of layout files, as well as the frustration.

Science Data Analysis

We will also develop an IDE editor for layout specification. In this facility, new graphic data products can be quickly composed, integrating data sets from a number of sources, intuitively displayed and controlled. The time it takes to go from concept to printout will be minutes rather than hours or days. Data products are easily shared via email or shared web-based storage. Plots can be saved to .png images for the web, or journal-ready postscript files.