;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; function dobytscl,img,ddn med=median(img) return,bytscl(img,min=med-ddn,max=med+ddn) end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; pro vmsdotest, inimagem, darkimagem, imgCols, pfx inimagemTmp=inimagem darkimagemTmp = darkimagem mask_dn2=DICAL_vismodulemask(inimagemTmp, darkimagemTmp, imgCols) inimaged = inimagem - darkimagem mask_dn2a=mask_dn2 old = dical_vismodulestripes_old( inimaged, mask_dn2a, imgCols) inimaged = inimagem - darkimagem mask_dn2a=mask_dn2 nu = dical_vismodulestripes( inimaged, mask_dn2a, imgCols $ , rtnProfileY=rtnPY, methodOut=methodOut) help,pfx,methodOut help,old,nu,rtnPY help,max(abs(nu-old)),where(nu ne old) if n_elements(nu) ne n_elements(inimagem) then return dNu = inimaged - nu help,max(abs(dNu[imgCols,*]-rtnPY)) print,(moment(inimagem,/double))[0:1],'=Mean&Stddev,Original image' $ ,(moment(inimaged,/double))[0:1],'=Mean&Stddev,Dark-subtracted image' $ ,(moment(nu,/double))[0:1],'=Mean&Stddev,New image' $ ,f='(2g16.8,a)' print,rtnPY[*,0:30] mn=min(inimaged,max=mx) sig2=stddev(inimagem,/double)*2d0 write_png,pfx+'inm.png',dobytscl(inimagem,sig2) write_png,pfx+'ind.png',dobytscl(inimaged,sig2) write_png,pfx+'nu.png',dobytscl(nu,sig2) end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ptr_free,ptr_new(seed,/no_copy) dim=512L ru=randomu(seed,dim,dim,/double) rn=(randomn(seed,dim,dim,/double) < 3.6d0) > (-3.6d0) write_png,'vmsru.png',bytscl(ru) write_png,'vmsrn.png',dobytscl(rn,1) imgCols=[4L,507] inimagem=350d0 + $ [ long( ru * (2.0+(((lindgen(dim/2,dim)/(dim/2))/17L) mod 2L)) ) $ , long( ru * (2.0+(((lindgen(dim/2,dim)/(dim/2))/23L) mod 2L)) ) $ ] inimagem[0:imgCols[0]-1,*] = 350d0+ randomu(seed, imgCols[0], dim) inimagem[imgCols[1]+1:*,*] = 350d0+ randomu(seed, imgCols[0], dim) darkimagem = 349d0 + (rn/4d0) vmsdotest, inimagem, darkimagem, imgCols, 'vms2' inimagem=350d0 + long( 0.8d0 * ru * (2.0+(((lindgen(dim,dim)/512L)/17L) mod 2L)) ) inimagem=350d0 + $ [ long( 0.8d0 * ru * (2.0+(((lindgen(dim/2,dim)/(dim/2))/23L) mod 2L)) ) $ , long( 0.8d0 * ru * (2.0+(((lindgen(dim/2,dim)/(dim/2))/17L) mod 2L)) ) $ ] vmsdotest, inimagem, darkimagem, imgCols, 'vms1' end