Basics of angular diameter distance are explained using plots and standard distance values
In [2]:
import numpy as np
import scipy as sp
from scipy import integrate
import math
import matplotlib.pyplot as plt
from astropy.io import ascii
Observational data of Baryon Accoustic Oscillations consists of a length scale, angular diameter distance ($D_A$) that can be used as a standard ruler. However, due to the galaxy surveys providing more data centered around a particular redshift, we can do correlation function analysis better with high number of galaxies i.e. at a particular redshift. For e.g. with every new data release SDSS publishes galaxy calatalogue along with the estimated parameters, power spectrum and correlation function using a fiducial model of cosmlogy (Generally taken as $\Omega_M=0$, $\Omega_{\Lambda}=0.7$ and $h=0.7$). Therefore, we collect data from different references to put together evolution of angular diameter distance standard ruler.
We quote values in the following list from different references
arXiv:1209.0210 $D_A(0.35)=1036\pm 79Mpc$
Chuang MNRAS 226.36 $D_A(0.35)=1048^{+60}_{-58}$
arXiv:1206.6732 $D_A(0.35)=1050\pm 38Mpc$ and $H(0.35)=84.4\pm 7km/s/Mpc$
arXiv:1201:2172 $D_A(0.57)=1411\pm 65Mpc$
arXiv:1303.4666 $D_A(0.57)=1408\pm 45Mpc$ and $H(0.57)=92.9\pm 7.8km/s/Mpc$
arXiv:1303.4391 $D_A(0.57)=1386\pm 45Mpc$ and $H(0.57)=90.8\pm 6.2km/s/Mpc$
arXiv:1404.1801 $D_A(2.34)=1662\pm 96Mpc$ and $H(2.34)=222\pm 7km/s/Mpc$
We now plot graph using these data points comparing with standard cosmology models and linear coasting.
In [3]:
z=np.array([0.35,0.35,0.35,0.54,0.57,0.57,2.34])
zerr=np.zeros(7)
DA=np.array([1036,1048,1050,1411,1408,1386,1662])
DAerr = np.array([79,60,38,65,45,45,96])
In [4]:
plt.figure()
plt.errorbar(z,DA,DAerr,fmt='ro')
#plt.plot(z,DA,'bo')
plt.title("DA vs. z")
Out[4]:
Define angular diameter distances for Flat LambdaCDM cosmology with $\Omega_M=0.3$ and $\Omega_{\Lambda}=0.7$ starting with definition of $E(z)=\sqrt{0.3(1+z)^3+0.7}$. As we know Angular diameter distance ($D_A$) is comoving distance ($D_C$) divided by $1+z$. We write $D_A=\frac{D_C}{1+z}=\frac{1}{1+z}\int_0^z\frac{dz}{E(z)}$
In [5]:
Ez = lambda x: 1/math.sqrt(0.3*(1+x)**3+0.7)
np.vectorize(Ez)
#Calculate comoving distance of a data point using the Redshift - This definition is based on the cosmology model we take. Here the distance for E-dS universe is considered. Also note that c/H0 ratio is cancelled in the equations and hence not taken.
def DC_LCDM(z):
return integrate.quad(Ez, 0, z)
In [6]:
zt = np.arange(0, np.round(z.max())+1, 0.1)
n = len(zt)
terr=np.zeros(n)
print n
print zt
print terr
In [7]:
DC_LCDM=np.vectorize(DC_LCDM)
In [8]:
DALCDM=DC_LCDM(zt)[0]/(1+zt)
In [9]:
DALCDM
Out[9]:
Since we are using $D_{H_0}$ as length units, we need to scale the length down to $D_{H_0}=3000h^{-1}Mpc\approx 4285.714 Mpc$
In [10]:
DALCDM=DALCDM*4285.714
print DALCDM
Angular Diameter distance for open empty universe (Milne universe) is $D_A=\frac{z(z/2+1)}{(z+1)^2}$
In [11]:
def DA_Milne(z):
return z*(z/2+1)/(z+1)**2
In [12]:
DA_Milne=np.vectorize(DA_Milne)
In [13]:
DAMilne=DA_Milne(zt)
print DAMilne
DAMilne=DAMilne*4285.714
print DAMilne
Flat linear power law will have $D_A=\frac{1}{1+z}\ln(1+z)$ Hence
In [14]:
def DA_LC(z):
return 1/(z+1)*np.log(1+z)
DA_LC=np.vectorize(DA_LC)
DALC=DA_LC(zt)
print DALC
DALC=DALC*4285.714
print DALC
Angular Diameter distance for Einstein DeSitter universe) is $D_A=\frac{2}{z+1}[1-\frac{1}{\sqrt{z+1}}$]
In [15]:
def DA_EdS(z):
return 2*(1-1/np.sqrt(1+z))/(z+1)
In [16]:
DA_EdS=np.vectorize(DA_EdS)
In [17]:
DAEdS=DA_EdS(zt)
print DAEdS
DAEdS=DAEdS*4285.714
print DAEdS
In [24]:
#
plt.plot(zt,DAEdS,'r',label='E-dS')
#plt.plot(z,DA,'bo')
plt.plot(0.35,995.922790748,'bo')
plt.plot(0.57,1331.15562554,'bo')
plt.plot(2.34,1920.28272912,'bo')
plt.plot(1.0,1607.15989286,'bo')
plt.plot(1.5,1800.00111966,'bo')
plt.plot(zt,DAMilne,'g',label='Milne')
plt.plot(zt,DALCDM,'b',label='LCDM')
plt.plot(zt,DALC,'c',label='LC')
plt.errorbar(z,DA,DAerr,fmt='ro')
plt.title("DA vs. z")
plt.legend(frameon=0, loc='lower right')
#plt.title("DA vs. z")
plt.show()
In [18]: