fix edit dialog for spectra
This commit is contained in:
parent
185dd160f1
commit
661ab81d7e
@ -778,7 +778,6 @@ class SignalContainer(ExperimentContainer):
|
|||||||
self._data.apod(*apod)
|
self._data.apod(*apod)
|
||||||
|
|
||||||
if fourier[0] is not None:
|
if fourier[0] is not None:
|
||||||
print(fourier)
|
|
||||||
if fourier[0]:
|
if fourier[0]:
|
||||||
if phase[0] is not None:
|
if phase[0] is not None:
|
||||||
self._data.manual_phase(*phase)
|
self._data.manual_phase(*phase)
|
||||||
|
@ -96,7 +96,7 @@ class QPreviewDialog(QtWidgets.QDialog, Ui_ApodEdit):
|
|||||||
self._all_freq = True
|
self._all_freq = True
|
||||||
|
|
||||||
fid = data.copy()
|
fid = data.copy()
|
||||||
spec = self._temp_fft(fid.x, fid.y)
|
spec = self._temp_fft_time(fid.x, fid.y, self.baseline_box.isChecked())
|
||||||
|
|
||||||
x_len = data.x.size
|
x_len = data.x.size
|
||||||
self.zf_spinbox.setMaximum(min(2**17//x_len, 3))
|
self.zf_spinbox.setMaximum(min(2**17//x_len, 3))
|
||||||
@ -128,7 +128,7 @@ class QPreviewDialog(QtWidgets.QDialog, Ui_ApodEdit):
|
|||||||
def _update_bl(self):
|
def _update_bl(self):
|
||||||
if self.baseline_box.isChecked():
|
if self.baseline_box.isChecked():
|
||||||
for y in self._tmp_data_bl:
|
for y in self._tmp_data_bl:
|
||||||
y -= y[int(-0.12*y.size):].mean()
|
self._temp_baseline(y)
|
||||||
else:
|
else:
|
||||||
for i, d in enumerate(self.data):
|
for i, d in enumerate(self.data):
|
||||||
self._tmp_data_bl[i] = d.y.copy()
|
self._tmp_data_bl[i] = d.y.copy()
|
||||||
@ -200,7 +200,7 @@ class QPreviewDialog(QtWidgets.QDialog, Ui_ApodEdit):
|
|||||||
ph1 = self.ph1_spinbox.value()
|
ph1 = self.ph1_spinbox.value()
|
||||||
|
|
||||||
for i, (x, y) in enumerate(self._tmp_data_ap):
|
for i, (x, y) in enumerate(self._tmp_data_ap):
|
||||||
x_fft, y_fft = self._temp_fft(x, y)
|
x_fft, y_fft = self._temp_fft_time(x, y, self.baseline_box.isChecked())
|
||||||
|
|
||||||
if ph0 != 0:
|
if ph0 != 0:
|
||||||
y = self._temp_phase(x, y, ph0, 0, 0)
|
y = self._temp_phase(x, y, ph0, 0, 0)
|
||||||
@ -213,7 +213,7 @@ class QPreviewDialog(QtWidgets.QDialog, Ui_ApodEdit):
|
|||||||
else:
|
else:
|
||||||
self.pvt_line.hide()
|
self.pvt_line.hide()
|
||||||
for i, (x, y) in enumerate(self._tmp_data_ap):
|
for i, (x, y) in enumerate(self._tmp_data_ap):
|
||||||
self._tmp_data_ph[i] = x, y, *self._temp_fft(x, y)
|
self._tmp_data_ph[i] = x, y, *self._temp_fft_time(x, y, self.baseline_box.isChecked())
|
||||||
|
|
||||||
self._update_plots()
|
self._update_plots()
|
||||||
|
|
||||||
@ -225,6 +225,15 @@ class QPreviewDialog(QtWidgets.QDialog, Ui_ApodEdit):
|
|||||||
self.graphs[i][2].setData(x=xf, y=yf.real)
|
self.graphs[i][2].setData(x=xf, y=yf.real)
|
||||||
self.graphs[i][3].setData(x=xf, y=yf.imag)
|
self.graphs[i][3].setData(x=xf, y=yf.imag)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _temp_baseline_time(y):
|
||||||
|
y -= y[int(-0.12 * y.size):].mean()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _temp_baseline_freq(y):
|
||||||
|
region = int(0.12 * y.size)
|
||||||
|
y -= np.mean([y[-region:], y[:region]])
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _temp_phase(x: np.ndarray, y: np.ndarray, ph0: float, ph1: float, pvt: float) -> np.ndarray:
|
def _temp_phase(x: np.ndarray, y: np.ndarray, ph0: float, ph1: float, pvt: float) -> np.ndarray:
|
||||||
phase_correction = np.exp(-1j * (ph0 + ph1 * (x - pvt) / x.max()) * pi / 180.)
|
phase_correction = np.exp(-1j * (ph0 + ph1 * (x - pvt) / x.max()) * pi / 180.)
|
||||||
@ -254,12 +263,19 @@ class QPreviewDialog(QtWidgets.QDialog, Ui_ApodEdit):
|
|||||||
return _y
|
return _y
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _temp_fft(x: np.ndarray, y: np.ndarray) -> tuple[np.ndarray, np.ndarray]:
|
def _temp_fft_time(x: np.ndarray, y: np.ndarray, baseline: bool = False) -> tuple[np.ndarray, np.ndarray]:
|
||||||
y_fft = fftshift(fft(y))
|
y_fft = fftshift(fft(y))
|
||||||
x_fft = fftshift(fftfreq(len(x), d=x[1]-x[0]))
|
x_fft = fftshift(fftfreq(len(x), d=x[1]-x[0]))
|
||||||
|
|
||||||
|
if baseline:
|
||||||
|
QPreviewDialog._temp_baseline_freq(y_fft)
|
||||||
|
|
||||||
return x_fft, y_fft
|
return x_fft, y_fft
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _temp_fft_freq(x: np.ndarray, y: np.ndarray, _=None):
|
||||||
|
return x, y
|
||||||
|
|
||||||
def move_line(self, evt):
|
def move_line(self, evt):
|
||||||
self.pivot_lineedit.setText(f'{evt.value():.5g}')
|
self.pivot_lineedit.setText(f'{evt.value():.5g}')
|
||||||
|
|
||||||
@ -329,6 +345,8 @@ class QPreviewDialog(QtWidgets.QDialog, Ui_ApodEdit):
|
|||||||
|
|
||||||
self.data = []
|
self.data = []
|
||||||
self.graphs = []
|
self.graphs = []
|
||||||
|
self.freq_graph.removeItem(self.pvt_line)
|
||||||
|
self.time_graph.removeItem(self.pvt_line)
|
||||||
|
|
||||||
self.blockSignals(False)
|
self.blockSignals(False)
|
||||||
|
|
||||||
@ -374,3 +392,14 @@ class QPreviewDialog(QtWidgets.QDialog, Ui_ApodEdit):
|
|||||||
self.zerofill_box.setVisible(self._all_time)
|
self.zerofill_box.setVisible(self._all_time)
|
||||||
self.apod_box.setVisible(self._all_time)
|
self.apod_box.setVisible(self._all_time)
|
||||||
self.shift_box.setVisible(self._all_time)
|
self.shift_box.setVisible(self._all_time)
|
||||||
|
|
||||||
|
self._temp_baseline = self._temp_baseline_time if self._all_time else self._temp_baseline_freq
|
||||||
|
self._temp_fft = self._temp_fft_time if self._all_time else self._temp_fft_freq
|
||||||
|
|
||||||
|
self.freq_graph.setVisible(self._all_time)
|
||||||
|
if self._all_freq:
|
||||||
|
self.time_graph.addItem(self.pvt_line)
|
||||||
|
else:
|
||||||
|
self.freq_graph.addItem(self.pvt_line)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user