def work(i): with pool.critical: print 'doing chunk', i, Nchunks Qchunk = correlate.points(qpos[qchunks[i]], extra=Qfull.extra[qchunks[i]]) Rchunk = correlate.points(rpos[rchunks[i]], extra=Rfull.extra[rchunks[i]]) Fchunk = correlate.field(fpos[fchunks[i]], value=fdelta[fchunks[i]], extra=objectid[fchunks[i]] ) #Q-Q DQDQ[i, ...] = correlate.paircount(Qchunk, Qfull, binning, np=0).fullsum1 RQDQ[i, ...] = correlate.paircount(Rchunk, Qfull, binning, np=0).fullsum1 RQRQ[i, ...] = correlate.paircount(Rchunk, Rfull, binning, np=0).fullsum1 #Q-F DQDF = correlate.paircount(Qchunk, Ffull, binning, np=0) DQDFsum1[:, i, ...] = DQDF.fullsum1 DQDFsum2[i, ...] = DQDF.fullsum2 RQDF = correlate.paircount(Rchunk, Ffull, binning, np=0) RQDFsum1[:, i, ...] = RQDF.fullsum1 RQDFsum2[i, ...] = RQDF.fullsum2 #F-F DFDF = correlate.paircount(Fchunk, Ffull, binning, np=0) DFDFsum1[:, i, ...] = DFDF.fullsum1 DFDFsum2[i, ...] = DFDF.fullsum2 with pool.critical: print 'done chunk', i, Nchunks, len(fchunks[i])
def main(A): delta, pos, id = getforest(A, Zmin=2.0, Zmax=2.2, RfLamMin=1040, RfLamMax=1185, combine=4) print len(pos) print pos, delta data = correlate.field(pos, value=delta) DD = correlate.paircount(data, data, correlate.RBinning(160000, 40)) r = DD.centers xi = DD.sum1 / DD.sum2 print r.shape, xi.shape numpy.savez(os.path.join(A.datadir, 'delta-corr1d-both.npz'), r=r, xi=xi) figure = Figure(figsize=(4, 5), dpi=200) ax = figure.add_subplot(311) ax.plot(r / 1000, (r / 1000) ** 2 * xi[0], 'o ', label='$dF$ RSD') ax.set_ylim(-0.4, 1.0) ax.legend() ax = figure.add_subplot(312) ax.plot(r / 1000, (r / 1000) ** 2 * xi[1], 'o ', label='$dF$ Real') ax.set_ylim(-0.4, 1.0) ax.legend() ax = figure.add_subplot(313) ax.plot(r / 1000, (r / 1000) ** 2 * xi[2], 'o ', label=r'$dF$ Broadband') ax.set_ylim(-20, 60) ax.legend() canvas = FigureCanvasAgg(figure) figure.savefig(os.path.join(A.datadir, 'delta-corr-both.svg'))
def test_field(): numpy.random.seed(1234) pos = numpy.random.uniform(size=(1000, 3)) dataset = correlate.field(pos, value=numpy.ones(len(pos)), boxsize=1.0, weights=numpy.ones(len(pos))) binning = correlate.RBinning(numpy.linspace(0, 0.5, 10)) r = correlate.paircount(dataset, dataset, binning, np=0) assert_allclose(r.sum1, r.sum2)
def main(A): delta, pos, id = getforest(A, Zmin=2.0, Zmax=2.2, RfLamMin=1040, RfLamMax=1185, combine=4) print len(pos) print pos.min(), pos.max() data = correlate.field(pos, value=delta) DD = correlate.paircount(data, data, correlate.RmuBinning(80000, Nbins=20, Nmubins=48, observer=0)) numpy.savez(os.path.join(A.datadir, 'pixcorr-Rmu.npz'), center=DD.centers, sum1=DD.sum1, sum2=DD.sum2)
def dobootstrap(binning, dir): A = Config(dir + '/paramfile', dir) r, mu = binning.centers qpos = getqso(A) rpos = getrandom(A) fdelta, fpos, objectid = getforest(A, Zmin=2.0, Zmax=3.0, RfLamMin=1040, RfLamMax=1216, combine=4) # fdelta, fpos = numpy.empty((2, 1, 3)) # objectid = numpy.empty(1, dtype='i8') qchunks = chop(4, qpos) rchunks = chop(4, rpos) fchunks = chop(4, fpos) Nchunks = len(qchunks) Nvars = fdelta.shape[-1] print 'Nchunks', Nchunks, 'Num of variables in fdelta', Nvars chunkshape = [Nchunks, binning.shape[0], binning.shape[1]] # last index is the chunk DQDQ, RQDQ, RQRQ = sharedmem.empty([3] + chunkshape) DQDFsum1, RQDFsum1, DFDFsum1 = sharedmem.empty([3, Nvars] + chunkshape) DQDFsum2, RQDFsum2, DFDFsum2 = sharedmem.empty([3] + chunkshape) with sharedmem.MapReduce() as pool: Qfull = correlate.points(qpos, extra=numpy.arange(len(qpos))) print 'Qfull:', Qfull.tree.min, Qfull.tree.max Rfull = correlate.points(rpos, extra=numpy.arange(len(rpos))) print 'Rfull:', Rfull.tree.min, Rfull.tree.max Ffull = correlate.field(fpos, value=fdelta, extra=objectid) print 'Ffull:', Ffull.tree.min, Ffull.tree.max def work(i): with pool.critical: print 'doing chunk', i, Nchunks Qchunk = correlate.points(qpos[qchunks[i]], extra=Qfull.extra[qchunks[i]]) Rchunk = correlate.points(rpos[rchunks[i]], extra=Rfull.extra[rchunks[i]]) Fchunk = correlate.field(fpos[fchunks[i]], value=fdelta[fchunks[i]], extra=objectid[fchunks[i]] ) #Q-Q DQDQ[i, ...] = correlate.paircount(Qchunk, Qfull, binning, np=0).fullsum1 RQDQ[i, ...] = correlate.paircount(Rchunk, Qfull, binning, np=0).fullsum1 RQRQ[i, ...] = correlate.paircount(Rchunk, Rfull, binning, np=0).fullsum1 #Q-F DQDF = correlate.paircount(Qchunk, Ffull, binning, np=0) DQDFsum1[:, i, ...] = DQDF.fullsum1 DQDFsum2[i, ...] = DQDF.fullsum2 RQDF = correlate.paircount(Rchunk, Ffull, binning, np=0) RQDFsum1[:, i, ...] = RQDF.fullsum1 RQDFsum2[i, ...] = RQDF.fullsum2 #F-F DFDF = correlate.paircount(Fchunk, Ffull, binning, np=0) DFDFsum1[:, i, ...] = DFDF.fullsum1 DFDFsum2[i, ...] = DFDF.fullsum2 with pool.critical: print 'done chunk', i, Nchunks, len(fchunks[i]) pool.map(work, range(Nchunks)) red = MakeBootstrapSample(r, mu, DQDQ, RQDQ, RQRQ, DQDFsum1[0], DQDFsum2, RQDFsum1[0], RQDFsum2, DFDFsum1[0], DFDFsum2, len(qpos), len(rpos)) real = MakeBootstrapSample(r, mu, DQDQ, RQDQ, RQRQ, DQDFsum1[1], DQDFsum2, RQDFsum1[1], RQDFsum2, DFDFsum1[1], DFDFsum2, len(qpos), len(rpos)) delta = MakeBootstrapSample(r, mu, DQDQ, RQDQ, RQRQ, DQDFsum1[2], DQDFsum2, RQDFsum1[2], RQDFsum2, DFDFsum1[2], DFDFsum2, len(qpos), len(rpos)) numpy.savez(os.path.join(A.datadir, 'bootstrap.npz'), r=r, mu=mu, DQDQ=DQDQ, RQDQ=RQDQ, RQRQ=RQRQ, DQDFsum1=DQDFsum1, DQDFsum2=DQDFsum2, RQDFsum1=RQDFsum1, RQDFsum2=RQDFsum2, DFDFsum1=DFDFsum1, DFDFsum2=DFDFsum2, Qchunksize=qchunks.end - qchunks.start, Rchunksize=rchunks.end - rchunks.start, Fchunksize=fchunks.end - fchunks.start, red=red, real=real, delta=delta )