Esempio n. 1
0
def ligolw_sicluster(doc, **kwargs):
    # Extract segments and tables
    inseg, outseg, snglinspiraltable = get_tables(doc)

    # Add process information
    try:
        process = append_process(doc, **kwargs)
    except ValueError:
        process = None

    # Delete all triggers below threshold
    if kwargs["snr_threshold"] > 0:
        thresh = float(kwargs["snr_threshold"])
        if kwargs["verbose"]:
            print >>sys.stderr, "discarding triggers with snr < %f ..." % \
              kwargs["snr_threshold"]
        for i in range(len(snglinspiraltable) - 1, -1, -1):
            if snglinspiraltable[i].snr <= thresh:
                del snglinspiraltable[i]

    # Cluster
    snglcluster.cluster_events(
        snglinspiraltable,
        testfunc=lambda a, b: SnglInspiralUtils.CompareSnglInspiral(
            a, b, twindow=kwargs["cluster_window"]),
        clusterfunc=SnglInspiralCluster,
        sortfunc=SnglInspiralUtils.CompareSnglInspiralByEndTime,
        bailoutfunc=lambda a, b: SnglInspiralUtils.CompareSnglInspiral(
            a, b, twindow=kwargs["cluster_window"]),
        verbose=kwargs["verbose"])

    # Sort by signal-to-noise ratio
    if kwargs["sort_ascending_snr"] or kwargs["sort_descending_snr"]:
        if kwargs["verbose"]:
            print >> sys.stderr, "sorting by snr ..."
        snglinspiraltable.sort(SnglInspiralUtils.CompareSnglInspiralBySnr)
        if kwargs["sort_descending_snr"]:
            snglinspiraltable.reverse()

    # Add search summary information
    if process and inseg and outseg:
        ligolw_search_summary.append_search_summary(
            doc,
            process,
            inseg=inseg,
            outseg=outseg,
            nevents=len(snglinspiraltable))
    if process:
        ligolw_process.set_process_end_time(process)

    return doc
def InspiralNearCoincCompare(sim, inspiral):
    """
	Return False if the peak time of the sim is within 9 seconds of the inspiral event.
	"""
    return SnglInspiralUtils.CompareSnglInspiral(sim,
                                                 inspiral,
                                                 twindow=LIGOTimeGPS(9))