VISUALISATION OF THE BOTTOM OF SYDNEY HARBOUR

This visualisation and report is the work of Ty Jenkins and Heidi Pryor.

The project was to visualise some data in a way that was both clear and which displays what the data is representing. We obtained our data set from the Ocean Sciences Institute at the University of Sydney. The data is of the floor of Sydney Harbour covering Sow & Pigs and the harbour entrance channels around Middle Head-Watsons Bay. It arrived in our hands as half cleaned quality data which meant that there were pieces missing from or gaps in the data which was represented in a format where an x,y coordinate was specified with its relating z depth.

This work is a test pilot to see whether the data can be visualised.

This is a map of the area which the data covers, courtesy of NSW waterways.

scan area map

Because of our familiarity with AVS 5, this was the visualisation tool we decided to use.

Firstly, we attempted to read the raw data and plot this as 3D coordinates.

Our attempt at this method was very slow and to produce an image we used two AVS tools called Scatter Dots and BubbleVis which simply put a dot where each point is specified. This produced a medium quality visualisation which displayed the main shape of the data set but was not how we wanted to display it. This shows the field file we used to create the following images.

bubblevis field file

bubblevis1 image

This is the above visualisation rotated. The blue part is the bottom of the Harbour.

bubblevis2 image

Our aim was to smooth a surface over the data values so you could see the shape of the floor for instance where sand bars and reefs appear, and not just look at a volume of space. We realised we could not achieve this with bubblevis and scatter dots, so we experimented with another set of tools called UCD. Here we display the network we tried.

UCD network

This experiment went completely wrong and produced undecipherable images, so we discarded this idea and went back to a familiar tool called field to mesh. The field-to-mesh however, requires 2D data in a regular grid. Our data was in a three dimensional format and because it stated each point and the value at that point, it was in an irregular format. This meant we could not display the raw data using field-to-mesh.

Some C code was written to calculate the minimum and maximum values of x and y. This helped us determine how much the x direction varied and how much the y direction varied. We were also able to determine which points were missing from our data and fill these in with dummy values, which we set to zero.

C code

This code scales the Z values so they are not drowned out by the x and y values

C code

The above code calculates the dimensions of the data set.

C code

The above code fills in the missing data from the data set.

The x plane varied from 16838590 to 16840540. This is a difference of 1950. Looking at the data, it can be seen that the values increment themselves by fives therefore there are 1950 divided by 5 points in the x dimension, gives 391 graduations along the x dimension.

The y plane varied from -3983990 to -3982010 which is a difference of 1980. As with the x dimension the values here increment by 5 so the same calculation gives 397 points along the y axis.

Once we had the data in the correct format, we could then use a simple network to display our first real image. This is the first simple network.

mesh network

This network produced images such as this one.

image

At this point we were working towards trying to make the image look better and clearer. The first thought was to clean up the data set we had been given by some how predicting the values of missing points from the points we did have around it. While it is not hard to smooth the missing data out this will leave the image with obvious places where the bad sections have been rubbed out. If some effort is made, for instance by adding some randomness to the smoothing process so that the fixed up sections look bumpy like the rest of the sea floor then someone looking at the picture might think that this is a fully correct visualisation when in reality we have no idea what the sea floor is really like in the blank spaces in the data. Therefore is was decided not to make any attempt to launder the data. What we did do was attempt to make all the dirty parts of this data, ie. the places where the z values were simply set to zero, invisible.

AVS has the option to be able to enhance the image by changing the picture's hue, saturation, brightness and opacity. This was our chance to make the dirty pieces of data invisible. Unfortunately this was not to be, we then had to decrease the brightness of the zero values to make then apppear darker than the rest of the image.

image

We then ventured into the completly unknown to make an animation that ran through the harbour. Firstly, we took large amounts of screen grabs using snapshot. Not only was this tedious, but prone to a lot of error. As we soon found out we could use AVS to do this work for us. We created a more complicated network that would animate steps through the three dimensional image and also save it to a filename that was animated along with the image.

animation network

We then used a movie making package called movieconvert. This takes all the screen shots that AVS has output and brings them together to be played as a short animation. All together we created three final animations one running from the sea floor to sea level that is about 19m deep to 0m. This was done using 80 slices. The other two were moving along the x and y axis of the grid in 391 and 397 frames respectively.

Also out of interest because the data was supplied by 3m square grid it is possible to estimate the volume of this part of Sydney harbour by dropping a 3m by 3m square column from every point in the grid. For interests sake the approximate volume of this section of the harbour is 43009364.7m cubed.

We would like to thank Chris Jenkins of the Ocean Sciences Institute for providing the data.

You can e-mail Ty Jenkins by clicking here:- tjenkins@ug.cs.usyd.edu.au

You can e-mail Heidi Pryor by clicking here:- hpryor@ug.cs.usyd.edu.au