# Bill Hibbard's Lectures for NEEP 602 / ART 448

These eight lectures and four labs are about Programming for Scientific Visualization, using VisAD and Python.

The lectures will be presented at 1:20 PM Monday and Wednesdays, 28 January - 20 February, in 175 CAE (1410 Engineering Drive).
The labs will be presented 2:40 - 5 PM Mondays, 28 January - 18 February, in 187 CAE (1410 Engineering Drive).

The syllabus is:

28 January Lecture
Visualizing Numerical Data Structures in a SpreadSheet

28 January Lab

30 January Lecture
The VisAD Data Model, and Present Mystery Data Set (you may need to click on this with the right mouse button)

See the VisAD Python Data Model Tutorial for on-line information.

4 February Lecture
Python Programming for Visualization

See the Python Tutorial and the VisAD Python Tutorial for on-line information.

4 February Lab
Running and Experimenting with Python Programs

Here are Python programs named field1d.py, field2d.py, mike.py and stroud.py. In each of these programs, there is one or a few lines where it computes the values being visualized. Try modifying the way these values are computed, to see how that changes the visualization.

Also, visualize the Mystery Data Set (you may need to click on this with the right mouse button) using the SpreadSheet or Python and try to figure out what it is.

6 February Lecture

See the VisAD Python Function Quick Reference, the Python Tutorial and the VisAD Python Tutorial for on-line information.

11 February Lecture
Analyzing Data using Python and Visualizing Results

In this lecture we will study the slice.py program for extracting 2-D slices from 3-D grids.

Also, see the VisAD Python Tutorial sections on Quick Graphs and VisAD Python Methods, and the VisAD Python Function Quick Reference for on-line information.

11 February Lab
Experimenting with Python Data Analysis

In this lab I'd like each team to write a short Python program to load an image, compute the average value of its pixels, and print that average value.

13 February Lecture
Interactive Data Analysis

In this lecture we will study the image_line.py program for extracting 1-D slices from 2-D images.

18 February Lecture
Collaborative Data Analysis

In this lecture we will study collaborative visualization using the server program image_line_server.py and the client program image_line_client.py

This lecture builds on the interactive analysis program presented in the previous lecture.

18 February Lab
Experimenting with collaborative data analysis.

In this lab we will try to run the server program image_line_server.py on one machine and the client program image_line_client.py on one or more other machines. In order to do this, we will need to modify "localhost" in the client program to the IP name of the lab machine running the server program.

In this lab we will also start work on an assignment to write a program to compute and print the average grid values for each time step of the Mystery Data Set. The basic assignment is just to print the average values. The advanced assignment is to plot a graph of average values over time. In order to do this assignment, you may want to start with your program from the last lab for computing the average value of a GIF image. You may also want to look at the field1d.py, field2d.py and possibly other programs from this module for some hints about how to write the advanced program for plotting a graph of average values over time.

20 February Lecture

Python Programs and Data

You can download the Python programs and data for the course in the jar file at ftp://ftp.ssec.wisc.edu/pub/visad-2.0/neep602_python_data.jar (you may need to hold the SHIFT key down when you click on this). Download it into a directory where you want to work (you may need to hold the SHIFT key down while you click on the link to avoid a message that the jar file is corrupt), then run:

jar xvf neep602_python_data.jar

This will create a number of python source files (with the .py suffix) and data files.

### Machines for Course Material

There are machines available in room 187 CAE (1410 Engineering Drive) for working with course material.

You may use any machine for working with course material, as long as the following are installed:

• JDK 1.2 or JDK 1.3 (see the links on our server for installing the JDK)
• Java3D - there are bugs in versions 1.1.3 and 1.2, so please install version 1.2.1 which is available from our server
• OpenGL (standard on Windows NT and freely available for many platforms, with links from our server)
• VisAD - available from our server (see the READMEfile for installation instructions)