function data_average_str_1,data,nan=nan nt = n_tags(data) d = data(0) for i=0,nt-1 do begin ndim = ndimen(data.(i)) d.(i) = average(data.(i),ndim,nan=nan) endfor return,d end function data_avg, data, times n = n_elements(data) d0 = data(0) nt = n_elements(times) dtype = data_type(d,/struct) d = replicate(d0,nt) got_some = 0 for i=0,nt-2 do begin d(i).time = times(i) w = where(data.time ge times(i) and data.time lt times(i+1),c) if c eq 1 then d(i) = data(w) if c gt 1 then d(i) = data_average_str_1(data(w),nan=nan) if c eq 0 and got_some then d(i) = d(i-1) else got_some=1 endfor i=nt-1 d(i).time = times(i) timediff = times(i) - times(i-1) w = where(data.time ge times(i) and data.time lt times(i)+timediff,c) if c eq 1 then d(i) = data(w) if c gt 1 then d(i) = data_average_str_1(data(w),nan=nan) if c eq 0 and got_some then d(i) = d(i-1) return,d end