;+ ; ;jfix,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 jfix,cubefromidl,file=file ;these are the bad pixels ;X,Y,SPEC ;17,37:39,867:885 ;16,37:39,834:851 ;15,37:39,803:814 ;14,37:39,768:783 ;13,37:39,734:750 ;12,37:39,702:717 ;11,37:39,670:684 ;10,37:39,637:651 ;9,37:39,604:618 ;8,37:39,572:585 ;7,37:39,540:552 ;6,37:39,507:519 ;5,37:39,473:487 ;4,37:39,440:454 ;3,37:39,407:422 ;2,37:39,372:389 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=[372,407,440,473,507,540,572,604,637,670,702,734,768,803,834,867] final=[389,422,454,487,519,552,585,618,651,684,717,750,783,814,851,885] xrow=[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17] for k=1,14 do begin for j=start[k],final[k] do begin i=xrow[k] cube[j,37,i]=median([cube[j,36,i-1],cube[j,36,i],cube[j,36,i+1],cube[j,37,i-1],cube[j,37,i+1],cube[j,38,i-1],cube[j,38,i+1]],/even) cube[j,38,i]=median([cube[j,39,i-1],cube[j,39,i+1],cube[j,37,i-1],cube[j,37,i+1],cube[j,38,i-1],cube[j,38,i+1]],/even) cube[j,39,i]=median([cube[j,40,i-1],cube[j,40,i],cube[j,40,i+1],cube[j,39,i-1],cube[j,39,i+1],cube[j,38,i-1],cube[j,38,i+1]],/even) endfor endfor k=0 for j=start[k],final[k] do begin i=xrow[k] cube[j,37,i]=median([cube[j,36,i],cube[j,36,i+1],cube[j,37,i+1],cube[j,38,i+1]],/even) cube[j,38,i]=median([cube[j,39,i+1],cube[j,37,i+1],cube[j,38,i+1]],/even) cube[j,39,i]=median([cube[j,40,i],cube[j,40,i+1],cube[j,39,i+1],cube[j,38,i+1]],/even) endfor k=15 for j=start[k],final[k] do begin i=xrow[k] cube[j,37,i]=median([cube[j,36,i],cube[j,36,i-1],cube[j,37,i-1],cube[j,38,i-1]],/even) cube[j,38,i]=median([cube[j,39,i-1],cube[j,37,i-1],cube[j,38,i-1]],/even) cube[j,39,i]=median([cube[j,40,i],cube[j,40,i-1],cube[j,39,i-1],cube[j,38,i-1]],/even) 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