   ([Math.cos(a),Math.sin(a)] for a in angles)
 
 cart2sph = (opts)->
-  opts.degrees ?= true
+  opts.degrees ?= false
   c = if opts.degrees then 180/Math.PI else 1
   (d)->
     r = norm(d)
     [x,y,z] = d
     # Converts xyz to lat lon
-    [c*Math.atan2(y,x),c*Math.asin z/r]
+    [c*Math.atan2(y,x),c*Math.asin(z/r)]
 
 planeErrors = (axesCovariance, axes, opts={})->
   # Get a single level of planar errors (or the

  opts.n ?= 1000
  upperHemisphere = opts.upperHemisphere or true
  sheet = opts.sheet or 'nominal'
  degrees = opts.degrees or false
  axes = identity unless axes?
  opts.traditionalLayout ?= true


    if not upperHemisphere
      z *= -1

    [x,y,z]

  return ell
    .map stepFunc
    .map cart2sph(opts)

normalErrors = (axesCovariance, axes, opts={})->
  # Get a single level of planar errors (or the
