NE2001、YW16和YT2020电子密度模型的Python/C++版本
项目描述
PyGEDM
YM16、NE2001和YT2020电子密度模型的Python绑定
本包是YM16和NE2001电子密度模型以及YT2020晕模型的Python接口。姚、曼彻斯特和王(2017,《天体物理学杂志》,835,29;《arXiv:1610.09448》)的YM16电子密度模型是用C++编写的,而科德斯和拉佐(2001,《arXiv:astro-ph/》)的NE2001模型是用FORTRAN编写的。本包PyGEDM使用pybind11将这两个代码封装起来,以便从Python使用。在此,我们将NE2001使用f2c
转换为C++。
Web应用
我们在https://apps.datacentral.org.au/pygedm/提供了Web应用。
pygedm Web应用由Data Central友好托管。
用法
一些用法示例可以在示例目录中找到。
import pygedm
# calculate DM at a given distance
DM, tau_sc = pygedm.dist_to_dm(204.0, -6.5, 200, method='ne2001')
DM, tau_sc = pygedm.dist_to_dm(204.0, -6.5, 200, method='ymw16')
# calculate distance for a given sky position and DM
dist, tau_sc = pygedm.dm_to_dist(123.4, 4.0, 200)
# calculate N_e density at xyz galactocentric coordinates
ne = pygedm.calculate_electron_density_xyz(1.0, 2.0, 3.0)
# calculate N_e density at Galactic lat/long/distance coords
ne = pygedm.calculate_electron_density_lbr(204.0, -6.5, 3000.0)
# Calculate halo DM contribution
dm_halo = pygedm.calculate_halo_dm(gl=0, gb=30)
这些方法返回带有单位的astropy 量,并可以接受astropy 角度和量作为参数
import pygedm
import astropy.units as u
import astropy.coordinates as c
DM = u.Quantity(10.0, unit='pc cm^-3')
ra, dec = c.Angle(23.0, unit='hourangle'), c.Angle('-43:00:02', unit='degree')
sky_coords = c.SkyCoord(ra, dec, frame='icrs')
dist, tau_sc = pygedm.dm_to_dist(sky_coords.galactic.l, sky_coords.galactic.b, DM)
print(dist.to('lyr'))
>> 3362.16343117 lyr
print(tau_sc.to('ns'))
>> 7.758686138 ns
安装
需要pybind11
、astropy
、numpy
、scipy
、支持C++11的新版C编译器(Ubuntu 16.04+的默认gcc将可用),以及f2c
。
已为linux生成预编译的wheels,这意味着您可以跳过f2c
安装步骤。或者,您可以在Ubuntu上通过apt-get f2c
安装,或者如果您使用conda,可以通过conda install -c conda-forge f2c
安装。
对于MacOS,您最好使用conda
并通过以下命令安装f2c
:`conda install -c conda-forge f2c`。目前不支持Windows。
您应该可以使用以下命令进行安装
pip install pygedm
或者
pip install git+https://github.com/telegraphic/pygedm
从GitHub安装最新版本。或者,下载此存储库并通过以下方式安装:
pip install .
要运行单元测试,请运行python setup.py test
。请注意,这些测试仅检查Python绑定,而不是底层C/FORTRAN源代码(源代码不包括在单元测试中)。
参考文献
如果您在期刊文章中使用PyGEDM,请记住引用底层电子密度模型。
Cordes, J. M., & Lazio, T. J. W. (2002),
NE2001.I. 一个新的关于银河系自由电子分布及其涨落模型,arXiv e-prints,astro-ph/0207156。
Cordes, J. M., & Lazio, T. J. W. (2003),
NE2001. II. 利用无线电传播数据构建银河系自由电子分布模型,arXiv e-prints,astro-ph/0301598。
Yao, J. M., Manchester, R. N., & Wang, N. (2017),
一个新的电子密度模型,用于估计脉冲星和FRB的距离,天体物理学杂志,第888卷,第2期,编号105,卷835,编号29。
Yamasaki, S., & Totani, T. (2020),
银河系盘对类星体快速射电暴色散测量的贡献,天体物理学杂志,第888卷,第2期,编号105。
这些参考文献以bibtex格式提供在references.bib中,也可以作为ADS图书馆下载。
YMW16 C README
YMW16是银河系、麦哲伦星云和星际介质中自由电子分布的模型,可用于根据其位置和色散测量估计真实或模拟脉冲星和快速射电暴(FRB)的距离。
银河系模型基于189颗具有独立确定距离和色散测量的脉冲星,而较简单的模型用于MC和IGM中的电子密度。预计95%的预测银河系脉冲星距离的相对误差将小于0.9倍。估计了由于银河系星际介质、麦哲伦星云、星际介质和FRB宿主星系的散射引起的脉冲展宽。
除了ymw16 dm-distance程序之外,我们还提供了一个程序ymw16_ne,它给出了银河系或麦哲伦星云中任意点的电子密度。
一篇论文(Yao,Manchester和Wang,2017,Astrophys. J., 835, 29;arXiv:1610.09448)描述了该模型并将其预测与早期银河系电子密度模型的预测进行了比较。YMW16是第一个估计类星体距离和FRB距离的电子密度模型。
要将程序制作成命令行可执行版本,请下载并解压缩程序的最新版本。然后运行"make_ymw16"以创建可执行文件。环境变量YMW16_DIR可能被设置为一个包含ymw16par.txt和spiral.txt的目录。在运行时需要访问这些文件。
提供交互访问YMW16距离模型和下载最新程序版本的网站有:
- http://www.xao.ac.cn/ymw16/,
- http://www.atnf.csiro.au/research/pulsar/ymw16/ 和
- https://bitbucket.org/psrsoft/ymw16/.
请将任何问题或错误报告到https://bitbucket.org/psrsoft/ymw16/issues/new/或直接向作者报告。请提供一个说明问题的示例。
YMW16 C LICENSE
Copyright (C) 2016, 2017 J. M. Yao, R. N. Manchester, N. Wang.
YMW16 is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
YMW16 is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License,
available at https://gnu.ac.cn/licenses/, for more details.
Jumei Yao (yaojumei _@_ xao.ac.cn), Richard N Manchester
(dick.manchester _@_ csiro.au), Na Wang (na.wang _@_ xao.ac.cn)
NE2001 README
2002年7月7日 要编译和执行代码,请参阅code.pdf。
项目详情
pygedm-3.3.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0904ad4bba502944cc9f4cddff3043ffc18d9974df46d327d854ae5838c3d61f |
|
MD5 | 2db934b027a7294d657e7366c849a6be |
|
BLAKE2b-256 | b92f780368df8db412e92c01116701e2aae997ae984459bab4374ab636400104 |