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]
|
res1 = res1[:peakX]
|
||||||
res2 = Peak * np.exp(-l * x[peakX:])
|
res2 = Peak * np.exp(-l * x[peakX:])
|
||||||
return np.append(res1, res2)
|
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