diff --git a/main/flaredetector/util.py b/main/flaredetector/util.py index 45f2128..c8457f9 100644 --- a/main/flaredetector/util.py +++ b/main/flaredetector/util.py @@ -429,7 +429,9 @@ def getOptimizedFold(normalizedLC, preferedFoldedFitType): spotModulationBefore = spotModulation if(len(fitMaximaArgs) > 1): print("fitMaximaArgs > 1: ", fitMaximaArgs) - if(len(fitMaximaArgs) == 2 and fitMaximaArgs[0] > len(phase)*0.1 and fitMaximaArgs[1] < len(phase)*0.1): + print(fitMaximaArgs[0], len(phase)*0.1, fitMaximaArgs[1], len(phase)*0.9) + print(fitMaximaArgs[0] > len(phase)*0.1, fitMaximaArgs[1] < len(phase)*0.9) + if(len(fitMaximaArgs) == 2 and fitMaximaArgs[0] > len(phase)*0.1 and fitMaximaArgs[1] < len(phase)*0.9): halfPeriod = period/2 for lsP, blsP in zip(lsPeriods, blsPeriods): if(abs(lsP.value - halfPeriod) < period*0.05): @@ -454,9 +456,23 @@ def getOptimizedFold(normalizedLC, preferedFoldedFitType): fitMinimaArgs = argrelextrema(np.asarray(fit), np.less)[0] fitMinima = phase[0] + fitMinimaArg = 0 + + newFitMinimaArgs = [] for args in fitMinimaArgs: - if(abs(phase[args]) < abs(fitMinima)): + print("Phases: ", fit[0], fit[len(phase)-1], fit[args]) + if(fit[0] < fit[args] and fit[len(fit)-1] < fit[args]): + print("Found new minima") + newFitMinimaArgs.append(0) + newFitMinimaArgs.append(args) + + newFitMinimaArgs = set(newFitMinimaArgs) + print(newFitMinimaArgs) + + for args in newFitMinimaArgs: + if(abs(phase[args]) < abs(fitMinima) and fit[args] < fit[fitMinimaArg]): fitMinima = phase[args] + fitMinimaArg = args if(abs(fitMinima) < phaseLength*0.01): isValid = True