OwenModel.compute_unit_vector_jacobian¶
giant.camera_models.owen_model
:
- OwenModel.compute_unit_vector_jacobian(pixel_locations, image=0, temperature=0)¶
This method computes the Jacobian matrix \(\partial\mathbf{x}_C/\partial\mathbf{x}_P\) where \(\mathbf{x}_C\) is a vector in the camera frame that projects to \(\mathbf{x}_P\) which is the pixel location.
This method is used in the
LimbScanning
process in order to predict the change in the unit vector that projects to a pixel location with respect to a change in the pixel location. Thepixel_locations
input should be a 2xn array of vectors which the Jacobian is to be computed for.- Parameters:
pixel_locations (Sequence | ndarray) – The pixel locations to compute the Jacobian at
image (int) – The number of the image we are computing the Jacobian for
temperature (Real) – The temperature to compute the Jacobian at
- Returns:
The Jacobian matrix as a nx3x2 array
- Return type:
ndarray
Mathematically this Jacobian is defined as
where
\(\mathbf{x}_C'\) is the camera frame point after applying the misalignment, \(\boldsymbol{\delta\theta}\) is the misalignment vector, \(\mathbf{x}_C\) is the camera frame point before misalignment is applied, \(\mathbf{x}_P\) is the pixel location, \(\mathbf{x}_I\) is the gnomic location, \(\mathbf{x}_I'\) is the distorted gnomic location, \(a_{1-3}\) are the temperature coefficients, \(T\) is the temperature, \(\mathbf{T}_{\boldsymbol{\delta\theta}}\) is the rotation matrix corresponding to rotation vector \(\boldsymbol{\delta\theta}\), \(v=\sqrt{\mathbf{x}_I^T\mathbf{x}_I + 1^2}\), and \(\mathbf{K}^{-1}\) is the inverse intrinsic matrix.