def process(fitsfilename): sky_map, metadata = fits.read_sky_map(fitsfilename, nest=None) coinc_event_id = metadata['objid'] try: runtime = metadata['runtime'] except KeyError: runtime = float('nan') row = db.execute(""" SELECT DISTINCT sim.simulation_id AS simulation_id, sim.longitude AS ra, sim.latitude AS dec, ci.combined_far AS far, ci.snr AS snr FROM coinc_event_map AS cem1 INNER JOIN coinc_event_map AS cem2 ON (cem1.coinc_event_id = cem2.coinc_event_id) INNER JOIN sim_inspiral AS sim ON (cem1.event_id = sim.simulation_id) INNER JOIN coinc_inspiral AS ci ON (cem2.event_id = ci.coinc_event_id) WHERE cem1.table_name = 'sim_inspiral' AND cem2.table_name = 'coinc_event' AND cem2.event_id = ?""", (coinc_event_id,)).fetchone() if row is None: raise ValueError( "No database record found for event '{0}' in '{1}'".format( coinc_event_id, command.sqlite_get_filename(db))) simulation_id, true_ra, true_dec, far, snr = row searched_area, searched_prob, offset, searched_modes, contour_areas, area_probs, contour_modes = postprocess.find_injection( sky_map, true_ra, true_dec, contours=[0.01 * p for p in contours], areas=areas, modes=modes, nest=metadata['nest']) if snr is None: snr = float('nan') if far is None: far = float('nan') distmean = metadata.get('distmean', float('nan')) diststd = metadata.get('diststd', float('nan')) ret = [coinc_event_id, simulation_id, far, snr, searched_area, searched_prob, offset, runtime, distmean, diststd] + contour_areas + area_probs if modes: ret += [searched_modes] + contour_modes return ret
def process(fitsfilename): (prob, distmu, distsigma, distnorm), metadata = fits.read_sky_map( fitsfilename, nest=None, distances=True) coinc_event_id = metadata['objid'] try: runtime = metadata['runtime'] except KeyError: runtime = float('nan') row = db.execute(""" SELECT DISTINCT sim.simulation_id AS simulation_id, sim.longitude AS ra, sim.latitude AS dec, sim.distance AS distance, ci.combined_far AS far, ci.snr AS snr FROM coinc_event_map AS cem1 INNER JOIN coinc_event_map AS cem2 ON (cem1.coinc_event_id = cem2.coinc_event_id) INNER JOIN sim_inspiral AS sim ON (cem1.event_id = sim.simulation_id) INNER JOIN coinc_inspiral AS ci ON (cem2.event_id = ci.coinc_event_id) WHERE cem1.table_name = 'sim_inspiral' AND cem2.table_name = 'coinc_event' AND cem2.event_id = ?""", (coinc_event_id,)).fetchone() if row is None: raise ValueError( "No database record found for event '{0}' in '{1}'".format( coinc_event_id, command.sqlite_get_filename(db))) simulation_id, true_ra, true_dec, true_dist, far, snr = row searched_area, searched_prob, offset, searched_modes, contour_areas, area_probs, contour_modes = postprocess.find_injection( prob, true_ra, true_dec, contours=[0.01 * p for p in contours], areas=areas, modes=modes, nest=metadata['nest']) searched_prob_distance = distance.marginal_cdf( true_dist, prob, distmu, distsigma, distnorm) if snr is None: snr = float('nan') if far is None: far = float('nan') distmean = metadata.get('distmean', float('nan')) diststd = metadata.get('diststd', float('nan')) log_bci = metadata.get('log_bci', float('nan')) log_bsn = metadata.get('log_bsn', float('nan')) ret = [coinc_event_id, simulation_id, far, snr, searched_area, searched_prob, searched_prob_distance, offset, runtime, distmean, diststd, log_bci, log_bsn] + contour_areas + area_probs if modes: ret += [searched_modes] + contour_modes return ret
def process(fitsfilename): sky_map, metadata = fits.read_sky_map(fitsfilename, nest=None) coinc_event_id = metadata['objid'] try: runtime = metadata['runtime'] except KeyError: runtime = float('nan') simulation_id, true_ra, true_dec, far, snr = db.execute(""" SELECT DISTINCT sim.simulation_id AS simulation_id, sim.longitude AS ra, sim.latitude AS dec, ci.combined_far AS far, ci.snr AS snr FROM coinc_event_map AS cem1 INNER JOIN coinc_event_map AS cem2 ON (cem1.coinc_event_id = cem2.coinc_event_id) INNER JOIN sim_inspiral AS sim ON (cem1.event_id = sim.simulation_id) INNER JOIN coinc_inspiral AS ci ON (cem2.event_id = ci.coinc_event_id) WHERE cem1.table_name = 'sim_inspiral' AND cem2.table_name = 'coinc_event' AND cem2.event_id = ?""", (coinc_event_id,)).fetchone() searched_area, searched_prob, offset, searched_modes, contour_areas, area_probs, contour_modes = postprocess.find_injection( sky_map, true_ra, true_dec, contours=[0.01 * p for p in contours], areas=areas, modes=modes, nest=metadata['nest']) if snr is None: snr = float('nan') if far is None: far = float('nan') ret = [coinc_event_id, simulation_id, far, snr, searched_area, searched_prob, offset, runtime] + contour_areas + area_probs if modes: ret += [searched_modes] + contour_modes return ret