Wavelength Solutions

Wavelength Solutions

OSIRIS wavelength solutions are derived from arc lamp illumination of every lenslet column. By default, we use Kbb 50 mas data. The script to take wavelength solution data is located at /home/osrseng/larkin/scripts/measure_full_arcs. It will deliver a total of 57 frames.

Screen Shot 2025-09-03 at 10.28.40 AM.png
An example of the arc line data.

Copy the wavelength scan data to /home/osrseng/syeh/wavelengthCalibration/arclineCalibration. E.g., from s250612_c001001.fits to s250612_c002057.fits.

In the same directory, the code for solving wavelength solutions is named

solve_global_wave_[year]_[config].pro. E.g., solve_global_wave_2025_Kbb050.pro

In this file, edit the following lines accordingly.

basename = "s250612_c002001.fits" altbasename = "s250612_c002001.fits" ;; if taken on different UT dates suffix = 'jun2025_mpfit' ;; root for save files inttime = 60 ;; integration time in seconds

Then we need to examine the x and y pixel values of each reference arc line in either DS9 or ql2.

The reference arc lines are located at the 19th row (counting from the top) in data frame 028.

Screen Shot 2025-09-03 at 10.47.21 AM.png
An example of reference arc lines. The green circles mark the 19th row arc lines.

Update the x and y pixel values of each reference arc line in this block (cx and cy) in solve_global_wave_2025_Kbb050.

pro solve_global_wave_2025_Kbb050 ;; June 2025 arc data   lamp   = [ 'Ar',     'Ne',      'Ne',      'Ne',      'Ar',     'Ne',      'Ar',     'Ar',     'Ar',     'Ar',     'Xe',     'Ar'     ]   inten  = [ 2.5,      5,         15,        3,         5,        6,         5,        5,        10,       20,       10,       3        ]   cx     = [ 372,      420,       445,       577,       622,      834,       994,      1186,     1381,     1514,     1641,     1801     ]-1   cy     = [ 1440,     1440,      1440,      1440,      1440,     1440,      1440,     1441,     1441,     1442,     1442,     1442     ]-1 lambda = [ 2385.154, 2371.5599, 2364.2934, 2326.6619, 2313.952, 2253.6528, 2208.321, 2154.009, 2099.194, 2062.186, 2026.777, 1982.291 ]

Note the -1 in cx and cy arrays. This accounts for the 1-pixel shift in each direction between DS9 and ql2. DS9 pixels begin at 1, while ql2 pixels begin at 0. In this example, we examined data in DS9.

Edit the following lines accordingly in analyze_fit:

pro analyze_fit ;; look at some diagnostics of the fit suffix = 'jun2025_mpfit' filename = "s250612_c002028.fits" ;; June 2025 arc data lamp = [ 'Ar', 'Ne', 'Ne', 'Ne', 'Ar', 'Ne', 'Ar', 'Ar', 'Ar', 'Ar', 'Xe', 'Ar' ] inten = [ 2.5, 5, 15, 3, 5, 6, 5, 5, 10, 20, 10, 3 ] cx = [ 372, 420, 445, 577, 622, 834, 994, 1186, 1381, 1514, 1641, 1801 ]-1 cy = [ 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1441, 1441, 1442, 1442, 1442 ]-1 lambda = [ 2385.154, 2371.5599, 2364.2934, 2326.6619, 2313.952, 2253.6528, 2208.321, 2154.009, 2099.194, 2062.186, 2026.777, 1982.291 ]

Compile and run solve_global_wave_2025_Kbb050, followed by analyze_fit

IDL> .comp solve_global_wave_2025_Kbb050 % Compiled module: SOLVE_GLOBAL_WAVE_2025_KBB050. % Compiled module: ANALYZE_FIT. IDL> solve_global_wave_2025_Kbb050 % Compiled module: READFITS. % Compiled module: SXPAR. % Compiled module: GETTOK. IDL> analyze_fit % Compiled module: READFITS. % Compiled module: SXPAR. % Compiled module: GETTOK. % Compiled module: VALID_NUM.

analyze_fit will produce arcline plots and check if the lines and pixels are correct. If the lines appear to show a 1-pixel offset, check whether you used DS9 or ql2 to determine arcline pixels.

Screen Shot 2025-09-04 at 3.35.12 PM.png

solve_globale_wave_2025_Kbb050 produces the files as follows.

coeffs_jun2025_mpfit.fits

sigma_jun2025_mpfit.fits

xfwhm_jun2025_mpfit.fits

yfwhm_jun2025_mpfit.fits

xcen_jun2025_mpfit.fits

ycen_jun2025_mpfit.fits

wavelength_jun2025_mpfit.fits

locations_jun2025_mpfit.fits

Update coeffs_jun2025_mpfit.fits in callibrations.xml in DRP.