def check_snr(period, t0, time_array, flux, duration): time_array = kepler_utils.phase_fold_time(time_array, period, t0) sorted_i = np.argsort(time_array) time_array = time_array[sorted_i] flux = flux[sorted_i] local_view = kepler_utils.local_view(time_array, flux, period, duration) t_min = duration * -3.0 t_max = duration * 3.0 time_array = np.linspace(t_min, t_max, local_view.size) #*24.0 #start to measure the SNR around the signal. index_snr = np.argwhere((time_array > duration * 1.0) | (time_array < duration * -1.0)) mean_snr, median_snr, std_snr = sigma_clipped_stats(local_view[index_snr]) index_profile = np.argwhere((time_array <= duration * 1.0) & (time_array >= duration * -1.0)) if local_view[index_profile].min() <= median_snr - 3 * std_snr: return 1.0 else: return 0.0
def mean_fold(time_array, flux_array, period_id, t0, bin_num, bin_size): time_array = kepler_utils.phase_fold_time(time_array, period_id, t0) sorted_i = np.argsort(time_array) flux = flux_array[sorted_i] time = time_array[sorted_i] flux_out = np.zeros(bin_num) time_out = np.zeros(bin_num) for kk in np.arange(bin_num): idx_l = int(kk * bin_size) idx_u = int((kk + 1) * bin_size) flux_out[kk] = np.mean(flux[idx_l:idx_u]) time_out[kk] = np.mean(time[idx_l:idx_u]) return time_out, flux_out
def transit_profile(period, t0, time_array, flux, duration): time_array = kepler_utils.phase_fold_time(time_array, period, t0) sorted_i = np.argsort(time_array) time_array = time_array[sorted_i] flux = flux[sorted_i] local_view = kepler_utils.local_view(time_array, flux, period, duration) t_min= duration*-3.0 t_max= duration*3.0 time_array=np.linspace(t_min, t_max, local_view.size) data_lc = dict() data_lc['time'] = time_array data_lc['flux'] = local_view return data_lc