diff --git a/wavelength_calibration.py b/wavelength_calibration.py index e02908d..c526d46 100644 --- a/wavelength_calibration.py +++ b/wavelength_calibration.py @@ -1,8 +1,11 @@ import numpy as np +import scipy.signal as sig import matplotlib.backends.backend_qtagg as qt import matplotlib.figure as fig import utils +rect = [0.125,0.11,0.775,0.77] + calib_top = np.load( 'asset/calib_top.npy' ) calib_down = np.load( 'asset/calib_down.npy' ) reference = np.load( 'asset/reference.npy' ) @@ -15,17 +18,6 @@ peaks_reference = utils.retrieve_peaks( reference[1] , window_size = 1 , max_win 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 ) ] @@ -34,6 +26,7 @@ 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( @@ -57,3 +50,59 @@ manager.canvas.figure.axes[1].set_title( 'reference' ) manager.show() manager.start_main_loop() +""" +for peak in np.array( peaks_calib_top ).astype( int ): + first = peak + peak , old = first - 2 , first - 1 + while mean_calib_top[ peak ] <= mean_calib_top[ old ]: + old = peak + peak -= 1 + mean_calib_top[ peak : first ] = mean_calib_top[ peak ] * np.ones( first - peak ) + + peak , old = first + 2 , first + 1 + while mean_calib_top[ peak ] <= mean_calib_top[ old ]: + old = peak + peak += 1 + mean_calib_top[ first : peak ] = mean_calib_top[ peak ] * np.ones( peak - first ) + +manager = qt.FigureManager( + qt.FigureCanvas( + fig.Figure( + figsize = ( 10 , 5 ) + ), + ), + 0, +) +manager.canvas.figure.gca().plot( + mean_calib_top +) +manager.canvas.figure.gca().plot( + sig.medfilt( mean_calib_top , 71 ) +) +manager.show() +manager.start_main_loop() + +manager = qt.FigureManager( + qt.FigureCanvas( + fig.Figure(), + ), + 1, +) +signal_calib = sig.convolve( + sig.medfilt( mean_calib_top , 71 ), + np.ones( 50 ), + 'same' +) +manager.canvas.figure.gca().plot( + signal +) +manager.canvas.figure.gca().vlines( + [ + np.argmin( signal[ 25 : -25 ] ) + ] , + np.min( signal[ 25 : -25 ] ), + np.max( signal[ 25 : -25 ] ), + color = 'red' , +) +manager.show() +manager.start_main_loop()