astrodatagui: FlareSummaryPlotGUI: show normalized flare count

This commit is contained in:
2024-06-13 14:36:10 +02:00
parent b966e7350b
commit d66df44bea
+96
View File
@@ -41,6 +41,8 @@ class FlareSummaryPlotGUI(QWidget):
self.btShowFlaresPerFile.clicked.connect(self.btShowFlaresPerFileClicked) self.btShowFlaresPerFile.clicked.connect(self.btShowFlaresPerFileClicked)
self.btShowFlaresPerStar = QPushButton("Show Flares/Star") self.btShowFlaresPerStar = QPushButton("Show Flares/Star")
self.btShowFlaresPerStar.clicked.connect(self.btShowFlaresPerStarClicked) self.btShowFlaresPerStar.clicked.connect(self.btShowFlaresPerStarClicked)
self.btShowFlaresPerStarNormalized = QPushButton("Show Flares/Star Normalized")
self.btShowFlaresPerStarNormalized.clicked.connect(self.btShowFlaresPerStarNormalizedClicked)
self.cbKepler = QCheckBox("Kepler") self.cbKepler = QCheckBox("Kepler")
self.cbKepler.setChecked(True) self.cbKepler.setChecked(True)
@@ -65,6 +67,7 @@ class FlareSummaryPlotGUI(QWidget):
self.buttonGridLayout.addWidget(QLabel("Plot Types: "), 0, 0) self.buttonGridLayout.addWidget(QLabel("Plot Types: "), 0, 0)
self.buttonGridLayout.addWidget(self.btShowFlaresPerFile, 0, 1) self.buttonGridLayout.addWidget(self.btShowFlaresPerFile, 0, 1)
self.buttonGridLayout.addWidget(self.btShowFlaresPerStar, 0, 2) self.buttonGridLayout.addWidget(self.btShowFlaresPerStar, 0, 2)
self.buttonGridLayout.addWidget(self.btShowFlaresPerStarNormalized, 0, 3)
self.buttonGridLayout.addWidget(QLabel("Sources: "), 1, 0) self.buttonGridLayout.addWidget(QLabel("Sources: "), 1, 0)
self.buttonGridLayout.addWidget(self.cbKepler, 1, 1) self.buttonGridLayout.addWidget(self.cbKepler, 1, 1)
@@ -233,4 +236,97 @@ class FlareSummaryPlotGUI(QWidget):
self.figureAxis.set_ylabel("Flare count") self.figureAxis.set_ylabel("Flare count")
self.figureAxis.set_xlabel("Star Number") self.figureAxis.set_xlabel("Star Number")
self.figureAxis.legend() self.figureAxis.legend()
self.figure.canvas.draw_idle()
def btShowFlaresPerStarNormalizedClicked(self):
data = self.starFLareDictList.drop(columns=['Distance',
'DistanceUnit',
'FilePath',
'RotVel',
'RotVelUnit',
'Sequence',
'pdcsapFits',
'pdcsapPeaks',
'sapFits',
'sapPeaks'])
showSourceFilter = np.full(len(data), False)
if(self.cbKepler.isChecked()):
showKepler = data["Source"] == "Kepler"
showSourceFilter |= showKepler
if(self.cbK2.isChecked()):
showK2 = data["Source"] == "K2"
showSourceFilter |= showK2
if(self.cbTESS.isChecked()):
showTESS = data["Source"] == "TESS"
showSourceFilter |= showTESS
data = data[showSourceFilter].groupby(["StarName", "SpType"],
as_index=False).agg({"sapPeaksCount": "sum",
"pdcsapPeaksCount": "sum",
"sapValidSeconds": "sum",
"pdcsapValidSeconds": "sum"})
x = np.arange(start=1, stop=len(data)+1, step=1, dtype=int)
if(self.cbSpTypeL.isChecked()):
Lfilter = data["SpType"].str.startswith("L")
Lfilter &= showSourceFilter
if(self.cbSpTypeM.isChecked()):
Mfilter = data["SpType"].str.startswith("M")
Mfilter &= showSourceFilter
if(self.cbSpTypeK.isChecked()):
Kfilter = data["SpType"].str.startswith("K")
Kfilter &= showSourceFilter
if(self.cbSpTypeG.isChecked()):
Gfilter = data["SpType"].str.startswith("G")
Gfilter &= showSourceFilter
if(self.cbSpTypeF.isChecked()):
Ffilter = data["SpType"].str.startswith("F")
Ffilter &= showSourceFilter
if(self.cbSpTypeUnknown.isChecked()):
Unknownfilter = data["SpType"].str.startswith("-")
Unknownfilter &= showSourceFilter
self.figureAxis.clear()
if(self.cbSpTypeL.isChecked()):
if(np.any(Lfilter)):
self.figureAxis.scatter(x[Lfilter], data[Lfilter]["sapPeaksCount"]/(data[Lfilter]["sapValidSeconds"]/60/60/24/7),
marker="o", color="brown", label="L SAP Count")
self.figureAxis.scatter(x[Lfilter], data[Lfilter]["pdcsapPeaksCount"]/(data[Lfilter]["pdcsapValidSeconds"]/60/60/24/7),
marker="x", color="brown", label="L PDCSAP Count")
if(self.cbSpTypeM.isChecked()):
if(np.any(Mfilter)):
self.figureAxis.scatter(x[Mfilter], data[Mfilter]["sapPeaksCount"]/(data[Mfilter]["sapValidSeconds"]/60/60/24/7),
marker="o", color="red", label="M SAP Count")
self.figureAxis.scatter(x[Mfilter], data[Mfilter]["pdcsapPeaksCount"]/(data[Mfilter]["pdcsapValidSeconds"]/60/60/24/7),
marker="x", color="red", label="M PDCSAP Count")
if(self.cbSpTypeK.isChecked()):
if(np.any(Kfilter)):
self.figureAxis.scatter(x[Kfilter], data[Kfilter]["sapPeaksCount"]/(data[Kfilter]["sapValidSeconds"]/60/60/24/7),
marker="o", color="orange", label="K SAP Count")
self.figureAxis.scatter(x[Kfilter], data[Kfilter]["pdcsapPeaksCount"]/(data[Kfilter]["pdcsapValidSeconds"]/60/60/24/7),
marker="x", color="orange", label="K PDCSAP Count")
if(self.cbSpTypeG.isChecked()):
if(np.any(Gfilter)):
self.figureAxis.scatter(x[Gfilter], data[Gfilter]["sapPeaksCount"]/(data[Gfilter]["sapValidSeconds"]/60/60/24/7),
marker="o", color="yellow", label="G SAP Count")
self.figureAxis.scatter(x[Gfilter], data[Gfilter]["pdcsapPeaksCount"]/(data[Gfilter]["pdcsapValidSeconds"]/60/60/24/7),
marker="x", color="yellow", label="G PDCSAP Count")
if(self.cbSpTypeF.isChecked()):
if(np.any(Ffilter)):
self.figureAxis.scatter(x[Ffilter], data[Ffilter]["sapPeaksCount"]/(data[Ffilter]["sapValidSeconds"]/60/60/24/7),
marker="o", color="greenyellow", label="F SAP Count")
self.figureAxis.scatter(x[Ffilter], data[Ffilter]["pdcsapPeaksCount"]/(data[Ffilter]["pdcsapValidSeconds"]/60/60/24/7),
marker="x", color="greenyellow", label="F PDCSAP Count")
if(self.cbSpTypeUnknown.isChecked()):
if(np.any(Unknownfilter)):
self.figureAxis.scatter(x[Unknownfilter], data[Unknownfilter]["sapPeaksCount"]/(data[Unknownfilter]["sapValidSeconds"]/60/60/24/7),
marker="o", color="gray", label="Unknown SAP Count")
self.figureAxis.scatter(x[Unknownfilter], data[Unknownfilter]["pdcsapPeaksCount"]/(data[Unknownfilter]["pdcsapValidSeconds"]/60/60/24/7),
marker="x", color="gray", label="Unknown PDCSAP Count")
self.figureAxis.set_ylabel("Flare count per Week")
self.figureAxis.set_xlabel("Star Number")
self.figureAxis.legend()
self.figure.canvas.draw_idle() self.figure.canvas.draw_idle()