Viewing contents of file '../idllib/ssw/allpro/avoid_spikes.pro'
function avoid_spikes, yarr, nss, thresh=thresh
;+
;NAME:
;	avoid_spikes
;PURPOSE:
;	Return the subscript list of data values which don't have spikes
;SAMPLE CALLING SEQUENCE:
;	ss = avoid_spikes(yarr, nss)
;INPUT:
;	yarr	- the input array
;OUTPUT:
;	ss	- the list of subscripts which are ok
;	nss	- the number of points which are ok
;HISTORY:
;	Written 29-May-96 by M.Morrison
;	10-Jun-96 (MDM) - Put in protection for problem data (median=0)
;	10-Jun-96 (MDM) - Added thresh keyword
;	28-Jun-96 (MDM) - Modified logic since it did not protect against
;			  positive spikes (it only protected against
;			  negative spikes).  It removes twice as many
;			  points now.
;-
;
dt = deriv_arr(yarr)		;get first differences
dt = abs(dt)
m = median(dt)			;kinda 1 sigma?
if (m eq 0) then m = total(dt)/n_elements(dt)
if (n_elements(thresh) eq 0) then thresh = 5
;
;;ss = where(dt lt thresh*m, nss)
qok = bytarr(n_elements(yarr)) + 1
ss1 = where(dt gt thresh*m, nss1)
if (nss1 gt 0) then begin
    qok(ss1) = 0
    qok(ss1+1) = 0
end
ss = where(qok, nss)
;
return,ss
end