def z2Dlum(z):
"""
Calculate luminosity distance from redshift.
"""
#Cosmo Constants
O_m = 0.266
O_r = 0.
O_k= 0.
O_L = 1. - O_m
H_0 = 70. #km/s/Mpc
H_sec = H_0 / 3.0857e19
# equation
a = 1/(1+z)
E = O_m * (1+z)**3 + O_r *(1+z)**4 + O_k *(1+z) + O_L
integrand = lambda z : 1 / sqrt(O_m * (1+z)**3 + O_r *(1+z)**4 + O_k *(1+z) + O_L)
#integration
z_obs = z
z_now = 0
c_cm = 2.997e10
integral = quad( integrand , z_now, z_obs)
dlum_cm = (1+z)*c_cm/ H_sec * integral[0]
dlum_Mpc = dlum_cm/3.08567758e24
return dlum_cm
评论列表
文章目录