主星序的自动属性插值和颜色计算

MeanStars的Python项目详细描述


Build StatusCoverage StatusastropyPyPI versionRequirements Status

平均星

这段代码提供了基于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提供了两种插值颜色的方法:TeffColorSpTColor,前者按有效温度插值,后者按光谱类型插值。一般来说,您不太可能希望按未明确列出的任何光谱类型来查询数据,因此SpTColor通常充当数据的简单查找表。在每种情况下,通过提供定义颜色的两个波段(在代码中称为startend)以及温度或光谱类型来调用这些方法。

因此,要找到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.Teffinterpsms.SpTinterps(根据方法调用而定)中。这意味着每个对象实例只生成一次interplant,从而加快后续计算。

插值其他属性

与颜色一样,原始数据集中的任何其他属性都可以分别通过方法TeffOtherSpTOther作为有效温度或光谱类型的函数进行插值。这些方法使用与其颜色对应项相同的语法,但属性是由单个字符串输入定义的。

因此,要计算5500K恒星的平均太阳质量,你可以运行:

ms.TeffOther('Msun',5500)

找到中庸之道k9v星的半径,你可以运行:

ms.SpTOther('R_Rsun','K',9)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么lambdas中使用的局部变量必须是final或有效final?   java忽略cucumber中的特定标记,但运行所有其他标记   java显示存储在内部存储器上的映像   java在Android中隐藏密钥库密码的最佳方法是什么?   java设置M2_主页   java JUnit测试返回null和false   具有未知PK/FK属性的java级联持久化JPA实体违反了NotNullConstraint   如何在Java中填充数组?   优化java帮助编译器创建更高效的字节码吗?   java Spring将对象属性传递给href按钮提交   python Java等价于pyftpdlib?   java I在两台服务器上部署了一个web服务,它使用@Schedule自动发送电子邮件。我们如何防止重复发送电子邮件?   java蓝牙当前电池百分比   java为什么在尝试输出数组时会出现异常错误?   java如何覆盖tapestry AlertManager