One of the key aspects of my Summer's work was to develop software
which would facilitate 3 dimensional visualisation of both model and
observational data.
The very nature of the problem - modeling
interactions between galaxies - is one played in a 7 dimensional
parameter space of which only 3 of the dimensions - X, Y and Vz - are observable. What we observe is sensitive not only
to the intrinsic physical parameters of the system, such as the mass
ratio of the galaxies, but also to our viewing angle. Indeed Zwicky, in 1953,
realised the importance of projection effects on what observe in his
analysis of M51, noting that the narrowest of the filaments observed
may be broad sheets of matter seen nearly edge on. It is not difficult to imagine a range of initial orbital
parameters producing results which resemble the Antennae as we observe
them today. This particular point was emphasized in
Encounters between Disk/Halo Galaxies(Barnes, 1988).
Primarily, my intention was to build a programme that would allow the
user to view and manipulate, in effect, to get a physical picture of
the data in a three dimensional form, before moving on to carry out
more quantitative analyses using John's existing software.
Several options were considered - IDL, Java, VRML and the final
choice, Geomview. Geomview is an interactive three dimensional
visualisation tool that was developed by the now inactive Geometry
Centre. As a means of visualisation, it is particularly user friendly
and fulfilled all out criteria for processing speed and ease of use.
The range of actions available to the user - rotations, translations,
zoom in and out - are carried out by a simple point, click and
drag. The object can be simultaneously viewed from several camera locations and the
user mayb observe how the view changes from different perspectives.
The next task was to develop a programme which could take our existing
data and convert it into a format which could be read by Geomview. I
decided to use C for the writing of this programme because it is
reasonable to expect that most users will have some proficiency in
this particular language, thus allowing them to modify the programme
if necessary, and also because I wished the programme to be integrated
into exisiting software which is written in C.
The problem in hand reduced to reading in data which may exist in a
variety of formats and writing this data to file in a form that would
give a meaningful physical representation of the results. The first part of the
problem was dealt with relative ease - given the structure of the data
files which were to be read, I could simply tailor a specific function
to read the required data from the file. The second part of the
problem required a little more thought, but serendipity showed her
hand and it was
discovered that by using the OOGL VECT object file format, it was possible
to get a particle representation of the data.