|
|
 
; 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