flaredetector: util: add funnction to calculate bets fit for a folded lc
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from scipy.signal import find_peaks
|
from scipy.signal import find_peaks
|
||||||
|
from scipy.optimize import curve_fit
|
||||||
|
|
||||||
def findMaxIndices(lc, num=3, distance=100, height=(None, None), sortByHighest=False,
|
def findMaxIndices(lc, num=3, distance=100, height=(None, None), sortByHighest=False,
|
||||||
minimalLC=False):
|
minimalLC=False):
|
||||||
@@ -80,3 +81,17 @@ def convertStarndardIndexToFoldedIndex(foldedLc, standardIndex):
|
|||||||
break
|
break
|
||||||
|
|
||||||
return cycle, foldedIndex
|
return cycle, foldedIndex
|
||||||
|
|
||||||
|
def getFoldedBestFit(foldedLc):
|
||||||
|
def sine(t, A, w, p, c): return A * np.sin(w*t + p) + c
|
||||||
|
flux = foldedLc.flux
|
||||||
|
filt = ~np.isnan(flux)
|
||||||
|
multi = 1
|
||||||
|
if(np.mean(flux).value > 10):
|
||||||
|
multi = float(np.mean(flux).value)
|
||||||
|
flux = foldedLc.normalize().flux
|
||||||
|
phase = foldedLc.phase[filt].value
|
||||||
|
popt, pcov = curve_fit(sine, phase, flux[filt])
|
||||||
|
sineFit = sine(foldedLc.phase[filt].value, *popt)
|
||||||
|
sineFit *= multi
|
||||||
|
return phase, sineFit
|
||||||
Reference in New Issue
Block a user