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
|
from astropy.io import fits
|
||||||
import lightkurve as lk
|
import lightkurve as lk
|
||||||
|
|
||||||
|
from ...flaredetector.util import findMaxIndices
|
||||||
|
|
||||||
class FlaredetectorWidget(QtWidgets.QWidget):
|
class FlaredetectorWidget(QtWidgets.QWidget):
|
||||||
def __init__(self, name):
|
def __init__(self, name):
|
||||||
super(FlaredetectorWidget, self).__init__()
|
super(FlaredetectorWidget, self).__init__()
|
||||||
@@ -25,10 +27,20 @@ class FlaredetectorWidget(QtWidgets.QWidget):
|
|||||||
self.periodogramInfoLayout = QtWidgets.QHBoxLayout()
|
self.periodogramInfoLayout = QtWidgets.QHBoxLayout()
|
||||||
self.periodogramInfoGroupBox.setLayout(self.periodogramInfoLayout)
|
self.periodogramInfoGroupBox.setLayout(self.periodogramInfoLayout)
|
||||||
self.periodogramInfoGroupBox.setVisible(False)
|
self.periodogramInfoGroupBox.setVisible(False)
|
||||||
self.lbMaxPowerPeriodText = QtWidgets.QLabel("Max Power Period: ")
|
self.lbMaxPowerPeriod1 = QtWidgets.QLabel("")
|
||||||
self.lbMaxPowerPeriod = QtWidgets.QLabel("")
|
self.lbMaxPowerPeriod2 = QtWidgets.QLabel("")
|
||||||
self.periodogramInfoLayout.addWidget(self.lbMaxPowerPeriodText)
|
self.lbMaxPowerPeriod3 = QtWidgets.QLabel("")
|
||||||
self.periodogramInfoLayout.addWidget(self.lbMaxPowerPeriod)
|
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.mainLayout.addWidget(self.periodogramInfoGroupBox)
|
||||||
|
|
||||||
self.fluxType = "sap_flux"
|
self.fluxType = "sap_flux"
|
||||||
@@ -183,7 +195,13 @@ class FlaredetectorWidget(QtWidgets.QWidget):
|
|||||||
if(self.PeriodogramState["Enabled"]):
|
if(self.PeriodogramState["Enabled"]):
|
||||||
lc = lc.to_periodogram(method=self.PeriodogramState["Method"])
|
lc = lc.to_periodogram(method=self.PeriodogramState["Method"])
|
||||||
label = "Periodogram"
|
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"])
|
self.periodogramInfoGroupBox.setVisible(self.PeriodogramState["Enabled"])
|
||||||
|
|
||||||
@@ -192,6 +210,10 @@ class FlaredetectorWidget(QtWidgets.QWidget):
|
|||||||
lc.scatter(label=label, ax=self.figureAxis)
|
lc.scatter(label=label, ax=self.figureAxis)
|
||||||
elif(self.PeriodogramState["Enabled"]):
|
elif(self.PeriodogramState["Enabled"]):
|
||||||
lc.plot(label=label, ax=self.figureAxis, view=self.PeriodogramState["View"])
|
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:
|
else:
|
||||||
lc.plot(label=label, ax=self.figureAxis)
|
lc.plot(label=label, ax=self.figureAxis)
|
||||||
self.figure.canvas.draw_idle()
|
self.figure.canvas.draw_idle()
|
||||||
Reference in New Issue
Block a user