物理数据的无约束似然分析包
flarestack的Python项目详细描述
flarestack
天体粒子物理数据的无约束似然分析代码,由@robertdstein创建。
既可以进行时间相关分析,也可以进行时间无关分析,还可以使用“flare搜索”算法在时间和空间上查找事件聚类。
执行单点震源分析,以及根据预定义权重叠加震源。 还执行叠加分析,其中每个源的信号强度分别适合。
安装说明
如何实际安装Flarestack?
这个问题的答案取决于你感觉有多懒,以及你想处理多少后台。
选项A:我只想做一个分析,并相信引擎盖下的代码
在这种情况下:
pip install flarestack
整个包可以简单地安装pip,这将自动安装所有依赖项。
选项B:实际上,我想亲自查看后端代码。也许我想为它做点贡献!
现在您需要一行额外的代码:
git clone git@github.com:robertdstein/flarestack.git pip install -e flarestack
这将为您提供最新的代码副本,如果您自己使用git拉取或修改脚本,则会更新已安装的版本,并且仍然允许您导入flarestack。
顺便问一下,依赖关系到底是什么?
Flarestack使用Python2.7,需要以下软件包:
- 努比
- scipy
- 天体物理学
- 健康=1.10.3
- matplotlib
- numexpr
可以使用icecube py2-v3环境找到所有必需的依赖项。如果出于某种原因您不想通过pip安装flarestack,则可以使用pip install -r requirements.txt
一起安装它们。
好吧,不管怎样,我现在已经下载了flarestack。我能马上用吗?
不幸的是,你还不能做科学。还有一个额外的步骤,在这个步骤中,一次计算多个可回收值,并在以后经常重复使用。要执行此步骤,首先需要下载一些data+mc。IceCube用户可以从Madison的/data/ana/analyses/
下下载这些文件,在这里,适当的目录命名约定由flarestack/data/IceCube/
结构镜像。如果您正在使用desy/afs/文件系统,或者在wipac的cobalt机器上工作,则可以绕过此选项,因为flarestack将自动找到相关的icecube文件。不管怎样,您都需要选择一个空间来保存这些预计算/存储的值。由于它们可以在任何时候重新生成,因此擦伤空间是这方面的理想选择。然后需要运行以下脚本:
fromflarestack.precomputeimportrun_precompute,set_scratch_directoryset_scratch_directory("/path/to/my/scratch/")
如果您不使用desy/wipac数据集,则需要在代码中添加以下行:
fromflarestack.sharedimportset_dataset_directoryset_dataset_directory("/path/to/datasets/")
在任何情况下,您都需要下一行开始设置:
fromflarestack.data.icecube.gfu.gfu_v002_p01importtxs_sample_v1run_precompute(txs_sample_v1)
上述4/6行代码将为TXS分析中使用的数据集(7年点源数据和2.5年gfu数据)构建所有相关文件。做好准备,这将需要一些时间。幸运的是,这样做一次之后,您将不需要重复它,除非您需要新的数据集或Flarestack的新版本。不需要再次设置scratch目录,尽管需要在分析脚本的顶部新分配dataset目录。
你可以让他们简单地运行/flarestack/analysis/下面的脚本,然后做你的科学研究!
还有别的吗?
另一个有用的文件是已发布的IceCube 7年点源敏感度。通常,Flarestack通过在0和特征通量水平之间的固定点生成TS分布来计算灵敏度/发现电位,然后在这些点之间插值以确定90%的灵敏度和50%的发现电位。为了有意义地估计灵敏度/发现潜力,特征通量尺度必须足够大,以超过灵敏度或discovery势,虽然仍然很小,使得插值点不完全由溢出组成。为该通量标度选择合理值通常是通过将公布的ps灵敏度乘以各种因素来完成的。该文件可以从https://icecube.wisc.edu/~coenders/sens.npy下载,并应保存到/path/to/scratch/flarestack\u data/input/skylab\u reference/sens.npy。与数据集一样,不需要为desy/wipac的用户执行此步骤,因为flarestack将自动找到相关文件。无法访问这些文件的用户将无法使用reference_sensitivity函数,但在其他情况下可以像往常一样执行分析。