function STEPPER3q, input1, input2, input3, $ INFO_ARRAY=INFO_ARRAY, SUBSCRIPT=SUBSCRIPT, $ NOSCALE=NOSCALE, COLOR=COLOR, $ qstop=qstop,pauz=pauz ;+ ; NAME: ; STEPPER3q ; PURPOSE: ; Step through individual images a single frame at a time ; and permit flagging the output vector with a 0, 1, 2 or 3. ; It is possible to switch back and forth on a given image ; as much as you want. Stepping or jumping through the data ; cube is the same as in stepper. ; This is a special setup for runing a 256x256 movie. It ; changes the placement of output text. ; SAMPLE CALLING SEQUENCE: ; output = stepper3(input1, [input2, input3, $ ; INFO_ARRAY=INFO_ARRAY, SUBSCRIPT=SUBSCRIPT, $ ; NOSCALE=NOSCALE, COLOR=COLOR, $ ; qstop=qstop,pauz=pauz] ; out = stepper3(data) ; out = stepper3(index,data) ; out = stepper3(index,data,info_array) ; out = stepper3(data,info_array) ; INPUT: ; DATA = Three-dimensional array ; OUTPUT ; A vector of 0's, 1's or 2's permitting easy selection or ; de-selection of images for further processing. ; OPTIONAL INPUTS: ; INDEX = The index structure that goes with the data ; INFO_ARRAY = descriptive text string (pass as parameter or keyword) ; OPTIONAL INPUT KEYWORDS: ; INFO_ARRAY = String array containing descriptive text ; NOSCALE = If set, will turn off tvscale ; SUBSCRIPT = Subset of array is displayed. ; COLOR = The color to use for displaying the info text string. ; pauz = Number of sec to wait between frames. ; PROCEDURE ; 0 returns a 0 in the output vector. ; 1 returns a 1 in the output vector. ; 2 returns a 2 in the output vector. ; 3 returns a 3 in the output vector. ; 4 returns a 4 in the output vector. ; HISTORY: ; 4-May-2005 LWA Created from stepper2.pro. ; 5-May-2005 LWA Replaced j,k,l with 0,1,2. ; 14-May-2005 LWA Added a 3 to output vector capability. ; (Header change only to this code.) ; 4-Jan-2008 LWA Created from stepper3.pro. ; 7-Jan-2008 LWA Added use of 4 in output vector. ; I.e., 0, 1, 2, 3, or 4. ; 25-Jan-2009 LWA Added keyword pauz, deleted keyword wunz. ;- on_error,2 ; Return to caller typ1 = data_type(input1) typ2 = data_type(input2) if keyword_set(subscript) then out=intarr(n_elements(subscript)) case 1 of (typ2 eq 0): begin ;only data passed if n_elements(out) eq 0 then begin nimg=data_chk(input1,/nimages) out=intarr(nimg) endif STEPPER3q_s1,input1, $ INFO_ARRAY=INFO_ARRAY,$ NOSCALE=NOSCALE, SUBSCRIPT=SUBSCRIPT, $ COLOR=COLOR, out=out, pauz=pauz end (typ1 eq 8): begin ;index,data or index,data,info passed if (n_elements(input3) ne 0) then info_array = input3 if (n_elements(info_array) eq 0) then begin info_array = get_info(input1, /noninteractive) info_array = strmid(info_array,0,25) endif if n_elements(out) eq 0 then begin out=intarr(n_elements(input1)) endif STEPPER3q_s1,input2, $ INFO_ARRAY=INFO_ARRAY,$ NOSCALE=NOSCALE, SUBSCRIPT=SUBSCRIPT, $ COLOR=COLOR, out=out, pauz=pauz end (typ2 eq 7): begin ;data, info_array passed if n_elements(out) eq 0 then begin nimg=data_chk(input1,/nimages) out=intarr(nimg) endif STEPPER3q_s1,input1, $ INFO_ARRAY=input2, $ NOSCALE=NOSCALE, SUBSCRIPT=SUBSCRIPT, $ COLOR=COLOR,out=out,pauz=pauz end endcase if (keyword_set(qstop)) then stop ;outarr=where(out eq 0) return, out end