flaredetector: util: optimize: improve minima detection
This commit is contained in:
@@ -429,7 +429,9 @@ def getOptimizedFold(normalizedLC, preferedFoldedFitType):
|
|||||||
spotModulationBefore = spotModulation
|
spotModulationBefore = spotModulation
|
||||||
if(len(fitMaximaArgs) > 1):
|
if(len(fitMaximaArgs) > 1):
|
||||||
print("fitMaximaArgs > 1: ", fitMaximaArgs)
|
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
|
halfPeriod = period/2
|
||||||
for lsP, blsP in zip(lsPeriods, blsPeriods):
|
for lsP, blsP in zip(lsPeriods, blsPeriods):
|
||||||
if(abs(lsP.value - halfPeriod) < period*0.05):
|
if(abs(lsP.value - halfPeriod) < period*0.05):
|
||||||
@@ -454,9 +456,23 @@ def getOptimizedFold(normalizedLC, preferedFoldedFitType):
|
|||||||
|
|
||||||
fitMinimaArgs = argrelextrema(np.asarray(fit), np.less)[0]
|
fitMinimaArgs = argrelextrema(np.asarray(fit), np.less)[0]
|
||||||
fitMinima = phase[0]
|
fitMinima = phase[0]
|
||||||
|
fitMinimaArg = 0
|
||||||
|
|
||||||
|
newFitMinimaArgs = []
|
||||||
for args in fitMinimaArgs:
|
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]
|
fitMinima = phase[args]
|
||||||
|
fitMinimaArg = args
|
||||||
|
|
||||||
if(abs(fitMinima) < phaseLength*0.01):
|
if(abs(fitMinima) < phaseLength*0.01):
|
||||||
isValid = True
|
isValid = True
|
||||||
|
|||||||
Reference in New Issue
Block a user