Introduction
The aim of the WorldViz project is to set up thematic maps showing connections or dependencies between different spatial features. We have had several highly productive and interesting meetings during this first four weeks of this project. Currently, three of us are involved in the project – Professor Dr.Benno Schmidt, Christian Danowski (both Hochschule Bochum) and Adhitya Kamakshidasan (National Institute of Technology, Nagpur).
There are various components to our WorldViz Project and I shall to mention each one of them in detail below.
Implementation
Pajek Reader
One of the important features of our project is the Pajek Reader. The Pajek file contains raw data. For example, it can have the names of various places and their longitude and latitude. Such files will have a Pajek.Net format. We take a single file as input to our module. The Pajek file is then parsed and checked for syntactical errors. We currently use this document as a reference for the file’s syntax. Towards the end of the reader, we abstract this raw data into FeatureNets.
FeatureNets
FeatureNets have two parts to them. One is ‘Features’ and the other is ‘Relations’.
Features are essentially data that can represented as Nodes or Points. For example, the location of a particular point can be represented with a Node. Such features are represented using VgFeature, a class that already exists in 52N Triturus.
Relations are essentially data that can connect one Feature to another Feature. For example, India and Germany could be connected with a weight of 100. Such features are represented using VgRelation, a class that we designed specifically for our project.
WvizConfig
WvizConfig has all the information about how our scene should be configured. This information is supplied to this class using an XML file. A few of the properties that this XML file configures are color of a Node and width of a Connection, when using cylinders as a visual symbol. An example of such file can be seen here.
We use the external library XStream for importing such configuration from an XML file to our Java classes.
Wgs84ToX3DTransform
Now that we have both our raw data and our XML configuration file in Java, we should combine both of them together to create different scenes. But not so fast! The raw data contains information in the World Geodetic System 1984 coordinate reference system. However, we require them to be scaled down uniformly to have fixed spatial extent regarding the XZ-plane of the X3D coordinate system. Therefore, we can keep a uniform scale factor for geometries like nodes and edges. Additionally, the aspect-ratios with respect to x, y, and z coordinates will be preserved by this transformation. The Wgs84ToX3DTransform feature does just this. A demo for this feature can be found here.
WvizConnectionMapSceneX3d
This class takes all of the above, puts them together and generates a wonderful X3D file with the raw data and the style configurations intact! The image below provides an example of a file that this has generated. Though this scene can be displayed in a browser, manipulation features have yet to be implemented.
The source for this diagram can be found here.
All the features mentioned above can be tested by running this class. So have fun with it!
Testing
All the main classes have tested properly using JUnit.
Flow Diagrams
The following flow diagram shows the transformation of the Raw data and XML files to generate an X3D Scene.
Here is a small explanation for this Flow Diagram.
- A Pajek.Net file is taken as an input for PajekReader.
- PajekReader generates an Object which is of type WvizUniversalFeatureNet and contains a FeatureNet with the Features and Relations that were present in the .Net file.
- An XML file containing the style configuration for the graphical scene is given as input to WvizConfig.
- The mapper MpFeatureNetVisualizer performs the transformation of a FeatureNet to an abstract 3D connection map scene.
- The abstract connection map is generated and given as input to WvizVirtualConnectionMapScene. This generates an abstract (“virtual”) scene which does not know anything about its final realization (X3D, KML,).
- The mapper MprConnectionMapGenerator performs the transformation of an abstract 3D connection map scene to a concrete scene description (X3D, KML, X3DOM).
- Finally, WvizConnectionMapSceneX3d does the transformation from description to generating an X3D scene.
Isn’t the flow beautiful?
Conclusion
We are doing a lot of interesting things with this project – more to follow! We hope that you have liked our progress till now.
Leave a Reply