function rsl_get_sweep, volume, elevation, sweep_index=sweepindex, $ sweep_number=sweepnum, swpnum=swpnum, swpindex=swpindex ; RSL_GET_SWEEP returns one sweep of data in a structure. ; ; Syntax: ; sweep = RSL_GET_SWEEP(volume, elevation [, SWEEP_INDEX=sweepindex] ; [, SWEEP_NUMBER=sweepnumber]) ; ; Inputs: ; volume: a volume structure. ; elevation: elevation angle of the sweep to be returned. If omitted, ; and neither of the keywords SWEEP_NUMBER or SWEEP_INDEX is ; used, the base scan is returned. ; ; Keyword parameters: ; SWEEP_INDEX: sweep index, where 0 is the base scan. If both elevation ; and SWEEP_INDEX are given, elevation is used. ; SWEEP_NUMBER: sweep number, where 1 is the base scan. If both elevation ; and SWEEP_NUMBER are given, elevation is used. ; ; Written by: Bart Kelley, GMU, July 2002 ; on_error, 2 ; on error, return to caller. tagcheck = where(tag_names(volume) eq 'SWEEP') if size(tagcheck,/n_dimensions) eq 0 then if tagcheck lt 0 then $ message,'Argument 1 must be a Volume structure.' ; sweepindex and swpindex are synonyms, as are sweepnum and swpnum. ; if sweepnum (or swpnum) is given, it is converted to swpindex. if not keyword_set(swpindex) then swpindex = 0 if keyword_set(sweepindex) then swpindex = sweepindex if keyword_set(swpnum) then swpindex = swpnum - 1 if keyword_set(sweepnum) then swpindex = sweepnum - 1 if n_elements(elevation) eq 0 then goto, finished elev = volume.sweep.h.elev prevdiff = abs(elevation - elev[0]) for i = 1, volume.h.nsweeps-1 do begin diff = abs(elevation - elev[i]) if diff lt prevdiff then begin prevdiff = diff swpindex = i endif else goto, finished endfor finished: return, volume.sweep[swpindex] end