From 2a7a205292c86b1154152d71684fe6a9b35c614b Mon Sep 17 00:00:00 2001
From: Kristin <kberry@usgs.gov>
Date: Mon, 27 Apr 2020 10:29:30 -0700
Subject: [PATCH] Adds look direction to SAR driver (and ISD output) (#355)

* Update format of range conversion coefficients isd output to include a separate list for times. Also update driver, test data, and remove unneeded semicolons

* Fix documentaion error

* fix other documentation error

* Add look direction to SAR driver, sensor type, ISD output, and test
---
 ale/base/type_sensor.py                    | 12 ++++++++++++
 ale/drivers/lro_drivers.py                 | 10 ++++++++++
 ale/formatters/usgscsm_formatter.py        |  1 +
 tests/pytests/data/isds/lrominirf_isd.json |  3 ++-
 4 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/ale/base/type_sensor.py b/ale/base/type_sensor.py
index fbae134..f2eea5b 100644
--- a/ale/base/type_sensor.py
+++ b/ale/base/type_sensor.py
@@ -205,3 +205,15 @@ class Radar():
           Times for the range conversion coefficients
         """
         raise NotImplementedError
+
+    @property
+    def look_direction(self):
+        """
+        Direction of the look (left or right)
+
+        Returns
+        -------
+        : string
+          left or right
+        """
+        raise NotImplementedError
diff --git a/ale/drivers/lro_drivers.py b/ale/drivers/lro_drivers.py
index a468b04..0f412f9 100644
--- a/ale/drivers/lro_drivers.py
+++ b/ale/drivers/lro_drivers.py
@@ -621,4 +621,14 @@ class LroMiniRfIsisLabelNaifSpiceDriver(Radar, NaifSpice, IsisLabel, Driver):
         """
         return spice.str2et(str(self.utc_stop_time))
 
+    @property
+    def look_direction(self):
+        """
+        Direction of the look (left or right)
 
+        Returns
+        -------
+        : string
+          left or right
+        """
+        return self.label['IsisCube']['Instrument']['LookDirection'].lower()
diff --git a/ale/formatters/usgscsm_formatter.py b/ale/formatters/usgscsm_formatter.py
index eb5c243..e350d22 100644
--- a/ale/formatters/usgscsm_formatter.py
+++ b/ale/formatters/usgscsm_formatter.py
@@ -163,6 +163,7 @@ def to_usgscsm(driver):
         isd_data['scaled_pixel_width'] = driver.scaled_pixel_width
         isd_data['range_conversion_times'] = driver.range_conversion_times
         isd_data['range_conversion_coefficients'] = driver.range_conversion_coefficients
+        isd_data['look_direction'] = driver.look_direction
 
     # check that there is a valid sensor model name
     if 'name_model' not in isd_data:
diff --git a/tests/pytests/data/isds/lrominirf_isd.json b/tests/pytests/data/isds/lrominirf_isd.json
index 0d06a06..bf1f3d0 100644
--- a/tests/pytests/data/isds/lrominirf_isd.json
+++ b/tests/pytests/data/isds/lrominirf_isd.json
@@ -10157,6 +10157,7 @@
    [7.99423706730000e+04, 6.79149600000000e-01, 3.51607500000000e-06, -2.44520600000000e-11],
    [7.99423710670000e+04, 6.78430200000000e-01, 3.52233100000000e-06, -2.44771700000000e-11]
   ],
-"dt_ephemeris": 0.3013815733766745
+"dt_ephemeris": 0.3013815733766745,
+"look_direction": "right"
 }
 
-- 
GitLab