Sunday, 16 January 2011

Visualising Large Data Sets - Exoplanets

Extremely large data sets pose extremely large challenges... A data set like all confirmed planets around stars other than the Sun (518) and where they sit among the 70000 stars that lie within 200 parsecs (670 light years) of the Sun is a challenge. What better way to show it than with an animation which tracks the discovery of each exoplanet, which star it orbits, where that star is in 3D space relative to the Sun, and the various orbital properties of the planet...

The data
The data I have used is from two totally open, and very useful, data sets: http://exoplanets.org/ for panetary data and http://astronexus.com/node/34 for star data.

Step 1: The timeline.
Exoplanet discovery streaches from 1988 to now. Back in 1988 the first report of evidence for a planet around another star, gamma Cephei, was published and was eventually confirmed as correct in 1996. This sparked huge new interest in exoplanets and since then the number of exoplanets discovered each year has shot up, reaching nearly 100 in 2010. As data from NASA's Kepler mission is confirmed over the course of 2011 this number is likely to shoot up again.
Each planet is added to the final diagram, showing both its 3D location and orbital properties, in the year of its discovery. The entire animation lasts 3200 frames; roughly 2 mins. In 2010 a new planet appears nearly every frame of the animation!

Step 2: The 3D location
The 3D location of many stars near Earth are known, their position is calculated by the position they lie in the sky and the distance to the star as calculated from stellar parallax. This gives fairly accurate 3D locations for many stars within aroun 200 parsecs of Earth. Data about the star's brightness (absolute magnitude) and colour (from the B-V index) can also be used to make a nice looking picture of the Sun's neighbourhood. Unfortunately not many programs can cope with this kind of complex plotting, so I wrote my own:

I use the camera location (rotation around the z axis (theta), angle of elevation (phi) and image scale) and the x, y, z location of a star to project the location of the star onto a 2D image.
a=x*sin(theta)+y*cos(theta)
b=-x*cos(theta)+y*sin(theta)
c=b*sin(phi)+z*cos(phi)
The projected position of the star in the final image is a, c. The star's brightness and colour were then calculated to choose the pixel colour at the star's position.

This picture shows a section of the final 3D starmap. It is animated by rotating it gradually around the z axis to highlight the 3D effect.

Step 3: The planetary system
The most interesting thing about the exoplanet star systems is their arrangement; how big the planets are, how far they are from their parent star and what shape their orbits are. All these properties are summarised in just 3 numbers: estimated minimum mass (measured in Jupiter masses), semi-major axis (a measure of orbit size, normally measured in astronomical units) and orbit ellipticity (which describes how far from circular the orbit is). With a bit more maths a to-scale diagram of the planetary system is drawn in the animation as each new exoplanet is discovered.

The animation
The full animation should be finished soon, I will post it here when it is done...

1 comment:

Note: only a member of this blog may post a comment.