Source code for attitude.error.ellipse
from __future__ import division
import numpy as N
[docs]def ellipse(center,covariance_matrix,level=1, n=1000):
"""Returns error ellipse in slope-azimuth space"""
# singular value decomposition
U, s, rotation_matrix = N.linalg.svd(covariance_matrix)
# semi-axes (largest first)
saxes = N.sqrt(s)*level ## If the _area_ of a 2s ellipse is twice that of a 1s ellipse
# If the _axes_ are supposed to be twice as long, then it should be N.sqrt(s)*width
u = N.linspace(0, 2*N.pi, n)
data = N.column_stack((saxes[0]*N.cos(u), saxes[1]*N.sin(u)))
# rotate data
return N.dot(data, rotation_matrix)+ center