;Remove data spikes from tplot data. Spikes are identified with derivative

;der_limit -> the maximum value of derivative b/t two successive
;				time steps to allow
;samename -> set to overwrite the original tplot variable. Otherwise
;				saves as new tplot variable with "_nospike" added


pro rbsp_remove_spikes,tnames,der_limit=derlim,samename=sn

	if ~keyword_set(derlim) then derlim=100

	
	for j=0,n_elements(tnames)-1 do begin
	
		get_data,tnames[j],data=dat

		if is_struct(dat) then begin
			der = deriv(dat.y)
					
			goo = where(abs(der) ge derlim)
			
			if goo[0] ne -1 then begin
				dat.y[goo] = !values.f_nan
				if keyword_set(sn) then begin
					store_data,tnames[j],data=dat
					print,'Creating tplot variable ' + tnames[j]
				endif else begin 
					store_data,tnames[j]+'_nospike',data=dat
					print,'Creating tplot variable ' + tnames[j]+'_nospike'
				endelse
			endif	
			
;			store_data,'deriv',data={x:dat.x,y:der}			
;			store_data,'Bw_detrend2',data=dat
			
;			ylim,'Bw_detrend2',-10,10
;			tplot,['Bw_detrend','deriv','Bw_detrend2']
			
		endif else print,tnames[j] + ' is not a proper tplot variable (remove_spikes.pro)'	
	endfor
end