PRO polar,xdim,ydim,cenx,ceny,xx,yy,rr,alpha ; ; POLAR.PRO provides cartesian (xx,yy) and polar (rr,alpha) ; coordinate arrays in pixel and radian units. ; INPUTS: xdim,ydim ... x,y dimensions of the arrays ; cenx,ceny ... x,y position of the origin of coordinates ; OUTPUT: xx ... float(xdim,ydim) array of x-coordinates (pix) ; yy ... float(xdim,ydim) array of y-coordinates (pix) ; rr ... float(xdim,ydim) array of radial distance (pix) ; alpha ... float(xdim,ydim) array of position angle (rad) ; alpha = 0 rad at the x+ axis and increases ; counterclockwise till 2*pi ; ; 14 April 2010, Michal ; cartesian coordinate arrays x1=findgen(xdim) xx=fltarr(xdim,ydim) for j=0,ydim-1 do xx(*,j)=x1 y1=findgen(ydim) yy=fltarr(xdim,ydim) for i=0,xdim-1 do yy(i,*)=y1 xx=xx-cenx yy=yy-ceny ; polar coordinate arrays rr=sqrt(xx^2+yy^2) rr=rr > 0.0001 ; to avoid division by zero wal1=where(yy ge 0,c1) wal2=where(yy lt 0,c2) alpha=fltarr(xdim,ydim) ; in radians if c1 gt 0 then alpha(wal1 mod xdim,wal1/xdim)=acos(xx(wal1)/rr(wal1)) if c2 gt 0 then alpha(wal2 mod xdim,wal2/xdim)=2*!pi-acos(xx(wal2)/rr(wal2)) END