def truncate_samples(df, params): if "mass_1" not in df: df["total_mass"] = conversion.chirp_mass_and_mass_ratio_to_total_mass( df["chirp_mass"], df["mass_ratio"] ) ( df["mass_1"], df["mass_2"], ) = conversion.total_mass_and_mass_ratio_to_component_masses( df["mass_ratio"], df["total_mass"] ) if "reference_frequency" not in df: df["reference_frequency"] = 20 if "H1_optimal_snr" in df: matched_filter_snr = np.sqrt(((np.abs(df["H1_matched_filter_snr"])**2) + (np.abs(df["L1_matched_filter_snr"])**2))) optimal_snr = np.sqrt(((np.abs(df["H1_optimal_snr"])**2) + (np.abs(df["L1_optimal_snr"])**2))) df['matched_filter_snr'] = matched_filter_snr df['snr'] = optimal_snr else: df['snr'] = df['network_snr'] df = conversion.generate_spin_parameters(df) df = conversion.generate_mass_parameters(df) df = add_cos_theta_12_from_component_spins(df) if isinstance(df, pd.DataFrame): df = df[params] else: df = {p: df[p] for p in params} return df
def convert_df_to_gwosc_df(df: pd.DataFrame) -> pd.DataFrame: converted_df = df.copy() # rename converted_df['GPS'] = converted_df['tc'] converted_df['chirp_mass'] = converted_df['mchirp'] converted_df['symmetric_mass_ratio'] = converted_df['eta'] converted_df['luminosity_distance'] = converted_df['DL'] converted_df['ra'] = converted_df['RA'] converted_df['dec'] = converted_df['DEC'] # re-parameterisation converted_df['mass_ratio']= \ symmetric_mass_ratio_to_mass_ratio(converted_df['symmetric_mass_ratio']) converted_df['total_mass'] = \ chirp_mass_and_mass_ratio_to_total_mass( converted_df['chirp_mass'], converted_df['mass_ratio'] ) converted_df['mass_1'], converted_df['mass_2'] = \ total_mass_and_mass_ratio_to_component_masses( converted_df['mass_ratio'], converted_df['total_mass'] ) converted_df['chi_eff'] = (converted_df['s1z'] + converted_df['s2z'] * converted_df['mass_ratio']) / \ (1 + converted_df['mass_ratio']) return converted_df
def get_component_mass_from_mchirp_q(mchirp, q): mtot = chirp_mass_and_mass_ratio_to_total_mass(chirp_mass=mchirp, mass_ratio=q) m1, m2 = total_mass_and_mass_ratio_to_component_masses(mass_ratio=q, total_mass=mtot) return m1, m2
def test_chirp_mass_and_mass_ratio_to_total_mass(self): total_mass = conversion.chirp_mass_and_mass_ratio_to_total_mass(self.chirp_mass, self.mass_ratio) self.assertAlmostEqual(self.total_mass, total_mass)