生成模型高光谱剖面。
HISpectralModel的Python项目详细描述
说明:
该软件包提供了生成银河系中性氢(hi)空间积分谱线模型剖面的例程。数学描述见
Stewart I. M., Blyth S-L. and de Blok W. J. G., ‘A simple model for global HI profiles of gaalxies,’ arXiv:1405.1838, (2014).
用途:
下载并解包后,您可能需要将其目录添加到pythonpath中。
bin/子目录中有一个测试脚本,允许您测试代码(这需要matplotlib/pylab)。这个脚本testbed.py还提供了如何使用hiprofilemodel类的示例,该类完成了所有繁重的工作。
中心功能位于名为hi_profile.py的模块中。要使用此命令,请在代码中添加行
from hispectrum import hi_profile
建立模型的类称为
hi_profile.HIProfileModel
为了做一个例子,你必须告诉它你想要剖面跨越的速度集。速度通道的数量、间距、顺序等存储在另一个类的实例中:
hi_profile.ChannelDesc
一个简单的替代方法是子类
hi_profile.SimpleVelChannelDesc
你只需要知道第一个和最后一个通道的速度,以及通道的数量。(第四个参数“worldUnit”的默认值为“km/s”。)
要实例化hi_profile.hiprofilemodel,还需要指定参数。该模型的最小值为6,用于构造线轮廓本身;如果需要构造基线,可以提供其他参数。捆绑所需参数信息的最简单方法是在类中
hi_profile.HIVanillaParsSpec
一旦实例化了hi_profile.hiprofilemodel,就可以为方法提供任何所需的参数值
hi_profile.HIVanillaParsSpec.calcModelValues(<numpy vector of 6+ parameter values>)
返回的是先前提供的速度通道范围内Hi型剖面Janskys中数值的Numpy矢量。
- 如果要更改“速度”通道,则需要hi_profile.channeldesc和hi_profile.hiprofilemodel的新实例。
- 总而言之,基本步骤如下:
确定所需的通道数,以及分配给第一个和最后一个通道的速度。
将类实例化如下:
parsSpecObj = hi_profile.HIVanillaParsSpec() channelDesc = hi_profile.SimpleVelChannelDesc(velFirstChan, velLastChan, numChansDesired) profileObj = hi_profile.HIProfileModel(parsSpecObj, channelDesc)
选择参数值。
通过
spectrumValues = profileObj.calcModelValues(<parameter values>)