首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AstroPy距离红移转换的精度

AstroPy距离红移转换的精度
EN

Stack Overflow用户
提问于 2019-03-01 07:18:33
回答 1查看 336关注 0票数 2

AstroPy.coordinates.Distance函数的红移转换有多精确?

它似乎只对第1000位有用(精度远低于浮点数精度问题):

代码语言:javascript
复制
from astropy import units as u
from astropy.coordinates import SkyCoord, Distance
from astropy.cosmology import Planck15

z1 = 0.05598
z2 = 0.31427

dist1 = Distance(unit=u.pc, z = z1, cosmology = Planck15)
dist2 = Distance(unit=u.pc, z = z2, cosmology = Planck15)

dist1.z    #prints 0.05718
dist2.z    #prints 0.31916

我用它来计算银河系外源之间的3D距离,这些差异在Mpc的数量级上,对于我正在研究的来说,这是非常大的。这是AstroPy不可避免的限制吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-04 13:26:24

这在python 3.7的astropy 3.2.1中有效。

代码语言:javascript
复制
from astropy import units as u
from astropy.coordinates import SkyCoord, Distance
from astropy.cosmology import Planck15

z1 = 0.05598
z2 = 0.31427

dist1 = Distance(unit=u.pc, z = z1, cosmology = Planck15)
dist2 = Distance(unit=u.pc, z = z2, cosmology = Planck15)

dist1.z
Out[9]: 0.055979999974738834

dist2.z
Out[10]: 0.31427000077974493

看起来计算的精度大约是7位有效数字。

代码语言:javascript
复制
z3 = 1.31427987654321

dist3 = Distance(unit=u.pc, z = z3, cosmology = Planck15)

dist3.z
Out[23]: 1.3142798808605372

z4 = 900.31427987654321

dist4 = Distance(unit=u.pc, z = z4, cosmology = Planck15)

dist4.z
Out[29]: 900.3142861453044

在接近z=1000的某个地方,这将返回一个错误,说明值已达到最大值,因为此时您正在接近CMB的区域。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54935775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档