Skip to main content

在 GHz/THz 范围内创建样本星系光谱

项目描述

GalSpec 包

该软件包旨在快速轻松地生成具有黑体连续发射和发射线的星系光谱。这个包中的行是:

  • 一氧化碳线
  • SIII
  • 西三
  • OIII, OI
  • NIII, NII
  • CII, CI

Tom Bakx 的代码,分子线的包装和添加以及 Stefanie Brackenhoff 的重新缩放

功能和用法

  • 可以使用该spectrum()功能生成光谱。

它接受以下输入:

  • 以 log 为单位的光度(L_fir [L_sol])
  • 红移z
  • fLow, fHigh频谱中的最小和最大频率,以 GHz 为单位
  • numFreqBins应该评估频谱的线性间隔频率区间的数量
  • linewidth谱线宽度,单位为km/s
  • COlines 'Kamenetzky' 1或 'Rosenberg' 2确定 CO 线的幅度,默认为 Kamenetzky。
  • lines 'Bonato' 3或 'Spinoglio' 4确定剩余谱线的幅度,默认为 Bonato
  • mollines '真'或'假'。切换是否显示分子线。使用5估计的值。默认为“真”
  • 方差增加了原子线幅度的不确定性。默认为 0。当前版本中未实现的分子线变化。
  • manualrescale设置线条是否应为 Kamenetzky/Rosenberg 和 Bonato/Spinoglio 的默认比率,或由用户设置。选项:
    • 使用“假”默认线幅度
    • 可以在 rescaleArray 中设置 Jy 中添加到黑体发射的 37 个线幅度的“绝对” numpy 数组。如果 mollines 设置为“False”,则忽略其他条目。
    • 可以在 rescaleArray 中设置 37 个标量的“相对” numpy 数组。Kamenetzky/Rosenberg 的默认比率在添加到黑体光谱之前乘以这些标量。如果 mollines 设置为“False”,则忽略其他条目。
  • rescaleArray根据“manualrescale”中的设置重新缩放发射线。可以使用以下命令找到行的顺序linenames()

并创建为输出:

  • freqArray阵列频率,以 GHz 为单位
  • 光谱中通量密度的光谱阵列,以 Jy 为单位
  • 使用该plotspectrum()功能可以快速绘制光谱

此函数将 的输出spectrum()作为输入并创建带有轴标签的图

  • 谱线的名称及其 in 的顺序以rescaleArraynumpyspectrum()数组的形式输出。是否显示分子线的名称可以通过将关键字 mollines 设置为“False”来切换。

例子

  • 简单的例子
import galspec

luminosity = 13.7
z = 4.43
fLow = 90 #GHz
fHigh = 910 #GHz
numFreqBins = 1500
linewidth = 600
gal_freq, gal_flux = galspec.spectrum(luminosity, z, fLow, fHigh, numFreqBins, linewidth, mollines = 'False')

galspec.plotspectrum(gal_freq, gal_flux)

例子

  • 使用 Rosenberg 和 Spinoglio 的比率
import galspec

luminosity = 13.7
z = 4.43
fLow = 90 #GHz
fHigh = 910 #GHz
numFreqBins = 1500
linewidth = 600
gal_freq, gal_flux = galspec.spectrum(luminosity, z, fLow, fHigh, numFreqBins, linewidth, 'Rosenberg', 'Spinoglio', mollines = 'False')

galspec.plotspectrum(gal_freq, gal_flux)

示例 2

  • 使用手动比率仅显示 CO 线
import galspec
import numpy as np

luminosity = 13.7
z = 4.43
fLow = 90 #GHz
fHigh = 910 #GHz
numFreqBins = 1500
linewidth = 600

names = galspec.linenames()
lines = np.zeros(len(names))
for i in range(len(names)):
    if names[i].startswith('CO'): lines[i]=1

gal_freq, gal_flux = galspec.spectrum(luminosity, z, fLow, fHigh, numFreqBins, linewidth, manualrescale = 'Relative', rescaleArray = lines, mollines = 'False')

galspec.plotspectrum(gal_freq, gal_flux)

示例 3

  • 包括分子线
import galspec
import numpy as np

luminosity = 13.7
z = 4.43
fLow = 90 #GHz
fHigh = 910 #GHz
numFreqBins = 1500
linewidth = 600


gal_freq, gal_flux = galspec.spectrum(luminosity, z, fLow, fHigh, numFreqBins, linewidth)

galspec.plotspectrum(gal_freq, gal_flux)

示例 4

安装

pip install galspec

所需的软件包

  • Numpy
  • astropy
  • matplotlib
  • scipy

项目详情


下载文件

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

源分布

galspec-0.2.6.tar.gz (10.7 kB 查看哈希

已上传 source

内置分布

galspec-0.2.6-py3-none-any.whl (10.8 kB 查看哈希

已上传 py3