;return_entirepowerspectrum
;
;PURPOSE:
;       This script takes a PhaseDim x PhaseDim array of floating point 
;	ApDimbers in a phase screen and computes the power spectrum.
;RETURN:
;	  EllipVals(0,*)=High Passed Ellipticities
;         EllipVals(1,*)=High Passed Pointing Angles
;         EllipVals(2,*)=Low Passed Ellipticities
;         EllipVals(3,*)-Low Passed Pointing Angles

function return_soarpowerspectrum,XSlopes,YSlopes,$
	FittedOnly,ApDim

KMax=floor(float(ApDim)/2+.5)
KMax=ApDim/2
YSlopesFft=complexarr(ApDim,ApDim)
YSlopesFft(*,*)=fft(YSlopes(*,*))
XSlopesFft=complexarr(ApDim,ApDim)
XSlopesFft(*,*)=fft(XSlopes(*,*))
XSlopesFftRe=complexarr(ApDim,ApDim)
YSlopesFftRe=complexarr(ApDim,ApDim)

;ReArrange
XSlopesFftRe=shift(XSlopesFft,KMax,KMax)
YSlopesFftRe=shift(YSlopesFft,KMax,Kmax)

PowerSpectra=fltarr(ApDim,ApDim,3)
PowerSpectra(*,*,0)=(Abs(XSlopesFftRe))^2
PowerSpectra(*,*,1)=(Abs(YSlopesFftRe))^2

return,PowerSpectra

end

