astrodatagui: FlareSummaryPlotGUI: use panda to show statistics

This commit is contained in:
2024-05-24 23:52:14 +02:00
parent ffa32dc682
commit 6fe9013318
+37 -58
View File
@@ -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()