Saturday, February 2, 2013

Science Data Visualizations!


This past weekend was the 'ICEX Workshop', the first meeting between the Cal Poly and Harvey Mudd ICEX groups. I won't talk too much about the various activities and events since my colleagues have already covered that pretty well. I really enjoyed the weekend, it was great to meet the HMC students and I think we have a good group dynamic. It was also a good experience to try a couple ROV deployments, since its hard to imagine all the many things that can possibly go wrong until they actually go wrong!

As I mentioned in my previous blog post, my main focus with ICEX this quarter is on visualizations of scientific data gathered by the ROV. In this context, "Scientific Data" refers to measurements of temperature, salinity, etc. taken at short intervals (ideally about once per second) during the deployment. We'll be using a Smart Tether to associate accurate position data with these readings. At that point we'll have a large collection of data points with associated sensor readings, and my task is to make these readings visible in a coherent and contextualized manner.
This is a project that I've actually already put a lot of work into – this past summer, I worked with Zoe to produce visualizations of data gathered on previous ICEX missions and other projects. One data set I focused on in particular was some oxygenation data sampled from Hopavagen Bay in Norway. I'll be including pictures from that data set in this post as examples of the sort of analysis I'll be doing with the data collected this year in Malta.
Starting with the initial data set, one of the simplest visualizations that can be done is simply drawing each individual point from the set. This is often called a point cloud or glyph view.
One small colored cube for each point in the data set. Here, red colors indicate high oxygenation and blue colors indicate low oxygenation.
This is a straightforward but ineffective way to view the data as a whole. However, it's a good place to start and also a useful addition to any other sort of visualization since it provides the most direct view of the original data set. The next visualization to add is called a volumetric view; it takes on the appearance of a nebulous, transparent cube which is colored to indicate trends within the 3D space of the data measurements. It requires some extrapolation to create, so it's good to include the original data points in this display as well.
Volume render with point cloud context.
This view makes patterns within the data a bit easier to see, but only on the outer edges of the data range – we can't see what's going on inside the cube very well! Luckily, it's easy to apply transformations to the volume view that allow us to isolate certain features within the data. One example of such a transformation is a slice-by-slice view, but a more interesting way to view the data is by isosurface:
Only areas of the data volume which have a certain sensor value are shown, making it easy to search for internal patterns within the data.
We're getting close to an effective visualization of the data, but we're missing one crucial factor – context! These sensor readings came from a bay in Norway, but you can't tell that by looking at any of the above images. To solve this, we can add in some terrain data acquired from satellite imagery and GIS data sources:
Geographic context!
In the case of the cistern explorations we'll be doing next month, I'll be using the cistern geometry generated from the ROV's sonar and stereo imagery systems to provide context to volumetric science data renderings.

So that's an overview of some of the previous work I've been doing on this project – in my next post I'll talk about some of the improvements I've been adding this quarter.

~Ian

No comments:

Post a Comment