;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Lance Simms, Stanford University 2009 ;Fits_Star_Movie ; ;PURPOSE: ; This script will take a window mode exposure from an HxRG detector and make ; an mpeg from it. It will do a bias subtraction (i.e. read2 - read1 for each ; consecutive set of reads). ; ;INPUTS: ; FitsFileName: string ; The full path to the window mode exposure file ; FitsDir: ; ; MPEGDIR: string ; An optional path to the directory where the MPEG should be saved ; pro make_hxrg_window_movie, FitsFileName, FitsDir = FitsDir, Offset=Offset, $ BiasSub = BiasSub, Scale=Scale Common FitsCube, FCB, unit Common KeyParams, KeyStr ;Include all of the keywords from the KeywordStruct file @KeywordStruct_xRG.pro @PlotSettings_xRG.pro If N_Elements(OFfset) eq 0 then Offset = 0 If N_Elements(BiasSub) eq 0 then BiasSub = 0 If N_Elements(Scale) eq 0 then Scale = 0 Position = fits_open_datacube(FitsFileName, FCB, Header, 'Read') naxis2 = fcb.axis(1) naxis3 = fcb.axis(2) naxis4 = fcb.axis(3) bitpix = fcb.bitpix(0) bzero = fcb.bzero(0) bytes_per_word = (abs(bitpix)/8) NumPixPerFrame = NAXIS1*NAXIS2 If NAxis4 eq 0 then begin NAxis4 = 1 window, xsize=512,ysize=512 If BiasSub eq 1 then NAxis3 = NAxis3/2 endif else begin !p.noerase = 1 window, xsize = 512, ysize =1024 endelse ;MOVIE PARAMETERS ;***************** FitsFileBase = KeyStr.RawObjectKey MPEGDIR = KeyStr.RedObjectDir Mpegname=MPEGDIR+FitsFileBase+'.mpeg' Movie=mpeg_open([512,512], quality = 100) FrameNo=0 FrameGap=10 ;CONSTANTS ;************************************************************* WindowNum = 0 ;Only one window here set_plot,'X' for FrameNum = 0, NAXIS3-1 do begin ;A little output print, 'Procesing File Number ' + strtrim(FrameNum, 2) If BiasSub eq 0 then begin Fits_Read_Datacube,FitsFileName, Data, Header, $ ZStart = Naxis4*FrameNum+WindowNum, $ ZStop = Naxis4*FrameNum+WindowNum, Offset=Offset EndIf Else Begin Fits_Read_Datacube,FitsFileName, Data1, Header, $ ZStart = 2*Naxis4*FrameNum+WindowNum, $ ZStop = 2*Naxis4*FrameNum+WindowNum, Offset=Offset Fits_Read_Datacube,FitsFileName, Data2, Header, $ ZStart = 2*Naxis4*FrameNum+1+WindowNum, $ ZStop = 2*Naxis4*FrameNum+1+WindowNum, Offset=Offset Data = long(Data2)-long(Data1) EndElse ThisWindow = Data MeanWin = Mean(thisWindow) StdDevWin = StdDev(thisWindow) If Scale eq 0 then begin MinWin = MeanWin-2*StdDevWin MaxWin = MeanWin+2*StdDevWin EndIf else begin MinWin = Min(ThisWindow)+StdDevWin MaxWin = Max(thisWindow)-StdDevWin Endelse MovieIm = bytscl(congrid(ThisWindow,512,512), $ min = MinWin, $ max = MaxWin) ;Fill in the Gaps for i = 0 , FrameGap do begin Mpeg_Put, Movie, IMAGE = MovieIm, Frame = FrameNum + i endfor endfor mpeg_save, Movie, FILENAME= MpegName mpeg_close, Movie end