主星序的自动属性插值和颜色计算
MeanStars的Python项目详细描述
平均星
这段代码提供了基于Eric Mamajek的“现代平均矮恒星颜色和有效温度序列”(http://www.pas.rochester.edu/~emamajek/EEM_dwarf_UBVIJHK_colors_Teff.txt)的自动计算功能。
该代码的目的是允许用户自动插入表的属性列,并根据测光列的任何组合计算颜色。
安装和要求
meanstars需要以下python模块:
- 努比
- scipy
- 天体物理学
要安装,只需运行:
pip install MeanStars
或者,获取存储库的副本并运行:
python setup.py install
用法
要使用meanstars,必须首先创建meanstars对象:
fromMeanStarsimportMeanStarsms=MeanStars()
此对象包含许多有用的属性,包括:
ms.data
:astropy表格格式的完整数据集ms.bands
:数据集(在字符串数组中)中所有唯一条带的名称ms.colors
:数据集的所有原始颜色(在nx2字符串数组中,其中n是ms.bands
的长度,颜色是第一列减去第二列)。同样的信息也编码在ms.colorstr
中,这是数据集的原始颜色名ms.noncolors
:所有与颜色无关的数据属性(包括恒星质量、半径等)ms.SpecTypes
:数据集中的所有主要光谱类型(在字符串数组中,通常为o、b、a、f、g、k、m、l、t、y)ms.colorgraph
:一个有向图(编码为字典),映射由原始数据集中的颜色建立的波段之间的所有关系
插值颜色
meanstars提供了两种插值颜色的方法:TeffColor
和SpTColor
,前者按有效温度插值,后者按光谱类型插值。一般来说,您不太可能希望按未明确列出的任何光谱类型来查询数据,因此SpTColor
通常充当数据的简单查找表。在每种情况下,通过提供定义颜色的两个波段(在代码中称为start
和end
)以及温度或光谱类型来调用这些方法。
因此,要找到29000K恒星的“U-B”颜色,您可以执行:
ms.TeffColor('U','B',29000)
这个特定的实例对应于数据表中的一个确切条目,返回的值应该与条目完全匹配。一个更有趣的例子是6000 K恒星的“U-H”颜色:
ms.TeffColor('U','H',6000)
在这里,您请求的颜色在表中未找到的温度下(但用其他温度值括起来)。通过运行以下命令,您可以查询以找到组合成此结果的特定颜色集:
ms.searchgraph('U','H')
它将返回['U', 'B', 'V', 'Ks', 'H']
,这意味着添加了“u-b”、“b-v”、“v-ks”和“ks-h”颜色以获得结果。
按谱类型插值的工作方式完全相同,只是类型由表示主要子类型和次要子类型的两个输入变量定义。因此,要找到g2v矮星的u-h颜色,您可以执行:
ms.SpTColor('U','H','G',2)
每次对新颜色(对于给定的对象实例)调用这些例程中的一个时,生成的interplant将保存在ms.Teffinterps
和ms.SpTinterps
(根据方法调用而定)中。这意味着每个对象实例只生成一次interplant,从而加快后续计算。
插值其他属性
与颜色一样,原始数据集中的任何其他属性都可以分别通过方法TeffOther
和SpTOther
作为有效温度或光谱类型的函数进行插值。这些方法使用与其颜色对应项相同的语法,但属性是由单个字符串输入定义的。
因此,要计算5500K恒星的平均太阳质量,你可以运行:
ms.TeffOther('Msun',5500)
找到中庸之道k9v星的半径,你可以运行:
ms.SpTOther('R_Rsun','K',9)