如何使用python astropy将arcsec转换为Mpc?

如何使用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

我需要将以下数量从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 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.无量纲_角度())
,它使用了一个等价性,更一般一些。