Gravpy is a sandbox for gravitational wave astrophysics: it’s not intended to be used for heavy-weight gravitational wave data analysis, and it started life as a series of iPython notebooks written up while I was reading through papers when I was starting out in my PhD, but it’s started to snowball.
Gravpy is currently capable of plotting sensitivity curves for ground-based interferometers, and for pulsar timing arrays, and their antenna responses. It’s also capable of calculating the spectra of CBC merger events, and making plots of those.
It’s early days and there are lots of other things to be done with the package!
A sandbox for gravitational wave astronomy.
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
At the command line:
$ easy_install gravpy
Or, if you have virtualenvwrapper installed:
$ mkvirtualenv gravpy
$ pip install gravpy
Let’s have a quick look at what Gravpy can do. In this example we’ll have a look at the sensitivities of some of the current and historical interferometers, and then have a look at how GW150914, the first detected gravitational wave event would have looked in the detectors.
Let’s get started by importing astropy’s units module, and numpy, which we’ll need:
import astropy.units as u
import numpy as np
A number of approaches to detecting gravitational waves have been discussed in the literature, and have been constructed, ranging from pulsar timing arrays to Weber bars. We’re going to simulate some interferometers, like the LIGO detectors which made the detection of GW150914. To do this, gravpy has a package for interferometers, with some “pre-made” interferometers.
import gravpy.interferometers as ifo
We can now simulate some interferometers. Let’s start with Advanced LIGO.
aligo = ifo.AdvancedLIGO()
We can take a look at the sensitivity curve using the ~aligo.plot() method:
(Source code, png, hires.png, pdf)
Now that we have an interferometer, let’s have a look at an event. We’ll simulate a compact binary merger, or a “CBC”.
The first observed gravitational wave event was a CBC, a binary black hole merger. We can simulate that event using gravpy.
import gravpy.sources as sources
cbc = sources.CBC(frequencies=np.logspace(-4, 5, 1000) * u.hertz,
m1=32*u.solMass, m2=30*u.solMass, r=0.8*1e9*u.parsec)
Let’s have a look at the frequency behaviour of the event:
Now that we have a detector and an event we can find out the SNR of the signal in the detector.:
print cbc.snr(o1_aligo)
112.363423673
That’s quite a bit higher than the SNR of the observed event, so what gives? We simulated the design sensitivity of the aLIGO detectors, but the event was discovered in the first observing run, which was well below design sensitivity. We can fix this by simulating the detector with its “O1” configuration.
o1_aligo = ifo.AdvancedLIGO(configuration='O1')
Let’s have a look at this and the event on a plot.
import matplotlib.pyplot as plt
import gravpy.interferometers as ifo
import gravpy.sources as sources
import astropy.units as u
o1_aligo = ifo.AdvancedLIGO(configuration='O1')
cbc = sources.CBC(frequencies=np.logspace(-4, 5, 1000) * u.hertz,
m1=32*u.solMass, m2=30*u.solMass, r=0.8*1e9*u.parsec)
plt.style.use('ggplot')
f, ax = plt.subplots(1)
o1_aligo.plot(ax)
cbc.plot(ax)
The SNR looks better now:
>>> print cbc.snr(o1_aligo)
24.8134701645
How about other interferometers?
>>> geo = ifo.GEO()
>>> iligo = ifo.InitialLIGO()
>>> tama = ifo.TAMA()
>>> virgo = ifo.VIRGO()
>>> aligo = ifo.AdvancedLIGO()
>>> o1_aligo = ifo.AdvancedLIGO(configuration='O1')
>>> elisa = ifo.EvolvedLISA()
>>> print "{} \t\t {}".format('IFO', 'SNR')
>>> print "------------------------------"
>>> for inter in [aligo, o1_aligo, elisa, iligo, virgo, geo, tama]:
... print "{} \t\t {}".format(inter.name, cbc.snr(inter))
IFO SNR
------------------------------
aLIGO 112.363423673
aLIGO [O1] 24.8134701645
eLISA 109.12468906
Initial LIGO 6.37979047218
VIRGO 7.86000380341
GEO600 4.80002280092
TAMA 0.258152593608
So we can see that this event wouldn’t have exceeded an SNR of 8 in any of the previous generation of detectors, but would have been loud in eLISA.
To use gravpy in a project:
import gravpy
The gravpy package can currently produce sensitivity curves for interferometers.
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
You can contribute in many ways:
Report bugs at https://github.com/transientlunatic/gravpy/issues.
If you are reporting a bug, please include:
Look through the GitHub issues for bugs. Anything tagged with “bug” is open to whoever wants to implement it.
Look through the GitHub issues for features. Anything tagged with “feature” is open to whoever wants to implement it.
gravpy could always use more documentation, whether as part of the official gravpy docs, in docstrings, or even on the web in blog posts, articles, and such.
The best way to send feedback is to file an issue at https://github.com/transientlunatic/gravpy/issues.
If you are proposing a feature:
Ready to contribute? Here’s how to set up gravpy for local development.
Fork the gravpy repo on GitHub.
Clone your fork locally:
$ git clone git@github.com:transientlunatic/gravpy.git
Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development:
$ mkvirtualenv gravpy
$ cd gravpy/
$ python setup.py develop
Create a branch for local development:
$ git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.
When you’re done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox:
$ flake8 gravpy tests
$ python setup.py test
$ tox
To get flake8 and tox, just pip install them into your virtualenv.
Commit your changes and push your branch to GitHub:
$ git add .
$ git commit -m "Your detailed description of your changes."
$ git push origin name-of-your-bugfix-or-feature
Submit a pull request through the GitHub website.
Before you submit a pull request, check that it meets these guidelines:
None yet. Why not be the first?
gravpy.general.
snr
(signal, detector)[source]¶Calculate the SNR of a signal in a given detector, assuming that it has been detected with an optimal filter. See e.g. arxiv.org/abs/1408.0740
Parameters: |
|
---|---|
Returns: |
|
gravpy.interferometers.
AdvancedLIGO
(frequencies=None, configuration=None, obs_time=None)[source]¶Bases: gravpy.interferometers.Interferometer
The aLIGO Interferometer
Methods
antenna_pattern (self, theta, phi, psi) |
Produce the antenna pattern for a detector, given its detector tensor, and a set of angles. |
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
noise_spectrum (self, x) |
Return the default noise spectrum for the interferometer. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
psd (self[, frequencies]) |
Calculate the one-sided power spectral desnity for a detector. |
skymap (self[, nx, ny, psi]) |
Produce a skymap of the antenna repsonse of the interferometer. |
srpsd |
S0
= <Quantity 1.e-49 1 / Hz>¶configurations
= {'O1': ['data/aligo_freqVector.txt', 'data/o1_data50Mpc_step1.txt']}¶detector_tensor
= <Quantity [[ 4., 0., 0.], [ 0., -4., 0.], [ 0., 0., 0.]] km>¶f0
= <Quantity 215. Hz>¶frequency_range
= <Quantity [ 30., 4000.] Hz>¶fs
= <Quantity 20. Hz>¶length
= <Quantity 4. km>¶name
= 'aLIGO'¶noise_spectrum
(self, x)[source]¶Return the default noise spectrum for the interferometer.
Parameters: |
|
---|---|
Returns: |
|
xhat
= array([1, 0, 0])¶yhat
= array([0, 1, 0])¶zhat
= array([0, 0, 1])¶gravpy.interferometers.
BDecigo
(frequencies=None, configuration=None, obs_time=None)[source]¶Bases: gravpy.interferometers.Interferometer
Methods
antenna_pattern (self, theta, phi, psi) |
Produce the antenna pattern for a detector, given its detector tensor, and a set of angles. |
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
noise_spectrum (self, x) |
Return the default noise spectrum for the interferometer. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
psd (self, frequencies) |
Calculate the one-sided power spectral desnity for a detector. |
skymap (self[, nx, ny, psi]) |
Produce a skymap of the antenna repsonse of the interferometer. |
srpsd |
S0
= <Quantity 4.04e-46 1 / Hz>¶frequencies
= <Quantity [1.00000000e-02, 1.00092155e-02, 1.00184395e-02, ..., 9.98159444e+01, 9.99079298e+01, 1.00000000e+02] Hz>¶frequency_range
= <Quantity [1.e-02, 1.e+02] Hz>¶psd
(self, frequencies)[source]¶Calculate the one-sided power spectral desnity for a detector. If a particular configuration is specified then the results will be returned for a spline fit to that configuration’s curve, if available.
Parameters: |
|
---|
gravpy.interferometers.
BigBangObservatory
(frequencies=None, configuration=None, obs_time=None)[source]¶Bases: gravpy.interferometers.Interferometer
The Big Bang Observatory.
Methods
antenna_pattern (self, theta, phi, psi) |
Produce the antenna pattern for a detector, given its detector tensor, and a set of angles. |
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
noise_spectrum (self, x) |
Return the default noise spectrum for the interferometer. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
psd (self, frequencies) |
The power spectrum density of the detector, taken from equation 6 of arxiv:1101.3940. |
skymap (self[, nx, ny, psi]) |
Produce a skymap of the antenna repsonse of the interferometer. |
srpsd |
frequencies
= <Quantity [1.00000000e-03, 1.00115207e-03, 1.00230547e-03, ..., 9.97699834e+01, 9.98849255e+01, 1.00000000e+02] Hz>¶frequency_range
= <Quantity [1.e-03, 1.e+02] Hz>¶gravpy.interferometers.
Decigo
(frequencies=None, configuration=None, obs_time=None)[source]¶Bases: gravpy.interferometers.Interferometer
The full, original Decigo noise curve, from arxiv:1101.3940.
Methods
antenna_pattern (self, theta, phi, psi) |
Produce the antenna pattern for a detector, given its detector tensor, and a set of angles. |
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
noise_spectrum (self, x) |
Return the default noise spectrum for the interferometer. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
psd (self, frequencies) |
The power spectrum density of the detector, taken from equation 5 of arxiv:1101.3940. |
skymap (self[, nx, ny, psi]) |
Produce a skymap of the antenna repsonse of the interferometer. |
srpsd |
fp
= <Quantity 7.36 Hz>¶frequencies
= <Quantity [1.00000000e-02, 1.00092155e-02, 1.00184395e-02, ..., 9.98159444e+01, 9.99079298e+01, 1.00000000e+02] Hz>¶frequency_range
= <Quantity [1.e-02, 1.e+02] Hz>¶gravpy.interferometers.
Detector
[source]¶Bases: object
This is the base class for all types of detectors, and contains the conversion methods between the various different ways of expressing the noise levels (sensitivity) of any detector.
Methods
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
srpsd |
energy_density
(self, frequencies=None)[source]¶Produce the sensitivity curve of the detector in terms of the energy density.
Parameters: |
|
---|---|
Returns: |
|
noise_amplitude
(self, frequencies=None)[source]¶The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal.
Parameters: |
|
---|---|
Returns: |
|
gravpy.interferometers.
EvolvedLISA
(frequencies=None, configuration=None, obs_time=None)[source]¶Bases: gravpy.interferometers.Interferometer
The eLISA Interferometer
Methods
antenna_pattern (self, theta, phi, psi) |
Produce the antenna pattern for a detector, given its detector tensor, and a set of angles. |
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
noise_spectrum (self, x) |
Return the default noise spectrum for the interferometer. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
psd (self, frequencies) |
Calculate the one-sided power spectral desnity for a detector. |
skymap (self[, nx, ny, psi]) |
Produce a skymap of the antenna repsonse of the interferometer. |
srpsd |
L
= <Quantity 1.e+09 m>¶frequencies
= <Quantity [1.00000000e-06, 1.00138264e-06, 1.00276720e-06, ..., 9.97240436e-01, 9.98619265e-01, 1.00000000e+00] Hz>¶fs
= <Quantity 3.e-05 Hz>¶name
= 'eLISA'¶psd
(self, frequencies)[source]¶Calculate the one-sided power spectral desnity for a detector. If a particular configuration is specified then the results will be returned for a spline fit to that configuration’s curve, if available.
Parameters: |
|
---|
gravpy.interferometers.
GEO
(frequencies=None, configuration=None, obs_time=None)[source]¶Bases: gravpy.interferometers.Interferometer
The GEO600 Interferometer
Methods
antenna_pattern (self, theta, phi, psi) |
Produce the antenna pattern for a detector, given its detector tensor, and a set of angles. |
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
noise_spectrum (self, x) |
Return the default noise spectrum for the interferometer. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
psd (self[, frequencies]) |
Calculate the one-sided power spectral desnity for a detector. |
skymap (self[, nx, ny, psi]) |
Produce a skymap of the antenna repsonse of the interferometer. |
srpsd |
S0
= <Quantity 1.e-46 1 / Hz>¶f0
= <Quantity 150. Hz>¶fs
= <Quantity 40. Hz>¶name
= 'GEO600'¶gravpy.interferometers.
InitialLIGO
(frequencies=None, configuration=None, obs_time=None)[source]¶Bases: gravpy.interferometers.Interferometer
The iLIGO Interferometer
Methods
antenna_pattern (self, theta, phi, psi) |
Produce the antenna pattern for a detector, given its detector tensor, and a set of angles. |
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
noise_spectrum (self, x) |
Return the default noise spectrum for the interferometer. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
psd (self[, frequencies]) |
Calculate the one-sided power spectral desnity for a detector. |
skymap (self[, nx, ny, psi]) |
Produce a skymap of the antenna repsonse of the interferometer. |
srpsd |
S0
= <Quantity 9.e-46 1 / Hz>¶f0
= <Quantity 150. Hz>¶fs
= <Quantity 40. Hz>¶name
= 'Initial LIGO'¶gravpy.interferometers.
Interferometer
(frequencies=None, configuration=None, obs_time=None)[source]¶Bases: gravpy.interferometers.Detector
The base class to describe an interferometer.
Methods
antenna_pattern (self, theta, phi, psi) |
Produce the antenna pattern for a detector, given its detector tensor, and a set of angles. |
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
noise_spectrum (self, x) |
Return the default noise spectrum for the interferometer. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
psd (self[, frequencies]) |
Calculate the one-sided power spectral desnity for a detector. |
skymap (self[, nx, ny, psi]) |
Produce a skymap of the antenna repsonse of the interferometer. |
srpsd |
S0
= <Quantity 1.e-46 1 / Hz>¶antenna_pattern
(self, theta, phi, psi)[source]¶Produce the antenna pattern for a detector, given its detector tensor, and a set of angles.
Parameters: |
|
---|---|
Returns: |
|
detector_tensor
= <Quantity [[ 4., 0., 0.], [ 0., -4., 0.], [ 0., 0., 0.]] km>¶f0
= <Quantity 150. Hz>¶frequencies
= <Quantity [1.00000000e+01, 1.00230582e+01, 1.00461695e+01, ..., 9.95404271e+04, 9.97699489e+04, 1.00000000e+05] Hz>¶fs
= <Quantity 40. Hz>¶length
= <Quantity 4. km>¶name
= 'Generic Interferometer'¶noise_spectrum
(self, x)[source]¶Return the default noise spectrum for the interferometer.
Parameters: |
|
---|---|
Returns: |
|
psd
(self, frequencies=None)[source]¶Calculate the one-sided power spectral desnity for a detector. If a particular configuration is specified then the results will be returned for a spline fit to that configuration’s curve, if available.
Parameters: |
|
---|
skymap
(self, nx=200, ny=100, psi=[0, 3.141592653589793])[source]¶Produce a skymap of the antenna repsonse of the interferometer.
Parameters: |
|
---|---|
Returns: |
|
xhat
= array([1, 0, 0])¶yhat
= array([0, 1, 0])¶zhat
= array([0, 0, 1])¶gravpy.interferometers.
LISA
(frequencies=None, configuration=None, obs_time=None)[source]¶Bases: gravpy.interferometers.Interferometer
The LISA Interferometer in its mission-accepted state, as of 2018
Methods
antenna_pattern (self, theta, phi, psi) |
Produce the antenna pattern for a detector, given its detector tensor, and a set of angles. |
confusion_noise (self, frequencies[, …]) |
The noise created by unresolvable galactic binaries at low frequencies. |
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
metrology_noise (self, frequencies) |
Calculate the noise due to the single-link optical metrology, from arxiv:1803.01944. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
noise_spectrum (self, x) |
Return the default noise spectrum for the interferometer. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
psd (self, frequencies) |
Calculate the one-sided power spectral desnity for a detector. |
single_mass_noise (self, frequencies) |
The acceleration noise for a single test mass. |
skymap (self[, nx, ny, psi]) |
Produce a skymap of the antenna repsonse of the interferometer. |
srpsd |
L
= <Quantity 2.5e+09 m>¶confusion_noise
(self, frequencies, observation_time=0.5)[source]¶The noise created by unresolvable galactic binaries at low frequencies.
frequencies
= <Quantity [1.00000000e-05, 1.00115207e-05, 1.00230547e-05, ..., 9.97699834e-01, 9.98849255e-01, 1.00000000e+00] Hz>¶fs
= <Quantity 3.e-05 Hz>¶fstar
= <Quantity 0.01908 Hz>¶metrology_noise
(self, frequencies)[source]¶Calculate the noise due to the single-link optical metrology, from arxiv:1803.01944.
name
= 'eLISA'¶psd
(self, frequencies)[source]¶Calculate the one-sided power spectral desnity for a detector. If a particular configuration is specified then the results will be returned for a spline fit to that configuration’s curve, if available.
Parameters: |
|
---|
gravpy.interferometers.
TAMA
(frequencies=None, configuration=None, obs_time=None)[source]¶Bases: gravpy.interferometers.Interferometer
The TAMA Interferometer
Methods
antenna_pattern (self, theta, phi, psi) |
Produce the antenna pattern for a detector, given its detector tensor, and a set of angles. |
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
noise_spectrum (self, x) |
Return the default noise spectrum for the interferometer. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
psd (self[, frequencies]) |
Calculate the one-sided power spectral desnity for a detector. |
skymap (self[, nx, ny, psi]) |
Produce a skymap of the antenna repsonse of the interferometer. |
srpsd |
S0
= <Quantity 7.5e-46 1 / Hz>¶f0
= <Quantity 400. Hz>¶fs
= <Quantity 75. Hz>¶name
= 'TAMA'¶gravpy.interferometers.
TimingArray
[source]¶Bases: gravpy.interferometers.Detector
A class to represent a pulsar timing array.
Methods
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
Pn | |
Sn | |
noise_spectrum | |
psd | |
srpsd |
T
= <Quantity 15. yr>¶dt
= <Quantity 14. d>¶frequencies
= <Quantity [1.00000000e-10, 1.00926219e-10, 1.01861017e-10, 1.02804473e-10, 1.03756668e-10, 1.04717682e-10, 1.05687597e-10, 1.06666496e-10, 1.07654461e-10, 1.08651577e-10, 1.09657929e-10, 1.10673602e-10, 1.11698682e-10, 1.12733256e-10, 1.13777413e-10, 1.14831241e-10, 1.15894830e-10, 1.16968270e-10, 1.18051653e-10, 1.19145070e-10, 1.20248614e-10, 1.21362380e-10, 1.22486461e-10, 1.23620954e-10, 1.24765955e-10, 1.25921561e-10, 1.27087871e-10, 1.28264983e-10, 1.29452998e-10, 1.30652016e-10, 1.31862140e-10, 1.33083472e-10, 1.34316117e-10, 1.35560179e-10, 1.36815763e-10, 1.38082977e-10, 1.39361927e-10, 1.40652724e-10, 1.41955477e-10, 1.43270295e-10, 1.44597292e-10, 1.45936580e-10, 1.47288272e-10, 1.48652484e-10, 1.50029332e-10, 1.51418933e-10, 1.52821404e-10, 1.54236865e-10, 1.55665436e-10, 1.57107239e-10, 1.58562396e-10, 1.60031031e-10, 1.61513269e-10, 1.63009236e-10, 1.64519059e-10, 1.66042866e-10, 1.67580786e-10, 1.69132952e-10, 1.70699493e-10, 1.72280545e-10, 1.73876240e-10, 1.75486715e-10, 1.77112106e-10, 1.78752553e-10, 1.80408193e-10, 1.82079168e-10, 1.83765620e-10, 1.85467692e-10, 1.87185529e-10, 1.88919278e-10, 1.90669084e-10, 1.92435098e-10, 1.94217468e-10, 1.96016347e-10, 1.97831888e-10, 1.99664245e-10, 2.01513573e-10, 2.03380031e-10, 2.05263775e-10, 2.07164968e-10, 2.09083769e-10, 2.11020343e-10, 2.12974854e-10, 2.14947467e-10, 2.16938352e-10, 2.18947676e-10, 2.20975611e-10, 2.23022330e-10, 2.25088005e-10, 2.27172813e-10, 2.29276931e-10, 2.31400538e-10, 2.33543814e-10, 2.35706941e-10, 2.37890104e-10, 2.40093488e-10, 2.42317279e-10, 2.44561668e-10, 2.46826845e-10, 2.49113003e-10, 2.51420335e-10, 2.53749038e-10, 2.56099310e-10, 2.58471351e-10, 2.60865362e-10, 2.63281547e-10, 2.65720111e-10, 2.68181261e-10, 2.70665207e-10, 2.73172160e-10, 2.75702333e-10, 2.78255940e-10, 2.80833200e-10, 2.83434331e-10, 2.86059554e-10, 2.88709092e-10, 2.91383170e-10, 2.94082017e-10, 2.96805861e-10, 2.99554933e-10, 3.02329468e-10, 3.05129702e-10, 3.07955871e-10, 3.10808217e-10, 3.13686982e-10, 3.16592411e-10, 3.19524751e-10, 3.22484250e-10, 3.25471161e-10, 3.28485737e-10, 3.31528234e-10, 3.34598912e-10, 3.37698031e-10, 3.40825855e-10, 3.43982649e-10, 3.47168682e-10, 3.50384225e-10, 3.53629550e-10, 3.56904935e-10, 3.60210656e-10, 3.63546996e-10, 3.66914238e-10, 3.70312668e-10, 3.73742574e-10, 3.77204249e-10, 3.80697987e-10, 3.84224085e-10, 3.87782841e-10, 3.91374560e-10, 3.94999546e-10, 3.98658107e-10, 4.02350555e-10, 4.06077203e-10, 4.09838367e-10, 4.13634368e-10, 4.17465529e-10, 4.21332174e-10, 4.25234633e-10, 4.29173238e-10, 4.33148322e-10, 4.37160225e-10, 4.41209286e-10, 4.45295851e-10, 4.49420266e-10, 4.53582883e-10, 4.57784054e-10, 4.62024137e-10, 4.66303493e-10, 4.70622485e-10, 4.74981480e-10, 4.79380850e-10, 4.83820966e-10, 4.88302209e-10, 4.92824957e-10, 4.97389596e-10, 5.01996513e-10, 5.06646101e-10, 5.11338754e-10, 5.16074871e-10, 5.20854855e-10, 5.25679112e-10, 5.30548053e-10, 5.35462090e-10, 5.40421642e-10, 5.45427131e-10, 5.50478981e-10, 5.55577622e-10, 5.60723488e-10, 5.65917016e-10, 5.71158648e-10, 5.76448828e-10, 5.81788007e-10, 5.87176639e-10, 5.92615181e-10, 5.98104096e-10, 6.03643851e-10, 6.09234915e-10, 6.14877765e-10, 6.20572881e-10, 6.26320745e-10, 6.32121848e-10, 6.37976681e-10, 6.43885743e-10, 6.49849535e-10, 6.55868566e-10, 6.61943346e-10, 6.68074392e-10, 6.74262224e-10, 6.80507370e-10, 6.86810359e-10, 6.93171728e-10, 6.99592017e-10, 7.06071771e-10, 7.12611543e-10, 7.19211887e-10, 7.25873365e-10, 7.32596543e-10, 7.39381992e-10, 7.46230289e-10, 7.53142017e-10, 7.60117762e-10, 7.67158118e-10, 7.74263683e-10, 7.81435061e-10, 7.88672862e-10, 7.95977700e-10, 8.03350198e-10, 8.10790981e-10, 8.18300682e-10, 8.25879939e-10, 8.33529397e-10, 8.41249705e-10, 8.49041520e-10, 8.56905505e-10, 8.64842328e-10, 8.72852662e-10, 8.80937190e-10, 8.89096599e-10, 8.97331581e-10, 9.05642838e-10, 9.14031075e-10, 9.22497005e-10, 9.31041349e-10, 9.39664831e-10, 9.48368187e-10, 9.57152154e-10, 9.66017480e-10, 9.74964918e-10, 9.83995230e-10, 9.93109181e-10, 1.00230755e-09, 1.01159111e-09, 1.02096066e-09, 1.03041699e-09, 1.03996091e-09, 1.04959323e-09, 1.05931476e-09, 1.06912634e-09, 1.07902879e-09, 1.08902296e-09, 1.09910970e-09, 1.10928986e-09, 1.11956432e-09, 1.12993394e-09, 1.14039960e-09, 1.15096220e-09, 1.16162263e-09, 1.17238180e-09, 1.18324063e-09, 1.19420003e-09, 1.20526094e-09, 1.21642429e-09, 1.22769105e-09, 1.23906216e-09, 1.25053859e-09, 1.26212131e-09, 1.27381132e-09, 1.28560961e-09, 1.29751717e-09, 1.30953502e-09, 1.32166418e-09, 1.33390569e-09, 1.34626058e-09, 1.35872990e-09, 1.37131472e-09, 1.38401610e-09, 1.39683512e-09, 1.40977287e-09, 1.42283046e-09, 1.43600898e-09, 1.44930957e-09, 1.46273336e-09, 1.47628147e-09, 1.48995507e-09, 1.50375532e-09, 1.51768339e-09, 1.53174046e-09, 1.54592774e-09, 1.56024641e-09, 1.57469771e-09, 1.58928287e-09, 1.60400311e-09, 1.61885969e-09, 1.63385388e-09, 1.64898694e-09, 1.66426018e-09, 1.67967487e-09, 1.69523234e-09, 1.71093391e-09, 1.72678090e-09, 1.74277468e-09, 1.75891659e-09, 1.77520801e-09, 1.79165033e-09, 1.80824493e-09, 1.82499324e-09, 1.84189668e-09, 1.85895668e-09, 1.87617469e-09, 1.89355218e-09, 1.91109062e-09, 1.92879151e-09, 1.94665634e-09, 1.96468665e-09, 1.98288395e-09, 2.00124980e-09, 2.01978576e-09, 2.03849340e-09, 2.05737431e-09, 2.07643011e-09, 2.09566240e-09, 2.11507282e-09, 2.13466303e-09, 2.15443469e-09, 2.17438948e-09, 2.19452909e-09, 2.21485523e-09, 2.23536965e-09, 2.25607407e-09, 2.27697026e-09, 2.29805999e-09, 2.31934506e-09, 2.34082728e-09, 2.36250847e-09, 2.38439047e-09, 2.40647515e-09, 2.42876438e-09, 2.45126006e-09, 2.47396410e-09, 2.49687843e-09, 2.52000499e-09, 2.54334576e-09, 2.56690272e-09, 2.59067786e-09, 2.61467321e-09, 2.63889081e-09, 2.66333273e-09, 2.68800102e-09, 2.71289780e-09, 2.73802518e-09, 2.76338529e-09, 2.78898029e-09, 2.81481236e-09, 2.84088369e-09, 2.86719650e-09, 2.89375302e-09, 2.92055551e-09, 2.94760626e-09, 2.97490755e-09, 3.00246171e-09, 3.03027108e-09, 3.05833803e-09, 3.08666494e-09, 3.11525422e-09, 3.14410830e-09, 3.17322963e-09, 3.20262069e-09, 3.23228398e-09, 3.26222201e-09, 3.29243733e-09, 3.32293252e-09, 3.35371015e-09, 3.38477286e-09, 3.41612327e-09, 3.44776405e-09, 3.47969790e-09, 3.51192753e-09, 3.54445567e-09, 3.57728510e-09, 3.61041860e-09, 3.64385898e-09, 3.67760910e-09, 3.71167182e-09, 3.74605003e-09, 3.78074666e-09, 3.81576466e-09, 3.85110700e-09, 3.88677669e-09, 3.92277676e-09, 3.95911027e-09, 3.99578030e-09, 4.03278998e-09, 4.07014245e-09, 4.10784089e-09, 4.14588850e-09, 4.18428851e-09, 4.22304419e-09, 4.26215883e-09, 4.30163576e-09, 4.34147833e-09, 4.38168993e-09, 4.42227398e-09, 4.46323393e-09, 4.50457325e-09, 4.54629547e-09, 4.58840413e-09, 4.63090280e-09, 4.67379511e-09, 4.71708469e-09, 4.76077523e-09, 4.80487044e-09, 4.84937407e-09, 4.89428990e-09, 4.93962174e-09, 4.98537346e-09, 5.03154895e-09, 5.07815211e-09, 5.12518693e-09, 5.17265739e-09, 5.22056753e-09, 5.26892142e-09, 5.31772318e-09, 5.36697695e-09, 5.41668691e-09, 5.46685730e-09, 5.51749238e-09, 5.56859644e-09, 5.62017385e-09, 5.67222897e-09, 5.72476624e-09, 5.77779012e-09, 5.83130511e-09, 5.88531578e-09, 5.93982669e-09, 5.99484250e-09, 6.05036788e-09, 6.10640754e-09, 6.16296626e-09, 6.22004883e-09, 6.27766011e-09, 6.33580499e-09, 6.39448843e-09, 6.45371540e-09, 6.51349095e-09, 6.57382014e-09, 6.63470812e-09, 6.69616005e-09, 6.75818117e-09, 6.82077673e-09, 6.88395207e-09, 6.94771255e-09, 7.01206359e-09, 7.07701066e-09, 7.14255929e-09, 7.20871503e-09, 7.27548353e-09, 7.34287045e-09, 7.41088152e-09, 7.47952252e-09, 7.54879928e-09, 7.61871770e-09, 7.68928372e-09, 7.76050334e-09, 7.83238260e-09, 7.90492762e-09, 7.97814457e-09, 8.05203967e-09, 8.12661920e-09, 8.20188950e-09, 8.27785697e-09, 8.35452806e-09, 8.43190929e-09, 8.51000725e-09, 8.58882856e-09, 8.66837993e-09, 8.74866812e-09, 8.82969996e-09, 8.91148232e-09, 8.99402217e-09, 9.07732653e-09, 9.16140246e-09, 9.24625712e-09, 9.33189772e-09, 9.41833153e-09, 9.50556592e-09, 9.59360829e-09, 9.68246612e-09, 9.77214697e-09, 9.86265846e-09, 9.95400829e-09, 1.00462042e-08, 1.01392541e-08, 1.02331658e-08, 1.03279473e-08, 1.04236067e-08, 1.05201522e-08, 1.06175918e-08, 1.07159340e-08, 1.08151870e-08, 1.09153594e-08, 1.10164595e-08, 1.11184960e-08, 1.12214777e-08, 1.13254132e-08, 1.14303113e-08, 1.15361810e-08, 1.16430313e-08, 1.17508713e-08, 1.18597101e-08, 1.19695570e-08, 1.20804213e-08, 1.21923125e-08, 1.23052400e-08, 1.24192135e-08, 1.25342427e-08, 1.26503372e-08, 1.27675070e-08, 1.28857621e-08, 1.30051125e-08, 1.31255684e-08, 1.32471399e-08, 1.33698374e-08, 1.34936714e-08, 1.36186524e-08, 1.37447909e-08, 1.38720978e-08, 1.40005838e-08, 1.41302599e-08, 1.42611371e-08, 1.43932264e-08, 1.45265393e-08, 1.46610868e-08, 1.47968806e-08, 1.49339322e-08, 1.50722531e-08, 1.52118552e-08, 1.53527503e-08, 1.54949504e-08, 1.56384676e-08, 1.57833141e-08, 1.59295021e-08, 1.60770442e-08, 1.62259529e-08, 1.63762407e-08, 1.65279206e-08, 1.66810054e-08, 1.68355080e-08, 1.69914417e-08, 1.71488197e-08, 1.73076553e-08, 1.74679622e-08, 1.76297538e-08, 1.77930439e-08, 1.79578465e-08, 1.81241755e-08, 1.82920450e-08, 1.84614695e-08, 1.86324631e-08, 1.88050406e-08, 1.89792164e-08, 1.91550056e-08, 1.93324229e-08, 1.95114835e-08, 1.96922026e-08, 1.98745955e-08, 2.00586778e-08, 2.02444651e-08, 2.04319732e-08, 2.06212180e-08, 2.08122157e-08, 2.10049824e-08, 2.11995346e-08, 2.13958887e-08, 2.15940615e-08, 2.17940698e-08, 2.19959307e-08, 2.21996612e-08, 2.24052787e-08, 2.26128007e-08, 2.28222447e-08, 2.30336287e-08, 2.32469706e-08, 2.34622885e-08, 2.36796007e-08, 2.38989257e-08, 2.41202821e-08, 2.43436887e-08, 2.45691646e-08, 2.47967289e-08, 2.50264010e-08, 2.52582003e-08, 2.54921465e-08, 2.57282597e-08, 2.59665597e-08, 2.62070670e-08, 2.64498018e-08, 2.66947849e-08, 2.69420371e-08, 2.71915794e-08, 2.74434330e-08, 2.76976194e-08, 2.79541600e-08, 2.82130768e-08, 2.84743917e-08, 2.87381269e-08, 2.90043049e-08, 2.92729484e-08, 2.95440800e-08, 2.98177229e-08, 3.00939003e-08, 3.03726358e-08, 3.06539530e-08, 3.09378757e-08, 3.12244282e-08, 3.15136348e-08, 3.18055202e-08, 3.21001090e-08, 3.23974263e-08, 3.26974974e-08, 3.30003479e-08, 3.33060034e-08, 3.36144900e-08, 3.39258338e-08, 3.42400614e-08, 3.45571994e-08, 3.48772747e-08, 3.52003147e-08, 3.55263468e-08, 3.58553986e-08, 3.61874981e-08, 3.65226736e-08, 3.68609536e-08, 3.72023668e-08, 3.75469422e-08, 3.78947092e-08, 3.82456972e-08, 3.85999362e-08, 3.89574562e-08, 3.93182876e-08, 3.96824610e-08, 4.00500076e-08, 4.04209584e-08, 4.07953450e-08, 4.11731993e-08, 4.15545533e-08, 4.19394396e-08, 4.23278907e-08, 4.27199397e-08, 4.31156199e-08, 4.35149650e-08, 4.39180089e-08, 4.43247859e-08, 4.47353305e-08, 4.51496777e-08, 4.55678627e-08, 4.59899209e-08, 4.64158883e-08, 4.68458012e-08, 4.72796959e-08, 4.77176095e-08, 4.81595791e-08, 4.86056423e-08, 4.90558371e-08, 4.95102016e-08, 4.99687745e-08, 5.04315949e-08, 5.08987019e-08, 5.13701354e-08, 5.18459354e-08, 5.23261424e-08, 5.28107971e-08, 5.32999408e-08, 5.37936150e-08, 5.42918618e-08, 5.47947234e-08, 5.53022426e-08, 5.58144625e-08, 5.63314267e-08, 5.68531791e-08, 5.73797641e-08, 5.79112265e-08, 5.84476113e-08, 5.89889643e-08, 5.95353313e-08, 6.00867589e-08, 6.06432940e-08, 6.12049837e-08, 6.17718760e-08, 6.23440189e-08, 6.29214611e-08, 6.35042517e-08, 6.40924402e-08, 6.46860766e-08, 6.52852114e-08, 6.58898955e-08, 6.65001803e-08, 6.71161177e-08, 6.77377600e-08, 6.83651600e-08, 6.89983712e-08, 6.96374473e-08, 7.02824426e-08, 7.09334120e-08, 7.15904109e-08, 7.22534949e-08, 7.29227206e-08, 7.35981448e-08, 7.42798248e-08, 7.49678187e-08, 7.56621850e-08, 7.63629826e-08, 7.70702711e-08, 7.77841107e-08, 7.85045620e-08, 7.92316862e-08, 7.99655453e-08, 8.07062014e-08, 8.14537177e-08, 8.22081576e-08, 8.29695852e-08, 8.37380654e-08, 8.45136633e-08, 8.52964450e-08, 8.60864770e-08, 8.68838264e-08, 8.76885609e-08, 8.85007491e-08, 8.93204600e-08, 9.01477631e-08, 9.09827289e-08, 9.18254284e-08, 9.26759330e-08, 9.35343152e-08, 9.44006479e-08, 9.52750047e-08, 9.61574600e-08, 9.70480888e-08, 9.79469667e-08, 9.88541702e-08, 9.97697764e-08, 1.00693863e-07, 1.01626509e-07, 1.02567793e-07, 1.03517796e-07, 1.04476597e-07, 1.05444279e-07, 1.06420924e-07, 1.07406615e-07, 1.08401436e-07, 1.09405471e-07, 1.10418805e-07, 1.11441525e-07, 1.12473718e-07, 1.13515471e-07, 1.14566873e-07, 1.15628013e-07, 1.16698982e-07, 1.17779870e-07, 1.18870770e-07, 1.19971774e-07, 1.21082975e-07, 1.22204469e-07, 1.23336350e-07, 1.24478715e-07, 1.25631660e-07, 1.26795285e-07, 1.27969687e-07, 1.29154967e-07, 1.30351224e-07, 1.31558562e-07, 1.32777083e-07, 1.34006890e-07, 1.35248087e-07, 1.36500781e-07, 1.37765077e-07, 1.39041083e-07, 1.40328908e-07, 1.41628662e-07, 1.42940453e-07, 1.44264395e-07, 1.45600600e-07, 1.46949180e-07, 1.48310251e-07, 1.49683929e-07, 1.51070330e-07, 1.52469573e-07, 1.53881775e-07, 1.55307057e-07, 1.56745541e-07, 1.58197348e-07, 1.59662602e-07, 1.61141428e-07, 1.62633950e-07, 1.64140297e-07, 1.65660596e-07, 1.67194976e-07, 1.68743568e-07, 1.70306503e-07, 1.71883914e-07, 1.73475936e-07, 1.75082703e-07, 1.76704353e-07, 1.78341022e-07, 1.79992851e-07, 1.81659979e-07, 1.83342548e-07, 1.85040702e-07, 1.86754584e-07, 1.88484341e-07, 1.90230119e-07, 1.91992067e-07, 1.93770334e-07, 1.95565072e-07, 1.97376433e-07, 1.99204571e-07, 2.01049642e-07, 2.02911802e-07, 2.04791210e-07, 2.06688025e-07, 2.08602409e-07, 2.10534524e-07, 2.12484535e-07, 2.14452608e-07, 2.16438909e-07, 2.18443607e-07, 2.20466874e-07, 2.22508880e-07, 2.24569800e-07, 2.26649808e-07, 2.28749082e-07, 2.30867799e-07, 2.33006141e-07, 2.35164288e-07, 2.37342425e-07, 2.39540736e-07, 2.41759408e-07, 2.43998630e-07, 2.46258592e-07, 2.48539486e-07, 2.50841506e-07, 2.53164848e-07, 2.55509709e-07, 2.57876289e-07, 2.60264788e-07, 2.62675410e-07, 2.65108360e-07, 2.67563844e-07, 2.70042072e-07, 2.72543253e-07, 2.75067601e-07, 2.77615329e-07, 2.80186656e-07, 2.82781798e-07, 2.85400977e-07, 2.88044415e-07, 2.90712338e-07, 2.93404971e-07, 2.96122544e-07, 2.98865287e-07, 3.01633435e-07, 3.04427221e-07, 3.07246884e-07, 3.10092664e-07, 3.12964801e-07, 3.15863541e-07, 3.18789129e-07, 3.21741815e-07, 3.24721849e-07, 3.27729485e-07, 3.30764978e-07, 3.33828586e-07, 3.36920571e-07, 3.40041193e-07, 3.43190720e-07, 3.46369418e-07, 3.49577557e-07, 3.52815412e-07, 3.56083255e-07, 3.59381366e-07, 3.62710025e-07, 3.66069515e-07, 3.69460121e-07, 3.72882131e-07, 3.76335836e-07, 3.79821531e-07, 3.83339510e-07, 3.86890074e-07, 3.90473524e-07, 3.94090164e-07, 3.97740302e-07, 4.01424249e-07, 4.05142317e-07, 4.08894823e-07, 4.12682085e-07, 4.16504425e-07, 4.20362168e-07, 4.24255643e-07, 4.28185180e-07, 4.32151113e-07, 4.36153779e-07, 4.40193519e-07, 4.44270675e-07, 4.48385595e-07, 4.52538628e-07, 4.56730127e-07, 4.60960449e-07, 4.65229952e-07, 4.69539001e-07, 4.73887961e-07, 4.78277202e-07, 4.82707097e-07, 4.87178022e-07, 4.91690358e-07, 4.96244488e-07, 5.00840799e-07, 5.05479682e-07, 5.10161531e-07, 5.14886745e-07, 5.19655724e-07, 5.24468875e-07, 5.29326606e-07, 5.34229330e-07, 5.39177464e-07, 5.44171429e-07, 5.49211648e-07, 5.54298552e-07, 5.59432571e-07, 5.64614142e-07, 5.69843706e-07, 5.75121707e-07, 5.80448594e-07, 5.85824820e-07, 5.91250841e-07, 5.96727120e-07, 6.02254120e-07, 6.07832313e-07, 6.13462172e-07, 6.19144176e-07, 6.24878807e-07, 6.30666554e-07, 6.36507908e-07, 6.42403366e-07, 6.48353429e-07, 6.54358602e-07, 6.60419396e-07, 6.66536327e-07, 6.72709914e-07, 6.78940681e-07, 6.85229160e-07, 6.91575883e-07, 6.97981391e-07, 7.04446228e-07, 7.10970943e-07, 7.17556092e-07, 7.24202233e-07, 7.30909933e-07, 7.37679760e-07, 7.44512291e-07, 7.51408106e-07, 7.58367791e-07, 7.65391939e-07, 7.72481145e-07, 7.79636013e-07, 7.86857151e-07, 7.94145172e-07, 8.01500696e-07, 8.08924349e-07, 8.16416760e-07, 8.23978568e-07, 8.31610415e-07, 8.39312950e-07, 8.47086827e-07, 8.54932707e-07, 8.62851257e-07, 8.70843150e-07, 8.78909065e-07, 8.87049689e-07, 8.95265713e-07, 9.03557835e-07, 9.11926760e-07, 9.20373200e-07, 9.28897872e-07, 9.37501502e-07, 9.46184819e-07, 9.54948564e-07, 9.63793480e-07, 9.72720319e-07, 9.81729841e-07, 9.90822810e-07, 1.00000000e-06] Hz>¶n
= 20¶name
= 'Generic PTA'¶sigma
= <Quantity 100. ns>¶zeta_sum
= 4.74¶gravpy.interferometers.
Virgo
(frequencies=None, configuration=None, obs_time=None)[source]¶Bases: gravpy.interferometers.Interferometer
The Virgo Interferometer
Methods
antenna_pattern (self, theta, phi, psi) |
Produce the antenna pattern for a detector, given its detector tensor, and a set of angles. |
energy_density (self[, frequencies]) |
Produce the sensitivity curve of the detector in terms of the energy density. |
noise_amplitude (self[, frequencies]) |
The noise amplitude for a detector is defined as $h^2_n(f) = f S_n(f)$ and is designed to incorporate the effect of integrating an inspiralling signal. |
noise_spectrum (self, x) |
Return the default noise spectrum for the interferometer. |
plot (self[, axis]) |
Plot the noise curve for this detector. |
psd (self[, frequencies]) |
Calculate the one-sided power spectral desnity for a detector. |
skymap (self[, nx, ny, psi]) |
Produce a skymap of the antenna repsonse of the interferometer. |
srpsd |
S0
= <Quantity 3.2e-46 1 / Hz>¶f0
= <Quantity 500. Hz>¶fs
= <Quantity 20. Hz>¶name
= 'Virgo'¶