\listfiles
\documentclass[12pt,a4paper]{article}
\usepackage{pst-3dplot}
\usepackage{pst-pdf}
\begin{document}
\def\A/{4}
\def\outer/{4}
\def\inner/{2.2}
\def\offset/{0.3}
\def\PHI/{40}
\def\PHITWO/{60}
\def\BETA/{50}
\def\BETAradius/{\outer/ \BETA/ cos mul}

\def\Px/{\outer/ \PHI/ cos mul \BETA/ cos mul}
\def\Py/{\outer/ \PHI/ sin mul \BETA/ cos mul}
\def\Pz/{\outer/ \BETA/ sin mul \A/ add}
\def\PxPlane/{\outer/ \PHI/ cos mul}
\def\PyPlane/{\outer/ \PHI/ sin mul}

\def\Qx/{\outer/ \PHITWO/ cos mul \BETA/ cos mul}
\def\Qy/{\outer/ \PHITWO/ sin mul \BETA/ cos mul}
\def\Qz/{\outer/ \BETA/ sin mul \outer/ add}
\def\QxPlane/{\outer/ \PHITWO/ cos mul}
\def\QyPlane/{\outer/ \PHITWO/ sin mul}

\def\phicolor/{red!50!brown}
\def\betacolor/{blue}
\def\othercolor/{green!50!black}

\SpecialCoor

\begin{pspicture}(-7,-7)(7,9)
  \footnotesize%
  \psset{Alpha=75,Beta=20, arrowscale=2}
