pro flatten,handle,tavg,newname=newname,average=avg,nsmooth=nsmooth for hi=0,n_elements(handle)-1 do begin name = tnames(handle[hi]) if (n_elements(tavg) ne 2) or (n_elements(name) lt 1) then begin ctime,t,vname=n,np=2 if n_elements(name) eq 0 then name=n(0) endif else t = time_double(tavg) if n_elements(name) gt 1 then begin for i=0,n_elements(name)-1 do flatten,name[i],t return endif get_data,name,dat=dat,lim=lim if size(/type,newname) ne 7 then newname= name+'_flat' ind = where(dat.x gt t(0) and dat.x lt t(1),nd) if keyword_set(nsmooth) then begin avg = smooth(dat.y,[nd,1],/nan) dprint,'smooth interval= ',nd endif else begin avg = total(dat.y(ind,*),1,/nan) / total(finite(dat.y(ind,*)),1) avg = (replicate(1.,dimen1(dat.y)) # avg) endelse dat.y = dat.y/ avg store_data,newname,dat={x:dat.x, y:dat.y, v:dat.v}, $ dlim={ystyle:1, spec:1, ylog:1, panel_size:2.} endfor end