flaredetector: add algorithm to detect start/end of possible flares

This commit is contained in:
2024-04-15 14:37:29 +02:00
parent 1ecacfcaa4
commit 5785bb9501
+36
View File
@@ -7,3 +7,39 @@ def GaussExpo(x, Peak, l, w):
res1 = res1[:peakX]
res2 = Peak * np.exp(-l * x[peakX:])
return np.append(res1, res2)
def getFlareRange(flux, peakIndex):
minInd = -np.inf
maxInd = np.inf
maxDelta = 0.005
meanVal = 1
maxBacklog = 20
maxForwardlog = 100
deltaCount = 0
delta = 100
prevFlux = flux[peakIndex]
for i in range(peakIndex-1, peakIndex - maxBacklog, -1):
delta = prevFlux - flux[i]
if(delta < maxDelta and abs(flux[i] - meanVal) < maxDelta):
deltaCount += 1
if(deltaCount > 3):
minInd = i
break
prevFlux = flux[i]
deltaCount = 0
delta = 100
prevFlux = flux[peakIndex]
for i in range(peakIndex+1, peakIndex + maxForwardlog, 1):
delta = prevFlux - flux[i]
if(delta < maxDelta and abs(flux[i] - meanVal) < maxDelta):
deltaCount += 1
if(deltaCount > 3):
maxInd = i
break
prevFlux = flux[i]
return minInd, maxInd