def get_ratio_rms_cov(instFull, inst2, spectra, sampling, nside, pfFull=0, x0=None, plot=True, sub1=None, sub2=None, center=[316.45, -58.76], lab='Alt. Inst.', coverage_threshold=0.01, refsavefile=None, altsavefile=None, refsavefile_noiseless=None, altsavefile_noiseless=None, noI=False):
  nb=10
  iqu=1
  lim=[100,1,1][iqu]
  name = ['I','Q','U'][iqu]
  doplot=False
  ## reference instrument
  if pfFull == 0:
    print("Doing Reference Instrument")
    mapsFull, initconvFull, covFull, x0 = get_maps(spectra, instFull, sampling, nside, x0, coverage_threshold=coverage_threshold, savefile=refsavefile, savefile_noiseless=refsavefile_noiseless, noI=noI)
    maskFull = covFull > coverage_threshold
    residFull = initconvFull - mapsFull
    pfFull_I = profile(covFull[maskFull], residFull[maskFull,0],fmt='ro',nbins=nb, range=[0,np.max(covFull[maskFull])], plot=doplot)
    pfFull_Q = profile(covFull[maskFull], residFull[maskFull,1],fmt='bo',nbins=nb, range=[0,np.max(covFull[maskFull])], plot=doplot)
    pfFull_U = profile(covFull[maskFull], residFull[maskFull,2],fmt='go',nbins=nb, range=[0,np.max(covFull[maskFull])], plot=doplot)
    pfFull = [pfFull_I, pfFull_Q, pfFull_U, maskFull, residFull]
    if plot:
      figure(0)
      clf()
      hp.gnomview(initconvFull[:,iqu],min=-lim,max=lim,title=name+' In Ref. Inst.', sub=sub1, rot=center, reso=30)
      figure(1)
      clf()
      hp.gnomview(residFull[:,iqu],min=-lim/10,max=lim/10,title=name+' Res Ref. Inst.', sub=sub1, rot=center, reso=30)
      figure(2)
      clf()
      hp.gnomview(mapsFull[:,iqu],min=-lim,max=lim,title=name+' Out Ref. Inst.', sub=sub1, rot=center, reso=30)
      figure(3)
      clf()
      hp.gnomview(residFull[:,iqu]-residFull[:,iqu],title=name+' Res Fin Ref. Inst.', sub=sub1, rot=center, reso=30)
  else:
    pfFull_I = pfFull[0]
    pfFull_Q = pfFull[1]
    pfFull_U = pfFull[2]
    maskFull = pfFull[3]
    residFull = pfFull[4]

  ## alternative one
  print("Doing Alternative instrument")
  maps2, initconv2, cov2, x0 = get_maps(spectra, inst2, sampling, nside, x0, coverage_threshold=coverage_threshold, savefile=altsavefile, savefile_noiseless=altsavefile_noiseless, noI=noI)
  mask2 = cov2 > coverage_threshold
  resid2 = initconv2 - maps2
  if plot:
    figure(0)
    hp.gnomview(initconv2[:,iqu],min=-lim,max=lim,fig=0, title=name+' In '+lab,sub=sub2, rot=center, reso=30)
    figure(1)
    hp.gnomview(resid2[:,iqu],min=-lim/10,max=lim/10,fig=0, title=name+' Res '+lab,sub=sub2, rot=center, reso=30)
    figure(2)
    hp.gnomview(maps2[:,iqu],min=-lim,max=lim,fig=1, title=name+' Out '+lab,sub=sub2, rot=center, reso=30)
    figure(3)
    hp.gnomview(resid2[:,iqu]-residFull[:,iqu],fig=1, title=name+' Res Fin '+lab,sub=sub2, rot=center, reso=30)
  pf2_I = profile(cov2[mask2]*2, resid2[mask2,0],fmt='ro',   nbins=nb, range=[0,np.max(cov2[mask2]*2)], plot=doplot)
  pf2_Q = profile(cov2[mask2]*2, resid2[mask2,1],fmt='bo',nbins=nb, range=[0,np.max(cov2[mask2]*2)], plot=doplot)
  pf2_U = profile(cov2[mask2]*2, resid2[mask2,2],fmt='go',nbins=nb, range=[0,np.max(cov2[mask2]*2)], plot=doplot)
  return pfFull_I[0], pf2_I[3]/pfFull_I[3], pf2_Q[3]/pfFull_Q[3], pf2_U[3]/pfFull_U[3], pfFull, x0
示例#2
0
display(solution_qubic['x'], 'Reconstructed map', iplot=4)
res_qubic = display(solution_qubic['x'] - convolved_sky,
                    'Difference map', iplot=7)

mp.figure(2)
mp.clf()
display(convolved_sky, 'Original map', iplot=1)
display(solution_fusion['x'], 'Reconstructed map', iplot=4)
res_fusion = display(solution_fusion['x'] - convolved_sky,
                     'Difference map', iplot=7)

