The Interferometers Module

class gravpy.interferometers.AdvancedLIGO(frequencies=None, configuration=None, obs_time=None)[source]

The advanced LIGO Interferometer.

Supported configurations are

Configuration

Description

O1

First observing run sensitivity

A+

The advanced-plus design sensitivity

See also

InitialLIGO

The initial LIGO interferometer

Examples

Specific configurations can be loaded by passing the configuration keyword argument.

>>> aligo = ifo.AdvancedLIGO(configuration="O1")

It’s straight-forward to plot the sensitivity curve for the detector at design sensitivity.

>>> import matplotlib.pyplot as plt
>>> import gravpy.interferometers as ifo
>>> aligo = ifo.AdvancedLIGO()
>>> f, ax = plt.subplots(1)
>>> aligo.plot(ax)

Which should produce an output along the lines of

(Source code, png)

../_images/interferometer-1.png
Attributes
configurationstr, optional

A specific configuration for a given interferometer. This allows for the sensitivity from a given run to be used, or from a specific tuning.

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.

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(self[, frequencies])

The square-root of the PSD.

noise_spectrum

class gravpy.interferometers.BDecigo(frequencies=None, configuration=None, obs_time=None)[source]

The B-Decigo noise curve [R743444ceb418-arxivcurve].

References

R743444ceb418-arxivcurve

arxiv:1802.06977

Examples

(Source code, png)

../_images/interferometer-2.png
Attributes
configuration

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.

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(self[, frequencies])

The square-root of the PSD.

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
frequenciesndarray

An array of frequencies where the PSD should be evaluated.

configurationstr

The configuration of the detector for which the curve should be returned.

class gravpy.interferometers.BigBangObservatory(frequencies=None, configuration=None, obs_time=None)[source]

The Big Bang Observatory.

Attributes
configuration

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.

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(self[, frequencies])

The square-root of the PSD.

psd(self, frequencies)[source]

The power spectrum density of the detector, taken from equation 6 of arxiv:1101.3940.

class gravpy.interferometers.Decigo(frequencies=None, configuration=None, obs_time=None)[source]

The full, original Decigo noise curve, from arxiv:1101.3940.

Examples

(Source code, png)

../_images/interferometer-3.png
Attributes
configuration

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.

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(self[, frequencies])

The square-root of the PSD.

psd(self, frequencies)[source]

The power spectrum density of the detector, taken from equation 5 of arxiv:1101.3940.

class gravpy.interferometers.Detector[source]

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(self[, frequencies])

The square-root of the PSD.

energy_density(self, frequencies=None)[source]

Produce the sensitivity curve of the detector in terms of the energy density.

Parameters
frequenciesndarray

An array of frequencies, in units of Hz

Returns
energy_densityndarray

An array of the dimensionless energy density of the sensitivity of the detector.

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
frequenciesndarray

An array of frequencies, in units of Hz

Returns
noise_amplitudendarray

An array of the noise amplitudes correcsponding to the input frequency values

plot(self, axis=None, **kwargs)[source]

Plot the noise curve for this detector.

srpsd(self, frequencies=None)[source]

The square-root of the PSD.

gravpy.interferometers.ET

alias of gravpy.interferometers.EinsteinTelescope

class gravpy.interferometers.EinsteinTelescope(frequencies=None, configuration=None, obs_time=None)[source]

The Einstein Telescope 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.

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(self[, frequencies])

The square-root of the PSD.

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
frequenciesndarray

An array of frequencies where the PSD should be evaluated.

configurationstr

The configuration of the detector for which the curve should be returned.

class gravpy.interferometers.EvolvedLISA(frequencies=None, configuration=None, obs_time=None)[source]

The eLISA Interferometer

Attributes
configuration

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.

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(self[, frequencies])

The square-root of the PSD.

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
frequenciesndarray

An array of frequencies where the PSD should be evaluated.

configurationstr

The configuration of the detector for which the curve should be returned.

class gravpy.interferometers.GEO(frequencies=None, configuration=None, obs_time=None)[source]

The GEO600 Interferometer

Attributes
configuration

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.

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(self[, frequencies])

The square-root of the PSD.

noise_spectrum

class gravpy.interferometers.InitialLIGO(frequencies=None, configuration=None, obs_time=None)[source]

The iLIGO Interferometer

Attributes
configuration

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.

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(self[, frequencies])

The square-root of the PSD.

noise_spectrum

class gravpy.interferometers.Interferometer(frequencies=None, configuration=None, obs_time=None)[source]

The base class to describe an interferometer.

Attributes
configurationstr, optional

A specific configuration for a given interferometer. This allows for the sensitivity from a given run to be used, or from a specific tuning.

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.

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(self[, frequencies])

The square-root of the PSD.

antenna_pattern(self, theta, phi, psi)[source]

Produce the antenna pattern for a detector, given its detector tensor, and a set of angles.

Parameters
thetafloat

The altitude angle.

phifloat

The azimuthal angle.

psifloat or list

The polarisation angle. If psi is a list of two angles the returned antenna patterns will be the integrated response between those two polsarisation angles.

Returns
F+float

The antenna response to the ‘+’ polarisation state.

Fxfloat

The antenna response to the ‘x’ polsarisation state.

|F|float

The combined antenna response (sqrt(F+^2 + Fx^2)).

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
frequenciesndarray

An array of frequencies where the PSD should be evaluated.

configurationstr

The configuration of the detector for which the curve should be returned.

skymap(self, nx=200, ny=100, psi=[0, 3.141592653589793])[source]

Produce a skymap of the antenna repsonse of the interferometer.

Parameters
nxint

The number of locations along the horizontal axis to produce the map at defaults to 200.

nyint

The number of locations along the vertical axis to produce the map at defaults to 100

psifloat or list

The polarisation angle to produce the map at. If a list is given then the integrated response is given between those angles.

Returns
xndarray

The x values for the map

y: ndarray

The y values for the map

antennapndarray

The values of the sensitivity in the + polarisation

antennaxndarray

The values of the sensitivity in the x polarisation

antennacndarray

The values of the combined polarisation sensitivities

class gravpy.interferometers.LISA(frequencies=None, configuration=None, obs_time=None)[source]

The LISA Interferometer in its mission-accepted state, as of 2018

Attributes
configuration

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.

plot(self[, axis])

Plot the noise curve for this detector.

psd(self, frequencies)

The power spectral density.

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(self[, frequencies])

The square-root of the PSD.

confusion_noise(self, frequencies, observation_time=0.5)[source]

The noise created by unresolvable galactic binaries at low frequencies.

metrology_noise(self, frequencies)[source]

Calculate the noise due to the single-link optical metrology, from arxiv:1803.01944.

psd(self, frequencies)[source]

The power spectral density.

single_mass_noise(self, frequencies)[source]

The acceleration noise for a single test mass.

class gravpy.interferometers.TAMA(frequencies=None, configuration=None, obs_time=None)[source]

The TAMA Interferometer

Attributes
configuration

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.

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(self[, frequencies])

The square-root of the PSD.

noise_spectrum

class gravpy.interferometers.TimingArray[source]

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.

srpsd(self[, frequencies])

The square-root of the PSD.

Pn

Sn

noise_spectrum

psd

class gravpy.interferometers.Virgo(frequencies=None, configuration=None, obs_time=None)[source]

The Virgo Interferometer

Attributes
configuration

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.

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(self[, frequencies])

The square-root of the PSD.

noise_spectrum