FlareSummaryPlotGUI: implement show flares per star function

This commit is contained in:
2024-05-27 11:05:11 +02:00
parent 2b19a2f94b
commit 97c7ee098e
+83 -1
View File
@@ -27,6 +27,8 @@ class FlareSummaryPlotGUI(QWidget):
self.buttonGridLayout = QGridLayout()
self.btShowFlaresPerFile = QPushButton("Show Flares/File")
self.btShowFlaresPerFile.clicked.connect(self.btShowFlaresPerFileClicked)
self.btShowFlaresPerStar = QPushButton("Show Flares/Star")
self.btShowFlaresPerStar.clicked.connect(self.btShowFlaresPerStarClicked)
self.cbKepler = QCheckBox("Kepler")
self.cbKepler.setChecked(True)
@@ -50,6 +52,7 @@ class FlareSummaryPlotGUI(QWidget):
self.buttonGridLayout.addWidget(QLabel("Plot Types: "), 0, 0)
self.buttonGridLayout.addWidget(self.btShowFlaresPerFile, 0, 1)
self.buttonGridLayout.addWidget(self.btShowFlaresPerStar, 0, 2)
self.buttonGridLayout.addWidget(QLabel("Sources: "), 1, 0)
self.buttonGridLayout.addWidget(self.cbKepler, 1, 1)
@@ -71,15 +74,94 @@ class FlareSummaryPlotGUI(QWidget):
def btShowFlaresPerFileClicked(self):
data = pd.DataFrame(self.starFLareDictList)
x = np.arange(start=1, stop=len(data)+1, step=1, dtype=int)
showSourceFilter = np.full(np.shape(x), 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
showSourceFilter = showKepler | showK2 | showTESS
#showSourceFilter = showKepler | showK2 | showTESS
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"], marker="o", color="brown", label="L SAP Count")
self.figureAxis.scatter(x[Lfilter], data[Lfilter]["pdcsapPeaksCount"], marker="x", color="brown", label="L PDCSAP Count")
if(self.cbSpTypeM.isChecked()):
if(np.any(Mfilter)):
self.figureAxis.scatter(x[Mfilter], data[Mfilter]["sapPeaksCount"], marker="o", color="red", label="M SAP Count")
self.figureAxis.scatter(x[Mfilter], data[Mfilter]["pdcsapPeaksCount"], marker="x", color="red", label="M PDCSAP Count")
if(self.cbSpTypeK.isChecked()):
if(np.any(Kfilter)):
self.figureAxis.scatter(x[Kfilter], data[Kfilter]["sapPeaksCount"], marker="o", color="orange", label="K SAP Count")
self.figureAxis.scatter(x[Kfilter], data[Kfilter]["pdcsapPeaksCount"], marker="x", color="orange", label="K PDCSAP Count")
if(self.cbSpTypeG.isChecked()):
if(np.any(Gfilter)):
self.figureAxis.scatter(x[Gfilter], data[Gfilter]["sapPeaksCount"], marker="o", color="yellow", label="G SAP Count")
self.figureAxis.scatter(x[Gfilter], data[Gfilter]["pdcsapPeaksCount"], marker="x", color="yellow", label="G PDCSAP Count")
if(self.cbSpTypeF.isChecked()):
if(np.any(Ffilter)):
self.figureAxis.scatter(x[Ffilter], data[Ffilter]["sapPeaksCount"], marker="o", color="greenyellow", label="F SAP Count")
self.figureAxis.scatter(x[Ffilter], data[Ffilter]["pdcsapPeaksCount"], marker="x", color="greenyellow", label="F PDCSAP Count")
if(self.cbSpTypeUnknown.isChecked()):
if(np.any(Unknownfilter)):
self.figureAxis.scatter(x[Unknownfilter], data[Unknownfilter]["sapPeaksCount"], marker="o", color="gray", label="Unknown SAP Count")
self.figureAxis.scatter(x[Unknownfilter], data[Unknownfilter]["pdcsapPeaksCount"], marker="x", color="gray", label="Unknown PDCSAP Count")
self.figureAxis.set_ylabel("Flare count")
self.figure.canvas.draw_idle()
def btShowFlaresPerStarClicked(self):
data = pd.DataFrame(self.starFLareDictList).drop(columns=['Distance',
'DistanceUnit',
'FilePath',
'RotVel',
'RotVelUnit',
'Sequence',
'pdcsapFits',
'pdcsapPeaks',
'sapFits',
'sapPeaks'])
data = data.groupby(["StarName", "Source", "SpType"],
as_index=False).agg({"sapPeaksCount": "sum",
"pdcsapPeaksCount": "sum"})
x = np.arange(start=1, stop=len(data)+1, step=1, dtype=int)
showSourceFilter = np.full(np.shape(x), 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
if(self.cbSpTypeL.isChecked()):
Lfilter = data["SpType"].str.startswith("L")