wavelength_calibration

This module’s scope is wavelength calibration for high resolution, unwrapped phase maps.

Example:

>>> import tuna
>>> unwrapped = tuna.io.read ( "tuna/test/unit/unit_io/G092_unwrapped.fits" )
>>> wavelength_calibrator = tuna.tools.wavelength.wavelength_calibrator ( unwrapped, calibration_wavelength = 6598.953125, free_spectral_range = 8.36522123894, interference_order = 791, interference_reference_wavelength = 6562.7797852, number_of_channels = 36, rings_center = ( 219, 255 ), scanning_wavelength = 6616.89 )
>>> wavelength_calibrator.join ( )
>>> wavelength_calibrator.calibrated.array [ 150 : 200 ]
array([[ 74.04817666,  73.55519697,  72.94114164, ...,  73.3628646 ,
         73.92926326,  74.35776   ],
       [ 73.86583775,  73.40994124,  72.98461314, ...,  73.31395047,
         73.79109333,  74.38074642],
       [ 73.79373484,  73.25194294,  72.80179596, ...,  73.26917593,
         73.65012203,  74.14601242],
       ..., 
       [ 70.3757617 ,  69.84531033,  69.27819624, ...,  69.75067727,
         70.17056757,  70.76731326],
       [ 70.404398  ,  69.77546764,  69.36459732, ...,  69.78971195,
         70.14732239,  70.67475633],
       [ 70.33776   ,  69.79072167,  69.25640406, ...,  69.63204571,
         69.93539779,  70.58647794]])
class tuna.tools.wavelength.wavelength_calibration.wavelength_calibrator(unwrapped_phase_map, calibration_wavelength, free_spectral_range, interference_order, interference_reference_wavelength, number_of_channels, rings_center, scanning_wavelength)[source]

This class is responsible for producing the wavelength calibrated cube from the phase map cube.

It inherits from the threading.Thread class, and it auto-starts its thread execution. Clients are expected to use its .join ( ) method before using its results.

Its constructor expects the following parameters:

  • unwrapped_phase_map : numpy.ndarray

    Contains the data to be calibrated.

  • calibration_wavelength : float

    The value in Angstroms for the wavelength used to calibrate the data.

  • free_spectral_range : float

    The value in Angstroms for the bandwidth of one interference order.

  • interference_order : integer

    The number of interference orders expected for this wavelength.

  • interference_reference_wavelength : float

    The number of interference orders expected for the reference wavelength.

  • number_of_channels : integer

    Corresponds to the number of planes in the original data cube.

  • rings_center : dictionary

    A structure equivalent to the one produced by spectral_rings_fitter.

  • scanning_wavelength : float

    The value in Angstroms of the wavelength scanned.

calibrate()[source]

This method’s goal is to discover the value of the wavelength at the apex of the parabola that fits the data.

run()[source]

Method required by threading, which allows parallel exection in a separate thread.