Astropy版本:5.0.1
Astropy作为天文方面最有名的Python库,包含了各种在天体物理研究中需要用到的工具。其功能繁多而全面,以致于我每次发现Astropy的新用法时总想感叹:“Astropy是万能的!”。借此系列笔记,我想整理一下使用Astropy过程中实现的各种功能,不求全面,但求实用。
推荐资料:
Astropy官方文档:Astropy Documentation — Astropy v5.0.1
China-VO对Astropy及Astropy Project的简单介绍:AstroPy 简介 :: 宇宙無窮 盈虛有數 (china-vo.org)
包括Astropy在内十几个天文Pyhton包的中文介绍:天文python应用包中文使用说明文档 《Usage Documentation of Astro-python》 - zhaoqtzt - 博客园 (cnblogs.com)(写得很全,推荐阅读!)
本文着重介绍利用Astropy获得常数及单位换算。
astropy.constant部分的官方文档:Constants (astropy.constants) — Astropy v5.0.1
在进行计算时,利用astropy.constant我们可以直接调用所需的常数:
1 | >>>from astropy import constants as const |
一般在天文计算中用到的是cgs单位制:
1 | >>>print(const.c.cgs) |
也可直接调用其数值或者单位:
1 | >>>print(const.c.cgs.value) |
对于已知带量纲的变量,可直接转换为cgs单位制,但需要实现调用astropy.units注明量纲。
1 | >>>from astropy import units as u |
甚至可以取数值和换单位一起干了:
1 | >>>m = 2 * 1e30 * u.kg |
注意在计算时有量纲量与无量纲量不可直接进行加减,可进行乘除,否则会报错。
为了计算方便,还可以利用astropy.units自定义单位:
1 | >>>kpc = 1000 * u.pc |
有时计算结果的单位需要化简:
1 | >>M_J=((5*k_B*T)/(G*m_p))**(3/2) * (3/(4*math.pi*rho))**(1/2) |
整体使用示例:
1 | import math |