   opts.n ?= 100
   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

    c = if degrees then 180/Math.PI else 1
    d = [x,y,z]
    r = norm(d)
    return [
      c*Math.atan2(y,x),
      c*Math.asin z/r]

  return ell
    .map stepFunc

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

    if not upperHemisphere
      z *= -1

    return [x,y,z]

  return ell
    .map stepFunc
    .map cart2sph(opts)

combinedErrors = (sv, ax, opts={})->
  func = (type)->
