From 97c7ee098e747fe9059d7d66665251f6aec9cda8 Mon Sep 17 00:00:00 2001 From: SGCMarkus Date: Mon, 27 May 2024 11:05:11 +0200 Subject: [PATCH] FlareSummaryPlotGUI: implement show flares per star function --- main/astrodatagui/FlareSummaryPlotGUI.py | 84 +++++++++++++++++++++++- 1 file changed, 83 insertions(+), 1 deletion(-) diff --git a/main/astrodatagui/FlareSummaryPlotGUI.py b/main/astrodatagui/FlareSummaryPlotGUI.py index 77ebf0f..b902439 100644 --- a/main/astrodatagui/FlareSummaryPlotGUI.py +++ b/main/astrodatagui/FlareSummaryPlotGUI.py @@ -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")