Files
flaredetector/main/flaredetector/flaredetector.py
T

46 lines
1.1 KiB
Python

import numpy as np
def GaussExpo(x, Peak, l, w):
sigma = 1/w
res1 = Peak * np.exp(-(x**2)/(2 * sigma**2))
peakX = np.argmax(res1)
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