pespace.detector.antenna¶
Module for descriping detectors and single link response models.
Classes
Frequency domain response model using long wavelength approximation. |
|
Frequency domain response model based on Marsat et al. (2018). |
|
Frequency domain response model using static long wavelength approximation. |
|
|
Class representing a space-borne gravitational wave detector. |
Abstract base class for single link response models. |
- class pespace.detector.antenna.InterferometerAntenna(name, tdi_data, orbit_model, response_model, tdi_combination)[source]¶
Bases:
objectClass representing a space-borne gravitational wave detector.
This class use a orbit model to define a detector, and hosting data of tdi channels, models for responses of single links, models for TDI combination. This class can be used to compute detector responses, inject signals into the data, and calculate SNR. It serves as the main interface for users to interact with the detector.
- Parameters:
name (str)
tdi_data (TDIChannelData)
orbit_model (str | OrbitModelBase)
response_model (SingleLinkResponseModel)
tdi_combination (TDICombinationModel)
- __init__(name, tdi_data, orbit_model, response_model, tdi_combination)[source]¶
Initialize the InterferometerAntenna.
- Parameters:
name (str) – Name of the interferometer.
tdi_data (TDIChannelData) – TDI channel data object containing frequency/time domain data.
orbit_model (str or OrbitModelBase) – Orbit model of the detector. Can be a string name of an available orbit model or an instance of
OrbitModelBase.response_model (SingleLinkResponseModel) – Model for computing single link response.
tdi_combination (TDICombinationModel) – Model for TDI combination to compute TDI observables from single link responses.
- Raises:
ValueError – If the
orbit_modelstring is not a recognized orbit model name.TypeError – If
orbit_modelis neither a string nor anOrbitModelBaseinstance.
- Return type:
None
- update_detector_response(waveform, lam, beta, psi, tc)[source]¶
Update detector responses for a given waveform.
- Parameters:
waveform (ti.StructField) – Waveform data.
lam (float) – Ecliptic longitude of the source.
beta (float) – Ecliptic latitude of the source.
psi (float) – Polarization angle.
tc (float) – Coalescence time.
- Return type:
None
- inject_signal(waveform, lam, beta, psi, tc)[source]¶
Inject a signal into the detector data.
- Parameters:
waveform (ti.StructField) – Waveform data.
lam (float) – Ecliptic longitude of the source.
beta (float) – Ecliptic latitude of the source.
psi (float) – Polarization angle.
tc (float) – Coalescence time.
- Raises:
NotImplementedError – If the domain is not supported.
- Return type:
None
- get_optimal_snr(waveform, lam, beta, psi, tc)[source]¶
Calculate the optimal SNR for the given waveform.
Placeholder implementation
- Parameters:
waveform (ti.StructField) – Waveform data structure containing gravitational wave polarizations.
lam (float) – Ecliptic longitude of the source in radians.
beta (float) – Ecliptic latitude of the source in radians.
psi (float) – Polarization angle in radians.
tc (float) – Coalescence time in seconds.
- Returns:
Dictionary containing SNR for (A, E, T) channels and the total.
- Return type:
dict[str, float]
- property tdi_response_numpy: dict[str, ndarray[tuple[Any, ...], dtype[_ScalarT]]]¶
Get the TDI response as a dictionary of NumPy arrays.
- Returns:
TDI response data.
- Return type:
dict[str, NDArray]
- property single_link_response_numpy: dict[str, ndarray[tuple[Any, ...], dtype[_ScalarT]]]¶
Get the single link response as a dictionary of NumPy arrays.
- Returns:
Single link response data.
- Return type:
dict[str, NDArray]
- _data_oriented = True¶
- class pespace.detector.antenna.SingleLinkResponseModel[source]¶
Bases:
ABCAbstract base class for single link response models.
This class defines the interface for computing single link responses. Subclasses must implement the
update_single_link_responsemethod to compute responses based on specific models.Notes
All subclasses should implement the
init_single_link_response_modelandupdate_single_link_responsemethods.- abstractmethod init_single_link_response_model(detector)[source]¶
Initialize the single link response model.
- Parameters:
detector (InterferometerAntenna) – The detector instance to initialize the response model for.
- Return type:
None
- abstractmethod update_single_link_response()[source]¶
Update the single link response.
- Return type:
None
- _abc_impl = <_abc._abc_data object>¶
- class pespace.detector.antenna.FDResponseModelMarset2018[source]¶
Bases:
SingleLinkResponseModelFrequency domain response model based on Marsat et al. (2018).
- init_single_link_response_model(detector)[source]¶
Initialize the single link response model.
This method sets up
taichi.fieldfor storing single link responses and creates a weak reference to the detector to avoid circular references.- Parameters:
detector (InterferometerAntenna) – The detector instance to initialize the response model for.
- Return type:
None
- update_single_link_response(waveform, lam, beta, psi, tc)[source]¶
Update the single link response for the given waveform parameters.
- Parameters:
waveform (ti.template) – Waveform data structure containing polarization modes. Can be a structure with ‘plus’, ‘cross’, and ‘tf’ keys, or a structure with multiple modes.
lam (float) – Ecliptic longitude of the source in radians.
beta (float) – Ecliptic latitude of the source in radians.
psi (float) – Polarization angle in radians.
tc (float) – Coalescence time in seconds.
- _get_responses_at_fi(hp, hc, tf, fi, pol_tensor, k)[source]¶
Calculate single link responses at a specific frequency.
- Parameters:
hp (ti_complex) – Plus polarization at the given frequency.
hc (ti_complex) – Cross polarization at the given frequency.
tf (float) – time at the given frequency in seconds.
fi (float) – Frequency in Hz.
pol_tensor (PolarizationStruct) – Polarization tensor structure containing plus and cross components
k (ti.types.vector(3, float)) – Unit vector pointing in the GW propagation direction.
- Returns:
Structure containing complex responses for six links: link12, link21, link23, link32, link31, link13.
- Return type:
SingleLinkStructComplex
- _abc_impl = <_abc._abc_data object>¶
- _data_oriented = True¶
- class pespace.detector.antenna.FDResponseModelLongWavelength[source]¶
Bases:
SingleLinkResponseModelFrequency domain response model using long wavelength approximation.
Placeholder implementation
- _abc_impl = <_abc._abc_data object>¶
- class pespace.detector.antenna.FDResponseModelStaticLongWavelength[source]¶
Bases:
SingleLinkResponseModelFrequency domain response model using static long wavelength approximation.
Placeholder implementation
- _abc_impl = <_abc._abc_data object>¶