Correction for EIS Line Centre Variations Due To Orbital Motion Using Instrument Temperatures#

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, the gethkwavecorr() method of the eis_data object or 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

  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

2. gethkwavecorr(), a new eis_data method#

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

3., with hkwavecorr set# 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