pro x_section_maker,opt,time1,time2,dtime,nmin,dmin,dmax,nsmooth,time,data,z,nz,$ time_bin,data_av,data_sd,data_sdm,num,num_good,freq ;------------------------------------------------------------------------------------------- ; Purpose: routine generates a uniform time-height cross section from the input data. ; ; Input: ; opt......0 = input data are fltarr(altitude,event), 1 = data are fltarr(event,altitude) ; time1....start time for time grid ; time2....end time ; dtime....time interval for time grid ; nmin.....minimum number of data points in time interval to generate results ; dmin.....minimum data value to use ; dmax.....maximum data value to use ; time.....time values for the input data (vector) ; z........altitude scale (vector) ; data.....data values, fltarr(altitude,event) or fltarr(event,altitude) ; nz.......number of altitudes ; nsmooth..if > 0 then do a vertical box car smooth over +/- nsmooth points ; ; Output: ; time_bin....the time grid, fltarr(time) ; data_av.....the data averages on a uniform time grid and the input altitude grid, fltarr(time,altitude) ; data_sd.....the data standard deviations on a uniform time grid and the input altitude grid, fltarr(time,altitude) ; data_sdm....the data standard deviation of the mean on a uniform time grid and the input altitude grid, fltarr(time,altitude) ; num.........number of observations (profiles) in each time interval, fltarr(time) ; num_good....number of observations used, fltarr(time, altitude) ; freq........frequency of observations with data > dmin, fltarr(time,altitude) ; ; Required sub routines: ave_pro_maker.pro, box_car.pro ; ; Source: Mark Hervig, GATS Inc. ;------------------------------------------------------------------------------------------- wbin = dtime * 0.5 nbin = round( (time2 - time1)/float(dtime) ) + 1 time_bin = findgen(nbin) * dtime + time1 - wbin data_av = fltarr(nbin,nz) data_sd = fltarr(nbin,nz) data_sdm = fltarr(nbin,nz) num = fltarr(nbin) num_good = fltarr(nbin,nz) freq = fltarr(nbin,nz) ;- loop over time grid for i = 0,nbin-1 do begin k = where(time gt time_bin(i)-wbin and time le time_bin(i)+wbin,nk) num(i) = nk if (nk ge nmin) then begin if opt eq 0 then ave_pro_maker, opt,z,data(*,k),nz,nmin,dmin,dmax,nsmooth, dat_av,dat_sd,dat_sdm,n_good if opt eq 1 then ave_pro_maker, opt,z,data(k,*),nz,nmin,dmin,dmax,nsmooth, dat_av,dat_sd,dat_sdm,n_good data_av( i,*) = dat_av data_sd( i,*) = dat_sd data_sdm(i,*) = dat_sdm num_good(i,*) = n_good endif endfor ;- Frequency of observations with data > dmin k = where(num gt 0,n) if (n gt 0) then begin for i = 0,nz-1 do freq(k,i) = 100 * num_good(k,i)/num(k) endif ;- done return end