This chapter is meant to be used as a brief guide to manipulating and displaying EIT data. It is assumed that you have identified the data sets you want to use, and have installed the software tree with up-to-date EIT software and that the software tree is functioning properly.
IDL> eit_display
Eit_display automatically degrids and flat-fields the data.
IDL> print, eit_fxpar(hdr, 'NAXIS3')
If NAXIS3 greater than 1, go to Dealing with Multi-image fits file. Anyhow, if you've got a single-image fits file, and if you want to obtain the image data, you could do
IDL>img = readfits(file,hdr)
which will read the data directly from the fits file and return the EIT header information. However, if you'd like to have the data flat-fielded, degridded, exposure time normalized (to DN [data numbers] per second), filter normalized, and/or response normalized, there is a program called eit_prep.pro. (For descriptions of exposure time and filters, see header information below). The image is "degridded" because a filter in the instrument produces a pattern on an EIT image. The degridding factors were calculated and stored in the software tree , and the image is multiplied by the degridding factor for a fairly reasonable correction to the data. Filter normalization involves accounting for the variable transmittivity of the clear and aluminum filters. Response_norm corrects for the variable sensitivity of the CCD detector (warning: since this is a time-dependent variable, for some dates the response factor may not (yet) have been calculated, so sometimes response_norm produces no effect). Setting the keywords /normalize (divide by exposure time for DN/sec), /filter_norm, and /response_norm should correct for the instrument variables and give the same relative brightness in similar images.
IDL> eit_prep, file, hdr, img, /normalize, /filter_norm, /response_norm
returns a flat-fielded, degridded image "img", along with the adjustments specified as keywords. Note: this is only for two-dimensional fits files.
IDL> eit_prep, file, hdrs, datacube, image_no=3, /normalize, /filter_norm,
/response_norm, /save_zero
or
IDL> eit_prep, file, hdrs, datacube, image_no=[0,5,22], /normalize, /filter_norm,
/response_norm, /save_zero
or
IDL> eit_prep, file, hdrs, datacube, image_no='all', /normalize, /filter_norm,
/response_norm, /save_zero
If all of the data is missing in a single image, the keyword /save_zero forces eit_prep to return a blank image (normally it would just return a zero, which won't fit into your data cube). You now have a processed data cube - the images may be different wavelengths, you can check:
IDL> print, eit_fxpar(hdr, 'WAVELNTH', image_no = 5)
which returns the wavelength of the fifth image in the data cube. You can also return an array of all of the wavelengths:
IDL>waves=eit_fxpar(hdr, 'WAVELNTH', image_no = 'all')
IDL> read_eit, filelist, inhdr, imgs
IDL> eit_prep, inhdr, outhdr, imgs, data=temporary(imgs), /normalize,
/filter_norm, /response_norm
Often one might wish to process a number of FITS files without saving all the data in memory but rather writing the processed data to new FITS files. This is accomplished via:
IDL> mk_eit_l1, list = filelist
You may wish to examine the other options for this routine.
IDL> tvscl, alog10(img>.5)
where img is two-dimensional. If you've got several images, you can do
IDL> tvscl, alog10(img(*,*,5)>.5)
The lower limit of the image used is .5 (alog10(0) = Nan, so you have to set a lower bound or you might get an error); experiment by varying the lower and upper limits until the image looks best. Note: images with the same wavelength should be displayed with the same upper and lower limits if they are to be compared.
IDL> wave = eit_fxpar(hdr, 'WAVELNTH')
or
IDL> wave = eit_fxpar(hdr, 'WAVELNTH', image_no = 5)
IDL> eit_colors, wave
You could also do
IDL> xloadct, file = getenv('coloreit')
to get the color table widget.
For example, the image on the left is an EIT 284 Å displayed with the Red Temperature table (bad!) without playing with the lower and upper limits:
IDL> tvscl, alog10(img>.5)
While the image in the middle is displayed with better limits but in the wrong color table:
IDL> tvscl, alog10(img>.02<50)
while the final image (which shows much better quiet sun detail because the color table is optimized for an EIT image in that particular wavelength) is both scaled properly and has the correct color table:
This section is not meant to be an exhaustive study of EIT pointing questions, but rather to introduce the User to the main parameters and PITFALLS, especially with regards to co-alignment with other instruments. It is assumed the user is familiar with the standard FITS keywords, CRPIX, CRVAL, etc. NOTE, FITS standard starts with pixel (1,1) while IDL uses pixel (0,0). you may need to correct for this
WHERE ARE WE POINTED? Not an easy question. Until recently, EIT had used automated limb-fitter to determine the Solar pointing. As is well known, this method can fail given the presence of above-limb material. The level zero data has been re-processed with a more accurate determination of the pointing. For older data, you can obtain the pointing of EIT, by ignoring the FITS headers and using the function EIT_POINT, e.g.
IDL> xy = eit_point(date,wavelength)
An additional complication is subfield images taken prior to the re-processing date. These images contain no values of CRPIX, CRVAL, but instead have the "raw" pixel coordinates, (P1_X:P2_X,P1_Y:P2_Y). To convert these to Solar coordinates one must get the xy pointing as above and then to obtain the lower left corner of the image:
IDL> CRPIX1 = (eit_fxpar(hdr,'p1_x')-xy(0)-1) * eit_pixsize()
IDL> CRPIX2 = (eit_fxpar(hdr,'p1_y')-xy(1)-20) * eit_pixsize()
EXPOSURE TIME: The time given in the header reflects the commanded exposure time plus a SHUTTER DWELL TIME which is approximately 2.1 seconds. Due to on-board software problems, this shutter time is not properly reflected in the images prior to July 17, 1996 and has been fixed at 2.1 seconds.
OBSERVATION TIME: Here again, there is an ambiguity due to the on-board software. The time reflected in the DATE_OBS field is the "nominal" start time of the exposure. HOWEVER, we realized that this time was off from the "true" start time, by varying amounts up to 5 minutes. Starting from September 1997, this "true" start time is reflected in the CORRECTED DATE_OBS field (mapped to CORR_OBS in structures). This may be important when performing detailed time comparisons, e.g. high cadence EIT images versus MDI hi-res magnetograms.
1) MOVIE_MAKER - This (widget) procedure will create EIT movies (IDL ] Save Sets). The user interactively selects a series of FITS images, degrids them, scales them, and saves them. These movies can then be viewed using EIT_DISPLAY or EIT_MOVIE.
2) MK_LASTEIT_MOVIE - This procedure creates a movie of recent EIT full disk movies. The user selects simply the number of frames and the wavelength. Output is either a GIF animation, MPEG, or JAVASCRIPT movie. These frames are not degridded. The default output size is 280x280 but is an input parameter.
3) EIT_MKMOVIE - Create a GIF or MPEG (WW) movie from an Input FITS file list or byte-scaled data cube. This procedure does degrid and flat field the images. It is also useful if one already has a movie as created by MOVIE_MAKER and now wants to create a movie suitable for viewing on the web. Simply restore the IDL save set and use the data array (typically = b0) as input.
4) EIT_SUB_MOVIE - Create a movie of a subfield image from a sequence of full field images, tracking the region of interest with solar rotation. The output of this is simply the 3D IDL array.