Add script to calibrate wavelength
This commit is contained in:
parent
0aa8a98cc7
commit
0d79633290
1 changed files with 59 additions and 0 deletions
59
wavelength_calibration.py
Normal file
59
wavelength_calibration.py
Normal file
|
@ -0,0 +1,59 @@
|
|||
import numpy as np
|
||||
import matplotlib.backends.backend_qtagg as qt
|
||||
import matplotlib.figure as fig
|
||||
import utils
|
||||
|
||||
calib_top = np.load( 'asset/calib_top.npy' )
|
||||
calib_down = np.load( 'asset/calib_down.npy' )
|
||||
reference = np.load( 'asset/reference.npy' )
|
||||
|
||||
mean_calib_top = np.mean( calib_top , axis = 0 )
|
||||
mean_calib_down = np.mean( calib_down , axis = 0 )
|
||||
|
||||
peaks_calib_top = utils.retrieve_peaks( mean_calib_top )
|
||||
peaks_reference = utils.retrieve_peaks( reference[1] , window_size = 1 , max_window_size = 1 )
|
||||
|
||||
polyval = np.polyfit( peaks_calib_top , peaks_reference[ 2 : ] , 1 )
|
||||
|
||||
manager = qt.FigureManager(
|
||||
qt.FigureCanvas(
|
||||
fig.Figure(
|
||||
),
|
||||
),
|
||||
1,
|
||||
)
|
||||
manager.canvas.figure.add_axes( ( 0.05 , 0.15 , 0.9 , 0.7 ) ).plot( peaks_calib_top , np.array( peaks_reference[ 2 : ] ) - np.polyval( polyval , peaks_calib_top ) )
|
||||
manager.show()
|
||||
manager.start_main_loop()
|
||||
|
||||
peaks_values = [ reference[ 1 , i ] for i in np.array( peaks_reference ).astype( int ) ]
|
||||
sorting = np.argsort( peaks_values )[ :: -1 ]
|
||||
wavelength = [ reference[ 0 , i ] for i in np.array( [ peaks_reference[ j ] for j in sorting ] ).astype( int ) ]
|
||||
|
||||
polyval_wavelength = np.polyfit( peaks_reference , np.sort( wavelength ) , 1 )
|
||||
|
||||
wavelength = np.polyval( polyval_wavelength , np.polyval( polyval , np.arange( 0 , len( mean_calib_top ) , 1 ) ) )
|
||||
|
||||
manager = qt.FigureManager(
|
||||
qt.FigureCanvas(
|
||||
fig.Figure(
|
||||
figsize = ( 10 , 5 )
|
||||
),
|
||||
),
|
||||
0,
|
||||
)
|
||||
|
||||
manager.canvas.figure.add_subplot( 2 , 1 , 1 , xlim = ( 3800 , 4000 ) , xmargin = 0 ).plot(
|
||||
wavelength ,
|
||||
mean_calib_top,
|
||||
)
|
||||
manager.canvas.figure.axes[0].set_title( 'raw data' )
|
||||
|
||||
manager.canvas.figure.add_subplot( 2 , 1 , 2 , xlim = ( 3800 , 4000 ) , xmargin = 0 ).plot(
|
||||
reference[0],
|
||||
reference[1],
|
||||
)
|
||||
manager.canvas.figure.axes[1].set_title( 'reference' )
|
||||
|
||||
manager.show()
|
||||
manager.start_main_loop()
|
Loading…
Reference in a new issue