Time to refactor utils?
Both the core and gw utils modules are over 1000 lines of pretty random and unrelated functions/classes. We should think about turning them into packages with sensible divisions into different categories.
In core utils I see:
- constants
- function introspection
- functions to make time/frequency series
- conversion to/from RA/dec
- creating white noise
- FFTing
- logging/version information/making directories
- calculating derivatives/integrals
-
SamplesSummary
,Counter
,UnsortedInterp2d
- JSON stuff
plus some other things. I'm not suggesting that each of these things should be in their own module, but it would easily fit into four or five groups.
In gw utils:
- generating asd/psd
- various geometry things
- inner products/SNRs
- event times, which we should remove or replace with a call to the
gwosc
package - fetching data from frames/gwosc/gracedb/LDR
- ROQ helper functions
- lalsimulation wrappers
- calibration things
PropertyAccessor
Again, this could be divided between a few modules.
Any thoughts?