mp.figure(3)
for res, color in zip((res_qubic, res_fusion), ('blue', 'green')):
    for i, kind in enumerate('IQU'):
        axis = mp.subplot(3, 1, i+1)
        x, y = profile(res[i]**2)
        x *= 5 / 60
        y = np.sqrt(y)
        y *= np.degrees(np.sqrt(4 * np.pi / acq_qubic.scene.npixel))
        mp.plot(x, y, color=color)
        mp.title(kind)
        mp.ylabel('Sensitivity [$\mu$K deg]')

mp.xlabel('Angular distance [degrees]')

# BICEP-2 / Planck
# sigmas = 1.2 * np.array([1 / np.sqrt(2), 1, 1])
sigmas = np.std(acq_planck.sigma, 0)
for i, sigma in enumerate(sigmas):
    axis = mp.subplot(3, 1, i+1)
    mp.axhline(sigma, color='red')
示例#3
0
	resid = all_solutions_fusion[i]['x'] - convolved_sky
	resid[~mask,:] = 0
	display(resid, 'Difference map', iplot=7, reso=reso, Trange=Trange)
	print(std(resid[mask,0]), std(resid[mask,1]), std(resid[mask,2]))
	#savefig(names[i]+'.png')


cols=['black', 'red','blue','green', 'orange']
aa=0.2
rng = [-2,4]
fs=8
nb=20
clf()
for i in xrange(len(all_instruments)):
	resid = all_solutions_fusion[i]['x'] - convolved_sky
	idata = profile(all_coverages[i][mask]/np.max(all_coverages[i]), np.nan_to_num(resid[mask,0]), nbins=nb, range=[0,1],color=cols[i], plot=False)
	qdata = profile(all_coverages[i][mask]/np.max(all_coverages[i]), np.nan_to_num(resid[mask,1]), nbins=nb, range=[0,1],color=cols[i], plot=False)
	udata = profile(all_coverages[i][mask]/np.max(all_coverages[i]), np.nan_to_num(resid[mask,2]), nbins=nb, range=[0,1],color=cols[i], plot=False)

	subplot(3,1,1)
	yscale('log')
	xlabel('Normalized coverage')
	ylabel('I RMS residuals')
	ylim(0.1,2)
	plot(idata[0], idata[3], color=cols[i], label=names[i], lw=2)
	if i==0: plot(idata[0], idata[3]*sqrt(2), '--', color=cols[i], label=names[i]+' x sqrt(2)', lw=2)
	legend(fontsize=fs, loc='upper right')

	subplot(3,1,2)
	yscale('log')
	xlabel('Normalized coverage')
示例#4
0
x_rec_qubic[COV == 0] = np.nan
display(conv_sky, 'Original map', iplot=1)
display(x_rec_qubic, 'Reconstructed map', iplot=4)
res_qubic = display(x_rec_qubic - conv_sky, 'Difference map', iplot=7)

mp.figure(2)
mp.clf()
display(conv_sky, 'Original map', iplot=1)
display(x_rec_fusion, 'Reconstructed map', iplot=4)
res_fusion = display(x_rec_fusion - conv_sky, 'Difference map', iplot=7)

mp.figure(3)
for res, color in zip((res_qubic, res_fusion), ('blue', 'green')):
    for i, kind in enumerate('IQU'):
        axis = mp.subplot(3, 1, i + 1)
        x, y = profile(res[i]**2)
        x *= 5 / 60
        y = np.sqrt(y)
        y *= np.degrees(np.sqrt(4 * np.pi / acq.scene.npixel))
        mp.plot(x, y, color=color)
        mp.title(kind)
        mp.ylim(0, 1.8)
        mp.ylabel('Sensitivity [$\mu$K deg]')
mp.xlabel('Angular distance [degrees]')

# BICEP-2 / Planck
# sigmas = 1.2 * np.array([1 / np.sqrt(2), 1, 1])
sigmas = np.std(acq_planck.sigma, 0)
for i, sigma in enumerate(sigmas):
    axis = mp.subplot(3, 1, i + 1)
    mp.axhline(sigma, color='red')
示例#5
0
detector_nep = 4.7e-17*np.sqrt(len(sampling) * sampling.period / (365 * 86400))
acq_qubic = QubicAcquisition(150, sampling[np.abs(sampling.elevation-50) < 20], nside=nside,
                             detector_nep=detector_nep)
                            
coverage_map = acq_qubic.get_coverage()
coverage_map = coverage_map / np.max(coverage_map)
angmax = hp.pix2ang(nside, coverage_map.argmax())
maxloc = np.array([np.degrees(angmax[1]), 90.-np.degrees(angmax[0])])

figure(0)
clf()
cov = hp.gnomview(coverage_map, rot=maxloc, reso=5, xsize=800, return_projected_map=True,sub=(2,1,1),min=0.0)
contour(cov,[0,0.01, 0.1])
subplot(2,1,2)
x, y = profile(cov)
x *= 5 / 60
plot(x, y/np.max(y))

maskok = coverage_map > 0.1
fsky=np.sum(coverage_map[maskok]) *1./len(maskok)


hp.mollview(coverage_map)
title('QUBIC : fsky > 0.1 : {0:3.1f}%'.format(fsky*100))
savefig('moll_qubic.png')


import scipy.ndimage
clf()
figure(0)