Add luna_push, a subclass to pycbc.detector, to apply time delays to detectors in the SSB frame#5228
Open
jada-garofalo wants to merge 3 commits intogwastro:masterfrom
Open
Add luna_push, a subclass to pycbc.detector, to apply time delays to detectors in the SSB frame#5228jada-garofalo wants to merge 3 commits intogwastro:masterfrom
jada-garofalo wants to merge 3 commits intogwastro:masterfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
luna_push is a new class for pycbc.detector for space-based (and specifically Moon-based) detectors moving in the solar system barycentric (SSB) frame over long detection periods, where sizeable shifts in orbital position over the observation period leads to the GW signal taking noticeably more or less time to reach the detector.
Motivation
With plans for next-generation detectors like LISA and LILA, it becomes necessary to account for orbital motion about the (solar system's) barycenter. Due to these systems operating at frequency bands orders of magnitude below that of current ground-based detectors, they also have the potential to utilize much longer observation periods. During these periods for a given event (say, half a year), then the detector will, depending on its orbital radius, travel rather far in its orbit about the barycenter. During this time, the detector may also move closer and/or farther away from the incoming signal. This introduces a positive and/or negative time delay.
This class works to compute this time delay (a function of orbital position) over a discretized observation period (and corresponding positions).
Note that while "delay" usually implies a negative shift or drag, here it can also function as a push. For example, consider a detector that is 1 AU closer to the GW source than the barycenter. This detector would receive the signal about 500 seconds prior to a detector located at the barycenter.
Contents
pycbc/detector/luna_push.py has been added, which is the main container for the luna_push class and associated helper classes and docstrings. Largely this class uses numpy array methods to apply the delay transformations, along with astropy methods for unit tracking and spacial evolution, to compute and apply delays on the original waveform.
pycbc/detector/init.py has been edited to initialize luna_push.
Testing performed
Beyond incremental sanity tests during development (removed for clutter), the primary tests that validate this code have been included (commented out) at the bottom of luna_shift.py, which have been test run in separate files using a pip install of the development fork for this class. These were left present to give guidance to a user who wants to explore how to properly apply this class, and are specifically written for the LILA proposal case.
Example one (1) generates an example case of delaying a waveform for some given LILA detector parameters, and also generates detector frame strain as a test of the adapted antenna response function.
Example two (2), for some given LILA detector parameters, scans across various flow values to see how the match between the original and the delayed waveforms varies with sky location.
Additional notes
An important note is that a lot of this code is written with specifically the Moon-based detector use case in mind. In fact, some of the critical functions and definitions in the class are still hard-defined for Moon-based detectors. While work has been done to increase generality to all detectors orbiting in the SSB frame, more work still has to be done.