pro batch_darkcurrent,dkdir=dkdir,noref=noref,saturation=saturation,e=e,nornhist=nornhist ; default directory containing raw dark current FITS files if not(keyword_set(dkdir)) then begin ; set directory according to whether using a PC or workstation if (!version.os_family eq 'unix') then begin dkdir='/data/skunk3/idtl/data/H1RG-022-SIPIN/cold1/darkcurrent_test.7May05/' endif else begin dkdir='E:\H4RG-10-007\Cold1\ASIC\07Jun01\' endelse endif if not(keyword_set(saturation)) then saturation=37900. ; check to see if input directory name ends in path delimiter--if not, add it to the end if (strmid(dkdir,strlen(dkdir)-1,1) ne path_sep()) then dkdir=dkdir+path_sep() norefdir='' if (keyword_set(noref)) then norefdir='noref'+path_sep() ; define regions for analysis region1=[4,1019,4,1019] ; region1=[700,900,200,900] ; region1=[4,4091,4,4091] ; region1=[4,2047,4,4091] ; region1=[0,3,0,4095] ; region1=[4,127,4,4091] ; region1=[50,100,1000,1000] region2=[4,511,4,4091] ; region2=[2048,2175,3950,4050] region2_even=[200,300,100,200] region2_odd = [200,300,101,200] ; regiontop=[0,4095,4092,4095] regionleft=[0,3,4,4090] ; regionleft=[0,3,4,1019] ; set flags to enable reducing specific regions doregion1=1 doregion2=0 doregion2_even= 0 doregion2_odd = 0 doregiontop=0 doregionleft=0 ; define directories to contain slope images and plots and histograms slopedir1=dkdir+norefdir+'SlopePlots'+path_sep() slopedir2 = slopedir1+'Region2' + path_sep() slopedir2_even=slopedir1+norefdir+'Region2_even' + path_sep() slopedir2_odd=slopedir1+norefdir+'Region2_odd' + path_sep() slopehistdir1=slopedir1+'histograms'+path_sep() slopehistdir2=slopedir2 +'hiltograms'+path_sep() slopehistdir2_even=slopedir2_even +'histograms'+path_sep() slopehistdir2_odd=slopedir2_odd +'histograms'+path_sep() if doregion1 then file_mkdir,slopedir1 if doregion2 then file_mkdir, slopedir2 if doregion2_even then file_mkdir,slopedir2_even if doregion2_odd then file_mkdir, slopedir2_odd if doregion1 then file_mkdir,slopehistdir1 if doregion2 then file_mkdir, slopehistdir2 if doregion2_even then file_mkdir,slopehistdir2_even if doregion2_odd then file_mkdir,slopehistdir2_odd ; define directories to contain read noise images, plots, and histograms readnoisedir1=dkdir+norefdir+'ReadNoise_Results'+path_sep() readnoisedir2=readnoisedir1+'Region2'+path_sep() readnoisedir2_even =readnoisedir1+'Region2_even'+path_sep() readnoisedir2_odd =readnoisedir1+'Region2_odd'+path_sep() readnoisedirtop=readnoisedir1+'ref_pixels_top'+path_sep() readnoisedirleft=readnoisedir1+'ref_pixels_left'+path_sep() readnoisehistdir1=readnoisedir1+'histograms'+path_sep() readnoisehistdir2=readnoisedir2+'histograms'+path_sep() readnoisehistdir2_even = readnoisedir2_even+'histograms'+path_sep() readnoisehistdir2_odd =readnoisedir2_odd+'histograms'+path_sep() readnoisehistdirtop=readnoisedirtop+'histograms'+path_sep() readnoisehistdirleft=readnoisedirleft+'histograms'+path_sep() if doregion1 then file_mkdir,readnoisedir1 if doregion2 then file_mkdir,readnoisedir2 if doregion2_even then file_mkdir, readnoisedir2_even if doregion2_odd then file_mkdir, readnoisedir2_odd if doregiontop then file_mkdir,readnoisedirtop if doregionleft then file_mkdir,readnoisedirleft if doregion1 then file_mkdir,readnoisehistdir1 if doregion2 then file_mkdir,readnoisehistdir2 if doregion2_even then file_mkdir, readnoisehistdir2_even if doregion2_odd then file_mkdir, readnoisehistdir2_odd if doregiontop then file_mkdir,readnoisehistdirtop if doregionleft then file_mkdir,readnoisehistdirleft goto, skipdark ; reduce dark current data--------------------------------------------------------------- if doregion1 then begin region=region1 slopedir=slopedir1 slopehistdir=slopehistdir1 darkcurrent_reduce,dkdir,outdir=slopedir,region=region,noref=noref darkcurrent_analysis,slopedir,saturation=saturation ;,e=1620./7500. ;,e=3.45 darkjumbo2,slopedir ;,egain=3.45 makehistogram,slopedir,'slopeimgs.txt','Dark Current',outdir=slopehistdir,'Dark Current (ADU/second)',region=region ; reduce initial dark current images cd, dkdir cd, current = cwd temp=file_search('initial_dark_*.fits') if (temp[0] ne '') then begin darkcurrent_reduce,dkdir,infile='initial.lst',outdir=slopedir,region=region,valoutfile='slopevals_init.txt', $ imgoutfile = 'slopeimgs_init.txt',noref=noref darkcurrent_analysis,slopedir,infile='slopevals_init.txt',jumbofile='darkjumbo_init.txt' makehistogram,slopedir,'slopeimgs_init.txt','Dark Current',outdir=slopehistdir,'Dark Current (ADU/second)',region=region darkjumbo2,slopedir,infile='darkjumbo_init.txt',ext='_init' endif cd, cwd endif if doregion2 then begin region=region2 slopedir=slopedir2 slopehistdir=slopehistdir2 darkcurrent_reduce,dkdir,outdir=slopedir,region=region,infile='dark.lst',noref=noref darkcurrent_analysis,slopedir makehistogram,slopedir,'slopeimgs.txt','Dark Current',outdir=slopehistdir,$ 'Dark Current (ADU/second)',region=region darkjumbo2,slopedir ; reduce initial dark current images cd, dkdir cd, current = cwd temp=file_search('initial_dark_*.fits') if (temp[0] ne '') then begin darkcurrent_reduce,dkdir,infile='initial.lst',outdir=slopedir,region=region,$ valoutfile='slopevals_init.txt', $ imgoutfile = 'slopeimgs_init.txt',noref=noref darkcurrent_analysis,slopedir,infile='slopevals_init.txt',$ jumbofile='darkjumbo_init.txt' makehistogram,slopedir,'slopeimgs_init.txt','Dark Current',outdir=slopehistdir,$ 'Dark Current (ADU/second)',region=region darkjumbo2,slopedir,infile='darkjumbo_init.txt',ext='_init' endif cd, cwd endif if doregion2_even then begin region=region2_even slopedir=slopedir2_even slopehistdir=slopehistdir2_even darkcurrent_reduce,dkdir,outdir=slopedir,region=region, $ rowinc = 2,noref=noref darkcurrent_analysis,slopedir makehistogram,slopedir,'slopeimgs.txt','Dark Current', $ outdir=slopehistdir,'Dark Current (ADU/second)', $ region=region, rowinc = 2 darkjumbo2,slopedir ; reduce initial dark current images for region2 cd, dkdir cd, current = cwd temp=file_search('initial_dark_*.fits') if (temp[0] ne '') then begin darkcurrent_reduce,dkdir,infile='initial.lst',outdir=slopedir,region=region, valoutfile='slopevals_init.txt', $ imgoutfile = 'slopeimgs_init.txt', rowinc = 2,noref=noref darkcurrent_analysis,slopedir,infile='slopevals_init.txt',jumbofile='darkjumbo_init.txt' makehistogram,slopedir,'slopeimgs_init.txt','Dark Current',$ outdir=slopehistdir,'Dark Current (ADU/second)',$ region=region, rowinc = 2 darkjumbo2,slopedir,infile='darkjumbo_init.txt',ext='_init' endif cd, cwd endif if doregion2_odd then begin region=region2_odd slopedir=slopedir2_odd slopehistdir=slopehistdir2_odd darkcurrent_reduce,dkdir,outdir=slopedir,region=region, $ rowinc = 2,noref=noref darkcurrent_analysis,slopedir makehistogram,slopedir,'slopeimgs.txt','Dark Current', $ outdir=slopehistdir,'Dark Current (ADU/second)', $ region=region, rowinc = 2 darkjumbo2,slopedir ; reduce initial dark current images for region2 cd, dkdir cd, current = cwd temp=file_search('initial_dark_*.fits') if (temp[0] ne '') then begin darkcurrent_reduce,dkdir,infile='initial.lst',outdir=slopedir,region=region, valoutfile='slopevals_init.txt', $ imgoutfile = 'slopeimgs_init.txt', rowinc = 2,noref=noref darkcurrent_analysis,slopedir,infile='slopevals_init.txt',jumbofile='darkjumbo_init.txt' makehistogram,slopedir,'slopeimgs_init.txt','Dark Current',$ outdir=slopehistdir,'Dark Current (ADU/second)',$ region=region, rowinc = 2 darkjumbo2,slopedir,infile='darkjumbo_init.txt',ext='_init' endif cd, cwd endif ;stop skipdark: ; reduce read noise data--------------------------------------------------------------- ; call rnperpixel to write the std histogram images into the ReadNoise_Results directory ; create read noise histogram data if doregion1 then begin if not(keyword_set(nornhist)) then rnperpixel,dkdir,infile='dark.lst',outdir=readnoisedir1 ; readuce read noise data for region2 region=region1 outdir=readnoisedir1 histdir=readnoisehistdir1 readnoise_reduce,dkdir,infile='dark.lst',outdir=outdir,region=region, /minexp,noref=noref,e=e ;,e=2.5 ;,e=1620./7500. readnoise_reduce,dkdir,infile='dark.lst',outdir=outdir,region=region, /novar,noref=noref,e=e ;,e=2.5 ;e=1620./7500. ; readnoise_reduce,dkdir,infile='gain=16.lst',outdir=readnoisedir1+'gain=16_small\',region=region, /minexp,noref=noref ; readnoise_reduce,dkdir,infile='gain=4.lst',outdir=readnoisedir1+'gain=4_small\',region=region, /minexp,noref=noref ; readnoise_reduce,dkdir,infile='gain=2.lst',outdir=readnoisedir1+'gain=2_small\',region=region, /minexp,noref=noref ; readnoise_reduce,dkdir,infile='gain=1.lst',outdir=readnoisedir1+'gain=1_small\',region=region, /minexp,noref=noref ;,e=3.4 ; readnoise_reduce,dkdir,infile='gain=8.lst',outdir=readnoisedir1+'gain=8_small\',region=region, /minexp,noref=noref ; ; readnoise_reduce,dkdir,infile='gain=1_Switchbox=4808.lst',outdir=readnoisedir1+'gain=1_Switchbox=4808\',region=region, /minexp,noref=noref ; readnoise_reduce,dkdir,infile='gain=4_Switchbox=4808.lst',outdir=readnoisedir1+'gain=4_Switchbox=4808\',region=region, /minexp,noref=noref ; readnoise_reduce,dkdir,infile='gain=1_Volt_Adj.lst',outdir=readnoisedir1+'gain=1_Volt_Adj\',region=region, /minexp,noref=noref ;,e=3.4 ; readnoise_reduce,dkdir,infile='gain=2_Volt_Adj.lst',outdir=readnoisedir1+'gain=2_Volt_Adj\',region=region, /minexp,noref=noref ; readnoise_reduce,dkdir,infile='gain=4_Volt_Adj.lst',outdir=readnoisedir1+'gain=4_Volt_Adj\',region=region, /minexp,noref=noref ; readnoise_reduce,dkdir,infile='gain=8_Volt_Adj.lst',outdir=readnoisedir1+'gain=8_Volt_Adj\',region=region, /minexp,noref=noref ; readnoise_reduce,dkdir,infile='gain=16_Volt_Adj.lst',outdir=readnoisedir1+'gain=16_Volt_Adj\',region=region, /minexp,noref=noref ; readnoise_reduce,dkdir,infile='gain=1_Volt_Adj_Switchbox=4808.lst',outdir=readnoisedir1+'gain=1_Volt_Adj_Switchbox=4808\',region=region, /minexp,noref=noref ; readnoise_reduce,dkdir,infile='gain=4_Volt_Adj_Switchbox=4808.lst',outdir=readnoisedir1+'gain=4_Volt_Adj_Switchbox=4808\',region=region, /minexp,noref=noref ; ; make read noise histograms if not(keyword_set(nornhist)) then makehistogram,readnoisedir1,'stdfiles.txt','CDS Noise','CDS Noise (ADU)', outdir=histdir, region=region endif if doregion2 then begin ; readuce read noise data for region2 if not(keyword_set(nornhist)) then rnperpixel,dkdir,infile='rn.lst',outdir=readnoisedir2 region=region2 outdir=readnoisedir2 histdir=readnoisehistdir2 readnoise_reduce,dkdir,infile='dark.lst',outdir=outdir,region=region, /minexp,noref=noref readnoise_reduce,dkdir,infile='dark.lst',outdir=outdir,region=region, /novar,noref=noref ; make read noise histograms if not(keyword_set(nornhist)) then makehistogram,readnoisedir2,'stdfiles.txt','CDS Noise','CDS Noise (ADU)', outdir=histdir, region=region endif if doregion2_even then begin ; readuce read noise data for region2 region=region2_even outdir=readnoisedir2_even histdir=readnoisehistdir2_even readnoise_reduce,dkdir,infile='rn.lst',outdir=outdir,region=region, rowinc = 2, /minexp,noref=noref readnoise_reduce,dkdir,infile='rn.lst',outdir=outdir,region=region, rowinc = 2, /novar,noref=noref ; make read noise histograms makehistogram,readnoisedir1,'stdfiles.txt','CDS Noise','CDS Noise (ADU)', $ outdir=histdir, region=region, rowinc = 2 endif if doregion2_odd then begin ; readuce read noise data for region2 region=region2_odd outdir=readnoisedir2_odd histdir=readnoisehistdir2_odd readnoise_reduce,dkdir,infile='rn.lst',outdir=outdir,region=region, rowinc = 2, /minexp,noref=noref readnoise_reduce,dkdir,infile='rn.lst',outdir=outdir,region=region, rowinc = 2, /novar,noref=noref ; make read noise histograms makehistogram,readnoisedir1,'stdfiles.txt','CDS Noise','CDS Noise (ADU)', $ outdir=histdir, region=region, rowinc = 2 endif if doregiontop then begin ; readuce read noise data for top reference rows region=regiontop outdir=readnoisedirtop histdir=readnoisehistdirtop readnoise_reduce,dkdir,infile='rn.lst',outdir=outdir,region=region, /minexp,noref=noref readnoise_reduce,dkdir,infile='rn.lst',outdir=outdir,region=region, /novar,noref=noref ; make read noise histograms makehistogram,readnoisedir1,'stdfiles.txt','CDS Noise','CDS Noise (ADU)',outdir=histdir,region=region endif if doregionleft then begin ; readuce read noise data for left reference rows region=regionleft outdir=readnoisedirleft histdir=readnoisehistdirleft readnoise_reduce,dkdir,infile='rn.lst',outdir=outdir,region=region, /minexp,noref=noref readnoise_reduce,dkdir,infile='rn.lst',outdir=outdir,region=region, /novar,noref=noref ; make read noise histograms makehistogram,readnoisedir1,'stdfiles.txt','CDS Noise','CDS Noise (ADU)',outdir=histdir,region=region endif end ;----------------------------------------------------------------- pro doall CD , 'c:\rsi' , CURRENT=savdir setenv, 'MYARG="hostname" > "temp.txt" SPAWN, '%MYARG%' readcol,'temp.txt',dummy,format='a' if stregex(dummy,'TIGER',/boolean) then drive='\\hawk.cis.rit.edu\raid1' if stregex(dummy,'wolf',/boolean) then drive='\\hawk.cis.rit.edu\raid1' if stregex(dummy,'HAWK',/boolean) then drive='e:' drive='k:' batch_darkcurrent,dkdir=drive+'\LEACH\2007Nov13_2\Fe-55\Complete_Images',saturation=60000,/noref, /nornhist stop batch_darkcurrent,dkdir=drive+'\ASIC\ktc\H4RG_gain=1\present',saturation=60000,/noref, /nornhist batch_darkcurrent,dkdir=drive+'\ASIC\ktc\H4RG_gain=1\removed',saturation=60000,/noref, /nornhist batch_darkcurrent,dkdir=drive+'\ASIC\ktc\H4RG_gain=4\present',saturation=60000,/noref, /nornhist batch_darkcurrent,dkdir=drive+'\ASIC\ktc\H4RG_gain=4\removed',saturation=60000,/noref, /nornhist batch_darkcurrent,dkdir=drive+'\ASIC\ktc\H4RG_gain=8\present',saturation=60000,/noref, /nornhist batch_darkcurrent,dkdir=drive+'\ASIC\ktc\H4RG_gain=8\removed',saturation=60000,/noref, /nornhist stop batch_darkcurrent,dkdir=drive+'\RdNoiseTest',saturation=60000,/noref, /nornhist stop batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\Leach\11Sep07_Fe55VsVSUB\VSUB=0',saturation=60000,/noref, /nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\Leach\11Sep07_Fe55VsVSUB\VSUB=5',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\Leach\11Sep07_Fe55VsVSUB\VSUB=10',saturation=60000,/noref, /nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\Leach\11Sep07_Fe55VsVSUB\VSUB=20',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\Leach\11Sep07_Fe55VsVSUB\VSUB=30',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\Leach\11Sep07_Fe55VsVSUB\VSUB=40',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\Leach\11Sep07_Fe55VsVSUB\VSUB=50',saturation=60000,/noref,/nornhist stop batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\ASIC\darkcurrent_gain=4_nolownoise.02Sep07',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\ASIC\darkcurrent_gain=4.03Sep07',saturation=60000,/noref,/nornhist stop batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\ASIC\fe55_gain.22Aug07\Fe55_gain=2\',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\ASIC\fe55_gain.22Aug07\Fe55_gain=4\',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\ASIC\fe55_gain.22Aug07\Fe55_gain=8\',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\ASIC\fe55_gain.22Aug07\Fe55_gain=16\',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\ASIC\fe55_gain_NOSF.23Aug07\Fe55_gain=1\',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\ASIC\fe55_gain_NOSF.23Aug07\Fe55_gain=2\',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\ASIC\fe55_gain_NOSF.23Aug07\Fe55_gain=4\',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\ASIC\fe55_gain_NOSF.23Aug07\Fe55_gain=8\',saturation=60000,/noref,/nornhist batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\ASIC\fe55_gain_NOSF.23Aug07\Fe55_gain=16\',saturation=60000,/noref,/nornhist stop batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold3\Leach\15Aug07_Dark_Vreset\',saturation=65000,/noref batch_darkcurrent,dkdir=drive+'\H1RG-022-SIPIN\Cold1\LEACH\10Aug07_Fe55\Low_Gain\',saturation=65000,e=1620./420. batch_darkcurrent,dkdir=drive+'\H1RG-022-SIPIN\Cold1\LEACH\10Aug07_Fe55\High_Gain\',saturation=65000,e=1620./1730. batch_darkcurrent,dkdir=drive+'\H1RG-022-SIPIN\Cold1\LEACH\10Aug07_DarkCurrent\High_Gain\',saturation=65000,e=1620./1730. batch_darkcurrent,dkdir=drive+'\H1RG-022-SIPIN\Cold1\LEACH\10Aug07_DarkCurrent\Low_Gain\',saturation=65000,e=1620./420. stop batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold2\Leach\30July07_Fe55\',saturation=60000,/noref stop batch_darkcurrent,dkdir=drive+'\H1RG-022-SIPIN\Cold1\ASIC\fe55_gain.11Aug07\Fe55_gain=16\', saturation=65000 batch_darkcurrent,dkdir=drive+'\H1RG-022-SIPIN\Cold1\ASIC\fe55_gain.11Aug07\Fe55_gain=2\', saturation=65000 batch_darkcurrent,dkdir=drive+'\H1RG-022-SIPIN\Cold1\ASIC\fe55_gain.11Aug07\Fe55_gain=4\', saturation=65000 batch_darkcurrent,dkdir=drive+'\H1RG-022-SIPIN\Cold1\ASIC\fe55_gain.11Aug07\Fe55_gain=8\', saturation=65000 batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold2\ASIC\darkcurrent_test.22Jul07\',saturation=37000 batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold2\ASIC\darkcurrent_test.25Jul07\',saturation=37000 ;batch_darkcurrent,dkdir='\H4RG-10-007\Cold1\ASIC\07Jun01\',/noref ; batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold2\Leach\30July07_Fe55\' ;,/noref ; batch_darkcurrent,dkdir=drive+'\H4RG-10-007\cold2\Leach\30July07_Fe55\',/noref end