コード例 #1
0
reference_psd_filenames_by_process_id = ligolw_bayestar.psd_filenames_by_process_id_for_xmldoc(xmldoc)

@memoized
def reference_psds_for_filename(filename):
    xmldoc = ligolw_utils.load_filename(
        filename, contenthandler=lal.series.PSDContentHandler)
    psds = lal.series.read_psd_xmldoc(xmldoc)
    return dict(
        (key, timing.InterpolatedPSD(filter.abscissa(psd), psd.data.data))
        for key, psd in psds.iteritems() if psd is not None)

def reference_psd_for_ifo_and_filename(ifo, filename):
    return reference_psds_for_filename(filename)[ifo]

f_low = opts.f_low
approximant, amplitude_order, phase_order = timing.get_approximant_and_orders_from_string(opts.waveform)

count_sky_maps_failed = 0

# Loop over all coinc_event <-> sim_inspiral coincs.
for coinc, sngl_inspirals in ligolw_bayestar.coinc_and_sngl_inspirals_for_xmldoc(xmldoc):

    instruments = set(sngl_inspiral.ifo for sngl_inspiral in sngl_inspirals)

    # Look up PSDs
    log.info('%s:reading PSDs', coinc.coinc_event_id)
    psds = tuple(
        reference_psd_for_ifo_and_filename(sngl_inspiral.ifo,
        reference_psd_filenames_by_process_id[sngl_inspiral.process_id])
        for sngl_inspiral in sngl_inspirals)
コード例 #2
0
    # Unpack some values from the row in the table.
    m1 = sim_inspiral.mass1
    m2 = sim_inspiral.mass2
    f_low = sim_inspiral.f_lower if opts.f_low is None else opts.f_low
    DL = sim_inspiral.distance
    ra = sim_inspiral.longitude
    dec = sim_inspiral.latitude
    inc = sim_inspiral.inclination
    phi = sim_inspiral.coa_phase
    psi = sim_inspiral.polarization
    epoch = lal.LIGOTimeGPS(
        sim_inspiral.geocent_end_time, sim_inspiral.geocent_end_time_ns)
    gmst = lal.GreenwichMeanSiderealTime(epoch)
    waveform = sim_inspiral.waveform if opts.waveform is None else opts.waveform
    approximant, amplitude_order, phase_order = \
        timing.get_approximant_and_orders_from_string(waveform)

    # Pre-evaluate some trigonometric functions that we will need.
    u = np.cos(inc)
    u2 = np.square(u)

    # Signal models for each detector.
    signal_models = [
        timing.SignalModel(m1, m2, psds[ifo], f_low,
        approximant, amplitude_order, phase_order)
        for ifo in opts.detector]

    # Get SNR=1 horizon distances for each detector.
    horizons = np.asarray([signal_model.get_horizon_distance()
        for signal_model in signal_models])
コード例 #3
0
    # Unpack some values from the row in the table.
    m1 = sim_inspiral.mass1
    m2 = sim_inspiral.mass2
    f_low = sim_inspiral.f_lower if opts.f_low is None else opts.f_low
    DL = sim_inspiral.distance
    ra = sim_inspiral.longitude
    dec = sim_inspiral.latitude
    inc = sim_inspiral.inclination
    phi = sim_inspiral.coa_phase
    psi = sim_inspiral.polarization
    epoch = lal.LIGOTimeGPS(
        sim_inspiral.geocent_end_time, sim_inspiral.geocent_end_time_ns)
    gmst = lal.GreenwichMeanSiderealTime(epoch)
    waveform = sim_inspiral.waveform if opts.waveform is None else opts.waveform
    approximant, amplitude_order, phase_order = \
        timing.get_approximant_and_orders_from_string(waveform)

    # Pre-evaluate some trigonometric functions that we will need.
    u = np.cos(inc)
    u2 = np.square(u)

    # Signal models for each detector.
    signal_models = [
        timing.SignalModel(m1, m2, psds[ifo], f_low,
        approximant, amplitude_order, phase_order)
        for ifo in opts.detector]

    # Get SNR=1 horizon distances for each detector.
    horizons = np.asarray([signal_model.get_horizon_distance()
        for signal_model in signal_models])
import scipy.special
import itertools
from lalinference.bayestar import filter
from lalinference.bayestar import timing

def abs2(x):
    return np.square(np.real(x)) + np.square(np.imag(x))

mass1 = 1.4
mass2 = 1.4
f_low = 40
S = timing.get_noise_psd_func('H1')

# Compute Fisher matrix elements for full signal (for comparison).
signal_model = timing.SignalModel(mass1, mass2, S, f_low,
    *timing.get_approximant_and_orders_from_string('TaylorF2threePointFivePN'))
w1 = signal_model.get_sn_moment(1)
w2 = signal_model.get_sn_moment(2)

# Compute 1 second of autocorrelation sequence.
# FIXME: make this the longest lag that we are going to integrate over.
acor_series, sample_rate = filter.autocorrelation(
    mass1, mass2, S, f_low, 1,
    *timing.get_approximant_and_orders_from_string('TaylorF2threePointFivePN'))

# Augment autocorrelation sequence with negative time lags.
n = len(acor_series)
t = np.arange(1-n, n) / sample_rate
acor_series = np.concatenate((np.conj(acor_series[:0:-1]), acor_series))

# Construct spline interpolant and derivatives for real part.
コード例 #5
0
from lalinference.bayestar import timing


def abs2(x):
    return np.square(np.real(x)) + np.square(np.imag(x))


mass1 = 1.4
mass2 = 1.4
f_low = 40
S = timing.get_noise_psd_func('H1')

# Compute Fisher matrix elements for full signal (for comparison).
signal_model = timing.SignalModel(
    mass1, mass2, S, f_low,
    *timing.get_approximant_and_orders_from_string('TaylorF2threePointFivePN'))
w1 = signal_model.get_sn_moment(1)
w2 = signal_model.get_sn_moment(2)

# Compute 1 second of autocorrelation sequence.
# FIXME: make this the longest lag that we are going to integrate over.
acor_series, sample_rate = filter.autocorrelation(
    mass1, mass2, S, f_low, 1,
    *timing.get_approximant_and_orders_from_string('TaylorF2threePointFivePN'))

# Augment autocorrelation sequence with negative time lags.
n = len(acor_series)
t = np.arange(1 - n, n) / sample_rate
acor_series = np.concatenate((np.conj(acor_series[:0:-1]), acor_series))

# Construct spline interpolant and derivatives for real part.