YMW16电子密度模型的Python/C++版本
项目描述
PyYMW16
YMW16电子密度模型的Python/C++版本
这是一个姚、曼彻斯特和王(2017年,《天体物理学杂志》,835,29;《arXiv:1610.09448》)YMW16电子密度模型的Python/C++移植。代码使用pybind11为(C++移植的)YMW16代码创建Python绑定。
使用方法
一些使用示例可以在示例目录中找到。
import pyymw16
# calculate DM at a given distance
DM, tau_sc = pyymw16.dist_to_dm(204.0, -6.5, 200)
# calculate distance for a given sky position and DM
dist, tau_sc = pyymw16.dm_to_dist(123.4, 4.0, 200)
# calculate N_e density at xyz galactocentric coordinates
ne = pyynmw16.calculate_electron_density_xyz(1.0, 2.0, 3.0)
# calculate N_e density at Galactic lat/long/distance coords
ne = pyynmw16.calculate_electron_density_lbr(204.0, -6.5, 3000.0)
这些方法返回astropy 量,它们带有附加的单位,并可以接受astropy 角度和量作为参数
import pyymw16
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 = pyymw16.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和具有C++11支持的最新C编译器(Ubuntu 16.04+默认gcc将正常工作)。
您可以使用以下命令安装
pip install git+https://github.com/telegraphic/pyymw16
或者,下载此存储库并通过以下方式安装
python setup.py install
要运行单元测试,请运行python setup.py test
。请注意,这些测试仅检查Python绑定,而不是底层C源代码。
YMW16 C README
YMW16是银河系、麦哲伦云和星际介质中自由电子分布的模型,可用于根据其位置和色散测量估计真实或模拟脉冲星和快速射电暴(FRB)的距离。
银河模型基于189个具有独立确定距离和色散度量的脉冲星,而简单的模型用于MC和IGM中的电子密度。估计95%的预测银河脉冲星距离的相对误差小于0.9倍。估计了由于银河星际介质、麦哲伦云、星际介质和FRB宿主星系中的散射引起的脉冲展宽。
除了ymw16 dm-distance程序之外,我们还提供了一个程序,ymw16_ne,它可以在银河系或麦哲伦云中的任何位置给出电子密度。
一篇论文(姚,曼彻斯特和王,2017年,《天体物理学杂志》,第835卷,第29号;arXiv:1610.09448)描述了该模型,并将其预测与早期银河电子密度模型的预测进行了比较。YMW16是第一个估计星外脉冲星距离和FRB距离的电子密度模型。
要制作程序的命令行可执行版本,请下载并解压程序的最新版本。然后运行"make_ymw16"以创建可执行文件。环境变量YW16_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许可
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)
项目详情
pyymw16-2.0.7.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | a1ab9a4a3fdb7d9a6ccaa949840e21319f8c44707eb7dd033d14e6e6697696a5 |
|
MD5 | 8d8f7eaaa96f43f01a23fdf7290c29ea |
|
BLAKE2b-256 | e0aa65f18199e4d8b772426d97ba28b1765b74a9d0eb5b036667b234ab143887 |
哈希值 for pyymw16-2.0.7-cp36-cp36m-macosx_10_7_x86_64.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | e5eb39521a5bdab1e0027dbe63c55b0d8f03215c630e0f533a0a33ba235e84e5 |
|
MD5 | 63fda9c6ee5252686301217167f5ed19 |
|
BLAKE2b-256 | 9fc004d3d2cd20f447a2d63143341b159805ea4d709dba9a30fd1ff7bc843aff |
哈希值 for pyymw16-2.0.7-cp27-cp27m-macosx_10_13_x86_64.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 06245be1e8aa679ccd26a84c954fb4c20c033e3dd217b2ebfb3a419a53aac8fd |
|
MD5 | e23c263a05bcc33618966965ea332143 |
|
BLAKE2b-256 | 99ea35d46e5e865686275afa7104f498d87f73604cbce825cf0fb98b2c628228 |