7. IRIS data notes¶
7.1. Cosmic rays¶
IRIS passes through the South Atlantic Anomaly (SAA) on a regular basis. The impact of energetic particles on the CCD camera causes bright hits/pixels. These can be removed with any of the multitude of cosmic ray removal procedures available in solarsoft (e.g., array_despike.pro, tracedespike.pro, nospike.pro, despike.pro, eis_despike.pro, etc...). Cosmic rays are not removed from the IRIS data during normal calibration/pipeline processing to avoid introducing artifacts.
7.2. Particles on slitjaw images¶
The slit-jaw CCD contains some particles that cause dark regions of order up to a few arcseconds in size in the slit. These features are marked as bad pixels and set to zero values (0) in iris_prep so they can be easily recognized during data analysis. The particles are stable in position and do not let any light through - they are completely dark. They are most prominent in the FUV images (1400Å and 1330Å) and much less visible in the NUV images (2796Å and 2830Å). For SJI timeseries in which the SJI were taken at various positions in a raster a solarsoft routine is being developed to use data values from a previous image to fill in the dark spots.
7.3. CCD camera readout noise¶
When both spectrograph cameras are read out simultaneously, a read interference noise pattern is superimposed on the resulting data, which can impact the weakest lines in the FUV. The readout noise is only present when the last two digits of the OBSID are less than 50 (for the OBSID generations starting with 38 and 40 numbers). This can be avoided altogether by reading the cameras sequentially, and most of the data is now observed using the sequential read (last two digits in OBSID larger than 50).
7.4. Flagging of saturated data¶
Some observations show strong solar activity and resulting saturation either on the CCD or (especially in OBS sequences where data is summed) in the A/D converter. Saturated pixels are flagged as Inf so they can be clearly identified.
7.5. Cosmetic finishing in quicklook¶
The quicklook movies on the IRIS website use a standard set of color tables and intensity scales that have been designed to give a consistent, recognizable and generally pleasing appearance to IRIS observations of a range of solar features. For users who wish to replicate the appearance of off-the-shelf IRIS movies with their own processed data, the IDL code used to apply the scaling and color tables is available through solarsoft. In addition, the scaling routines have some optional parameters that allow the user to tweak the scaling so it is better optimized for a particular observation.
The following assumes that IDL is run in indexed color mode (DEVICE, decomposed=0)
7.5.1. Color Tables¶
The color tables can be loaded as follows:
IDL> IRIS_LCT, hdr
where hdr is a structure containing the FITS header for the image to be displayed (read in using read_iris_l2, for example). Alternately, you can provide a string specifying the image path whose color table should be loaded, for example:
IDL> IRIS_LCT, 'SJI_1330'
Reddish color tables are defined for the IRIS FUV slit-jaw images and spectra (the 1330 SJI channel uses a more yellowish-red than the 1400); yellowish tables are defined for the NUV images and spectra. Byte arrays giving the red, green and blue channels of the color table can be returned by the routine as well:
IDL> IRIS_LCT, 'NUV', r, g, b
7.5.2. Intensity Scaling¶
The IRIS data consists of 14-bit pixel values (DN in level 0 data can range from 0-16383; corrections applied during processing to level 2 can move the data values somewhat outside this range); in general, it must be scaled to 8 bits (0-255) for display. The algorithm used for conversion determines the brightness and contrast of the displayed image or movie – the raw data usually has more dynamic range than can be easily displayed, but with appropriate scaling it is possible to maximize the information content of the resulting image. Scaled (8-bit) versions of IRIS data arrays can be generated as follows:
IDL> scaledat = IRIS_INTSCALE(dat, hdr)
Here dat and hdr are the results of, e.g., read_iris_l2. dat is a 3D float or int array of level-2 data (slit-jaw images or spectra), and hdr is a scalar or vector structure of FITS headers. The output (scaledat) is a byte array with the same dimensions as dat. The routine checks the image path (channel) and exposure time from the headers; it is possible to specify those quantities directly rather than passing in the header array:
IDL> scaledat = IRIS_INTSCALE(dat, img_path = 'SJI_1330’)
The exposure time is used to apply a relative normalization to the image sequence (e.g. to adjust for AEC triggering during the movie), so if all the frames have the same exposure time it is not necessary to specify it. If you do not want exposure time normalization (you want to see the image darken when the AEC goes off), you can set the /nonorm keyword.
The routine applies logarithmic scaling to the FUV channels, and power-law (gamma) scaling to the NUV channels. The maximum and minimum thresholds are set by examining the image histogram (the maximum is set so that 0.1% of the pixels are saturated white, and the minimum is set so that 0.2% of the pixels are saturated black). These are reasonable settings in general, but for certain observations, the thresholds may not be optimal (e.g. perhaps during a particle storm, it may be best to allow a higher fraction of the pixels to be saturated white). They can be adjusted by the user:
IDL> scaledat = IRIS_INTSCALE(dat, hdr, maxfrac=0.995, minfrac=0.003)
7.5.3. Cleaning Up¶
The slit-jaw CCD contains some particles that cause dark regions of order up to a few arcseconds in size in the slit. These features are marked as bad pixels and set to zero values (0) in iris_prep so they can be easily recognized during data analysis. The particles are stable in position and do not let any light through - they are completely dark. They are most prominent in the FUV images (1400Å and 1330Å) and much less visible in the NUV images (2796Å and 2830Å).
These dust spots can be cosmetically corrected in slitjaw images and movies using IRIS_DUSTBUSTER. The routine is faster and more effective than general purpose image correction routines because it is able to take advantage of two characteristics of the dust spots:
- Their location in the CCD frame is well-known, and
- The IRIS level 2 movies often consist of rasters such that there are usually valid measurements of the solar features obscured by the dust available from previous or subsequent frames.
It can be run as follows:
IDL> cleandat = IRIS_DUSTBUSTER(hdr, dat)
where, again, dat and hdr are the results of, e.g., read_iris_l2; the output cleandat has the same data type and dimensions as dat, with the dust pixels replaced by the average value of the same solar coordinates in nearby frames (for a raster), or by a blurred value of the nearby neighborhood (for a sit-and-stare). Note that the dustbuster should be run prior to intensity scaling, so a quick series of commands to read, set the color table, clean and scale, and display a slit-jaw movie would be as follows:
IDL> read_iris_l2, lev2_sji_file, hdr, dat IDL> iris_lct, hdr IDL> ploop, iris_intscale(iris_dustbuster(hdr, dat), hdr)
The dustbuster generally does not try to remove the slit from the SJI movies; if you want to remove it (for example, if you are trying to cross-correlate image sequences without locking on to the slit), set the /slit keyword in the call to iris_dustbuster. Note that the slit contrast has been decreasing in the FUV channels, especially the 1330 SJI, over time; this is not a result of the action of the dustbuster, but an intrinsic property of the data.