-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introducing pythonized Omega scans #86
Conversation
@duncanmmacleod, The pipeline failure reported here seems to be a compatibility issue between
The check I just added to |
and refactored test suite into a sub-package
@duncanmmacleod, thanks much! I'm working on another commit I want to push before lunch, so I'll rebase before pushing that and let you know when the PR is updated. |
…nder gwdetchar.omega. The gwdetchar-omega tool is invoked very similarly to wdq.
… gwdetchar.omega.plot, and can be invoked for any GWPy Series object with a time axis. This commit also refactors a bit of the HTML code.
…and autoscaled q-transforms; adjusting the whitening procedure so that we don't whiten twice.
…les to plots that display channel name, GPS time, and Q (where applicable); adjusting channel data tables to show GPS time, frequency, Q, and normalized energy of the loudest time-frequency tile.
…ectly show properties of the loudest tile within 0.5 seconds on either side of the central GPS time.
…ypes (e.g. qscan_whitened) and whose values are a list of FancyPlot objects, which get passed to the gwdetchar.omega.html module.
…ng horrendous spectral leakage
…ale of each qscan's energy significance threshold
… well as entire blocks if all their channels are unprocessed
…ery channel block
… number of plots (could use some more development in the future)
…may not necessarily be first)
@duncanmmacleod, I've now reproduced all functionality from the Matlab Omega scans, including the features mentioned above and the following new bells and whistles:
I have a few other ideas in the short term, but perfect is the enemy of good enough, so I'll attack those in future issues and pull requests. Other developers are welcome to join in the fun as well. tl;dr: I believe this code is ready for primetime, so please go ahead and merge. |
…ix iterates over a copy of each chanel list, then calls remove() from the original list object
…as dark as the surrounding text. (Table captions are much lighter by default and thus harder to read.)
@duncanmmacleod I've made a first pass at pythonizing the long-used Omega scan code, which is currently written Matlab. The table below points to a couple of test pages I stood up for direct comparison against the current production code. (All tests were run on GPS time 1187008882.0, the time of GW170817.)
The test pages were configured to show four channels (
GDS-CALIB_STRAIN
,CAL-DELTAL_EXTERNAL_DQ
,CAL-PCALY_RX_PD_OUT_DQ
, andCAL-PCALY_TX_PD_OUT_DQ
) for H1 and L1 as a proof of concept, but this can easily be extended to Virgo and KAGRA (see below).I've tried to port over functionality that people like from the production Omega scans as much as possible. This currently includes viewing blocks of channels; buttons that toggle between types of timeseries and Q-transforms; and an
about
page with the runtime configuration (see "How was this page generated?" at the very bottom). All functionality related to eventgrams, including plots and SNR calculations, has yet to be implemented and may require an independent PR in GWPy.The code is also written in serial; parallelizing it is a short-timescale development goal.
Design choices I made include:
GW_OBSERVATORY_COLORS
dict fromgwpy.plotter.colors
)panel
objects the same way using thecontext
attributeGDS-CALIB_STRAIN
in a block calledStrain
, all CAL channels in a block calledCalibration
) similar to other DetChar toolsTimeSeries.whiten()
Note, the observatory color-coding will also handle GEO, Virgo, KAGRA, and LIGO-India.
I expect that whitening in particular might be a contentious issue. I had tried several different things and this worked best, so I now welcome comments and opinions.
Imminent development goals (possibly in future PRs):
This pull request fixes #85.