Beispiel #1
0
def psearch(time, flux):
	freq,power,nout,jmax,prob = fasper(time, flux, 6, 0.5)
	period = 1./freq
	m = (period > 0.05) & (period < 35) 
	period, freq, power = period[m], freq[m], power[m]
	j = np.argmax(power)

	expy = np.exp(-power)
	effm = 2.*nout/6
	fap  = expy*effm

	mfap = fap > 0.01
	fap[mfap] = 1.0-(1.0-expy[mfap])**effm

	return period, power, fap, j
Beispiel #2
0
def psearch(time, flux, min_p, max_p):
    '''
    Search for a statistically significant period using a Lomb-Scargle periodogram.
    '''
    freq, power, nout, jmax, prob = fasper(time, flux, 6, 0.5)
    period = 1 / freq
    m = (period > min_p) & (period < max_p)
    period, power = period[m], power[m]
    j = argmax(power)

    expy = mt.exp(-power[j])
    effm = 2 * nout / 6
    fap = expy * effm

    if fap > 0.01:
        fap = 1.0 - (1.0 - expy)**effm

    return period[j], fap
Beispiel #3
0

    ax[2].plot(time, (cflux-1)/sigma)
    ax[2].grid(axis='y')
    ax[3].plot(time[mask],  N(flux[mask]  - tp[mask],  flux))
    ax[3].plot(time[~mask], N(flux[~mask] - tp[~mask], flux), '.')
    setp(ax[2], ylabel='Normalised flux [$\sigma$]')
    setp(ax[3], ylabel='Normalised flux')

    nflux = flux - tp + nanmedian(tp)
    for split in dt.gp.splits:
        i = argmin(abs(time - split))
        nflux[i:] += nanmedian(nflux[i-10:i]) - nanmedian(nflux[i:i+10])
    ax[4].plot(time[mask], N(nflux[mask]))

    freq,power,nout,jmax,prob = fasper(time[mask], nflux[mask], 6, 0.5)
    period = 1./freq

    m = (period > 0.25) & (period < 25) 
    period, freq, power = period[m], freq[m], power[m]
    j = argmax(power)
    expy = exp(-power)
    effm = 2.*nout/6
    fap  = expy*effm
    mfap = fap > 0.01
    fap[mfap] = 1.0-(1.0-expy[mfap])**effm

    ax[5].semilogy(period, fap)
    setp(ax[5], ylabel='FAP', xlabel='Period [d]', xlim=(0,25))

    print period[j], power[j], fap[j]