astrodatagui: FlaredetectorWidget: show 4 highest peaks in the periodogram and print their periods
This commit is contained in:
@@ -6,6 +6,8 @@ from matplotlib.backends.backend_qtagg import (
|
||||
from astropy.io import fits
|
||||
import lightkurve as lk
|
||||
|
||||
from ...flaredetector.util import findMaxIndices
|
||||
|
||||
class FlaredetectorWidget(QtWidgets.QWidget):
|
||||
def __init__(self, name):
|
||||
super(FlaredetectorWidget, self).__init__()
|
||||
@@ -25,10 +27,20 @@ class FlaredetectorWidget(QtWidgets.QWidget):
|
||||
self.periodogramInfoLayout = QtWidgets.QHBoxLayout()
|
||||
self.periodogramInfoGroupBox.setLayout(self.periodogramInfoLayout)
|
||||
self.periodogramInfoGroupBox.setVisible(False)
|
||||
self.lbMaxPowerPeriodText = QtWidgets.QLabel("Max Power Period: ")
|
||||
self.lbMaxPowerPeriod = QtWidgets.QLabel("")
|
||||
self.periodogramInfoLayout.addWidget(self.lbMaxPowerPeriodText)
|
||||
self.periodogramInfoLayout.addWidget(self.lbMaxPowerPeriod)
|
||||
self.lbMaxPowerPeriod1 = QtWidgets.QLabel("")
|
||||
self.lbMaxPowerPeriod2 = QtWidgets.QLabel("")
|
||||
self.lbMaxPowerPeriod3 = QtWidgets.QLabel("")
|
||||
self.lbMaxPowerPeriod4 = QtWidgets.QLabel("")
|
||||
self.periodogramInfoLayout.addWidget(QtWidgets.QLabel("1. Max Power: "))
|
||||
self.periodogramInfoLayout.addWidget(self.lbMaxPowerPeriod1)
|
||||
self.periodogramInfoLayout.addWidget(QtWidgets.QLabel("2. Max Power: "))
|
||||
self.periodogramInfoLayout.addWidget(self.lbMaxPowerPeriod2)
|
||||
self.periodogramInfoLayout.addWidget(QtWidgets.QLabel("3. Max Power: "))
|
||||
self.periodogramInfoLayout.addWidget(self.lbMaxPowerPeriod3)
|
||||
self.periodogramInfoLayout.addWidget(QtWidgets.QLabel("4. Max Power: "))
|
||||
self.periodogramInfoLayout.addWidget(self.lbMaxPowerPeriod4)
|
||||
sp = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
|
||||
self.periodogramInfoGroupBox.setSizePolicy(sp)
|
||||
self.mainLayout.addWidget(self.periodogramInfoGroupBox)
|
||||
|
||||
self.fluxType = "sap_flux"
|
||||
@@ -183,7 +195,13 @@ class FlaredetectorWidget(QtWidgets.QWidget):
|
||||
if(self.PeriodogramState["Enabled"]):
|
||||
lc = lc.to_periodogram(method=self.PeriodogramState["Method"])
|
||||
label = "Periodogram"
|
||||
self.lbMaxPowerPeriod.setText(str(lc.period_at_max_power))
|
||||
|
||||
maxPowers = findMaxIndices(lc.power, 4)
|
||||
print(maxPowers)
|
||||
self.lbMaxPowerPeriod1.setText(str(lc.period[maxPowers[0]]))
|
||||
self.lbMaxPowerPeriod2.setText(str(lc.period[maxPowers[1]]))
|
||||
self.lbMaxPowerPeriod3.setText(str(lc.period[maxPowers[2]]))
|
||||
self.lbMaxPowerPeriod4.setText(str(lc.period[maxPowers[3]]))
|
||||
|
||||
self.periodogramInfoGroupBox.setVisible(self.PeriodogramState["Enabled"])
|
||||
|
||||
@@ -192,6 +210,10 @@ class FlaredetectorWidget(QtWidgets.QWidget):
|
||||
lc.scatter(label=label, ax=self.figureAxis)
|
||||
elif(self.PeriodogramState["Enabled"]):
|
||||
lc.plot(label=label, ax=self.figureAxis, view=self.PeriodogramState["View"])
|
||||
if(self.PeriodogramState["View"] == "period"):
|
||||
self.figureAxis.plot(lc.period[maxPowers], lc.power[maxPowers], "x")
|
||||
if(self.PeriodogramState["View"] == "frequency"):
|
||||
self.figureAxis.plot(lc.frequency[maxPowers], lc.power[maxPowers], "x")
|
||||
else:
|
||||
lc.plot(label=label, ax=self.figureAxis)
|
||||
self.figure.canvas.draw_idle()
|
||||
Reference in New Issue
Block a user