跳转到主要内容

YMW16电子密度模型的Python/C++版本

项目描述

Build Status License: LGPL v3 Coverage Status

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 (18.1 KB 查看散列

上传时间

构建的分发

pyymw16-2.0.7-cp36-cp36m-macosx_10_7_x86_64.whl (67.1 KB 查看散列

上传时间 CPython 3.6m macOS 10.7+ x86-64

pyymw16-2.0.7-cp27-cp27m-macosx_10_13_x86_64.whl (65.7 KB 查看散列

上传时间 CPython 2.7m macOS 10.13+ x86-64

由以下支持