跳转到主要内容

美国海军天文台NOVAS天文库

项目描述

欢迎

这是美国海军天文台的软件,他们很高兴将其公开供公众使用。

它已经被打包并发布在PyPI上,由Brandon Rhodes进行打包,以使其更容易安装,并从GitHub仓库的原始源代码镜像构建。图书馆的实际作者没有参与仓库或包;他们的工作仅通过官方NOVAS主页和他们的官方文档NOVAS用户指南 PDF发布。

什么是NOVAS?

NOVAS 是一个用于计算天文学中常用量的综合函数包。该包可以在一次或两次函数调用中,提供任意一颗恒星或太阳系天体的瞬时坐标,支持多种坐标系。在更低层次上,NOVAS 还提供了天体测量学工具转换,如 章动极移光行差视差以及光线的偏转等。计算精度优于 1 毫角秒。 NOVAS 库是一个易于使用的工具,可以集成到数据还原程序、望远镜控制系统和模拟中。《天文年历》的美国部分就是使用 NOVAS 准备的。

这个 Python 包包括来自美国海军天文台的 NOVAS 主页 上的 NOVAS 库和 Python 封装器。这个版本包含了一些修复和打包调整,这些调整并未包含在海军天文台 2011 年 6 月的最新软件版本中。您可以在本页面的底部 Changelog 中找到这些更改的描述,也可以在 GitHub 仓库 中自行查看。

快速示例

您可以从多个在线资源下载行星历书,包括

然后您可以将 NOVAS Python 库导入并使用以下命令打开行星历书

>>> from novas import compat as novas
>>> from novas.compat import eph_manager
>>> jd_start, jd_end, number = eph_manager.ephem_open('de421.bsp')

将日历日期转换为儒略日

>>> jd_tt = novas.julian_date(2012, 10, 2, 12.0)
>>> jd_tt
2456203.0

询问在给定日期,火星在天空中的位置,使用的是在印刷天空图上使用的“天体测量学”坐标

>>> mars = novas.make_object(0, 4, 'Mars', None)
>>> ra, dec, dis = novas.astro_planet(jd_tt, mars)
>>> print 'R.A. %d:%02f' % (ra, abs(ra) % 1. * 60.)
R.A. 15:36.176177
>>> print 'dec. %d:%02f' % (dec, abs(dec) % 1. * 60.)
dec. -20:11.951841
>>> print 'distance %f AU' % (dis,)
distance 1.947674 AU

更多信息请参阅 NOVAS 主页,特别是包含“示例计算”章节的 完整 PDF 手册。尽管手册是为 C 版本编写的,但如果您将示例代码与 novas 包内的 test 包中类似计算的方法进行比较,通常可以弄清楚如何在 Python 中进行相同的调用!

安装

与其他列在 Python 包索引中的包一样,此包可以使用 pip 命令安装。您需要安装库本身以及一个高精度历书数据集,当前默认的是 DE405 历书。

$ pip install novas
$ pip install novas_de405

请注意,第二个命令可能需要几分钟才能运行,具体取决于您的互联网连接,因为必须下载的 JPL 历书大小为 55 MB!

如果您正在管理一个具有 setup.pyrequirements.txt 文件的 Python 项目,那么您不必手动运行这些 pip 命令,只需将这些包名称与您依赖的其他包一起列出,它们将作为您正常项目安装的一部分进行安装。

理智检查:运行测试

安装包后,您可以使用内置在 Python 2.7 中的新测试发现功能运行其测试。如果测试以极高的精度通过,则结果应该是

$ python -m unittest discover novas
........................................
........................................
...........
----------------------------------------
Ran 191 tests in 0.022s

OK

如果您正在使用较旧的 Python 版本,则可以使用 unittest2 兼容包运行测试

$ pip install unittest2
$ unit2 discover novas

以这种方式运行测试也应产生一个漂亮的点阵,然后是消息“OK。”

内容和文档

成功安装将生成一个 novas 包,其中包含几个命名空间,其中包含大量函数

novas.compat

主要NOVAS函数。

novas.constants

重要常量。

novas.nutation

章动模型。

novas.compat.eph_manager

来自NOVAS eph_manager.c 模块的函数。

novas.compat.solsys

来自NOVAS solsys1.c 模块的函数。

novas.compat.nutation

来自NOVAS nutation.c 模块的函数。

您可以在海军天文台的官方网站上找到更多信息和文档,地址为NOVAS主页

变更日志

版本 3.1.1.6 — 2024年4月27日

  • 声明与Python 3.12版本兼容。

  • 添加arm64到编译参数,以支持苹果的M1平台。

  • 修复:函数equ2hor()的文档字符串说dec参数应为小时,而实际上应为度。

版本 3.1.1.5 — 2016年12月1日

  • 声明与Python 3.7版本兼容。

  • 修复:cel_pole()现在正确地将其type参数限制为整数1和2,而不是整数0和1。

版本 3.1.1.3 — 2015年1月23日

  • 修复了astro_star()中的致命错误,该错误导致它总是引发ArgumentError: argument 3: <class 'TypeError'>: wrong type

版本 3.1.1.2 — 2013年7月31日

  • 在Python 3中,顶级__init__.py现在尝试从多个不同文件名加载NOVAS C库,而不是仅尝试具有ABI标识符的文件名。(在我的Ubuntu 13.04笔记本电脑上,Python 3.3实际上并没有包含这样的标识符,这导致了一个ImportError: cannot import name novaslib错误。)

版本 3.1.1.1 — 2013年3月2日

用户提供了更多修复,因此我在官方版本仍然停留在3.1时发布了这个临时版本。

  • Leo Singer修复了cal_date()limb_angle()的包装器,现在这两个NOVAS函数可以从Python代码中使用了。

  • 示例测试文件checkout-stars-full.py现在使用与Python 3兼容的语法,消除了安装过程中的警告。

  • setup.py现在指定了此readme的编码,因此该软件包可以在UTF-8不是默认编码的系统上安装。

版本 3.1.1 — 2012年11月25日

自2011年6月以来,海军天文台没有发布新的NOVAS版本,但用户报告和请求使我决定对代码进行一些小的修复,并在Python包索引上发布临时版本。

  • 库现在与Python 3兼容!

  • Python代码现在可以访问eph_manager模块中的ephem_close()例程。

  • 修复:如果调用,eph_manager.state()函数始终会引发异常。

  • 修复:根据NOVAS常见问题解答中的建议,修改了eph_manager.c

  • 修复:根据NOVAS常见问题解答中的建议,修改了novas.c

要自己检查代码更改,请访问GitHub仓库

版本 3.1 — 2012年9月19日

在Python包索引上发布库的初始版本。

许可证和引用

本软件由美国海军天文台出资制作,因此不受版权保护,因为版权会将纳税人财产置于私人所有权之下。由于不受版权保护,它不能被许可;它是免费的。

为了向作者致谢,请按照以下方式引用他们的工作

巴伦,E. G.,卡普兰,G. H.,班根特,J.,巴特莱特,J. L.,普阿图阿,W.,哈里斯,W.,& 巴雷特,P. (2011) “海军天文台矢量天文学软件(NOVAS)版本3.1,介绍Python版本,” 美国天文学会通报,43,2011。

NOVAS的作者希望,如果您在使用他们的软件,请通过help@aa.usno.navy.mil与他们联系,因为了解谁在使用他们的软件有助于他们证明通过向公众提供软件而进行的出色工作的合理性。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分布

novas-3.1.1.6.tar.gz (141.1 kB 查看哈希值)

上传时间 源代码

支持者