An empirical model has been developed to reproduce the drift of the EIS spectrum using instrumental house keeping temperatures and relative motion of the spacecraft, see S. Kamio et al (2010).
(Click here to see a complete list of all new and modified SolarSoft routines)
The wavelength correction can be found using eis_wave_corr_hk.pro, the gethkwavecorr() method of the eis_data object or eis_prep.pro. All procedures use specially prepared house keeping data files that are distributed with SolarSoft in the directory $EIS_DATA/wave_corr. If the house keeping files that are needed for correcting a certain EIS raster are missing in your SolarSoft installation, the new routines will search for the files in $EIS_WAVE_CORR_HK_DATA (if this environment variable is set), and in the current working directory. If the files are not found, or if newer versions of the files exist in the Oslo archive, they will automatically be downloaded and saved in $EIS_WAVE_CORR_HK_DATA (if set) or to the current working directory (if not set). Note that the house keeping files for a specific month are updated every night on the Oslo servers until the month is passed, i.e. if you work with observations from the current month new house keeping files will be downloaded to your machine every day until the end of the month.
The following three examples demonstrate different methods to obtain the new wavelength correction. The example data-set is specified through
IDL> paths = '~/hinodedata/eis/mission/2007/12/11/eis_l0_20071211_162413.fits.gz'
(please modify the path to the location where your Hinode data are stored) and the data-file can be obtained here.
This is simply a wrapper procedure calling the necessary methods of the eis_data object. It is called with the same parameters as the well known eis_wave_corr.pro:
IDL> eis_wave_corr_hk, paths, wvl_corr_hk, dw_tilt_hk, dw_t_hk ; The two last parameters are optional IDL> plot, dw_t_hk,/xst,/yst IDL> eis_wave_corr, paths, wvl_corr, dw_tilt, dw_t ; The two last parameters are optional IDL> oplot, dw_t, line=2
In addition eis_wave_corr_hk takes two keywords:
IDL> eis_wave_corr_hk, paths, wvl_corr_hk2, dw_tilt_hk2, dw_t_hk2, wvl_cube=wvl_cube, lam=284.16 IDL> help, wvl_cube IDL> loadct,12 & oplot, dw_t_hk2, color=170 ; The 284.16 plot is very similar to the 195.12 plot
Finally, eis_wave_corr_hk can take a level 0 or level 1 eis_data object reference as input instead of a file name:
IDL> o = obj_new('eis_data',paths) IDL> eis_wave_corr_hk, o, wvl_corr
When creating an eis_data object, the aux_data will contain two new null pointers, hkpixcorrtilt and hkpixcorrtime:
IDL> o = obj_new('eis_data',paths) IDL> help, o->getaux_data(),/str
The two pointers will become valid when the method gethkwavecorr() is called (i.e. when you try to access the contents of the pointers):
IDL> corr = o->gethkwavecorr() IDL> help, corr,/str IDL> help, o->getaux_data(),/str
The gethkwavecorr() may be called with a wavelength as input parameter, or with the keyword wvl_cube set, to get the same functionality as for the eis_wave_corr_hk wrapper as explained above.
IDL> corr = o->gethkwavecorr(/wvl_cube) IDL> help,corr,/str IDL> corr = o->gethkwavecorr(284.16) IDL> oplot,corr.time,color=0
eis_prep.pro now accepts the keyword hkwavecorr. If set, the resulting level 1 file will contain the wavelength correction information.
IDL> eis_prep,paths,outdir='~/',/hkwavecorr,/default,/quiet,/save IDL> o = obj_new('eis_data','~/eis_l1_20071211_162413.fits') IDL> help,o->getaux_data(),/str IDL> corr = o->gethkwavecorr() IDL> oplot,corr.time