pro reduce_pads,name,d,n1,n2,deflim=options,newname=newname,nan=nan,e_units=e_units if n_params() eq 2 then begin get_data,name,ptr=p n = n_elements(*p.x) dim = size(/dimen,*p.y) npa = dim[2] nd = n_elements(d) y = replicate(!values.f_nan,n,npa,nd) y0 = alog(*p.y) for i=0l,n-1 do begin for j=0,npa-1 do begin y[i,j,*] = interpol(reform(y0[i,*,j]),reform((*p.v1)[i,*]),d) endfor endfor y =exp(y) newname = strcompress(/remove,name+'_'+string(round(d))+'eV') dlim={spec:1,yrange:[0,180],ystyle:1,zlog:1,panel_size:.5} for i=0,nd-1 do $ store_data,newname[i],data={x:p.x,y:y[*,*,i],v:*p.v2},dlim=dlim return endif if n_elements(nan) eq 0 then nan=1 nan = 1 reduce_dimen,name,d,n1,n2,deflim=options,newname=newname,data=data,vrange=vrange,nan=nan if not keyword_set(data) then return if not keyword_set(e_units) then e_units=0 case d of 1: begin fmt = '(g0.0)' unt = ([' eV',' keV',' Mev'])(e_units) scale = ([1.,1000.,1e6])(e_units) options,newname,'spec',1,/def ylim,newname,0,180,/def options,newname,'yticks',2,/def options,newname,'ytickv',[0.,90.,180.],/def options,newname,'panel_size',.75,/def end 2: begin fmt = '(g0.0)' unt = ' deg' scale = 1. ylim,newname,1,1,1,/def options,newname,'panel_size',2.,/def options,newname,/labflag,colors='mbcgyr' end endcase vrange = roundsig(vrange/scale,sigfig=1.3) vst = strcompress(string(vrange,format=fmt),/remove_all) if vrange(0) eq vrange(1) then ytitle = vst(0)+ unt $ else ytitle = vst(0)+'-'+vst(1)+unt options,newname,'ytitle',ytitle,/def options,newname,'s_value',vrange vals = data.v if ndimen(vals) eq 2 then vals=total(vals,1,/nan)/total(finite(vals),1) vals = roundsig(vals,sigfig=1.3) options,newname,'labels',strcompress(string(vals,format=fmt),/remov),/def options,newname,'max_value',1e10,/def end