def eval_grid(t1, cells, intr_prms):

    t1_norm = None
    t1_copy = copy(t1)

    overlaps = []
    for cell in cells:

        try:
            prms = intr_prms
            tmp = numpy.array(cell._center)[numpy.newaxis,:]
            tmp = amrlib.apply_inv_transform(tmp, prms, opts.distance_coordinates).T
            for p, pval in zip(prms, tmp):
                #if p == "lam_tilde":
                    #t1_copy.psi0 = pval[0]
                    #t1_copy.psi3 = 0
                #else:
                setattr(t1_copy, p, pval[0])
        except AssertionError:
            rejected.append((cell, 0.0))
            continue

        # FIXME: Hardcoded waveforms
        olap, t1_norm, _ = lalsimutils.overlap(t1, t1_copy, ovrlp_obj, 0.125, 40, "TaylorF2", "TaylorF2", t1_norm=t1_norm)
        overlaps.append(olap)

    return overlaps
def eval_grid(t1, cells, intr_prms):

    t1_norm = None
    t1_copy = copy(t1)

    overlaps = []
    for cell in cells:

        try:
            prms = intr_prms
            tmp = numpy.array(cell._center)[numpy.newaxis, :]
            tmp = amrlib.apply_inv_transform(tmp, prms,
                                             opts.distance_coordinates).T
            for p, pval in zip(prms, tmp):
                #if p == "lam_tilde":
                #t1_copy.psi0 = pval[0]
                #t1_copy.psi3 = 0
                #else:
                setattr(t1_copy, p, pval[0])
        except AssertionError:
            rejected.append((cell, 0.0))
            continue

        # FIXME: Hardcoded waveforms
        olap, t1_norm, _ = lalsimutils.overlap(t1,
                                               t1_copy,
                                               ovrlp_obj,
                                               0.125,
                                               40,
                                               "TaylorF2",
                                               "TaylorF2",
                                               t1_norm=t1_norm)
        overlaps.append(olap)

    return overlaps
grid = amrlib.prune_duplicate_pts(grid, init_region._bounds, spacing)

#
# Clean up
#

grid = numpy.array(grid)
bounds_mask = amrlib.check_grid(grid, intr_prms, opts.distance_coordinates)
grid = grid[bounds_mask]
print "%d cells after bounds checking" % len(grid)

if len(grid) == 0:
    exit("All cells would be removed by physical boundaries.")

# Convert back to physical mass
grid = amrlib.apply_inv_transform(grid, intr_prms, opts.distance_coordinates)

cells = amrlib.grid_to_cells(grid, spacing)
if opts.setup:
    grid_group = amrlib.init_grid_hdf(init_region, opts.setup + ".hdf", opts.overlap_threshold, opts.distance_coordinates, intr_prms=intr_prms)
    level = amrlib.save_grid_cells_hdf(grid_group, cells, "mass1_mass2", intr_prms=intr_prms)
else:
    grp = amrlib.load_grid_level(opts.refine, None)
    level = amrlib.save_grid_cells_hdf(grp, cells, "mass1_mass2", intr_prms)

print "Selected %d cells for further analysis." % len(cells)
if opts.setup:
    fname = "HL-MASS_POINTS_LEVEL_0-0-1.xml.gz"
    write_to_xml(cells, intr_prms, pin_prms, None, fname, verbose=opts.verbose)
else:
    #m = re.search("LEVEL_(\d+)", opts.result_file)
ovrlp = lalsimutils.Overlap(fLow=f_low, fMax=2000, deltaF=delta_f, psd=psd, analyticPSD_Q=False)

idx_range = range(args.tmplt_start_index or 0, args.tmplt_end_index or len(tmplt_bank))

# FIXME:
npts = len(tmplt_bank)
import h5py
h5file = h5py.File("test.hdf", "w")
olapdata = h5file.create_group(wtype)
for iprm in intr_prms:
    dat = numpy.array([getattr(t, iprm) for t in tmplt_bank])
    olapdata.create_dataset(iprm, maxshape=(npts,), data=dat)
olapmat = olapdata.create_dataset("overlaps", shape=(npts, npts))

for i1, pt in enumerate(pts):
    opt = amrlib.apply_inv_transform(pts[i1,numpy.newaxis].copy(), intr_prms, "mchirp_eta")[0]
    fname = "%s/%s_%d.json" % (bdir, wtype, i1)
    # FIXME: This makes my eyes bleed...
    toc["types"][wtype].append({})
    toc["types"][wtype][-1]["mass1"] = opt[0]
    toc["types"][wtype][-1]["mass2"] = opt[1]
    toc["types"][wtype][-1]["filename"] = fname

    if i1 not in idx_range:
        continue

    if os.path.exists(fname):
        continue

    dist, idx = tree.query(pt, k=npts, return_distance=True)
grid = amrlib.prune_duplicate_pts(grid, init_region._bounds, spacing)

#
# Clean up
#

grid = numpy.array(grid)
bounds_mask = amrlib.check_grid(grid, intr_prms, opts.distance_coordinates)
grid = grid[bounds_mask]
print "%d cells after bounds checking" % len(grid)

if len(grid) == 0:
    exit("All cells would be removed by physical boundaries.")

# Convert back to physical mass
grid = amrlib.apply_inv_transform(grid, intr_prms, opts.distance_coordinates)

cells = amrlib.grid_to_cells(grid, spacing)
if opts.setup:
    grid_group = amrlib.init_grid_hdf(init_region,
                                      opts.setup + ".hdf",
                                      opts.overlap_threshold,
                                      opts.distance_coordinates,
                                      intr_prms=intr_prms)
    level = amrlib.save_grid_cells_hdf(grid_group,
                                       cells,
                                       "mass1_mass2",
                                       intr_prms=intr_prms)
else:
    grp = amrlib.load_grid_level(opts.refine, None)
    level = amrlib.save_grid_cells_hdf(grp, cells, "mass1_mass2", intr_prms)
Example #6
0
idx_range = range(args.tmplt_start_index or 0, args.tmplt_end_index
                  or len(tmplt_bank))

# FIXME:
npts = len(tmplt_bank)
import h5py
h5file = h5py.File("test.hdf", "w")
olapdata = h5file.create_group(wtype)
for iprm in intr_prms:
    dat = numpy.array([getattr(t, iprm) for t in tmplt_bank])
    olapdata.create_dataset(iprm, maxshape=(npts, ), data=dat)
olapmat = olapdata.create_dataset("overlaps", shape=(npts, npts))

for i1, pt in enumerate(pts):
    opt = amrlib.apply_inv_transform(pts[i1, numpy.newaxis].copy(), intr_prms,
                                     "mchirp_eta")[0]
    fname = "%s/%s_%d.json" % (bdir, wtype, i1)
    # FIXME: This makes my eyes bleed...
    toc["types"][wtype].append({})
    toc["types"][wtype][-1]["mass1"] = opt[0]
    toc["types"][wtype][-1]["mass2"] = opt[1]
    toc["types"][wtype][-1]["filename"] = fname

    if i1 not in idx_range:
        continue

    if os.path.exists(fname):
        continue

    dist, idx = tree.query(pt, k=npts, return_distance=True)