def autocorrelationfn(time, relFlux, relFluxErr): acf = xo.autocorr_estimator(time.values, relFlux.values, yerr=relFluxErr.values, min_period=0.05, max_period=27, max_peaks=10) period = acf['autocorr'][0] power = acf['autocorr'][1] acfPowerPd = pd.DataFrame(power) acfLocalMaxima = acfPowerPd[(acfPowerPd.shift(1) < acfPowerPd) & (acfPowerPd.shift(-1) < acfPowerPd)] maxPower = np.max(acfLocalMaxima).values bestPeriod = period[np.where(power == maxPower)[0]][0] peaks = acf['peaks'][0]['period'] if len(acf['peaks']) > 0: window = int(peaks / np.abs(np.nanmedian(np.diff(time))) / k) else: window = 128 return period, power, bestPeriod, maxPower, window
def autocorr(t, y, max_peaks=1, min_period=0.5): results = xo.autocorr_estimator(t, y, min_period=min_period) return results["autocorr"]
def autocor(self, max_peaks=1, min_period=0.5): results = xo.autocorr_estimator(self.t, self.flux, max_peaks=max_peaks, min_period=min_period) self.lags, self.power = results["autocorr"]