Ejemplo n.º 1
0
                                         verbose=100)
        else:
            pool = schwimmbad.choose_pool(mpi=USE_MPI, processes=n_workers)
        outputs = pool.map(_run_sim, range(n_sims))
        pool.close()

    pres, mres = zip(*outputs)
    pres, mres = cut_nones(pres, mres)

    if rank == 0:
        dt = [('g1p', 'f8'), ('g1m', 'f8'), ('g1', 'f8'), ('g2p', 'f8'),
              ('g2m', 'f8'), ('g2', 'f8')]
        dplus = np.array(pres, dtype=dt)
        dminus = np.array(mres, dtype=dt)
        with fitsio.FITS('data.fits', 'rw') as fits:
            fits.write(dplus, extname='plus')
            fits.write(dminus, extname='minus')

        m, msd, c, csd = estimate_m_and_c(pres, mres, 0.02, swap12=SWAP12)

        print("""\
    # of sims: {n_sims}
    noise cancel m [1e-3, 3-sigma]  : {m:f} +/- {msd:f}
    noise cancel c [1e-5, 3-sigma]  : {c:f} +/- {csd:f}""".format(
            n_sims=len(pres),
            m=m / 1e-3,
            msd=msd * 3 / 1e-3,
            c=c / 1e-5,
            csd=csd * 3 / 1e-5),
              flush=True)
        dplus4 = np.array(pres4, dtype=dt)
        dminus4 = np.array(mres4, dtype=dt)

        with fitsio.FITS('data.fits', 'rw') as fits:
            fits.write(dplus0, extname='plus0')
            fits.write(dminus0, extname='minus0')
            fits.write(dplus1, extname='plus1')
            fits.write(dminus1, extname='minus1')
            fits.write(dplus2, extname='plus2')
            fits.write(dminus2, extname='minus2')
            fits.write(dplus3, extname='plus3')
            fits.write(dminus3, extname='minus3')
            fits.write(dplus4, extname='plus4')
            fits.write(dminus4, extname='minus4')

        m, msd, c, csd = estimate_m_and_c(pres0, mres0, 0.02, swap12=SWAP12)
        print("""\
        # of sims: {n_sims}
        noise cancel m   : {m:f} +/- {msd:f}
        noise cancel c   : {c:f} +/- {csd:f}""".format(n_sims=len(pres0),
                                                       m=m,
                                                       msd=msd,
                                                       c=c,
                                                       csd=csd),
              flush=True)

        m, msd, c, csd = estimate_m_and_c(pres1, mres1, 0.02, swap12=SWAP12)
        print("""\
        # of sims: {n_sims}
        noise cancel m   : {m:f} +/- {msd:f}
        noise cancel c   : {c:f} +/- {csd:f}""".format(n_sims=len(pres1),
Ejemplo n.º 3
0
print('found %d outputs' % len(files))
io = [joblib.delayed(_func)(fname) for fname in files]
outputs = joblib.Parallel(verbose=10,
                          n_jobs=-1,
                          pre_dispatch='2*n_jobs',
                          max_nbytes=None)(io)

for i, s2n in enumerate([10, 15, 20]):
    _outputs = [o[i][0] for o in outputs if o[i][0] is not None]
    _wgts = [o[i][1] for o in outputs if o[i][0] is not None]
    pres, mres = zip(*_outputs)

    pres, mres = cut_nones(pres, mres)
    m, msd, c, csd = estimate_m_and_c(pres,
                                      mres,
                                      0.02,
                                      swap12=SWAP12,
                                      weights=_wgts)

    if np.abs(m) < 1e-2:
        mfac = 1e-3
        mstr = '[1e-3]'
    else:
        mfac = 1
        mstr = '      '

    if np.abs(c) < 1e-4:
        cfac = 1e-4
        cstr = '[1e-4]'
    else:
        cfac = 1
    if rank == 0:
        dt = [('g1p', 'f8'), ('g1m', 'f8'), ('g1', 'f8'),
              ('g2p', 'f8'), ('g2m', 'f8'), ('g2', 'f8')]
        dplus = np.array(pres, dtype=dt)
        dminus = np.array(mres, dtype=dt)
        dplus_ex = np.array(pres_ex, dtype=dt)
        dminus_ex = np.array(mres_ex, dtype=dt)

        with fitsio.FITS('data.fits', 'rw') as fits:
            fits.write(dplus, extname='plus')
            fits.write(dminus, extname='minus')
            fits.write(dplus_ex, extname='plus_ex')
            fits.write(dminus_ex, extname='minus_ex')

        m, msd, c, csd = estimate_m_and_c(pres, mres, 0.02, swap12=SWAP12)
        m_ex, msd_ex, c_ex, csd_ex = estimate_m_and_c(pres_ex, mres_ex,
                                                      0.02, swap12=SWAP12)

        print("""\
    # of sims: {n_sims}
    noise cancel m   : {m:f} +/- {msd:f}
    noise cancel c   : {c:f} +/- {csd:f}""".format(
            n_sims=len(pres),
            m=m,
            msd=msd,
            c=c,
            csd=csd), flush=True)

        print("""\
    # of sims: {n_sims}