From 4a09d3a75756af2e859f48534c8c93d847e2128a Mon Sep 17 00:00:00 2001 From: SGCMarkus Date: Mon, 22 Apr 2024 14:27:19 +0200 Subject: [PATCH] astrodatagui: FlaredetectorWidget: only generate fits when new fits file is selected --- main/astrodatagui/ui/FlaredetectorWidget.py | 23 ++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/main/astrodatagui/ui/FlaredetectorWidget.py b/main/astrodatagui/ui/FlaredetectorWidget.py index 5f2f1c0..f37001a 100644 --- a/main/astrodatagui/ui/FlaredetectorWidget.py +++ b/main/astrodatagui/ui/FlaredetectorWidget.py @@ -60,6 +60,7 @@ class FlaredetectorWidget(QtWidgets.QWidget): self.currentLC = lk.read(fitsFilePath) self.currentLCCollection = None self.currentMainName = mainName + self.updateFit() self.updatePlot() def setFitsFiles(self, mainName: str, fitsFilePaths: list[str]): @@ -80,6 +81,7 @@ class FlaredetectorWidget(QtWidgets.QWidget): self.currentLCCollection = lk.LightCurveCollection(lcList) self.currentLC = self.currentLCCollection.stitch() self.currentMainName = mainName + self.updateFit() self.updatePlot() def setFluxType(self, fluxType: str): @@ -130,6 +132,7 @@ class FlaredetectorWidget(QtWidgets.QWidget): if(self.FlattenState["Enabled"]): self.FoldState["Enabled"] = False self.PeriodogramState["Enabled"] = False + self.updateFit() self.updatePlot() def setFoldState(self, enabled: bool, period: float, epoch: float): @@ -166,6 +169,10 @@ class FlaredetectorWidget(QtWidgets.QWidget): lc.flux = lc[self.fluxType] return lc.normalize(unit=self.NormalizeState["Scale"]) + def updateFit(self): + self.peaks, self.fits = calculateFlareFitsForLightcurve(self.currentLC.flatten(window_length=self.FlattenState["WindowLength"], + polyorder=self.FlattenState["PolynomialOrder"]), num=100) + def updatePlot(self): lc = self.currentLC label = f"{self.currentMainName}" @@ -193,7 +200,7 @@ class FlaredetectorWidget(QtWidgets.QWidget): polyorder=self.FlattenState["PolynomialOrder"]) label += " - flattened" - maxPowers = findMaxIndices(lc, 100, height=1.005, distance=1) + #maxPowers = findMaxIndices(lc, 100, height=1.005, distance=1) if(self.FoldState["Enabled"]): lc = lc.fold(period=self.FoldState["Period"], epoch_time=self.FoldState["EpochTime"]) @@ -211,14 +218,6 @@ class FlaredetectorWidget(QtWidgets.QWidget): self.periodogramInfoGroupBox.setVisible(self.PeriodogramState["Enabled"]) - if(not self.FlattenState["Enabled"] and - not self.FoldState["Enabled"] and - not self.PeriodogramState["Enabled"]): - peaks, fits = calculateFlareFitsForLightcurve(lc.flatten(window_length=self.FlattenState["WindowLength"], - polyorder=self.FlattenState["PolynomialOrder"]), num=100) - elif(self.FlattenState["Enabled"]): - peaks, fits = calculateFlareFitsForLightcurve(lc, num=100) - self.figureAxis.clear() time_support() if(self.FoldState["Enabled"]): @@ -231,8 +230,8 @@ class FlaredetectorWidget(QtWidgets.QWidget): self.figureAxis.plot(lc.frequency[maxPowers], lc.power[maxPowers], "x") else: lc.plot(label=label, ax=self.figureAxis) - plotFlarePeaks(self.figureAxis, peaks, lc.flux) - markFlare(self.figureAxis, fits, lc.flux) + plotFlarePeaks(self.figureAxis, self.peaks, lc.flux) + markFlare(self.figureAxis, self.fits, lc.flux) if(self.FlattenState["Enabled"]): - plotFlareFits(self.figureAxis, fits) + plotFlareFits(self.figureAxis, self.fits) self.figure.canvas.draw_idle() \ No newline at end of file