FUNCTION get_scan_struc_arr, vn
npar = n_params()
if npar ne 1 then return, 0
vn = vn[0]
if (tnames(vn))[0] eq '' then return,0
get_data, vn, data=d
vartime = d.x & var = d.y
if (size(var))[0] ne 2 then return, 0
prefix = strmid(vn, 0,7)
suf = strmid(vn, 0,1,/reverse)
azmno_vn = prefix+'azim_no_'+suf
scanno_vn = prefix+'scanno_'+suf
get_data, azmno_vn, data=d
azmno = d.y
get_data, scanno_vn, data=d
scanno = d.y
scan = scanno[uniq(scanno)]
azmno_sorted = azmno[sort(azmno)]
azm = azmno_sorted[uniq(azmno_sorted)]
azmmax = n_elements(azm)
nrang = n_elements(var[0,*])
vararr = fltarr( n_elements(scan), nrang, azmmax )
timearr = dblarr(n_elements(scan))
beamtarr = dblarr(n_elements(scan), 2)
nbeamarr = intarr(n_elements(scan))
vararr[*] = !values.f_nan
for i=0L, n_elements(scan)-1 do begin
tscan = scan[i]
idx = where(scanno eq tscan)
if idx[0] ne -1 then begin
timearr[i] = mean( vartime[idx] )
beamt = minmax( vartime[idx] )
beamtarr[i,*] = transpose( [ beamt[0], beamt[1] ] )
tazmno = azmno[idx]
nbeamarr[i] = n_elements(tazmno)
tvar = transpose(var[idx,*])
for j=0, n_elements(tazmno)-1 do begin
az = tazmno[j]
if az lt 0 and az ge azmmax then continue
vararr[i,*,az] = reform( tvar[*, j], 1,nrang,1)
endfor
endif
endfor
return, {x:timearr, y:vararr, beamt:beamtarr, nbeam:nbeamarr }
end