Research Update - March 23rd - ISIS3!
For my sixth blog post I wanted to actually introduce a little more of what I do in my life as a planetary geologist. Specifically, some of the research tools I am learning to use for my PhD. Specifically, in this post I'll talk a little bit about the software ISIS3.
ISIS3 is the name (and version number) of the image processing software used to process and analyze data from numerous space missions, though particularly the ones that don't produce "science ready" data products. ISIS stands for "Integrated System for Imagers and Spectrometers." Some missions, like the Mars Reconnaissance Orbiter (MRO) have pipelines set up where data that comes off the spaceship is processed before it is released to the public. That processing usually involves calibration, correction, stitching, and map projection, to name a few steps. For some other missions, all of these steps have to be done manually. I'm going to walk through a couple of items to know about using ISIS3 and then go over some of the applications within the software that I use to process the images, before showing an image that I processed.
Terminal - Activate ISIS!
ISIS3, once installed on your computer, is primarily run out of the command line for you computer. On a Mac computer, the program you use to give commands is called Terminal. It allows you to open up a direct line of communication with your computer. To use ISIS3, you have to first tell the computer that you want to use programs in ISIS, which you do by typing "conda activate isis". Conda is the short name for "Anaconda" which is a sort of package of tools and programs that can be used to write, use, and install other programs. Many of them are different packages involving the programming language Python, which allow you to work with different types of data and do specialized analyses. For my purposes, I tell Anaconda to open up ISIS and start it running in the terminal.
Once ISIS is running, which will show up as (isis) in the command line of the terminal, I can use different commands to run programs on my images. This process of course requires that I have images. I may go over the different ways to acquire images in a later post, but for now, we will assume that I have an image that I have downloaded from a spacecraft (a file ending in .img) and a label file (ending in .lbl) that contains information (metadata) about the image. NOTE: if the .img is lowercase, the .lbl must also be lowercase and vice versa. This is easily fixable by just renaming the file if there is a problem. Both files must also be in the same folder. This image file has likely come right from the spacecraft and I'll need to use ISIS3 to process it before I can use it for research.
First, I'll use the program ciss2isis. This particular program is designed to take Cassini Imaging Science Subsystem (ISS) images and change them to the format used in ISIS3. By typing "ciss2isis" in the command line and hitting enter, I'm telling the computer to open up the window, the "graphical user interface" (GUI), where I can see buttons and options to select to do the processing. In this particular case, I simply use the buttons and functions in the GUI to select the file that I want. I select the .lbl file so that the computer will get all of the information about the image that if needs to turn it into an ISIS file. When I run the program, the resulting file, which is saved in a location I selected in the program, has the extension .cub. This is what is termed a "cube" file, and is the filetype used in ISIS. From here, we can use this file throughout the rest of the ISIS system.
The next step is to add information to the .cub file that we will need for calibration and later corrections, analyses, and mosaics. This is information about where the spacecraft was, where the camera was, camera direction, latitude and longitude information, information about which planet was imaged, and information about the instrument in general, as well as other components. All of this data is stored in a "SPICE" file for that image. SPICE stands for "Spacecraft & Planetary Ephermerides Instrument C-matrix and Event kernels. For ISIS3, there are currently two options. You can either store all of the spice files locally on your computer and regularly check to make sure they are updated, or you can store only certain files locally on your computer and then access the rest of the spice files using the internet, as long as you have an internet connection. I use the latter option to save space on my computer. To attach the SPICE information, we use the program "spiceinit". Once again, I simply type the program name in the command line and hit enter, which opens up a GUI where I can select specific options and setting for my image. I once again select a location to save the new file, that will now have all of the camera information attached to it. You must run spiceinit before trying to do many other processing steps. Otherwise, information that the programs need won't be attached to the image and the processing step will fail and return an error.
Now that we have all of the information, the next step is to use the program "cisscal" to apply the calibration for the Cassini ISS images. The calibration is developed separately by members of the instrument team, this program simply applies it and returns a calibrated image in I/F units, which is comparable against other calibrated images with I/F units. I/F stands for Irradiance/Solar Flux.
From here, the image is completely usable, so it is up to me what other programs I want to use before I use it for my research, but there are a couple of other useful programs I will mention briefly.
One thing that is common in Cassini ISS images, which is what I have chosen for this demonstration, is that part of the way across the image, many of the lines start to have dropout, where there is really only data every other line. To fill in these missing lines, using the data in the lines above and below, we can use the lowpass program. There are several other filters and ways to do this as well, this option is just one of them. Using the lowpass filter to fill in "NULL" pixels will pull from the surrounding data and interpolate what should be in the missing lines of the image. Once again, I enter "lowpass" on the command line, hit enter, and then choose my specifications in the GUI that pops up.
For mosaics or just for cleaning up an image, you can also use the "trim" program, which takes lines of the sides of the image. This can clean up messy or noisy edges in the images.
Finally, one of the most useful programs in ISIS3 is "cam2map". This program take an ISIS3 camera file, a .cub, and map projects it. In the GUI that appears when you hit enter on the cam2map command, you can select the map projection that you want to use. The files for these projections and the information needed to use them, come with the installation package for ISIS3.
Just to showcase one of my test runs for processing steps, here's an image from the ISS instrument that I processed and then projected using an equirectangular projection!
Those are all of the ISIS3 programs that I am going to cover today, but in the future, look out for a summary of how to do mosaics in ISIS3!
Here's a link to the USGS (United States Geological Survey) site about ISIS: https://isis.astrogeology.usgs.gov/index.html
Here's a link to the GitHub ISIS3 Repository where you can learn more about ISIS, including downloading and installing it!: https://github.com/USGS-Astrogeology/ISIS3
Sneak peak for next post: Planetary Surface Processes!... Or mosaics in ISIS3?.... Or Space Law?...Or my ventures into actually taking pictures with my iPhone photography knowledge! Who's to say?