;+ ; ; erg_crib_adv_training_201809.pro ; ; The crib sheet used for the advanced cource of the SPEDAS training ; held in Tohoku Univ. on September 20, 2018. ; ; ;- ;;; Slide #8, 9 ;; Set the time span timespan, '2017-04-19' ;; Load data erg_load_xep, datatype='omniflux' erg_load_hep, datatype='omniflux' erg_load_mepe, datatype='omniflux' erg_load_lepe, datatype='omniflux' erg_load_mepi_nml, datatype='omniflux' erg_load_lepi_nml, datatype='omniflux' tplot_names tplot, [ 'erg_xep_l2_FEDO_SSD', $ 'erg_hep_l2_FEDO_H','erg_hep_l2_FEDO_L', $ 'erg_mepe_l2_omniflux_FEDO', $ 'erg_lepe_l2_omniflux_FEDO', $ 'erg_mepi_l2_omniflux_FPDO', $ 'erg_lepi_l2_omniflux_FPDO' ] ;;; Slide #10 vn = 'erg_xep_l2_FEDO_SSD' options, vn, spec=0 & ylim, vn, 0, 0, 1 tplot ;; Replot the previously plotted variables erg_load_hep, datatype='omniflux', /lineplot tplot, ['erg_xep_l2_FEDO_SSD', 'erg_hep_l2*line'] ;;; Slide #12 ;; ERG working group ID/password uname = '???????????' & pass = '????????' timespan, '2017-04-19' ;; erg_load_hep, datatype='3dflux', uname=uname, pass=pass erg_load_mepe, datatype='3dflux' ;; erg_load_lepe, datatype='3dflux', uname=uname, pass=pass ;; erg_load_mepi_nml, datatype='3dflux' ;; erg_load_lepi_nml, datatype='3dflux', uname=uname, pass=pass ;;; Slide #13 ;; In case you have loaded MEP-e and LEP-e: tplot, [ 'erg_mepe_l2_3dflux_FEDU','erg_lepe_l2_3dflux_FEDU' ] ;; In case you have loaded MEP-e and HEP: ;; Please plot FEDO_? instead of FEDU_? for HEP, otherwise tplot stops ;; with an error. tplot, [ 'erg_hep_l2_3dflux_FEDO*', 'erg_mepe_l2_3dflux_FEDU' ] ;;; Slide #18 del_data, '*' timespan, '2017-04-11/07:00',10, /hour erg_load_hep, datatype='3dflux', uname=uname, pass=pass erg_load_mepe, datatype='3dflux' erg_hep_part_products, 'erg_hep_l2_FEDU_L' erg_mep_part_products, 'erg_mepe_l2_3dflux_FEDU' tplot, ['erg_hep_l2_FEDU_L_energy','erg_mepe_l2_3dflux_FEDU_energy'] ;;; Slide #19 erg_mep_part_products, 'erg_mepe_l2_3dflux_FEDU', units='flux' ;; Default erg_mep_part_products, 'erg_mepe_l2_3dflux_FEDU', units='eflux', suffix='_eflux' erg_mep_part_products, 'erg_mepe_l2_3dflux_FEDU', units='df', suffix='_psd' ;; With keyword "relativistic" on, phase space density values are calculated ;; in (c/MeV/cm)3 considering the relativistic effect. But this conversion ;; is still experimental and needs to be further tested. erg_mep_part_products, 'erg_mepe_l2_3dflux_FEDU', units='df', suffix='_psdgem', /rela tplot, ['erg_mepe_l2_3dflux_FEDU_energy*'] ;;; Slide #20 get_timespan, tr erg_hep_part_products, 'erg_hep_l2_FEDU_L', theta=[-30.,30], trange=tr erg_mep_part_products, 'erg_mepe_l2_3dflux_FEDU', phi=[0.,90], trange=tr tplot, ['erg_hep_l2_FEDU_L_energy','erg_mepe_l2_3dflux_FEDU_energy'] ;;; Slide #21 del_data, '*' timespan, '2017-04-11/17:00', 6, /hour erg_load_lepe, datatype='3dflux', /no_sort_enebin, uname=uname, pass=pass, varformat='FEDU' erg_load_lepi_nml, datatype='3dflux', uname=uname, pass=pass, varformat='FPDU' get_timespan, tr erg_lepe_part_products, 'erg_lepe_l2_3dflux_FEDU', outputs='phi', trange=tr, energy=[3000.,10000.] erg_lepi_part_products, 'erg_lepi_l2_3dflux_FPDU', outputs='theta', trange=tr, energy=[8000.,20000.] zlim, 'erg_lepi_l2_3dflux_FPDU_theta', 1e-1, 1e+3, 1 tplot, ['erg_lepe_l2_3dflux_FEDU*', 'erg_lepi_l2_3dflux_FPDU*'] ;;; Slide #22 del_data, '*' timespan, '2017-04-15/00:00', 2, /hour & get_timespan, tr erg_load_mepi_nml, datatype='3dflux', varformat='FPDU' erg_load_mgf erg_load_orb erg_mep_part_products, 'erg_mepi_l2_3dflux_FPDU', output='pa', pos='erg_orb_l2_pos_gse', mag='erg_mgf_l2_mag_8sec_dsi', energy=[108000., 112000.], suffix='_110kev', trange=tr erg_mep_part_products, 'erg_mepi_l2_3dflux_FPDU', output='pa', pos='erg_orb_l2_pos_gse', mag='erg_mgf_l2_mag_8sec_dsi', energy=[54000., 58000.], suffix='_56kev', trange=tr tplot, 'erg_mepi_l2_3dflux_FPDU*' ;;; Slide #23 del_data, '*' timespan, '2017-04-08/19:00', 30, /min & get_timespan, tr erg_load_mepe, datatype='3dflux', varformat='FEDU' erg_load_mgf erg_load_orb erg_mep_part_products, 'erg_mepe_l2_3dflux_FEDU', output='pa', pos='erg_orb_l2_pos_gse', mag='erg_mgf_l2_mag_8sec_dsi', energy=[16000., 18000.], suffix='_17kev', trange=tr erg_mep_part_products, 'erg_mepe_l2_3dflux_FEDU', output='pa', pos='erg_orb_l2_pos_gse', mag='erg_mgf_l2_mag_8sec_dsi', energy=[23000., 25000.], suffix='_24kev', trange=tr zlim, 'erg_mepe_l2_3dflux_FEDU_pa*', 1e+2, 1e+4, 1 tplot, 'erg_mepe_l2_3dflux_'+['FEDO', 'FEDU_pa*'] ;;; Slide #24 del_data, '*' timespan, '2017-03-27/10:30', 50, /min erg_load_mepe, datatype='3dflux' erg_load_mgf & erg_load_orb get_timespan, tr erg_mep_part_products, 'erg_mepe_l2_3dflux_FEDU', pos='erg_orb_l2_pos_gse', mag='erg_mgf_l2_mag_8sec_dsi', output='energy', trange=tr, pitch=[0.,3.], suffix='_pa00-03', /no_regrid erg_mep_part_products, 'erg_mepe_l2_3dflux_FEDU', pos='erg_orb_l2_pos_gse', mag='erg_mgf_l2_mag_8sec_dsi', output='energy', trange=tr, pitch=[10.,15.], suffix='_pa10-15', /no_regrid tplot, 'erg_mepe_l2_3dflux_'+['FEDU_energy*'] ;;; Slide #25 del_data, '*' timespan, '2017-04-15/00:00', 2, /hour erg_load_mepi_nml, datatype='3dflux', varformat='FPDU' erg_load_mgf erg_load_orb get_timespan, tr erg_mep_part_products, 'erg_mepi_l2_3dflux_FPDU', output='gyro', pos='erg_orb_l2_pos_gse', mag='erg_mgf_l2_mag_8sec_dsi', energy=[108000., 112000.], pitch=[85.,95.], trange=tr, suffix='_110kev' tplot, 'erg_mepi_l2_3dflux_'+['FPDO', 'FPDU_gyro*'] ;;; Slide #28, 29 del_data, '*' timespan, '2017-03-27/10:00', 1, /hour & get_timespan, tr erg_load_mepe, datatype='3dflux', varformat='FEDU' erg_load_mepi_nml, datatype='3dflux', varformat='FPDU' erg_load_mgf & erg_load_orb erg_mep_part_products, 'erg_mepi_l2_3dflux_FPDU', pos='erg_orb_l2_pos_gse', mag='erg_mgf_l2_mag_8sec_dsi', output='moments', trange=tr erg_mep_part_products, 'erg_mepe_l2_3dflux_FEDU', pos='erg_orb_l2_pos_gse', mag='erg_mgf_l2_mag_8sec_dsi', output='moments', trange=tr ylim, '*FPDU*ptens', 0, 1e+5, 0 ;; set y-ranges with linear scale ylim, '*FEDU*ptens', 0, 1e+4, 0 tplot, ['erg_mep?_l2_3dflux_'+['F?DO','F?DU_ptens']] ;;; Slide #33 timespan, '2017-05-28' erg_load_lepi_nml, datatype='3dflux', varformat='FPDU' dist = erg_lepi_get_dist( 'erg_lepi_l2_3dflux_FPDU', /structure ) help, dist help, dist[0] ;;; Slide #34 ;; Prepare the MGF and orbit data erg_load_mgf & set_erg_var_label ;; Make transformation matrices for the FAC erg_pgs_make_fac, dist.time, 'erg_mgf_l2_mag_8sec_dsi', 'erg_orb_l2_pos_gse', $ fac_output=fac_mat, fac_type='mphism' dist_fac = dist ;; Make a copy of the dist structure ;; Transform phi/theta values in the dist structure to those in FAC for each time frame for i = 0L, n_elements(dist.time)-1 do begin spd_pgs_do_fac, dist[i], reform( fac_mat[i, *, *], [3,3] ), $ output=dist_tmp, error=error dist_fac[i] = dist_tmp endfor ;;; Slide #35 dist_fac.theta = 90. - dist_fac.theta ;; colat. in FAC = pitch angle ;; Prepare data arrays for a selected energy channel enech = 2 ;; ch02 --> 19.2 keV dat_arr = reform( dist_fac.data[ enech, *, * ] ) pa_arr = reform( dist_fac.theta[ enech, *, * ] ) ntimes = n_elements(dist_fac.time) dim = dimen( dist_fac[0].data ) t_arr = rebin( reform( dist_fac.time, [1,1,ntimes] ), [dim[1:*],ntimes] ) ;; Use a generic routine "bin2d" to calculate average fluxes for the time x pitch-angle bins id = where( finite(dat_arr) and finite(pa_arr) ) ;;To exclude NaN and Inf from the averaging with bin2d bin2d, t_arr[id], pa_arr[id], dat_arr[id], xrange=minmax(t_arr), yrange=[0.,180.], binum=[ntimes,18], $ xc=time_c, yc=pa_c, ave=aveflux, binhist=binnm, /double ;;; Slide #36 ;; Put the resultant arrays in a tplot varirable vname = 'erg_lepi_paspec_ene02' store_data, vname, data={ x:time_c, y:aveflux, v:pa_c } ;; Set some plot properties options, vname, spec=1, constant=[45,90,135], ytickinterval=45., yminor=3 ylim, vname, 0, 180, 0 zlim, vname, 0, 0, 1 ;; auto-scale in log ;; Plot! tplot, vname