pro accum_pad,apad,data=dat, $
ESTEPS = esteps, $
lim=plim, $
BINS=bins, $
NUM_PA=num_pa, $
NUM_VEL=num_vel, vlim=vlim
if data_type(apad) ne 8 then begin
if not keyword_set(num_pa) then num_pa = 10
if not keyword_set(num_vel) then num_vel = 40
vlim= [5.,545000.]
d=fltarr(num_vel,num_pa)
apad = {project_name:'', $
data_name:'PAD Accumulation', $
units_name:'df', $
mass:0., $
time:1d10, end_time:0.d, $
nbins:fix(num_pa) , nenergy:fix(num_vel), $
vlim:vlim, $
data:double(d) , ddata:double(d), energy:d, angles:d, cnt:d, $
units_procedure: 'convert_pad_units', $
valid:1 }
endif
num_vel = apad.nbins
nenergy = apad.nenergy
apad.time = apad.time < dat.time
apad.end_time = apad.end_time > dat.end_time
apad.mass = dat.mass
case ndimen(bins) of
-1 or 0: ind = indgen(dat.nenergy*dat.nbins)
1: ind = where(replicate(1,dat.nenergy) # bins)
2: ind = where(bins)
endcase
ndat = conv_units(dat,'df')
df_dat = double(ndat.data(ind))
help,df_dat
c = 2.9979d5
E0 = double(dat.mass*c^2)
gamma = ( double(ndat.energy(ind)) + E0 ) / E0
vmag = sqrt(1.0d - 1.0d/(gamma*gamma) ) * c
theta = ndat.theta(ind)
phi = ndat.phi(ind)
nd = n_elements(ind)
sphere_to_cart,vmag,theta,phi,vx,vy,vz
vel = [[vx],[vy],[vz]]
vel = vel - replicate(1.,nd) # dat.vsw
rot = rot_mat(dat.magf,dat.vsw)
newvel = vel # rot
cart_to_sphere,newvel(*,0),newvel(*,1),newvel(*,2),vmag,theta,phi,/co_lat
vmag = .5*dat.mass*vmag^2
vbin = alog(vmag)
lim = alog(apad.vlim)
numv = apad.nenergy
nump = apad.nbins
vbin = fix( (vbin-lim(0))/(lim(1)-lim(0)) * numv )
pbin = fix( theta/180. * nump)
for i = 0,nd-1 do begin
v = vbin(i)
p = pbin(i)
if(v ge 0 and v lt numv and p ge 0 and p lt nump) then begin
apad.energy(v,p) = apad.energy(v,p) + vmag(i)
apad.angles(v,p) = apad.angles(v,p) + theta(i)
apad.data(v,p) = apad.data(v,p) + df_dat(i)
apad.ddata(v,p) = apad.ddata(v,p) + df_dat(i)^2
apad.cnt(v,p) = apad.cnt(v,p) + 1
endif
endfor
if keyword_set(lim) then begin
cols = bytescale(pure=numv)
plots,theta,df_dat,psym=3,color=cols(vbin)
endif
end