;+ ; ;zfix,cubefromidl,file=file ; ; THIS IS A QUICK FIX FOR THE LATEST WEIRD STRIP OF BAD PIXELS IN JBB CUBES ; PASS IN THE NAME OF THE FILE OR A DATACUBE AND IT WILL FIX THE THREE BAD ROWS OF DATA ;- PRO zfix,cubefromidl,file=file ;these are the bad pixels ;X,Y,SPEC ;3 38 137:152 ;4 38 171:186 ;5:38 204:220 ;6,38,239:254 ;7 38 275:288 ;8:38 313:323 ;9,38,347:352 ;10,38,383:387 ;11,38,419:422 ;6,39,501:505 ;1,31,589:591 ;2,31:34,605:636 ;3,638:669 ;4,674:702 ;5,709:736 ;6,743:770 ;7,778:804 ;8,813:838 ;9,848:872 ;10,884:906 ;11,920:939 ;12,30:34,955:974 ;13,986:1012 ;14,1021:1046 ;15,1054:1080 ;16:1087:1115 ;17,32:34,1120:1150 if (keyword_set(file)) then begin image=readfits(file,h,exten=0) noise=readfits(file,exten=1) flags=readfits(file,exten=2) dataset={image:ptr_new(image),noise:ptr_new(noise),flags:ptr_new(flags)} cube=*dataset.image endif else cube=cubefromidl start=[605,638,671,709,743,778,813,848,884,920,955,986,1021,1054,1087] final=[636,669,702,736,770,804,838,872,906,939,974,1012,1046,1080,1115] xrow=[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] for col=0,14 do begin i=xrow[col] for j=start[col],final[col] do begin for k=30,34 do begin cube[j,k,i]=median([cube[j,k+1,i-1],cube[j,k+1,i+1],cube[j,k-1,i-1],cube[j,k-1,i+1],cube[j,k,i-1],cube[j,k,i+1]],/even) endfor endfor endfor ;one pix at x=17, y=32:34 for j=1120,1150 do begin for k=32,34 do begin cube[j,k,17]=median([cube[j,k+1,16],cube[j,k-1,16],cube[j,k,16],cube[j,k-1,17],cube[j,k+1,17]],/even) endfor endfor ;one pix at x=1, y=31 for j=589,591 do begin cube[j,31,1]=median([cube[j,32,2],cube[j,30,2],cube[j,31,2],cube[j,30,1],cube[j,32,1]],/even) endfor ;other set of bad pixels ostart=[137,171,204,239,275,313,347,383,419,501] ofinal=[152,186,220,254,288,323,352,387,422,505] orow=[3,4,5,6,7,8,9,10,11] for col=0,8 do begin i=orow[col] for j=ostart[col],ofinal[col] do begin cube[j,38,i]=median([cube[j,38+1,i-1],cube[j,38+1,i+1],cube[j,38-1,i-1],cube[j,38-1,i+1],cube[j,38,i-1],cube[j,38,i+1]],/even) endfor endfor if (keyword_set(file)) then begin sxaddpar,h,'JFIX',1.0,'Bad rows fixed by jfix.pro' file='fixed_'+file writefits,file,cube,h writefits,file,*dataset.noise,/append writefits,file,*dataset.flags,/append endif else cubefromidl=cube ;tvscl,rebin(total(cube,1),640,190)<100000 end