From 6fe9013318f8cd8518578cbd329c5aeaf9fb4b1b Mon Sep 17 00:00:00 2001 From: SGCMarkus Date: Fri, 24 May 2024 23:52:14 +0200 Subject: [PATCH] astrodatagui: FlareSummaryPlotGUI: use panda to show statistics --- main/astrodatagui/FlareSummaryPlotGUI.py | 95 +++++++++--------------- 1 file changed, 37 insertions(+), 58 deletions(-) diff --git a/main/astrodatagui/FlareSummaryPlotGUI.py b/main/astrodatagui/FlareSummaryPlotGUI.py index 505950e..e0ac7c9 100644 --- a/main/astrodatagui/FlareSummaryPlotGUI.py +++ b/main/astrodatagui/FlareSummaryPlotGUI.py @@ -45,6 +45,8 @@ class FlareSummaryPlotGUI(QWidget): self.cbSpTypeG.setChecked(True) self.cbSpTypeF = QCheckBox("F") self.cbSpTypeF.setChecked(True) + self.cbSpTypeUnknown = QCheckBox("Unknown") + self.cbSpTypeUnknown.setChecked(True) self.buttonGridLayout.addWidget(QLabel("Plot Types: "), 0, 0) self.buttonGridLayout.addWidget(self.btShowFlaresPerStar, 0, 1) @@ -60,78 +62,51 @@ class FlareSummaryPlotGUI(QWidget): self.buttonGridLayout.addWidget(self.cbSpTypeK, 2, 3) self.buttonGridLayout.addWidget(self.cbSpTypeG, 2, 4) self.buttonGridLayout.addWidget(self.cbSpTypeF, 2, 5) + self.buttonGridLayout.addWidget(self.cbSpTypeUnknown, 2, 6) self.mainLayout.addLayout(self.buttonGridLayout) self.mainLayout.addWidget(toolbar) self.mainLayout.addWidget(fc) self.resize(1000, 800) def btShowFlaresPerStarClicked(self): - showSourceFilter = np.full(len(self.starFLareDictList), False) - showSpectralTypeFilter = np.full(len(self.starFLareDictList), False) - data = [] - for entry in self.starFLareDictList: - if((self.cbKepler.isChecked() and entry["Source"] == "Kepler") or - (self.cbK2.isChecked() and entry["Source"] == "K2") or - (self.cbTESS.isChecked() and entry["Source"] == "TESS")): - data.append(entry) + data = pd.DataFrame(self.starFLareDictList) + x = np.arange(start=1, stop=len(data)+1, step=1, dtype=int) + + if(self.cbKepler.isChecked()): + showKepler = data["Source"] == "Kepler" + if(self.cbK2.isChecked()): + showK2 = data["Source"] == "K2" + if(self.cbTESS.isChecked()): + showTESS = data["Source"] == "TESS" + + 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() - #data = self.starFLareDictList[showSourceFilter] - x = np.arange(start=1, stop=len(data)+1, step=1, dtype=int) - print(len(data), len(x)) - - Lfilter = []; Mfilter = []; Kfilter = []; Gfilter = []; Ffilter = [] - Unknownfilter = [] - for d in data: - try: - if(d["SpType"][0] == "L"): - LVal = True - MVal = KVal = GVal = FVal = UnknownVal = False - if(d["SpType"][0] == "M"): - MVal = True - LVal = KVal = GVal = FVal = UnknownVal = False - if(d["SpType"][0] == "K"): - KVal = True - MVal = LVal = GVal = FVal = UnknownVal = False - if(d["SpType"][0] == "G"): - GVal = True - MVal = KVal = LVal = FVal = UnknownVal = False - if(d["SpType"][0] == "F"): - FVal = True - MVal = KVal = GVal = LVal = UnknownVal = False - except: - UnknownVal = True - MVal = KVal = GVal = FVal = LVal = False - finally: - Lfilter.append(LVal) - Mfilter.append(MVal) - Kfilter.append(KVal) - Gfilter.append(GVal) - Ffilter.append(FVal) - Unknownfilter.append(UnknownVal) - - data = pd.DataFrame(data) - Lfilter = np.array(Lfilter, dtype=bool) - Mfilter = np.array(Mfilter, dtype=bool) - Kfilter = np.array(Kfilter, dtype=bool) - Gfilter = np.array(Gfilter, dtype=bool) - Ffilter = np.array(Ffilter, dtype=bool) - Unknownfilter = np.array(Unknownfilter, dtype=bool) - #print("L Type stars: ", Lfilter) - print("M Type stars: ", type(Mfilter), Mfilter) - #print("K Type stars: ", Kfilter) - #print("G Type stars: ", Gfilter) - #print("F Type stars: ", Ffilter) - print("x: ", type(x), x) - print("data: ", type(data)) 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)): - print(x[Mfilter]) - print(data[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()): @@ -146,6 +121,10 @@ class FlareSummaryPlotGUI(QWidget): 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() \ No newline at end of file