pro eit_mkmovie,list,outsize=outsize,mpeg=mpeg,gif=gif,java=java,wave=wave,$
movie_name=movie_name,outdir=outdir
;+
; NAME:
; EIT_MKMOVIE
;
; PURPOSE:
; Create a GIF or MPEG movie from an Input FITS file list or byte-scaled
; data cube
;
; CATEGORY:
; Animation
;
; CALLING SEQUENCE:
; eit_mkmovie,input [,outsize=outsize][,/mpeg][,/gif][,wave=wave][movie_name=name]
;
; INPUTS:
; list I = listing of LZ or QKL data files or a bytescaled datacube as
; may come from an existing IDL save set.
;
; OPTIONAL INPUT KEYWORD PARAMETERS:
; wave I = wavelength
; outsize I = 2 dimensional array for output size of image
; movie_name I = output movie name (default derived from input data)
; gif I = select if want gif animation
; mpeg I = select if want mpeg animation
; java I = select if want javascript animation
; outidr I = set for specified output directory
;
; OUTPUTS:
; Creates either a GIF or MPEG file
;
; COMMON BLOCKS: none.
;
; SIDE EFFECTS: temporarily creates GIF files for each image
;
; RESTRICTIONS:
;
; PROCEDURE:
;
; MODIFICATION HISTORY:
; Written by: J. Newmark Date. September 1997
; 1999 February 11 J. Newmark Add Java, ooutdir, clean up
;-
mpeg = keyword_set(mpeg)
gif = keyword_set(gif)
java = keyword_set(java)
if not mpeg and not gif and not java then gif = 1
if datatype(list) eq 'STR' then begin ; input is file listing
stat = is_fits(list(0))
if not stat then list = eit_file2path(list)
read_eit,list,index,data
index.naxis = 2
if n_elements(wave) ne 0 then begin
good = where(index.wavelnth eq wave)
index = index(good)
data = temporary(data(*,*,good))
endif else wave = index(0).wavelnth
eit_prep,index,data=temporary(data),outindex,outdata,/normalize,/surround
scl = min(outdata)>1e-2
data = bytscl(alog10(temporary(outdata)>max([scl,0.1])))
times = anytim2utc(outindex.date_obs,/ccsds,/truncate,/noz)
label = 1
autoname = 0
endif else begin ; otherwise input is a byte-scaled data cube
data = temporary(list)
times = 0
label = ''
autoname = 1
if n_elements(wave) eq 0 then wave = 3
endelse
if wave gt 42 then eit_colors,wave,r,g,b else begin
loadct,wave
tvlct,r,g,b,/get
endelse
;
; adjust colors if on X
if !d.name eq 'X' then begin
wdisplay,data(*,*,0)
xmessage,wait=4,'Use XLOADCT to make any necessary color adjustments.'
xloadct,file=getenv('coloreit'),/modal
tvlct,r,g,b,/get
endif
if not keyword_set(outdir) then begin
path_http=get_logenv('path_http')
outdir=get_logenv('SSW_MOVIE_SCRATCH')
if outdir eq '' then outdir=concat_dir(path_http,'movie_scratch')
if not file_exist(outdir) then outdir=concat_dir(path_http,'movies')
if not file_exist(outdir) then outdir=curdir()
endif
data2files,data,r,g,b,filenames=filenames,/gif,times=times,autoname=autoname,$
outdir=outdir
if not keyword_set(outsize) then begin
sz=size(data)
outsize=[sz(1),sz(2)]
endif
if n_elements(movie_name) eq 0 then begin
if autoname then movie_name = 'eit_'+ strtrim(wave,2) else $
movie_name = 'eit_' + strmid(filenames(0),0,9) + strtrim(wave,2)
endif
image2movie,filenames,/loop,gif=gif,mpeg=mpeg,outsize=outsize,/nothumbnail,$
movie_name=movie_name,label=label,uttimes=times,java=java,outdir=outdir
rm_file,filenames
end
Last revised: - Wed May 9 21:45:01 2007- F. Auchère