如何使用python astropy将arcsec转换为Mpc?
我需要将以下数量从arcsec转换为mega parsec scale:如何使用python astropy将arcsec转换为Mpc?,python,astropy,Python,Astropy,我需要将以下数量从arcsec转换为mega parsec scale: a = 737.28 # arcsec z = 0.3 # redshift d = ? # Mpc I am using flat lambdaCDM using parameters H0 = 67.8 omega_m = 0.308 使用的宇宙学:Ade等人2016 表1 2013F(DS) 我已经试过了 from astropy.cosmology import FlatLambdaCDM import ast
a = 737.28 # arcsec
z = 0.3 # redshift
d = ? # Mpc
I am using flat lambdaCDM using parameters
H0 = 67.8
omega_m = 0.308
使用的宇宙学:Ade等人2016
表1 2013F(DS)
我已经试过了
from astropy.cosmology import FlatLambdaCDM
import astropy.units as u
cosmo = FlatLambdaCDM(H0=70, Om0=0.3)
cosmo.luminosity_distance(z=0.3)
# I am not sure how to convert arcsec to Mpc here.
备选方案:
这是可行的,给出了3.38 Mpc,但我不能简单地引用一个网站,它需要使用python重现结果。要找到距离,需要将角直径距离乘以角大小 l=D_A(z)×θ 参考:
来自astropy.cosmology导入FlatLambdaCDM
将numpy作为np导入
cosmo=FlatLambdaCDM(H0=67.8,Om0=0.308)
#Mpc中的角直径距离
d_A=宇宙角直径距离(z=0.3)
θ=737.28弧秒
#圆周率=180度==>1deg=pi/180=>1arcsec=pi/180/3600
θ_弧度=θ*np.pi/180/3600
#弧长=半径*角度
距离_Mpc=d _A*θ_弧度
打印(距离)#3.3846475 Mpc
更新正如评论中所建议的,我们也可以使用astropy单位
来自astropy.cosmology导入FlatLambdaCDM
将numpy作为np导入
从astropy导入单位为u
cosmo=FlatLambdaCDM(H0=67.8,Om0=0.308)
d_A=宇宙角直径距离(z=0.3)
打印(d#A)#946.9318492873492 Mpc
θ=737.28*u.arcsec
距离(θ*d)到(u.Mpc,u.无量纲角())#单位现在才是Mpc
打印距离#3.384745689510495 Mpc
或者,您可以使用theta=737.28*u.arcsec;距离_Mpc=(θ*d_A).到(u.Mpc,u.无量纲_角度())
,它使用了一个等价性,更一般一些。