[Edit: Correct spelling mistakes and add comments to the code.]
It seems the green and black in your image represents one variable (beam intensity, perhaps), and the ellipses indicate direction and amount of polarization. Polarization at any point in the disk is described by two numbers: a=orientation of major axis (from 0 to 2Pi) and b=ratio of minor axis to major axis length (from 0 to 1).
Since you did not provide data, let us make up some data. Below I create beam intensity data on the X1,Y1 grid points, and I create ellipse orientation and ratio data on the X2,Y2 grid points.
r1=0:.02:1; th1=0:pi/18:2*pi;
intensth=ones(size(th1));
[X2,Y2]=meshgrid(-1:.125:1,-1:.125:1);
b=0.2+0.8*abs(X2/max(max(X2)));
Next: Define a plotting function that will plot a white ellipse at a specified location, with the major axis in blue. This is to recreate ellipses like in the OP's plot.
function plotpolarz(x,y,r,a,b,z0)
v=b*[cos(a+pi/2),sin(a+pi/2)];
elps=r*(cosd(0:30:360)'*u+sind(0:30:360)'*v);
plot3(x+elps(:,1),y+elps(:,2),z0*ones(length(elps),1),'-w')
plot3(x+r*[u(1),-u(1)],y+r*[u(2),-u(2)],z0*[1,1],'-b')
Next: Plot the intensity data and the polarization ellipses.
surf(X1,Y1,IN,'EdgeColor','None')
xlabel('X'); ylabel('Y'); zlabel('Intensity')
colormap([zeros(101,1),(0:.01:1)',zeros(101,1)])
view(0,90); axis equal; colorbar; hold on
if X2(j,i)^2+Y2(j,i)^2<=1
plotpolarz(X2(j,i),Y2(j,i),0.04,a(j,i),b(j,i),z0)
Done.