New functionality + improved API. Note that these changes may break code written for earlier version of setigen.
New:
* Save and load entire frames using pickle
* View frames with `frame.render()` and `frame.bl_render()` for blimpy visualization
* Support integrating `f_profile` for more accurate calculations w.r.t frequency
* Support custom metadata as part of Frame objects
* Calculate accurate frequency ranges from slices of filterbank files
* Add `frame.get_waterfall()` to directly access blimpy Waterfall object corresponding to frame
* In `stg.split_utils`, allow truncating data by desired number of time samples when creating waterfall generator
Summary of API changes:
* `stg.Frame(fil)` -> `stg.Frame(waterfall)`
* `frame.compute_intensity()` -> `frame.get_intensity()`
* `frame.compute_SNR()` -> `frame.get_snr()`
* `db` -> `use_db` in `frame.get_data()` function arguments
* `frame.freq_to_index()` -> `frame.get_index()`. Add `frame.get_frequency()` function.
* `frame.save_data()` and `frame.load_data()` -> `frame.save_npy()` and `frame.load_npy()`
* In `frame.add_signal`:
* `integrate_time` -> `integrate_t_profile`
* `mean_f_position` -> `integrate_path`
* `time_subsamples` -> `t_subsamples`
* `stg.fil_utils` -> `stg.waterfall_utils`
* `stg.split_utils.split_fil_generator()` -> `stg.split_utils.split_waterfall_generator()`