Example case of estimating observing time for assumed A10 clusters
This thread shows how to use M2_ProposalTools to estimate the required time to observe clusters based on a single pointing.
[1]:
import M2_ProposalTools.WorkHorse as WH
import numpy as np
import astropy.units as u
import M2_ProposalTools.FilterImages as FI
import scipy
Let’s just take the case of a few masses at high redshift (\(z=1.0\))
[2]:
M500s = np.array([3.0,4.0,5.0,6.0])*1e14*u.M_sun
lgM200 = 15.1 # Log_10 M200
M200 = np.power(10,15.1) # Now in normal units
###How to go to M500?
M500s = np.array([0.7]) * M200*u.M_sun
zs = np.array([0.411])
[3]:
h70 = 1 # Normalization of Hubble parameter
fwhm = 10.0 # Roughly the resolution of MUSTANG-2
pixsize = 2.0 # Assume this pixel size
s2f = np.sqrt(8.0*np.log(2.0)) # Conversion between FWHM and sigma
pix_sigma = fwhm/(pixsize*s2f) # Gaussian sigma, in pixel size
scansize = 3.0 # Assume scan sizes of 3 arcminutes
y2k = -3.3 # Approximate conversion.
We’ll just dive into some of the functions and get what we want:
[4]:
TotalTime=0
for M500,z in zip(M500s,zs):
y500 = WH.y_delta_from_mdelta(M500.value,z,delta=500,YMrel="A10",ycyl=False,h70=h70)
ymap = WH.make_A10Map(M500,z,pixsize=pixsize,Dist=True)
mymap = WH.smooth_by_M2_beam(ymap,pixsize=pixsize)
tab = WH.get_xfertab(scansize)
yxfer_init = FI.apply_xfer(mymap,tab,pixsize)
yxfer = scipy.ndimage.filters.gaussian_filter(yxfer_init, pix_sigma*0.9)
uKmap = yxfer*y2k*1e6
uJymap = uKmap * (56/73.0)
MS = 56.2
#print("pixel size: ",pixsize)
SZpeak_uK = np.min(uKmap)
SZpeak_uJy = np.min(uJymap)
SZpeak_yr = np.max(ymap)
SZpeak_yc = np.max(mymap)
SZpeak_yx = np.max(yxfer)
ObsTime = (MS*10/SZpeak_uJy)**2
TelTime = np.ceil(ObsTime*8)/4.0
print("M500 (1e14): ",(M500/1e14).value)
print("Redshift: ",z)
#print("R500 (arcmin): ",Theta500*60*180/np.pi)
print("Y500 (1e-12 sr): ",y500*1e12)
print("Unfiltered y peak: ", SZpeak_yr)
print("Beam-convolved y peak: ", SZpeak_yc)
print("Filtered y peak: ", SZpeak_yx)
print("Filtered peak, uK: ", SZpeak_uK)
print("Filtered peak, uJy/beam: ", SZpeak_uJy)
print("Time to 10 sigma peak detection (hrs): ",ObsTime)
print("================================================")
TotalTime += TelTime
print("Total Telescope Time: ", TotalTime)
M500 (1e14): 8.812477882559163
Redshift: 0.411
Y500 (1e12 sr): 111.41646803767371
Unfiltered y peak: 0.0001712578226715335
Beam-convolved y peak: 0.00016522446964474616
Filtered y peak: 5.078609894123501e-05
Filtered peak, uK: -167.59412650607553
Filtered peak, uJy/beam: -128.56535731972917
Time to 10 sigma peak detection (hrs): 19.108416934318672
================================================
Total Telescope Time: 38.25
[ ]: