예제 #1
0
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