From f4437662f8763c7a0178af3c350bd71f01fa3b1b Mon Sep 17 00:00:00 2001
From: Kelvin Rodriguez <kr788@nau.edu>
Date: Thu, 2 Apr 2020 07:29:46 -0700
Subject: [PATCH] Updated Dawn FC tests (#341)

---
 tests/pytests/data/isds/dawnfc_isd.json | 263 ++++++++++++++++++++++++
 tests/pytests/test_dawn_drivers.py      |  54 +----
 2 files changed, 270 insertions(+), 47 deletions(-)
 create mode 100644 tests/pytests/data/isds/dawnfc_isd.json

diff --git a/tests/pytests/data/isds/dawnfc_isd.json b/tests/pytests/data/isds/dawnfc_isd.json
new file mode 100644
index 0000000..30db623
--- /dev/null
+++ b/tests/pytests/data/isds/dawnfc_isd.json
@@ -0,0 +1,263 @@
+{
+  "IsisCameraVersion": 2,
+  "NaifKeywords": {
+    "BODY2000001_RADII": [
+      482.0,
+      482.0,
+      446.0
+    ],
+    "BODY_FRAME_CODE": 10101,
+    "BODY_CODE": 2000001,
+    "TKFRAME_-203126_SPEC": "ANGLES",
+    "INS-203126_FOV_FRAME": "DAWN_FC2",
+    "INS-203126_PIXEL_SIZE": [
+      14.004,
+      13.995
+    ],
+    "INS-203126_FOV_CLASS_SPEC": "ANGLES",
+    "TKFRAME_-203126_RELATIVE": "DAWN_FC2",
+    "INS-203126_ITRANSL": [
+      0.0,
+      0.0,
+      71.42857142857143
+    ],
+    "INS-203126_IFOV": [
+      9.3238e-05,
+      9.3179e-05
+    ],
+    "INS-203126_FOV_REF_VECTOR": [
+      1.0,
+      0.0,
+      0.0
+    ],
+    "INS-203126_ITRANSS": [
+      0.0,
+      71.38370167323397,
+      0.0
+    ],
+    "FRAME_-203126_NAME": "DAWN_FC2_FILTER_6",
+    "INS-203126_BANDCENTER": 829.0,
+    "TKFRAME_-203126_UNITS": "DEGREES",
+    "FRAME_-203126_CLASS_ID": -203126.0,
+    "INS-203126_TRANSX": [
+      0.0,
+      0.0140088,
+      0.0
+    ],
+    "INS-203126_TRANSY": [
+      0.0,
+      0.0,
+      0.014
+    ],
+    "INS-203126_FOV_ANGLE_UNITS": "DEGREES",
+    "INS-203126_PIXEL_LINES": 1024.0,
+    "INS-203126_FOV_REF_ANGLE": 2.7351859,
+    "TKFRAME_-203126_ANGLES": [
+      0.0,
+      0.0,
+      0.0
+    ],
+    "FRAME_-203126_CENTER": -203.0,
+    "INS-203126_CCD_CENTER": [
+      511.5,
+      511.5
+    ],
+    "INS-203126_FOV_ANGULAR_SIZE": [
+      0.095476,
+      0.095416
+    ],
+    "INS-203126_F/RATIO": 7.5,
+    "INS-203126_FOCAL_LENGTH": 150.08,
+    "INS-203126_FOV_CROSS_ANGLE": 2.733467,
+    "INS-203126_BANDWIDTH": 36.0,
+    "INS-203126_BORESIGHT": [
+      0.0,
+      0.0,
+      150.08
+    ],
+    "INS-203126_RAD_DIST_COEFF": 9.2e-06,
+    "INS-203126_PIXEL_SAMPLES": 1024.0,
+    "INS-203126_FOV_SHAPE": "RECTANGLE",
+    "FRAME_-203126_CLASS": 4.0,
+    "INS-203126_EFF_WAVELENGTH": 829.0,
+    "TKFRAME_-203126_AXES": [
+      1.0,
+      2.0,
+      3.0
+    ],
+    "BODY2000001_GM": 62.6325,
+    "BODY2000001_PM": [
+      170.65,
+      952.1532,
+      0.0
+    ],
+    "BODY2000001_POLE_DEC": [
+      66.764,
+      0.0,
+      0.0
+    ],
+    "BODY2000001_POLE_RA": [
+      291.418,
+      0.0,
+      0.0
+    ]
+  },
+  "detector_sample_summing": 1,
+  "detector_line_summing": 1,
+  "focal_length_model": {
+    "focal_length": 150.08
+  },
+  "detector_center": {
+    "line": 512.0,
+    "sample": 512.0
+  },
+  "starting_detector_line": 0,
+  "starting_detector_sample": 0,
+  "focal2pixel_lines": [
+    0.0,
+    0.0,
+    71.40816909454442
+  ],
+  "focal2pixel_samples": [
+    0.0,
+    71.40816909454442,
+    0.0
+  ],
+  "optical_distortion": {
+    "dawnfc": {
+      "coefficients": [
+        9.2e-06
+      ]
+    }
+  },
+  "image_lines": 1024,
+  "image_samples": 1024,
+  "name_platform": "DAWN",
+  "name_sensor": "FRAMING CAMERA 2",
+  "reference_height": {
+    "maxheight": 1000,
+    "minheight": -1000,
+    "unit": "m"
+  },
+  "name_model": "USGS_ASTRO_FRAME_SENSOR_MODEL",
+  "center_ephemeris_time": 488002614.62294483,
+  "radii": {
+    "semimajor": 482.0,
+    "semiminor": 446.0,
+    "unit": "km"
+  },
+  "InstrumentPointing": {
+    "TimeDependentFrames": [
+      -203120,
+      -203000,
+      1
+    ],
+    "CkTableStartTime": 488002614.62294483,
+    "CkTableEndTime": 488002614.62294483,
+    "CkTableOriginalSize": 1,
+    "EphemerisTimes": [
+      488002614.62294483
+    ],
+    "Quaternions": [
+      [
+        0.5213647259158684,
+        -0.17475033868107043,
+        0.13616771930072985,
+        -0.8240749322251953
+      ]
+    ],
+    "AngularVelocity": [
+      [
+        -2.0163095864499935e-05,
+        2.0665280555081777e-08,
+        3.996105121476586e-06
+      ]
+    ],
+    "ConstantFrames": [
+      -203126,
+      -203120
+    ],
+    "ConstantRotation": [
+      1.0,
+      0.0,
+      0.0,
+      0.0,
+      1.0,
+      0.0,
+      0.0,
+      0.0,
+      1.0
+    ]
+  },
+  "BodyRotation": {
+    "TimeDependentFrames": [
+      10101,
+      1
+    ],
+    "CkTableStartTime": 488002614.62294483,
+    "CkTableEndTime": 488002614.62294483,
+    "CkTableOriginalSize": 1,
+    "EphemerisTimes": [
+      488002614.62294483
+    ],
+    "Quaternions": [
+      [
+        -0.7323907260895571,
+        0.1890116253358707,
+        -0.06950386369161242,
+        0.6504211272382237
+      ]
+    ],
+    "AngularVelocity": [
+      [
+        2.770977343153026e-05,
+        -7.064167352871139e-05,
+        0.00017673919183794291
+      ]
+    ]
+  },
+  "InstrumentPosition": {
+    "SpkTableStartTime": 488002614.62294483,
+    "SpkTableEndTime": 488002614.62294483,
+    "SpkTableOriginalSize": 1,
+    "EphemerisTimes": [
+      488002614.62294483
+    ],
+    "Positions": [
+      [
+        -678.145360419934,
+        2026.1409618562566,
+        -4375.770027129584
+      ]
+    ],
+    "Velocities": [
+      [
+        0.01836093913952242,
+        -0.10035442890342972,
+        -0.04929136913284714
+      ]
+    ]
+  },
+  "SunPosition": {
+    "SpkTableStartTime": 488002614.62294483,
+    "SpkTableEndTime": 488002614.62294483,
+    "SpkTableOriginalSize": 1,
+    "EphemerisTimes": [
+      488002614.62294483
+    ],
+    "Positions": [
+      [
+        -184987783.06715,
+        343341745.2043138,
+        199532284.61700404
+      ]
+    ],
+    "Velocities": [
+      [
+        -15.334993792176247,
+        -7.083164572551847,
+        -0.21518329562060534
+      ]
+    ]
+  }
+}
diff --git a/tests/pytests/test_dawn_drivers.py b/tests/pytests/test_dawn_drivers.py
index 154bc7f..7c33732 100644
--- a/tests/pytests/test_dawn_drivers.py
+++ b/tests/pytests/test_dawn_drivers.py
@@ -7,53 +7,11 @@ import json
 
 import unittest
 from unittest.mock import patch
-from conftest import get_image_label, get_image_kernels, convert_kernels, compare_dicts
+from conftest import get_image_label, get_image_kernels, get_isd, convert_kernels, compare_dicts
 
 import ale
 from ale.drivers.dawn_drivers import DawnFcPds3NaifSpiceDriver
 
-@pytest.fixture()
-def usgscsm_compare_dict():
-    return {
-    'radii': {
-        'semimajor': 482.0,
-        'semiminor': 446.0,
-        'unit': 'km'},
-    'sensor_position': {
-        'positions': [[257924.25395483, 15116.92833465, -4862688.37323513]],
-        'velocities': [[-104.55513399, -85.04943875, -5.79043523]],
-        'unit': 'm'},
-    'sun_position': {
-        'positions': [[3.60779830e+11, 2.46614935e+11, 3.05966427e+10]],
-        'velocities': [[ 4.74251599e+07, -6.93781387e+07,  1.94478534e+02]],
-        'unit': 'm'},
-    'sensor_orientation': {
-        'quaternions': [[0.00184844, 0.02139268, -0.27802966, -0.96033246]]},
-    'detector_sample_summing': 1,
-    'detector_line_summing': 1,
-    'focal_length_model': {
-        'focal_length': 150.08},
-    'detector_center': {
-        'line': 512.0,
-        'sample': 512.0},
-    'starting_detector_line': 0,
-    'starting_detector_sample': 0,
-    'focal2pixel_lines': [0.0, 0.0, 71.40816909454442],
-    'focal2pixel_samples': [0.0, 71.40816909454442, 0.0],
-    'optical_distortion': {
-        'dawnfc': {
-            'coefficients': [9.2e-06]}},
-    'image_lines': 1024,
-    'image_samples': 1024,
-    'name_platform': 'DAWN',
-    'name_sensor': 'FRAMING CAMERA 2',
-    'reference_height': {
-        'maxheight': 1000,
-        'minheight': -1000,
-        'unit': 'm'},
-    'name_model': 'USGS_ASTRO_FRAME_SENSOR_MODEL',
-    'center_ephemeris_time': 488002614.62294483}
-
 @pytest.fixture(scope="module", autouse=True)
 def test_kernels():
     kernels = get_image_kernels('FC21A0038582_15170161546F6F')
@@ -62,12 +20,14 @@ def test_kernels():
     for kern in binary_kernels:
         os.remove(kern)
 
-def test_dawn_load(test_kernels, usgscsm_compare_dict):
+def test_load(test_kernels):
     label_file = get_image_label('FC21A0038582_15170161546F6F')
-    usgscsm_isd = ale.load(label_file, props={'kernels': test_kernels}, formatter='usgscsm')
-    assert compare_dicts(usgscsm_isd, usgscsm_compare_dict) == []
-
+    compare_dict = get_isd("dawnfc")
 
+    isd_str = ale.loads(label_file, props={'kernels': test_kernels})
+    isd_obj = json.loads(isd_str)
+    print(json.dumps(isd_obj, indent=2))
+    assert compare_dicts(isd_obj, compare_dict) == []
 
 # ========= Test pds3label and naifspice driver =========
 class test_pds3_naif(unittest.TestCase):
-- 
GitLab