astrodatagui: FlareSummaryPlotGUI: show normalized flare count
This commit is contained in:
@@ -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()
|
||||||
Reference in New Issue
Block a user