Update code to add function (still WIP)
This commit is contained in:
parent
e509199bf9
commit
8e1ca4bd60
1 changed files with 57 additions and 80 deletions
|
@ -4,8 +4,6 @@ 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' )
|
||||
|
||||
|
@ -18,28 +16,34 @@ mean_calib_down = np.mean( calib_down , axis = 0 )
|
|||
peaks_calib_top = np.array(
|
||||
utils.retrieve_peaks( mean_calib_top )
|
||||
).astype( int )
|
||||
peaks_calib_down = np.array(
|
||||
utils.retrieve_peaks( mean_calib_down )
|
||||
).astype( int )
|
||||
|
||||
"""
|
||||
Signal without peaks
|
||||
"""
|
||||
|
||||
peakless_calib_top = mean_calib_top.copy()
|
||||
for peak in peaks_calib_top:
|
||||
def remove_peaks( signal , peaks ):
|
||||
peakless_signal = signal.copy()
|
||||
for peak in peaks:
|
||||
first = peak
|
||||
peak , old = first - 2 , first - 1
|
||||
while peakless_calib_top[ peak ] <= peakless_calib_top[ old ]:
|
||||
while peakless_signal[ peak ] <= peakless_signal[ old ]:
|
||||
old = peak
|
||||
peak -= 1
|
||||
peakless_calib_top[ peak : first ] = peakless_calib_top[ peak ] * np.ones( first - peak )
|
||||
peakless_signal[ peak : first ] = peakless_signal[ peak ] * np.ones( first - peak )
|
||||
|
||||
peak , old = first + 2 , first + 1
|
||||
while peakless_calib_top[ peak ] <= peakless_calib_top[ old ]:
|
||||
while peakless_signal[ peak ] <= peakless_signal[ old ]:
|
||||
old = peak
|
||||
peak += 1
|
||||
peakless_calib_top[ first : peak ] = peakless_calib_top[ peak ] * np.ones( peak - first )
|
||||
peakless_signal[ first : peak ] = peakless_signal[ peak ] * np.ones( peak - first )
|
||||
|
||||
peakless_calib_top = sig.medfilt( peakless_calib_top , 111 )
|
||||
return sig.medfilt( peakless_signal , 111 )
|
||||
peakless_calib_top = remove_peaks( mean_calib_top , peaks_calib_top )
|
||||
|
||||
def get_extremities( signal ):
|
||||
"""
|
||||
It's possible to have an idea of the part the spectrum begins with the
|
||||
small large peak at the start of it, the peak at 3810 A should be inside
|
||||
|
@ -47,7 +51,7 @@ it. The same goes for the area at the end.
|
|||
ONLY TRUE FOR THE CURRENT CALIBRATION (Hg)
|
||||
"""
|
||||
argmin = np.argmin(
|
||||
peakless_calib_top[ : len( peakless_calib_top ) // 2 ]
|
||||
signal[ : len( signal ) // 2 ]
|
||||
)
|
||||
argmax = np.argmax( peakless_calib_top[ : argmin ] )
|
||||
peaks_inside = np.where(
|
||||
|
@ -58,8 +62,7 @@ peaks_inside = np.where(
|
|||
)[0]
|
||||
if len( peaks_inside ) < 1:
|
||||
raise Exception( 'unknown plage, cannot autocalibrate' )
|
||||
first_peak_cal = peaks_inside[0]
|
||||
first_peak_ref = 3 # hard-coded
|
||||
first_peak = peaks_inside[0]
|
||||
|
||||
"""
|
||||
The next peak after the minimum at the end of the spectrum should be
|
||||
|
@ -75,8 +78,11 @@ peaks_inside = np.where(
|
|||
)[0]
|
||||
if len( peaks_inside ) < 1:
|
||||
raise Exception( 'unknown plage, cannot autocalibrate' )
|
||||
last_peak_cal = peaks_inside[0]
|
||||
return ( first_peak , peaks_inside[0] )
|
||||
|
||||
first_peak_ref = 3 # hard-coded
|
||||
last_peak_ref = 20 # hard-coded
|
||||
first_peak_cal , last_peak_cal = get_extremities( peakless_calib_top )
|
||||
|
||||
"""
|
||||
delete if too much peak in calib
|
||||
|
@ -131,35 +137,6 @@ wavelength = np.polyval(
|
|||
)
|
||||
)
|
||||
|
||||
manager = qt.FigureManager(
|
||||
qt.FigureCanvas(
|
||||
fig.Figure(
|
||||
figsize = ( 10 , 5 )
|
||||
),
|
||||
),
|
||||
0,
|
||||
)
|
||||
manager.canvas.figure.gca().plot(
|
||||
wavelength ,
|
||||
mean_calib_top,
|
||||
)
|
||||
manager.canvas.figure.gca().plot(
|
||||
wavelength ,
|
||||
peakless_calib_top,
|
||||
)
|
||||
manager.canvas.figure.gca().vlines(
|
||||
[
|
||||
wavelength[ argmin ] ,
|
||||
wavelength[ argmax ] ,
|
||||
wavelength[ argmin_1 ],
|
||||
] ,
|
||||
np.min( peakless_calib_top ),
|
||||
np.max( peakless_calib_top ),
|
||||
color = 'red' ,
|
||||
)
|
||||
manager.show()
|
||||
manager.start_main_loop()
|
||||
|
||||
manager = qt.FigureManager(
|
||||
qt.FigureCanvas(
|
||||
fig.Figure(
|
||||
|
|
Loading…
Reference in a new issue