In my opinion, this is not a problem that is easy to solve by reading the docs, because anything less than very thorough and careful reading of the docs on the subject of converting spherical to cartesian coordinates can easily lead the user astray.
A casual reading of the docs will lead one to think
map = CoordinateTransformData["Spherical" -> "Cartesian", "Mapping"];
u = {1, 0, π/4};
v = {1, 0, 0};
VectorAngle @@ map /@ {u, v}
will work, but it gives
0
The problem is caused by the user assuming that φ, the 2nd spherical coordinate, is latitude aka altitude, but it's not; it's declination aka polar angle. So one must use
VectorAngle @@ map /@ MapAt[π/2 - # &, {u, v}, {All, 2}]
π/4
Apply[VectorAngle, #1 {Cos[#2] Sin[#3], Sin[#2] Sin[#3], Cos[#3]} & @@@ {EA, H}]– march Jan 29 '16 at 23:14VectorAnglebecomes inaccurate. The three answers there provide different workarounds. – Jens Jan 30 '16 at 05:01