def get_mag_data(time_start, time_end, probe, low_cut=None, high_cut=None): ''' Load and process data ''' ti, B0, HM_mags, pc1_mags, \ E0, HM_elec, pc1_elec, S, B, E = cfr.get_crres_fields(_crres_path, time_start, time_end, pad=600, output_raw_B=True, Pc5_LP=30.0, B0_LP=1.0, Pc5_HP=None, dEx_LP=None, interpolate_nan=True) dt = 1/32. # Bandpass selected component and return if low_cut is not None: dat = ascr.clw_high_pass(pc1_mags, low_cut*1000., dt, filt_order=4) if high_cut is not None: dat = ascr.clw_low_pass(pc1_mags, high_cut*1000., dt, filt_order=4) #pc1_res = 5.0 _xpow, _xtime, _xfreq = fscr.autopower_spectra(ti, pc1_mags[:, 0], time_start, time_end, dt, overlap=0.95, df=pc1_res, window_data=True) _ypow, _xtime, _xfreq = fscr.autopower_spectra(ti, pc1_mags[:, 1], time_start, time_end, dt, overlap=0.95, df=pc1_res, window_data=True) _zpow, _xtime, _xfreq = fscr.autopower_spectra(ti, pc1_mags[:, 2], time_start, time_end, dt, overlap=0.95, df=pc1_res, window_data=True) _pow = np.array([_xpow, _ypow, _zpow]) return ti, dat, HM_mags, dt, _xtime, _xfreq, _pow
def get_pc1_spectra(rbsp_path, time_start, time_end, probe, pc1_res=25.0, overlap=0.99, high_pass_mHz=None): ''' Helper function to load magnetic field and calculate dynamic spectrum for overlaying on plots ''' import rbsp_fields_loader as rfl import fast_scripts as fscr print('Generating magnetic dynamic spectra...') times, mags, dt, gyfreqs = \ rfl.load_magnetic_field(rbsp_path, time_start, time_end, probe, pad=3600, LP_B0=1.0, get_gyfreqs=False, return_raw=False, wave_HP=None, wave_LP=None) if high_pass_mHz is not None: mags = ascr.clw_high_pass(mags, high_pass_mHz, dt, filt_order=4) pc1_xpower, pc1_xtimes, pc1_xfreq = fscr.autopower_spectra(times, mags[:, 0], time_start, time_end, dt, overlap=overlap, df=pc1_res) pc1_ypower, pc1_ytimes, pc1_yfreq = fscr.autopower_spectra(times, mags[:, 1], time_start, time_end, dt, overlap=overlap, df=pc1_res) pc1_perp_power = np.log10(pc1_xpower[:, :] + pc1_ypower[:, :]) return pc1_xtimes, pc1_xfreq, pc1_perp_power