PRO runanim,nend,delay,backward=backward,nstart=nstart if n_params() eq 0 then begin print,'runanim,nend,delay,backward=backward,nmin=nmin' print,'nend : number of the last frame to show' print,'delay : wait between frames' print,'backward: show frames backward' print,'nstart : number of start frame (default=0)' return endif COMMON canim, s, nx, ny, dx, dy if keyword_set(nstart) eq 0 then nstart = 0 wset,0 if keyword_set(backward) eq 0 then begin step = 1 is = 0 ie = nx-1 js = 0 je = ny-1 test = 0 endif else begin step = -1 ie = 0 is = nx-1 je = 0 js = ny-1 test = nx*ny endelse k=1 for i=is,ie,step do begin for j=js,je,step do begin if(test le nend and test ge nstart) then begin device,copy=[i*s(2),j*s(3),s(2),s(3),dx,dy,1] wait,delay if k ge nend then goto, finis k=k+1 endif test = test + step end end finis: END PRO loadanim,nstart,nfile,file,ext,compress=compress,temp=temp,$ no_zero=no_zero, nu=nu, m=m ; stone age/Aake init version ; 25.05-94/Bo included 8 bit conversion ; 26.05-94/kg included file and ext to the input ; 26.05-94/kg,Bo included nstart, /compress, /no_zero ; 26.05-94/Bo included temp=temp ; 26.05-94/kg included backward frame stepping in runanim ; ??.06-94/kg included nu=nu COMMON canim, s, nx, ny, dx, dy if n_params() eq 0 then begin print,'loadanim,nstart,nfile,file,ext,/compress,temp=temp,/no_zero,/nu' print,'nstart : number of the first data file print,'nfile : last file to read' print,'file : main file name' print,"ext : extension on file name, e.g. '.tiff'" print,'/compress : used when the data files are compressed' print,"temp : temporary filename when uncompressing, e.g. '/tmp/blaaa'" print,'/no_zero : used when no leading zeros in numbers' print,'/nu : when set numbers appear on the animation' return endif COMMON c_fade,r,g,b set_plot,'X' device,pseudo=8 !order=1 ny=7l nx=long((nfile+1-nstart)/ny)+1l print,nfile-nstart+1,nx,ny k=nstart if keyword_set(no_zero) ne 0 then begin file_name=strcompress(file+str(k)+ext) endif else begin if (k lt 10) then file_name =strcompress(file+'00'+str(k)+ext) if (k ge 10 and k lt 100) then file_name =strcompress(file+'0'+str(k)+ext) if (k ge 100 and k lt 1000) then file_name =strcompress(file+str(k)+ext) endelse if keyword_set(compress) ne 0 then begin if n_elements(temp) eq 0 then temp='tmp' ; default is 'tmp' cmd='zcat '+file_name+'.Z > '+ temp print,cmd spawn,cmd file_name=temp endif im=tiff_read(file_name) s=size(im) im=reform(color_quan(im, 1, R, G, B, COLORS=256, GET_TRANSLATION=ctrans, /MAP_ALL)) window,1,/pix,xsize=nx*s(2),ysize=ny*s(3) m=0 xsize=775>s(2) ysize=580>s(3) dx=((xsize-s(2)+2*m)>0)/2 dy=((ysize-s(3)+2*m)>0)/2 window,0,xsize=xsize,ysize=ysize tvlct, R, G, B wset,1 & erase for i=0,nx-1l do begin for j=0,ny-1l do begin if keyword_set(no_zero) ne 0 then begin file_name=strcompress(file+str(k)+ext) endif else begin if (k lt 10) then file_name =strcompress(file+'00'+str(k)+ext) if (k ge 10 and k lt 100) then file_name =strcompress(file+'0'+str(k)+ext) if (k ge 100 and k lt 1000) then file_name =strcompress(file+str(k)+ext) endelse if keyword_set(compress) ne 0 then begin cmd='zcat '+file_name+'.Z > '+ temp print,cmd spawn,cmd file_name=temp endif im=tiff_read(file_name) im=reform(color_quan(im, 1, R, G, B, COLORS=256, TRANSLATION=ctrans)) ; im = rotate(rotate(im,2),5) wset,0 if (k ne nstart) then xyouts,.1,.1,/nor,str(k-1),col=0 tv,im(m:s(2)-m-1,m:s(3)-m-1),dx,dy xyouts,.1,.1,/nor,str(k),col=10 wset,1 tv,im(m:s(2)-m-1,m:s(3)-m-1),i*s(2),j*s(3) if keyword_set(nu) ne 0 then xyouts,10+i*s(2),10+j*s(3),/dev,str(k) if k ge nfile then goto, display k=k+1 end end display: if keyword_set(compress) ne 0 then begin cmd='\rm '+temp print,cmd spawn,cmd endif wset,0 erase wset,1 runanim,nfile-nstart+1,.1 print, 'there are '+str(nfile-nstart+1)+' frames in the sequence' END