From 0d4cfb60855787b781731ce739ae00c5996e2b0d Mon Sep 17 00:00:00 2001
From: acpaquette <acpaquette@usgs.gov>
Date: Thu, 29 Feb 2024 14:54:21 -0700
Subject: [PATCH] Msl Landed Fix (#590)

* Changes to landed option

* Added changelog entry
---
 CHANGELOG.md               | 4 ++++
 ale/base/type_sensor.py    | 5 +----
 ale/drivers/msl_drivers.py | 5 ++++-
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 145b4ae..e9a9bc4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -37,6 +37,10 @@ release.
 ### Added
 - Apollo Metric drivers, tests, and data [#533](https://github.com/DOI-USGS/ale/pull/533)
 
+### Fixed
+
+- Fixed landed sensors to correctly project locally [#590](https://github.com/DOI-USGS/ale/pull/590)
+
 ## [0.10.0] - 2024-01-08 
 
 ### Added
diff --git a/ale/base/type_sensor.py b/ale/base/type_sensor.py
index 8229b66..584bdf0 100644
--- a/ale/base/type_sensor.py
+++ b/ale/base/type_sensor.py
@@ -500,10 +500,7 @@ class Cahvor():
             v_s = self.compute_v_s()
             H_prime = (self.cahvor_camera_dict['H'] - h_c * self.cahvor_camera_dict['A'])/h_s
             V_prime = (self.cahvor_camera_dict['V'] - v_c * self.cahvor_camera_dict['A'])/v_s
-            if self._props.get("landed", False):
-              self._cahvor_rotation_matrix = np.array([-H_prime, -V_prime, self.cahvor_camera_dict['A']])
-            else:
-              self._cahvor_rotation_matrix = np.array([H_prime, V_prime, self.cahvor_camera_dict['A']])
+            self._cahvor_rotation_matrix = np.array([H_prime, V_prime, self.cahvor_camera_dict['A']])
         return self._cahvor_rotation_matrix
 
     @property
diff --git a/ale/drivers/msl_drivers.py b/ale/drivers/msl_drivers.py
index f4ab01c..522cb8d 100644
--- a/ale/drivers/msl_drivers.py
+++ b/ale/drivers/msl_drivers.py
@@ -183,8 +183,11 @@ class MslMastcamPds3NaifSpiceDriver(Cahvor, Framer, Pds3Label, NaifSpice, Cahvor
             # See is_navcam() for an explanation.
             return (self.compute_h_s() + self.compute_v_s())/2.0
         
+        if self._props.get("landed", False):
+            return -super().focal_length
+
         # For mast cam
-        return super().focal_length 
+        return super().focal_length
 
     @property
     def pixel_size(self):
-- 
GitLab