跳转到主要内容

spelunker:一个用于提取guidestar数据并观察技术和恒星事件的库

项目描述

Spelunker — NIRISS FGS快速查看管道


作者: Derod Deal (dealderod@ufl.edu), Néstor Espinoza (nespinoza@stsci.edu)

spelunker 是一个帮助研究 JWST FGS/NIRISS guidestar 数据的包。查看我们的 readthedocs 以获取详细文档。

如果你使用了 spelunker,请引用我们的论文 (Deal & Espinoza, 2024, JOSS, 9(97), 6202)

@article{Deal2024, 
         doi = {10.21105/joss.06202}, 
         url = {https://doi.org/10.21105/joss.06202}, 
         year = {2024}, publisher = {The Open Journal}, 
         volume = {9}, 
         number = {97}, 
         pages = {6202}, 
         author = {Derod Deal and Néstor Espinoza}, 
         title = {Spelunker: A quick-look Python pipeline for JWST NIRISS FGS Guide Star Data}, 
         journal = {Journal of Open Source Software} 
}

需求声明

每次JWST观测一个物体时,它都会同时用NIRISS精细导星传感器(FGS)观测一颗附近的星——即所谓的“导星”——以保持望远镜锁定目标。虽然研究人员通常关注他们的科学目标,但导星数据本身也可能非常有趣,既可以用于检测科学数据中的异常,也可以用于探索导星本身的时间序列数据。spelunker提供了一个易于访问的(“即插即用”)库来访问这些导星数据。该库能够以自动化的方式生成FGS数据多个指标的时序,包括通量变化和PSF变化,以及从这些指标中派生的产品,如周期图,这些产品仅通过JWST程序ID号就可以帮助分析。

安装

要安装spelunker,使用pip install

pip install spelunker

使用库

用两行代码开始使用spelunker

import spelunker

spk = spelunker.load(pid=1534)

这将下载程序ID 1534的导星数据;然后,可以使用spk对象来探索这些导星数据!例如,让我们绘制PID前几分钟的导星时间序列图

import matplotlib.pyplot as plt

# Convert times from MJD to minutes:
fig, ax = plt.subplots(figsize=(6,2), dpi=200)

plt.plot( ( spk.fg_time - spk.fg_time[0] ) * 24 * 60, spk.fg_flux, color='black', linewidth=0.2 )

plt.xlim(0,10)
plt.ylim(830000,950000)
plt.xlabel('Time from start (minutes)')
plt.ylabel('Counts')

(下文将提供更多可以提取的信息,包括对每个FGS积分拟合二维高斯!)

我们甚至可以绘制这个程序ID内跟踪的导星图。在一个选定的程序ID中,每个观测可能使用多个导星。每个星或物体来自导星目录(GSC),并根据望远镜指向和星体的适用性预先选择。在spk.guidestar_plot生成的图像中,导星的位置(用X标记)从程序的开始到结束在给定的程序ID中绘制。一条线(gs track)连接每个导星,以按时间顺序排列每个使用的目标。

spk.guidestar_plot()

可以从JWST技术事件中提取记忆法并叠加到任何时序上,例如高增益天线(HGA)移动或确定FGS是否跟踪新的导星如果已安装jwstuser。在这里,使用spk.mnemonics以matplotlib axes对象的形式访问SA_ZHAGUPST的工程遥测。

import matplotlib.pyplot as plt

spk.mast_api_token = 'insert a token from auth.MAST here'

fig, ax = plt.subplots(figsize=(12,4),dpi=200)

ax = spk.mnemonics_local('GUIDESTAR') # plots when the JWST tracks onto a new guidestars as a vertical line
ax = spk.mnemonics('SA_ZHGAUPST', 60067.84, 60067.9) # plots the start and end of high gain antenna movement

ax.plot(spk.fg_time, spk.fg_flux)
plt.legend(loc=3)
plt.xlim(60067.84, 60067.9)
plt.show()

有关spelunker下的工具和如何开始使用的信息,请访问快速入门指南或查看我们的readthedocs。通过以下示例笔记本熟悉spelunker

此软件目前在GitHub上开发。要报告错误或发送功能请求,请给我们发送电子邮件或在GitHub上打开一个问题

许可证和归属

本项目采用MIT许可证,可在此处查看。

致谢

DD和NE想要感谢STScI的太空天文学夏季项目(SASP)以及国家天文学协会(NAC)项目,这使得他们能够共同完成这个精彩的项目!

项目详情


下载文件

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

源分布

spelunker-1.1.18.tar.gz (23.9 kB 查看哈希值)

上传时间:

构建分布

spelunker-1.1.18-py3-none-any.whl (24.3 kB 查看哈希值)

上传时间: Python 3

由以下支持