;+
; NAME: rbsp_load_mageis_l2
;
; SYNTAX: 
;
; PURPOSE: Fetches/loads RBSP ECT MagEIS L2 data
;
; INPUT: N/A
;
; OUTPUT: N/A
;
; KEYWORDS:
;	probe=probe
;	/get_mag_ephem - save the ECT mag ephemeris vars
;	/get_support_data - save CDF support data to TPLOT
;
; HISTORY:
;	Created Jan 2013, Kris Kersten, kris.kersten@gmail.com
;
; NOTES:
;	Bins are labeled for the energy as listed in the CDF file.  This looks like
;	the bottom energy for each bin.  This should probably be changed to reflect
;	the center energy of each bin.
;	
;	There is overlap between the LOW, M35/75, and HIGH MagEIS FEDO energy
;	channels that are used to construct the full L2 spectrum.  Overlapping bins
;	are skipped to present a continuous energy spectrum.  This may need to be
;	tweaked in the future, to average/weight overlapping bins, etc.
;	See additional comments beginning at line ~70.
;
;
; VERSION:
;   $LastChangedBy: aaronbreneman $
;   $LastChangedDate: 2013-12-17 17:14:08 -0800 (Tue, 17 Dec 2013) $
;   $LastChangedRevision: 13699 $
;   $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/ssl_general/trunk/missions/rbsp/ect/rbsp_load_mageis_l2.pro $
;
;-


pro rbsp_load_mageis_l2,probe=probe,get_mag_ephem=get_mag_ephem, $
	get_support_data=get_support_data

	rbsp_ect_init

	mag_ephem_names=['Position','B_Eq','B_Calc','L','L_star','I','MLT']
	
	if keyword_set(probe) then p_var=probe else p_var='*'
	vprobes = ['a','b']
	p_var = strfilter(vprobes, p_var ,delimiter=' ',/string)
		
	level=2
	slevel=string(level,format='(I0)')
	
	for p=0,size(p_var,/n_elements)-1 do begin

		rbspx = 'rbsp'+ p_var[p]
		
		format=rbspx+'/mageis/level2/'+rbspx+'_rel02_ect-mageis-L2_YYYYMMDD_v*.cdf'
		prefix=rbspx+'_ect_mageis_L'+slevel+'_'

     	relpathnames=file_dailynames(file_format=format,trange=trange,addmaster=addmaster)
		dprint,dlevel=3,verbose=verbose,relpathnames,/phelp
		files=file_retrieve(relpathnames, /last_version, _extra=!rbsp_ect)
		
		cdf2tplot,file=files,varformat=varformat,all=0,prefix=prefix,suffix=suf,verbose=vb, $
			tplotnames=tns,/convert_int1_to_int2,get_support_data=1 ; load data into tplot variables
		
		; format L2 TPLOT vars
		;tags=['FEDO','FPDO','FPDU'] ; what is FPDU?
		tags=['FESA','FPSA']
		
		for i=0,n_elements(tags)-1 do begin
			tn=prefix+tags[i]
			get_data,tn,data=d,limits=l,dlimits=dl

			case tags[i] of
				'FESA':begin
						; L2 FEDO energy channels overlap between LOW, M35/75, and HIGH
						; skip overlapping energy bins
						; RBSPA FEDO energy bins (keV)
						; 0   1    2    3    4    5     6     7     8     9     10    11    12    13    14    15    16    17     18    19     20     21     22     23     24
						; 0.0 22.1 37.3 56.7 80.4 110.9 145.9 184.9 221.1 211.3 237.1 317.4 349.1 455.9 582.7 730.2 884.6 1056.6 846.0 1253.0 1535.0 1942.0 2521.0 3156.0 3869.0
						; OVERLAPPING BINS TO REMOVE: 9,10,18
			
						; RBSPB FEDO energy bins (keV)
						; 0   1    2    3    4    5     6     7     8     9   10    11    12    13    14    15    16    17     18    19     20     21     22     23     24
						; 0.0 23.0 36.0 54.0 76.0 103.0 134.0 168.0 198.0 0.0 161.4 250.7 352.6 469.2 595.9 738.9 886.0 1054.9 888.0 1362.0 1666.0 2065.0 2615.0 3257.0 3893.0
						; OVERLAPPING BINS TO REMOVE: 9,10,18
						goodbins=[lindgen(9),lindgen(7)+11,lindgen(6)+19]
						str_element,d,'y',d.y[*,goodbins],/add_replace
						newv=dblarr(n_elements(goodbins))
						for i=0,n_elements(goodbins)-1 do $
							newv[i]=median(d.v[*,goodbins[i]])
						str_element,d,'v',newv,/add_replace
	
						tyrange=[17.,4.e3]
					end
				'FPSA':tyrange=[60.,1400.]
				else:tyrange=[0,0]
			endcase

			labels=string(d.v,format='(F0.1)')+' keV'
			str_element,l,'labels',labels,/add_replace
			str_element,l,'yrange',tyrange,/add_replace
			str_element,l,'ylog',1,/add_replace
			str_element,l,'ystyle',1,/add_replace
			str_element,l,'zstyle',0,/add_replace
			str_element,l,'zrange',[0,0],/add_replace
			str_element,l,'zlog',1,/add_replace
			; move (cm^2 s^-1 keV^-1) label to z axis, energy to y axis
			str_element,dl,'ztitle',dl.ysubtitle,/add_replace
			str_element,dl,'ysubtitle','Energy [keV]',/add_replace

			store_data,tn,data=d,limits=l,dlimits=dl
			
		endfor

		if ~keyword_set(get_support_data) then begin
			support_data_keep=['NONE!']
			for i = 0, n_elements(tns) - 1 do begin
				if strfilter(tns[i],'*'+support_data_keep) eq '' then begin
					get_data,tns[i],dlimits=thisdlimits
					cdf_str = 0
					str_element,thisdlimits,'cdf',cdf_str
					if keyword_set(cdf_str) then if cdf_str.vatt.var_type eq 'support_data' then $
					   store_data,tns[i],/delete,verbose=0
				endif
			endfor
		endif

		if ~keyword_set(get_mag_ephem) then $
			store_data,prefix+mag_ephem_names,/delete,verbose=1

	endfor

end