#pragma rtGlobals=1 // Use modern global access method and strict wave access. Function AngleToK(inwave) Wave inwave String newname = NameofWave(inwave)+"_k" Duplicate/O inwave, $newname Wave outwave = $newname Variable rows,columns,xdelta,xoffset,ydelta,yoffset // inwave parameters rows = DimSize(inwave,0) columns = DimSize(inwave,1) xdelta = DimDelta(inwave,0) xoffset = DimOffset(inwave,0) ydelta = DimDelta(inwave,1) yoffset = DimOffset(inwave,1) Variable kmin,kmax,kdelta,Emax Emax = xoffset + xdelta*(rows-1) kmin = 0.512*sqrt(Emax)*sin(pi/180*(yoffset)) // calculate the k boundaries (i.e., k at highest Ekin) kmax = 0.512*sqrt(Emax)*sin(pi/180*(yoffset+(columns-1)*ydelta)) SetScale/I y kmin,kmax,"Ang^-1", outwave // scale the y axis outwave = interp2D(inwave, x, 180/pi*asin(y/ (0.512*sqrt(x)))) // recalculate to k outwave = (NumType(outwave)==2) ? 0 : outwave // replace NaNs (optional) End