; FAST crib for loading and plotting FAST esa data using level 1 CDFs ; Just copy this file and paste it into IDL for a quick demo of FAST software ; Caveats ; Data is not yet flagged for bad data during mode transitions ; Background subtraction and spacecraft potential corrections will be added in the future ; Current software assumes Themis software is already installed (future versions won't require this) ; For loading EES, IES, EEB, IEB, use fa_load_esa_l1.pro ; The following are in development ; For loading SEB 1 - 6, use fa_load_seb_l1.pro ; For loading Sesa Burst Combined, use fa_load_sesa_burst_l1.pro ; For loading Sesa Burst Survey, use fa_load_sesa_survey_l1.pro ;*********************************************************************************************************** ; select an orbit number or orbit range or time range fa_orbitrange,1801 ;fa_orbitrange,2301 ;fa_orbitrange,2001 ;fa_orbitrange,[1801,1802] ;fa_orbitrange,[1801,1804] ;trange=timerange(['97-02-21/3:00','97-02-21/7:00']) & dt=trange[1]-trange[0] & timespan,trange[0],dt,/seconds ;*********************************************************************************************************** ; I find the following helpful, but not necessary !y.margin=[4,4] ; default is [4,2] !x.margin=[10,5] ; default is [10,3] ;*********************************************************************************************************** ; initialize software fa_init loadct2,43 cols=get_colors() window,0,xsize=1000,ysize=1000 ;*********************************************************************************************************** ; initialize the time range and orbit numbers if not already set trange=timerange() print,time_string(trange) orbits=fa_time_to_orbit(trange) print,orbits if orbits[0] eq orbits[1] then orbit = string(orbits[0]) else orbit=string(orbits[0])+'-'+string(orbits[1]) fa_k0_load,'orb' ;*********************************************************************************************************** ; load eesa and iesa survey data fa_load_esa_l1,datatype=['ees','ies'],/tplot ; helpful options for plotting options,'fa_ees_l1_en_quick',datagap=5. options,'fa_ies_l1_en_quick',datagap=5. ; plot the raw count rate data tplot,['fa_ees_l1_en_quick','fa_ies_l1_en_quick'],title='FAST Orbit= '+orbit,var_label=['alt','ilat','mlt'] wait,5 ;************************************************************************************* ; load eesa and iesa burst data fa_load_esa_l1,datatype=['eeb','ieb'],/tplot ; helpful options for plotting options,'fa_eeb_l1_en_quick',datagap=0.1 options,'fa_ieb_l1_en_quick',datagap=0.1 tplot,['fa_ees_l1_en_quick','fa_ies_l1_en_quick','fa_eeb_l1_en_quick','fa_ieb_l1_en_quick'],title='FAST Orbit= '+orbit,var_label=['alt','ilat','mlt'] wait,5 ;************************************************************************************* ; plot eesa survey data (select a time with the cursor) dat=get_fa1_ees() window,1 & spec2d,dat,/label window,2 & pitch2d,dat,/label window,4 & contour2d,dat wait,5 ;************************************************************************************* ; plot iesa survey data (select a time with the cursor) dat=get_fa1_ies() window,1 & spec2d,dat,/label window,2 & pitch2d,dat,/label window,4 & contour2d,dat wait,5 ;************************************************************************************* ; generate some calibrated energy flux versus time spectrograms of eesa and iesa survey data bkg=0 gap_time=5. get_dat='get_fa1_ees' name1='fa_ees_en_spec' get_en_spec,get_dat,units='eflux',name=name1,gap_time=gap_time,bkg=bkg ; ctime,tt,npoints=2 & t1=tt[0] & t2=tt[1] & get_en_spec,get_dat,units='eflux',retrace=1,name=name1,gap_time=gap_time,t1=t1,t2=t2,bkg=bkg get_data,name1,data=tmp tmp.y=tmp.y>1.e-10 store_data,name1,data=tmp name1='fa_ees_en_spec' zlim,name1,1.e5,1.e9,1 ylim,name1,5.,30000.,1 options,name1,'ztitle','Eflux !C!C eV/cm!U2!N-s-sr-eV' options,name1,'ytitle','e-!C!C Energy (eV)' options,name1,'spec',1 options,name1,'x_no_interp',1 options,name1,'y_no_interp',1 tplot,'fa_ees_en_spec' name1='fa_ees_pa_spec' get_dat='fa1_ees' get_pa_spec,get_dat,units='eflux',name=name1,energy=[100,30000] get_data,name1,data=tmp tmp.y=tmp.y>1.e-10 store_data,name1,data=tmp name1='fa_ees_pa_spec' zlim,name1,1.e5,1.e9,1 ylim,name1,-10.,370.,0 options,name1,'ztitle','Eflux !C!C eV/cm!U2!N-s-sr-eV' options,name1,'ytitle','e- '+'!C!C pitch angle' options,name1,'spec',1 options,name1,'x_no_interp',1 options,name1,'y_no_interp',1 tplot,['fa_ees_en_spec','fa_ees_pa_spec'] name1='fa_ies_en_spec' get_dat='fa1_ies' get_en_spec,get_dat,units='eflux',name=name1,gap_time=gap_time,bkg=bkg get_data,name1,data=tmp tmp.y=tmp.y>1.e-10 store_data,name1,data=tmp name1='fa_ies_en_spec' zlim,name1,1.e4,1.e8,1 ylim,name1,5.,30000.,1 options,name1,'ztitle','Eflux !C!C eV/cm!U2!N-s-sr-eV' options,name1,'ytitle','i+!C!C Energy (eV)' options,name1,'spec',1 options,name1,'x_no_interp',1 options,name1,'y_no_interp',1 tplot,['fa_ees_en_spec','fa_ees_pa_spec','fa_ies_en_spec'] name1='fa_ies_pa_spec' get_dat='fa1_ies' get_pa_spec,get_dat,units='eflux',name=name1,energy=[50,30000] get_data,name1,data=tmp tmp.y=tmp.y>1.e-10 store_data,name1,data=tmp name1='fa_ies_pa_spec' zlim,name1,1.e4,1.e8,1 ylim,name1,-10.,370.,0 options,name1,'ztitle','Eflux !C!C eV/cm!U2!N-s-sr-eV' options,name1,'ytitle','i+ '+'!C!C pitch angle' options,name1,'spec',1 options,name1,'x_no_interp',1 options,name1,'y_no_interp',1 tplot,['fa_ees_en_spec','fa_ees_pa_spec','fa_ies_en_spec','fa_ies_pa_spec'] wait,5 ;************************************************************************************* ; generate some line plots of electron flux and energy flux name1='Je_s' get_dat='fa1_ees' get_2dt,'j_2d_new',get_dat,name=name1,gap_time=gap_time,energy=[25.,33000.] name1='Je_s' ylim,name1,1.e6,1.e10,1 options,name1,'ytitle','Je !C!C1/cm!U2!N-s' options,name1,'tplot_routine','pmplot' name1='JEe_s' get_dat='fa1_ees' get_2dt,'je_2d_new',get_dat,name=name1,gap_time=gap_time,energy=[25.,33000.] name1='JEe_s' ylim,name1,.001,10.,1 options,name1,'ytitle','JEe !C!Cergs/cm!U2!N-s' options,name1,'tplot_routine','pmplot' name1='Ji_s' get_dat='fa1_ies' get_2dt,'j_2d_new',get_dat,name=name1,gap_time=gap_time,energy=[25.,33000.] name1='Ji_s' ylim,name1,1.e4,1.e8,1 options,name1,'ytitle','Ji !C!C1/cm!U2!N-s' options,name1,'tplot_routine','pmplot' name1='JEi_s' get_dat='fa1_ies' get_2dt,'je_2d_new',get_dat,name=name1,gap_time=gap_time,energy=[25.,33000.] name1='JEi_s' ylim,name1,.001,1,1 options,name1,'ytitle','JEi !C!Cergs/cm!U2!N-s' options,name1,'tplot_routine','pmplot' tplot,['fa_ees_en_spec','fa_ees_pa_spec','fa_ies_en_spec','fa_ies_pa_spec','JEe_s','Je_s','JEi_s','Ji_s'] wait,5 ;************************************************************************************* ; Other useful functions to understand ;tlimit ;ctime ;get_data ;store_data ;makepng ;plot_fa_crossing,orbit=1800