How it works: Building the Helioviewer “back end” with JPEG2000
Post 1 of 5: Explore the sun on your desktop with Helioviewer
Post 2 of 5: Getting Started with Helioviewer.org
Post 3 of 5: Explore the sun in depth with JHelioviewer
Post 4 of 5: How it works: building the Helioviewer “back end” with JPEG2000
New interactive visualization tools developed by the NASA/European Space Agency (ESA) Helioviewer Project allow scientists and the general public to explore images captured by solar observing spacecraft. Previous posts explained the origins and aims of the Helioviewer Project, and the basics of a Web-based app called Helioviewer.org. This post looks at the behind-the-scenes technology that makes Helioviewer possible.
The Helioviewer.org Web app and the JHelioviewer software are the on-screen interfaces that users see. But there is also a critical data-processing “back end” that required just as much effort to develop. The challenge was this: How do you acquire and manipulate solar images quickly enough so that the process is truly “real time,” without long waiting times for downloads and glacial refresh rates on the image view every time you make a change, like zooming in on a feature of interest?
This is particularly challenging when working with high-resolution images from NASA’s Solar Dynamics Observatory. SDO sends down images that are 4,000 by 4,000 pixels, approximately the same number of pixels as in a 13 by 13 inch photographic print.
Google Maps and Google Earth overcame this issue by “tiling” large images into a checkerboard of smaller segments that could be quickly assembled into an image at the scale a user requested.
A Google Maps for the sun
The prototype of Helioviewer took this approach, too, following Google’s lead. “Google Maps was the original inspiration for it,” Helioviewer Project co-founder Jack Ireland says.
In the prototype of Helioviewer.org, each stage of a zoom-in required a complete set of tiles. The system retrieved the tiles it needed to build the view requested by the user with every click of the mouse. The trouble is, as you zoom in it requires an ever-increasing number of small tiles (numbering in the hundreds) to build the new image. Each tile is a separate file, and they all have to be labeled, stored, and pulled from storage and assembled when needed.
Then Helioviewer met JPEG2000, a standard for compressing images to make them extremely small while maintaining very good image quality. Also, JPEG2000 can extract sub-regions of the compressed image file without having to open the whole file.
In other words, the system generates only the part of the image you really want to see. If you have ever downloaded or extracted a very large compressed image file, you understand the time saving that JPEG2000 offers.
“One thing that changed early on that made a huge difference and made all this really possible is that we use this JPEG2000 technology,” Helioviewer Project co-founder Keith Hughitt explains. “Instead of generating all the possible tiles for every single image, we wait until the user asks for a tile and generate it right then, and only generate the ones we need. We were able to develop a way to do that quickly enough that you can do it right on the Web page.”
Data pipeline from Palo Alto
Lockheed Martin’s Solar and Astrophysics Laboratory, based in Palo Alto, California, that built the Atmospheric Imaging Instrument aboard SDO, uses JPEG2000 to compress every third new SDO image (i.e. one every few seconds) and then sends them through a data pipeline to Goddard. The image can be available on Helioviewer’s server at Goddard in as little as 20 minutes.
The system needs to store this one compressed master file, not hundreds of tiles. That one image file — or a portion of it — can be quickly decompressed and displayed at the resolution needed.
For example, as you click the little “plus sign” icon on Helioviewer to zoom in on a flare on the surface of the sun, the back end of the system decompresses the same file multiple times at increasing resolution — like a telephoto lens capturing an image at ever higher magnification — and displays it on your computer screen.
This “on the fly” manipulation also applies to time-lapse videos made with JHelioviewer. “JHelioviewer tells the server which portion of the images it is interested in, and the video-stream is updated in real time so that only those bits are transmitted back to JHelioviewer,” Hughitt explains. “The result is a sort of ‘dynamic’ movie stream that you can create, and then adjust as you are playing it.”
This means that as the video plays, you can zoom, pan, sharpen, brighten, or follow a specific feature across the sun. If you choose to download the video, the server renders the final product at whatever settings you choose.
If not for JPEG2000, you would need to download an entirely new version of the video – amounting to gigabytes of data – every time you made a change. Another way of saying this is “the Web back in the 1990s.”
Helioviewer.org (Web app)
A collection of video highlights from 2011 (so far) created by Helioviewer.org users.
See a Helioviewer.org video made by “citizen scientist” LudzikLegoTechnics on YouTube.
The Helioviewer Project Wiki
JHelioviewer (downloadable software)
Read a Web feature about JHelioviewer and its capabilities
The JHelioviewer online handbook
JHelioviewer video tutorial on YouTube HD
ESA Web feature about JHelioviewer.
OH AND DID I MENTION? All opinions and opinionlike objects in this blog are mine alone and NOT those of NASA or Goddard Space Flight Center. And while we’re at it, links to websites posted on this blog do not imply endorsement of those websites by NASA.