Next Routine
|
 
; TIME_STAMP_Z ; TIME_STAMP_Z ORs a time stamp on each frame of an EIT movie (or other ; 3-dimensional byte array). ; D.M. fecit, 1996 May 10. ; Added narrow keyword for windows too narrow to fit entire time stamp, ; 1996 September 6. D.M. fecit. ; Added no_preserve keyword to accommodate large arrays. ; 1996 December 30. D.M. fecit. ; Woke up and started ORing the movie frames with a small time stamp ; window instead of displaying and reading back the entire movie. ; D.M. fecit, 1997 March 11. ; J.S. Newmark - 2000 January 31 - bug fixes, new features. ; From TIME_STAMP, 2001 Auguist 13. D.M. fecit. ; function time_stamp_z, movie, time_array, x0, y0, narrow = narrow, $ no_preserve = no_preserve, big_font = big_font ; ; Read in the limited font set. ; test = avant_garde(' ') ; if not keyword_set(narrow) then narrow = 0 ; if keyword_set(no_preserve) then preserve = 0 else preserve = 1 ; device_name = !d.name set_plot, 'z' & device, set_res = [512, 512] ; if preserve then begin ; b0 = movie & sz_b0 = size(b0) & nx = sz_b0(1) & ny = sz_b0(2) if sz_b0(0) eq 2 then n_frame = 1 else n_frame = sz_b0(3) ; if nx lt 128 or (keyword_set(big_font) and nx lt 256) then narrow = 1 ; font = !p.font & !p.font = 0 device, font = avant_garde for i_frame = 0, n_frame - 1 do begin if not narrow then begin label = avant_garde(time_array(i_frame)) & sz_l = size(label) nx0 = sz_l(1) b0(x0, y0, i_frame) = $ b0(x0:x0 + nx0 - 1, y0:y0 + 21, i_frame) or label endif else begin date_line = avant_garde(strmid(time_array(i_frame), 0, 11)) sz_d = size(date_line) & nxd = sz_d(1) time_line = svant_garde(strmid(time_array(i_frame), 11, 8)) sz_t = size(time_line) & nxt = sz_t(1) b0(x0, y0, i_frame) = $ b0(x0:x0 + nxt - 1, y0:y0 + 21, i_frame) or time_line b0(x0, y0 + 25, i_frame) = $ b0(x0:x0 + nxd - 1, y0 + 25:y0 + 46, i_frame) or date_line end end ; endif else begin ; sz_movie = size(movie) & nx = sz_movie(1) & ny = sz_movie(2) if sz_movie(0) eq 2 then n_frame = 1 else n_frame = sz_movie(3) ; if nx lt 128 or (keyword_set(big_font) and nx lt 256) then narrow = 1 ; for i_frame = 0, n_frame - 1 do begin if not narrow then begin label = avant_garde(time_array(i_frame)) & sz_l = size(label) nx0 = sz_l(1) movie(x0, y0, i_frame) = $ movie(x0:x0 + nx0 - 1, y0:y0 + 21, i_frame) or label endif else begin date_line = avant_garde(strmid(time_array(i_frame), 0, 11)) sz_d = size(date_line) & nxd = sz_d(1) time_line = svant_garde(strmid(time_array(i_frame), 11, 8)) sz_t = size(time_line) & nxt = sz_t(1) movie(x0, y0, i_frame) = $ movie(x0:x0 + nxt - 1, y0:y0 + 21, i_frame) or time_line movie(x0, y0 + 25, i_frame) = $ movie(x0:x0 + nxd - 1, y0 + 25:y0 + 46, i_frame) or date_line end end ; end ; set_plot, device_name ; if preserve then return, b0 else return, movie & end
Last revised: - Wed May 9 21:45:07 2007- F. Auchère