Data processors

Back to the index


  1. What is a data processor?
  2. The DataProcessor class
  3. Sample processors

What is a data processor?

A data processor is a java class that subclasses WISA.wisa3D.module.DataProcessor. Wisa3D is able to load these data processors while running and to integrate them in the Wisa3D GUI. From there the user can provide a processor with data and other informations needed to do his processings. Then the processor is started as a Thread, e.g. the user can still work with Wisa3D while the processors does its computations. Once a processor is started a small window informs the user about the progress of the computations. When the processor finishes the user is informed and asked what he wants to do with the processed data.

Data processors can either work on existing data (See GridProcessor for an example) or can create completely new datasets (See OrbitProcessor for an example). Because data processors are Java classes they are able to do everything Java does. Via the native construct they can also use modules in C, C++ and other languages. The big effort of this is that existing code can easily be rewritten to be used by a data processor. If there are big datasets and long lasting computations one would like to use a C module for the computation instead of the slower Java.


The DataProcessor class

coming soon...


Sample processors

Here are three sample data processors that were written to show some possibilities of what data processors are able to do. They can only show a small window of the possibilities the data processor concept opens to the user. For example no one of the three data processor uses native code to do its computations.

The GridProcessor

The GridProcessor needs an indexed dataset as input (The visad MathType has to be something like (index -> (...)) and constructs a gridded dataset as output (Something like ((x, y, z) -> (...))). Therefore it lays a user defined equally spaced grid over the data and performs a count-in-cells algorithm to compute the different values of all cells. The user can therefore determine the dimension of the grid, the domain of the gridded dataset, the range of the gridded dataset and the minimal and maximal values and lengths for each dimension of the grid. The so produced datasets can be used to make slices of the data with the Wisa3D slicer tool.

The GridProcessor is a data processor that needs data as input to do its computations. It has an option dialog (Click the image on the right to get a fullscreen version) that allows the user to specify all parameters that take influence on the algorithm. It shows a progress monitor if the computation seems to take some time. The GridProcessor is a good example for a data processor that takes some data that has to fulfill some needs for the processing, does some computations with the data and produces a new dataset from that old data and the informations provided by the user.

The DEMProcessor

The DEMProcessor constructs a 2 dimensional grid of elevation data. Therefore it uses the GTOPO30 digital elevation model (DEM) which has a typical resolution of 30 arc seconds or 1 kilometer. The whole GTOPO30 dataset is about 2.7 GB big. One can imagine that it is impossible with a normal PC to visualize such data. Hence you need a program that cuts of all data that is not needed. That is exactly what the DEMProcessor does. With its help the user can specify the area of interest and the desired resolution of the resulting 2 dimensional grid. The DEMProcessor computes the required pure memory usage for the user specified parameters. This should be handled with care because it is really only the pure memory usage! In real life there is a big overhead because of the visad classes needed for visualization. Nevertheless an experienced user can estimate the real life memory usage.

The DEMProcessor is a good example for a DataProcessor that does not need input data but benefits from an input dataset that has a Longitude-Latitude-grid. If there exists such a dataset the processor assumes the user wants to have a DEM-data that covers the given Longitude-Latitude range and does all preferences for computing this dataset. The DEMProcessor has an option dialog (Click on the small image on the right to see a fullscreen version) where the user can adjust the area of interest and the resolution of the produced dataset. On the top of this dialog is a worldmap which fulfills different tasks. At first it is an indicator if the GTOPO data was found because the loaded images are part of the GTOPO data. Then the user can choose the area of interest by dragging the mouse on the worldmap. The DEMProcessor has a progress monitor that informs the user about the state of its computations.

The OrbitProcessor

The OrbitProcessor computes the orbits of the H-Atom. Therefore no input data is needed. The only informations needed are the quantum numbers of the wanted orbit and the resolution of the output data. So the OrbitProcessor is a good example for a data processor that constructs a completely new dataset that can be visualized, modified and combined with other data in Wisa3D.

The OrbitProcessor uses an option dialog (Click on the image on the left to see a fullscreen version) to get the quantum numbers and the resolution needed for the orbit to be computed. It also uses a progress monitor if desired. Most times the progress monitor won't pop up because the computations are done in some few seconds.


Back to the index