SciVisFall2008/Assignment 4

From VistrailsWiki
Revision as of 12:13, 26 November 2008 by Emanuele (talk | contribs) (→‎Data)
Jump to navigation Jump to search

This is your fifth assignment for CS 5630/6630.

The assignment is due at midnight on December 8th, 2008. You will need to use the CADE handin functionality to turn in your assignment. The class account is "cs5630".

This assignment was successfully tested in release 1.2.1rev1336. It should work fine in releases >=1.2.1rev1336. Check your release before starting your work and upgrade it if necessary.

The purpose of this assignment is to make sure you understand (and experiment with) the basic concepts involved in the visualization of large graphs.

As usual, as you work on the assignment, we encourage you to read the available documentation on both python and VTK. Remember that VisTrails allows you to easily access the VTK documentation. To see the documentation of a VTK module in the Modules panel, just right click on its name and choose View Documentation in the context menu. Analogously, you can right click on a method's name in the Methods panel to see it's documentation. Some of the problems will require you to use VTK modules you might not have previously seen. These are indicated in the problems.

General Hints

InfoVis capabilities in VTK are new (ie., unstable) and some of the features do not work too well, or crash (We recommend saving often). Thus, this assignment will be somewhat limited in what we can do.

Data

The data for the two problems of this assignment are in two files: Assignment4.vt and movie_actors.txt

  • Assignment4.vt is the VisTrails file to be used as starting point
  • movie_actors.txt is a file containing some of IMDB movies and actors

Exercise 1: VTK Class Hierarchy Visualization

The goal of this exercise is to compare several different InfoVis graph layout strategies. The graph we will be visualizing is the VTK class hierarchy, stored in the vtkclasses.xml file. The node download in Assignment4.vt will download the file for you and the node Tree Map will display the VTK Classes as a 'somewhat' interactive Tree Map (hovering the mouse will show the classes names).

(a) Replace the tree map with a graph layout (see vtkGraphLayout). Be sure to keep the labels on the resulting tree (see vtkDynamic2DLabelMapper). Tag the final version of this visualization as Problem 1a

(b) Each class in the xml file has an attribute library which represents the group where each class is located. IO, Filtering and Infovis are examples of these libraries. The PythonSource provided in the Tree Map node is assigning to each of the libraries a number between 0 and 12 and building an array called color inside the tree. Use it to create a colormap and apply it to your graph. Tag the final version of this visualization as Problem 1b

(c) Experiment with different graph layout strategies. Display at least 3 of them side-by-side on the spreadsheet. Choose the one you like best and in the notes, comment on why you chose the layout you did. Tag the final version of this visualization as Problem 1c

(d) Create a new graph based on the vtk class hierarchy such that each library is now represented as a node in the tree and is connected to its classes. One way to do this is by creating a root node called VTK, add all the libraries as its children and then add each class to its corresponding library. Look at the node "Create VTK Tree" for an example of how to do that. Tag the final version of this visualization as Problem 1d