# FIXME: This is turning into a mess
if opts.output_file:
    xmldoc = ligolw.Document()
    xmldoc.appendChild(ligolw.LIGO_LW())
    process.register_to_xmldoc(xmldoc, sys.argv[0], opts.__dict__)
    result_dict = {"mass1": opts.mass1, "mass2": opts.mass2, "event_duration": numpy.sqrt(var)/res, "ttotal": sampler.ntotal}
    if opts.spin1z is not None or sngl_inspiral_table:
        result_dict["spin1z"] = opts.spin1z or 0.0
    if opts.spin2z is not None or sngl_inspiral_table:
        result_dict["spin2z"] = opts.spin2z or 0.0
    if opts.eff_lambda is not None:
        result_dict["psi0"] = opts.eff_lambda
    if opts.deff_lambda is not None:
        result_dict["psi3"] = opts.deff_lambda

    xmlutils.append_likelihood_result_to_xmldoc(xmldoc, numpy.log(res), neff=neff, **result_dict)
    utils.write_filename(xmldoc, opts.output_file, gz=opts.output_file.endswith(".gz"))
    if opts.save_samples:
        samples = sampler._rvs
        samples["distance"] = samples["distance"]
        if not opts.time_marginalization:
            samples["t_ref"] += float(fiducial_epoch)
        else:
            samples["t_ref"] = float(fiducial_epoch)*numpy.ones(len(sampler._rvs["psi"]))
        samples["polarization"] = samples["psi"]
        samples["coa_phase"] = samples["phi_orb"]
        if ("declination", "right_ascension") in sampler.params:
            samples["latitude"], samples["longitude"] = samples[("declination", "right_ascension")]
        else:
            samples["latitude"] = samples["declination"]
            samples["longitude"] = samples["right_ascension"]
    xmldoc.appendChild(ligolw.LIGO_LW())
    process.register_to_xmldoc(xmldoc, sys.argv[0], opts.__dict__)
    if opts.save_samples:
        samples = sampler._rvs
        # FIXME: Does sim insp do kpc or mpc
        samples["distance"] = samples["distance"]
        if not opts.time_marginalization:
            samples["t_ref"] += float(fiducial_epoch)
        else:
            samples["t_ref"] = float(fiducial_epoch)*numpy.ones(len(sampler._rvs["psi"]))
        samples["polarization"] = samples["psi"]
        samples["coa_phase"] = samples["phi_orb"]
        if ("declination", "right_ascension") in sampler.params:
            samples["latitude"], samples["longitude"] = samples[("declination", "right_ascension")]
        else:
            samples["latitude"] = samples["declination"]
            samples["longitude"] = samples["right_ascension"]
        samples["loglikelihood"] = numpy.log(samples["integrand"])
        samples["mass1"] = numpy.ones(samples["psi"].shape)*opts.mass1
        samples["mass2"] = numpy.ones(samples["psi"].shape)*opts.mass2
        if opts.eff_lambda is not None or opts.deff_lambda is not None:
            # FIXME: the column mapping isn't working right, we need to fix that
            # rather than give these weird names
            samples["psi0"] = numpy.ones(samples["psi"].shape)*opts.eff_lambda
            samples["psi3"] = numpy.ones(samples["psi"].shape)*(opts.deff_lambda or 0)
        xmlutils.append_samples_to_xmldoc(xmldoc, samples)
    # FIXME: likelihood or loglikehood
    # FIXME: How to encode variance?
    xmlutils.append_likelihood_result_to_xmldoc(xmldoc, numpy.log(res), neff=neff, **{"mass1": opts.mass1, "mass2": opts.mass2, "event_duration": numpy.sqrt(var)/res, "ttotal": sampler.ntotal})
    utils.write_filename(xmldoc, opts.output_file, gz=opts.output_file.endswith(".gz"))
Beispiel #3
0
        "mass1": opts.mass1,
        "mass2": opts.mass2,
        "event_duration": numpy.sqrt(var) / res,
        "ttotal": sampler.ntotal
    }
    if opts.spin1z is not None or sngl_inspiral_table:
        result_dict["spin1z"] = opts.spin1z or 0.0
    if opts.spin2z is not None or sngl_inspiral_table:
        result_dict["spin2z"] = opts.spin2z or 0.0
    if opts.eff_lambda is not None:
        result_dict["psi0"] = opts.eff_lambda
    if opts.deff_lambda is not None:
        result_dict["psi3"] = opts.deff_lambda

    xmlutils.append_likelihood_result_to_xmldoc(xmldoc,
                                                numpy.log(res),
                                                neff=neff,
                                                **result_dict)
    utils.write_filename(xmldoc,
                         opts.output_file,
                         gz=opts.output_file.endswith(".gz"))
    if opts.save_samples:
        samples = sampler._rvs
        samples["distance"] = samples["distance"]
        if not opts.time_marginalization:
            samples["t_ref"] += float(fiducial_epoch)
        else:
            samples["t_ref"] = float(fiducial_epoch) * numpy.ones(
                len(sampler._rvs["psi"]))
        samples["polarization"] = samples["psi"]
        samples["coa_phase"] = samples["phi_orb"]
        if ("declination", "right_ascension") in sampler.params:
            samples["longitude"] = samples["right_ascension"]
        samples["loglikelihood"] = numpy.log(samples["integrand"])
        samples["mass1"] = numpy.ones(samples["psi"].shape) * opts.mass1
        samples["mass2"] = numpy.ones(samples["psi"].shape) * opts.mass2
        if opts.eff_lambda is not None or opts.deff_lambda is not None:
            # FIXME: the column mapping isn't working right, we need to fix that
            # rather than give these weird names
            samples["psi0"] = numpy.ones(
                samples["psi"].shape) * opts.eff_lambda
            samples["psi3"] = numpy.ones(
                samples["psi"].shape) * (opts.deff_lambda or 0)
        xmlutils.append_samples_to_xmldoc(xmldoc, samples)
    # FIXME: likelihood or loglikehood
    # FIXME: How to encode variance?
    xmlutils.append_likelihood_result_to_xmldoc(xmldoc,
                                                numpy.log(res),
                                                neff=neff,
                                                **{
                                                    "mass1":
                                                    opts.mass1,
                                                    "mass2":
                                                    opts.mass2,
                                                    "event_duration":
                                                    numpy.sqrt(var) / res,
                                                    "ttotal":
                                                    sampler.ntotal
                                                })
    utils.write_filename(xmldoc,
                         opts.output_file,
                         gz=opts.output_file.endswith(".gz"))