Skip to main content

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:

Authors:

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 slow
  • lal: 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'

This requires gwpy with NDS to retrieve the data.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inspiral_range-0.9.2.tar.gz (339.4 kB view details)

Uploaded Source

Built Distribution

inspiral_range-0.9.2-py3-none-any.whl (339.5 kB view details)

Uploaded Python 3

File details

Details for the file inspiral_range-0.9.2.tar.gz.

File metadata

  • Download URL: inspiral_range-0.9.2.tar.gz
  • Upload date:
  • Size: 339.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for inspiral_range-0.9.2.tar.gz
Algorithm Hash digest
SHA256 e97b37de32e3157fe07ecb5af67c37b6919d6e9991a54723c727bb94fe4281bb
MD5 9abb677e03640e5e44648be3655569f1
BLAKE2b-256 d2973d8ad85fd6bce4509d201aaa6fea4802855965d4d3d4eba05fa0a1f26730

See more details on using hashes here.

File details

Details for the file inspiral_range-0.9.2-py3-none-any.whl.

File metadata

File hashes

Hashes for inspiral_range-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5535012898dab865067ca7ddc4d68b6ca4d41cb6d4dc3b90db5b52c7eb39e7d4
MD5 de72cb53bed03783d9a91a91fcd35e0e
BLAKE2b-256 9516455d252a0d962af76b881e46ef29d7d08a4f80456d77f93895321f5975c7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page