GW detector inspiral range calculation tools
Project description
GW detector inspiral range calculation tools
The inspiral_range
package provides tools for calculating various
binary inspiral range measures useful as figures of merit for
gravitational wave detectors characterized by a strain noise spectral
density.
It includes a command-line tool for calculating various inspiral ranges from a supplied file of detector noise spectral density (either ASD or PSD).
See the following references for more information:
- https://arxiv.org/abs/1709.08079
- https://dcc.ligo.org/LIGO-T1500491
- https://dcc.ligo.org/LIGO-T1100338
- https://dcc.ligo.org/LIGO-T030276
Authors:
- Jameson Rollins jameson.rollins@ligo.org
- Jolien Creighton jolien.creighton@ligo.org
Installation
inspiral_range
is available via
pip and
conda.
$ pip install inspiral_range
inspiral_range
depends on scipy
for various optimization routines,
and astropy
for cosmology calculations. The LSC Algorithm Library
(LAL) can also be used for
faster versions of some calculations. The LAL dependencies (both
lal
and lalsimulation
) can be found in the lalsuite
package in
pip or conda, or in native packaging available for the various
IGWN supported operating
systems.
Use the lal
extra flag during pip installation to pull in the LAL
dependencies:
$ pip install inspiral_range[lal]
Note the following caveats:
cosmology
inspiral_range
needs to calculate luminosity distance and
differential comoving volume as a function of redshift, which requires
specifying a cosmology model. Two different packages are supported
for these cosmological calculations:
astropy
(default): pure python and widely available, but slowlal
: not pure python so not as accessible, but much faster
waveform generation
inspiral_range
needs the amplitude of strain waveforms of binary
inspiral signals in order to calculate the detection SNR for a given
detector noise spectrum. Included in the package is a cached
interpolant for equal mass, non-spinning BBH systems. For range
calculations for other systems (non-equal masses, including spin) the
lalsimulation
package is required for waveform calculations.
other requirements
Other python package requirements:
- numpy
- scipy
- gpstime (CLI)
- gwpy (CLI LIGO data fetching)
- nds2-client (CLI LIGO data fetching)
- yaml (CLI output)
- matplotlib (CLI plotting)
Usage
library usage
The package includes multiple functions for calculating various range measures for a given PSD.
Analytical methods:
- sensemon_range
- sensemon_horizon
- int73
Cosmologically-corrected measures (see arxiv:1709.08079):
- horizon (Mpc)
- horizon_redshift (z)
- volume (Mpc^3)
- range (Mpc)
- response_frac (Mpc)
- response_frac_redshift (z)
- reach_frac (Mpc)
- reach_frac_redshift (z)
By default, all functions calculate measures for 1.4/1.4 M_sol BNS inspirals:
>>> import inspiral_range
>>> freq, psd = np.loadtxt('PSD.txt')
>>> range_bns = inspiral_range.range(freq, psd)
But other masses can be used as well:
>>> range_bbh = inspiral_range.range(freq, psd, m1=30, m2=30)
When calculating multiple measures together it is more efficient to generate the fiducial waveform first and then pass it to the various functions:
>>> H = inspiral_range.CBCWaveform(freq, m1=30, m2=30)
>>> horizon = inspiral_range.horizon(freq, psd, H=H)
>>> range = inspiral_range.range(freq, psd, H=H)
The cosmology being used can be modified with the Cosmology class:
>>> cosmo = inspiral_range.Cosmology(h=70.0)
>>> H = inspiral_range.CBCWaveform(freq, cosmo=cosmo)
The 'cosmo' parameter can also be supplied directly to the range calculator:
>>> range = inspiral_range.range(freq, psd, cosmo=cosmo)
A convenience function all_ranges
is included that calculates most
of the range metrics together in an efficient way (all return values
in Mpc):
- range
- horizon
- response_50
- response_10
- reach_50
- reach_90
- sensemon_range
- sensemon_horizon
e.g.:
>>> metrics, H = inspiral_range.all_ranges(freq, psd)
command line interface
The package also include a command line interface for easily calculating ranges for a given ASD or PSD specified in a two-column text file:
$ python3 -m inspiral_range -p PSD.txt m1=30 m2=30
LIGO "official" range from calibrated strain data
The CLI can also calculate the range from LIGO's calibrated strain
data using the --ligo
option and a time specified in either GPS or
natural language, e.g.:
$ python3 -m inspiral_range --ligo '2017-08-17 12:41:04 UTC'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for inspiral_range-0.8.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 583a4c280b87bb28dc675d49db4acf641588d7c6f14cc56bb24fb98ae5c6758c |
|
MD5 | 47ccfff95b2012c2f4af264d2cf10ffe |
|
BLAKE2b-256 | 4ac0fcf6c4275da2d31ead6134b07d068748fc565582dd44549ecd4471bdfce2 |