For the Virgo project I did a lot of things the hard way - downloading the images one at time, manually removing foreground stars, and then UV mapping each one to a plane mesh in Blender. About the only bit of automation was a Python code to position and scale the planes correctly. That severely limits the number of galaxies which can be displayed, 'cos any more than a few hundred might break my delicate typin' fingers.
But eventually I wrote code for other projects that imports the images to planes automatically. That makes it possible to think bigger. Much bigger - as in tens of thousands of galaxies. Now the problem becomes obtaining a suitable catalogue. It needs to have position, velocity (which is basically the same as distance away) and an accurate estimate of the optical radius.
To cut a short story into an even more compact and readable format, for this I used the ALFALFA catalogue - partly because it's data from Arecibo, but mostly because I saw it in a recent presentation and decided it would be a cool project. But this catalogue doesn't contain the optical radius. Their data comes with a handy link to data from the much larger Sloan Digital Sky Survey though, and that DOES give you the optical raidus if you use the right query, For those interested, the SQL query I used can be found here.
Once I had the SDSS table I cross-matched it with the ALFALFA table, using Topcat, giving me a table of position and size. I used this to generate a list of links to all the SDSS images, which I fed into Image Grabber. For those really interested, here's a link to a sample of the URL list I used. And then all I had to do was run my Python code in Blender et voila !
Still reading ? Gosh. Here's a schematic render as well, for good measure.1 Mpc (megaparsec) as about 3.3 million light years, if you were wondering.
Hopefully I've provided enough information for enthusiasts to try this themeselves. For anyone who does :
- The SDSS radii estimates are generally good but are far from 100% reliable. It seems to especially have problems with large objects, often truncating them. I manually edited the table so that images wouldn't be less than 100x100 pixels across.
- For those images where truncation still occurs, I just ignored it.
- Performance is very good, but it eats a lot of memory. This scene used about 1GB of RAM, but it rendered in only 2 seconds per frame without motion blur.
UPDATE : I decided to render all 11,710 galaxies in a single ginagorous (technical term) image. It comes in 3 sizes : large, very large, and overwhelmingly large (4k, 8k, 16k).
UPDATE 2 : I discovered Microsoft's "Zoom.it" service, which is a very nice way to create zoomable versions of very large images that can be displayed in ordinary web browsers. You can see the ALFALFA sample here.