%   %% Top circle:
%   \pstThreeDEllipse[beginAngle=0,endAngle=360,linecolor=gray,linestyle=dashed]%
%   (0,0,\A/ 2 mul)(\outer/,0,0)(0,\outer/,0)
%   %% Lines:
%   \pstThreeDLine[linecolor=black](0, \outer/, 0)(0, \outer/, \A/ 2 mul)
%   \pstThreeDLine[linecolor=black](0, -\outer/, 0)(0, -\outer/, \A/ 2 mul)


  %% (Option A) Sphere:
  % \pstThreeDSphere[SegmentColor={[cmyk]{.3,0,0,0}},linecolor=gray!10,increment=10]%
  % (0,0,\A/){\outer/}
  %% (Option B) Circle:
  \pstThreeDNode(0,0,\A/){M} % <- convert to 2D coordinate
  \pscircle(M){\outer/}      % <- use standard pscircle command

  %% Circle 1:
  \pstThreeDEllipse[beginAngle=0,endAngle=360,linecolor=gray,linestyle=dashed]%
  (0,0,\A/)(\outer/,0,0)(0,\outer/,0)
  \pstThreeDEllipse[beginAngle=90,endAngle=-90,linecolor=gray,linestyle=solid]%
  (0,0,\A/)(\outer/,0,0)(0,\outer/,0)
  %% Circle 2:
  \pstThreeDEllipse[beginAngle=0,endAngle=360,linecolor=gray,linestyle=dashed]%
  (0,0,\Pz/)(\BETAradius/,0,0)(0,\BETAradius/,0)
  \pstThreeDEllipse[beginAngle=120,endAngle=-90,linecolor=gray,linestyle=solid]%
  (0,0,\Pz/)(\BETAradius/,0,0)(0,\BETAradius/,0)
  %% Circle 3 (N->S) phi1:
  \pstThreeDEllipse[beginAngle=90,endAngle=-90,linecolor=\othercolor/,linestyle=solid]%
  (0,0,\A/)(\outer/ \PHI/ cos mul,\outer/ \PHI/ sin mul,0)(0,0,\outer/)
  %% Circle 4 (N->S) phi2:
  \pstThreeDEllipse[beginAngle=90,endAngle=-90,linecolor=\othercolor/,linestyle=solid]%
  (0,0,\A/)(\outer/ \PHITWO/ cos mul,\outer/ \PHITWO/ sin mul,0)(0,0,\outer/)

  %% Labels "1":
  \pstThreeDPut[origin=l]%
  (\outer/ \PHI/ cos mul, 
  \outer/ \BETA/ sin mul \offset/ sub,
  \A/ \BETA/ sin mul \A/ 2 div add)%
  {\color{\othercolor/}{$1$}}
  %% Labels "2":
  \pstThreeDPut[origin=r]%
  (\outer/ \PHITWO/ cos mul, 
  \outer/ \BETA/ sin mul  .5 add,
  \A/ \BETA/ sin mul \A/ 2 div add)%
  {\color{\othercolor/}{$2$}}

  %% Line "A" to "P":
  \pstThreeDLine[linecolor=black](0, 0, \A/)(\Px/, \Py/, \Pz/)
  \pstThreeDLine[linecolor=gray](0, 0, \A/)(\PxPlane/, \PyPlane/, \A/)
  %% Line "A" to "Q":
  \pstThreeDLine[linecolor=black](0, 0, \A/)(\Qx/, \Qy/, \Qz/)
  \pstThreeDLine[linecolor=gray](0, 0, \A/)(\QxPlane/, \QyPlane/, \A/)

  %% Phi 1:
  \pstThreeDEllipse[beginAngle=0,endAngle=\PHI/,linecolor=\phicolor/,linestyle=solid,arrows=->]%
  (0,0,\A/)(\inner/,0,0)(0,\inner/,0)
  %% Phi 1 label:
  \pstThreeDPut[origin=t](\inner/,\PHI/ 2 div sin \inner/ mul,\A/ \offset/ add)%
  {\color{\phicolor/}{$\phi _1$}}
  %% Phi 2:
  \pstThreeDEllipse[beginAngle=0,endAngle=\PHITWO/,linecolor=\phicolor/,linestyle=solid,arrows=->]%
  (0,0,\A/)(\inner/ \offset/ add,0,0)(0,\inner/ \offset/ add,0)
  %% Phi 2 label:
  \pstThreeDPut[origin=t](\inner/ \offset/ add,\PHI/ 2 div sin \inner/ \offset/ add mul,\A/ \offset/ sub)%
  {\color{\phicolor/}{$\phi _2$}}
  %% helper line:
  \pstThreeDLine[linecolor=gray](0, 0, \A/)(\outer/, 0, \A/)

  %% Beta (phi 1):
  \pstThreeDEllipse[beginAngle=0,endAngle=\BETA/,linecolor=\betacolor/,linestyle=solid,arrows=->]%
  (0,0,\A/)(\inner/ \PHI/ cos mul,\inner/ \PHI/ sin mul,0)(0,0,\inner/)
  %% Beta (phi 2): optional
  % \pstThreeDEllipse[beginAngle=0,endAngle=\BETA/,linecolor=\betacolor/,linestyle=solid,arrows=->]%
  % (0,0,\A/)(\inner/ \PHITWO/ cos mul,\inner/ \PHITWO/ sin mul,0)(0,0,\inner/)
  %% Beta label:
  \pstThreeDPut[origin=l]%
  (\inner/ \PHI/ cos mul, 
  \inner/ \BETA/ sin mul .1 sub,
  \A/ \BETA/ sin mul \A/ 2 div add .5 add)%
  {\color{\betacolor/}{$\beta$}}
  
  %   %% Helper lines (optional):
  % {\psset{linecolor=gray,linestyle=dashed,linewidth=0.2pt,drawCoor}
  %     %%   Line "A" to "P":
  %   \pstThreeDDot[drawCoor](\Px/, \Py/, \Pz/)
  %     %%   Line "A" to "Q":
  %   \pstThreeDDot[drawCoor](\PxPlane/, \PyPlane/, \A/)
  %   \pstThreeDDot[drawCoor](\Qx/, \Qy/, \Qz/)
  %     %%   helper lines:
  %   \pstThreeDDot[drawCoor](\QxPlane/, \QyPlane/, \A/)
  % }

  %% Coordinate axes:
  \pstThreeDCoor[linecolor=darkgray,xMin=-5,xMax=5,yMin=-5,yMax=5,zMin=0,zMax=9,%
  nameX=$x$ $\xi$,nameY=$y$ $\eta$,nameZ=$\zeta$]
\end{pspicture}
\end{document}
%%% Local Variables: 
%%% mode: latex
%%% LaTeX-command-style: (("" "ps4pdf %S %t"))
%%% TeX-master: t
%%% End: 
