flaredetector: add algorithm to detect start/end of possible flares
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user