From 52c71f0cff35044117f9153bb603806741d7fc32 Mon Sep 17 00:00:00 2001
From: Kelvin Rodriguez <kr788@nau.edu>
Date: Tue, 31 Mar 2020 20:40:05 -0700
Subject: [PATCH] updated messenger mdis tests (#338)

---
 tests/pytests/data/isds/messmdis_isd.json | 346 ++++++++++++++++++++++
 tests/pytests/test_mdis_drivers.py        | 158 +---------
 2 files changed, 352 insertions(+), 152 deletions(-)
 create mode 100644 tests/pytests/data/isds/messmdis_isd.json

diff --git a/tests/pytests/data/isds/messmdis_isd.json b/tests/pytests/data/isds/messmdis_isd.json
new file mode 100644
index 0000000..785f18d
--- /dev/null
+++ b/tests/pytests/data/isds/messmdis_isd.json
@@ -0,0 +1,346 @@
+{
+  "IsisCameraVersion": 2,
+  "NaifKeywords": {
+    "BODY199_RADII": [
+      2439.4,
+      2439.4,
+      2439.4
+    ],
+    "BODY_FRAME_CODE": 10011,
+    "BODY_CODE": 199,
+    "INS-236820_FPUBIN_START_SAMPLE": 9.0,
+    "INS-236820_CK_TIME_TOLERANCE": 1.0,
+    "INS-236820_CK_REFERENCE_ID": 1.0,
+    "INS-236820_FOV_CLASS_SPEC": "ANGLES",
+    "INS-236820_OD_T_X": [
+      0.0,
+      1.001854269623802,
+      0.0,
+      0.0,
+      -0.0005094440474941111,
+      0.0,
+      1.004010471468856e-05,
+      0.0,
+      1.004010471468856e-05,
+      0.0
+    ],
+    "INS-236820_OD_T_Y": [
+      0.0,
+      0.0,
+      1.0,
+      0.0009060010594996751,
+      0.0,
+      0.0003574842626620758,
+      0.0,
+      1.004010471468856e-05,
+      0.0,
+      1.004010471468856e-05
+    ],
+    "INS-236820_FOV_REF_VECTOR": [
+      1.0,
+      0.0,
+      0.0
+    ],
+    "INS-236820_FOCAL_LENGTH": 549.1178195372703,
+    "INS-236820_CK_FRAME_ID": -236000.0,
+    "INS-236820_FOV_SHAPE": "RECTANGLE",
+    "INS-236820_FOV_ANGLE_UNITS": "DEGREES",
+    "FRAME_-236820_CLASS": 4.0,
+    "INS-236820_BORESIGHT_LINE": 512.5,
+    "INS-236820_SWAP_OBSERVER_TARGET": "TRUE",
+    "INS-236820_LIGHTTIME_CORRECTION": "LT+S",
+    "INS-236820_FOV_FRAME": "MSGR_MDIS_NAC",
+    "INS-236820_PIXEL_SAMPLES": 1024.0,
+    "INS-236820_REFERENCE_FRAME": "MSGR_SPACECRAFT",
+    "INS-236820_FL_UNCERTAINTY": 0.5,
+    "INS-236820_ITRANSL": [
+      0.0,
+      0.0,
+      71.42857143
+    ],
+    "INS-236820_ITRANSS": [
+      0.0,
+      71.42857143,
+      0.0
+    ],
+    "INS-236820_FOV_CROSS_ANGLE": 0.7465,
+    "TKFRAME_-236820_SPEC": "MATRIX",
+    "INS-236820_BORESIGHT_SAMPLE": 512.5,
+    "INS-236820_PIXEL_LINES": 1024.0,
+    "INS-236820_F/NUMBER": 22.0,
+    "INS-236820_IFOV": 25.44,
+    "INS-236820_SPK_TIME_BIAS": 0.0,
+    "INS-236820_CCD_CENTER": [
+      512.5,
+      512.5
+    ],
+    "FRAME_-236820_NAME": "MSGR_MDIS_NAC",
+    "INS-236820_FRAME": "MSGR_MDIS_NAC",
+    "INS-236820_PLATFORM_ID": -236000.0,
+    "INS-236820_LT_SURFACE_CORRECT": "FALSE",
+    "INS-236820_TRANSX": [
+      0.0,
+      0.014,
+      0.0
+    ],
+    "INS-236820_TRANSY": [
+      0.0,
+      0.0,
+      0.014
+    ],
+    "INS-236820_FL_TEMP_COEFFS": [
+      549.5120497341695,
+      0.01018564339123439,
+      0.0,
+      0.0,
+      0.0,
+      0.0
+    ],
+    "FRAME_-236820_CENTER": -236.0,
+    "TKFRAME_-236820_RELATIVE": "MSGR_MDIS_WAC",
+    "INS-236820_WAVELENGTH_RANGE": [
+      700.0,
+      800.0
+    ],
+    "INS-236820_CK_TIME_BIAS": 0.0,
+    "INS-236820_FOV_REF_ANGLE": 0.7465,
+    "TKFRAME_-236820_MATRIX": [
+      -0.9998215487408793,
+      -0.018816063038872958,
+      0.001681203469647119,
+      0.01881610195359367,
+      -0.9998229614554359,
+      7.33168257224375e-06,
+      0.0016807678784302768,
+      3.8964070113872887e-05,
+      0.9999985867495713
+    ],
+    "INS-236820_FPUBIN_START_LINE": 1.0,
+    "FRAME_-236820_CLASS_ID": -236820.0,
+    "INS-236820_PIXEL_PITCH": 0.014,
+    "INS-236820_BORESIGHT": [
+      0.0,
+      0.0,
+      1.0
+    ],
+    "BODY199_PM": [
+      329.5988,
+      6.1385108,
+      0.0
+    ],
+    "BODY199_POLE_RA": [
+      281.0103,
+      -0.0328,
+      0.0
+    ],
+    "BODY199_NUT_PREC_PM": [
+      0.01067257,
+      -0.00112309,
+      -0.0001104,
+      -2.539e-05,
+      -5.71e-06
+    ],
+    "BODY199_LONG_AXIS": 0.0,
+    "BODY199_POLE_DEC": [
+      61.4155,
+      -0.0049,
+      0.0
+    ],
+    "BODY199_NUT_PREC_RA": [
+      0.0,
+      0.0,
+      0.0,
+      0.0,
+      0.0
+    ],
+    "BODY199_NUT_PREC_DEC": [
+      0.0,
+      0.0,
+      0.0,
+      0.0,
+      0.0
+    ]
+  },
+  "detector_sample_summing": 2,
+  "detector_line_summing": 2,
+  "focal_length_model": {
+    "focal_length": 549.5535053027719
+  },
+  "detector_center": {
+    "line": 512.0,
+    "sample": 512.0
+  },
+  "starting_detector_line": 0,
+  "starting_detector_sample": 0,
+  "focal2pixel_lines": [
+    0.0,
+    0.0,
+    71.42857143
+  ],
+  "focal2pixel_samples": [
+    0.0,
+    71.42857143,
+    0.0
+  ],
+  "optical_distortion": {
+    "transverse": {
+      "x": [
+        0.0,
+        1.001854269623802,
+        0.0,
+        0.0,
+        -0.0005094440474941111,
+        0.0,
+        1.004010471468856e-05,
+        0.0,
+        1.004010471468856e-05,
+        0.0
+      ],
+      "y": [
+        0.0,
+        0.0,
+        1.0,
+        0.0009060010594996751,
+        0.0,
+        0.0003574842626620758,
+        0.0,
+        1.004010471468856e-05,
+        0.0,
+        1.004010471468856e-05
+      ]
+    }
+  },
+  "image_lines": 512,
+  "image_samples": 512,
+  "name_platform": "MESSENGER",
+  "name_sensor": "MERCURY DUAL IMAGING SYSTEM NARROW ANGLE CAMERA",
+  "reference_height": {
+    "maxheight": 1000,
+    "minheight": -1000,
+    "unit": "m"
+  },
+  "name_model": "USGS_ASTRO_FRAME_SENSOR_MODEL",
+  "center_ephemeris_time": 483122606.85252464,
+  "radii": {
+    "semimajor": 2439.4,
+    "semiminor": 2439.4,
+    "unit": "km"
+  },
+  "InstrumentPointing": {
+    "TimeDependentFrames": [
+      -236890,
+      -236892,
+      -236880,
+      -236000,
+      1
+    ],
+    "CkTableStartTime": 483122606.85252464,
+    "CkTableEndTime": 483122606.85252464,
+    "CkTableOriginalSize": 1,
+    "EphemerisTimes": [
+      483122606.85252464
+    ],
+    "Quaternions": [
+      [
+        -0.38021468192232416,
+        -0.021997068527329248,
+        0.8812952111236284,
+        0.27977075522196615
+      ]
+    ],
+    "AngularVelocity": [
+      [
+        0.0003701285091906918,
+        -0.001206909830636917,
+        -0.0006642955353786956
+      ]
+    ],
+    "ConstantFrames": [
+      -236820,
+      -236800,
+      -236890
+    ],
+    "ConstantRotation": [
+      0.001686595916635364,
+      0.9999610949473945,
+      0.008658174508642313,
+      0.0006300862520996486,
+      -0.008659247767100864,
+      0.9999623094994246,
+      0.9999983791914511,
+      -0.0016810769512649038,
+      -0.0006446663904859373
+    ]
+  },
+  "BodyRotation": {
+    "TimeDependentFrames": [
+      10011,
+      1
+    ],
+    "CkTableStartTime": 483122606.85252464,
+    "CkTableEndTime": 483122606.85252464,
+    "CkTableOriginalSize": 1,
+    "EphemerisTimes": [
+      483122606.85252464
+    ],
+    "Quaternions": [
+      [
+        -0.5879173675268659,
+        0.18448696708540518,
+        -0.16404715837556405,
+        0.7703286686634552
+      ]
+    ],
+    "AngularVelocity": [
+      [
+        1.1327218036111434e-07,
+        -5.824482156869511e-07,
+        1.0889666193656421e-06
+      ]
+    ]
+  },
+  "InstrumentPosition": {
+    "SpkTableStartTime": 483122606.85252464,
+    "SpkTableEndTime": 483122606.85252464,
+    "SpkTableOriginalSize": 1,
+    "EphemerisTimes": [
+      483122606.85252464
+    ],
+    "Positions": [
+      [
+        1844.0372778075634,
+        -966.4783452894468,
+        1322.8443003595244
+      ]
+    ],
+    "Velocities": [
+      [
+        -2.6146204732071476,
+        -0.30506722068884373,
+        2.856361705205401
+      ]
+    ]
+  },
+  "SunPosition": {
+    "SpkTableStartTime": 483122606.85252464,
+    "SpkTableEndTime": 483122606.85252464,
+    "SpkTableOriginalSize": 1,
+    "EphemerisTimes": [
+      483122606.85252464
+    ],
+    "Positions": [
+      [
+        11805116.23980372,
+        -39513888.58935088,
+        -22331586.84185954
+      ]
+    ],
+    "Velocities": [
+      [
+        56.903276907758496,
+        11.401211521119633,
+        0.19123815749182813
+      ]
+    ]
+  }
+}
diff --git a/tests/pytests/test_mdis_drivers.py b/tests/pytests/test_mdis_drivers.py
index 3bb8108..20d1b64 100644
--- a/tests/pytests/test_mdis_drivers.py
+++ b/tests/pytests/test_mdis_drivers.py
@@ -7,7 +7,7 @@ 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_isd, get_image_kernels, convert_kernels, compare_dicts
 import ale
 from ale.drivers.mess_drivers import MessengerMdisPds3NaifSpiceDriver
 from ale.drivers.mess_drivers import MessengerMdisIsisLabelNaifSpiceDriver
@@ -21,164 +21,18 @@ def test_kernels():
         os.remove(kern)
 
 image_dict = {
-    # MDIS NAC
-    'EN1072174528M': {
-        'isis': {
-            'CameraVersion': 2,
-            'NaifKeywords': {
-                'BODY_CODE' : 199,
-                'BODY199_RADII' : [2439.4, 2439.4, 2439.4],
-                'BODY_FRAME_CODE'  : 10011,
-                'INS-236820_SWAP_OBSERVER_TARGET' : 'TRUE',
-                'INS-236820_LIGHTTIME_CORRECTION' : 'LT+S',
-                'INS-236820_LT_SURFACE_CORRECT' : 'FALSE',
-                'INS-236820_REFERENCE_FRAME' : 'MSGR_SPACECRAFT',
-                'INS-236820_FRAME' : 'MSGR_MDIS_NAC',
-                'INS-236820_FOCAL_LENGTH' : 549.11781953727,
-                'INS-236820_PIXEL_PITCH' : 0.014,
-                'INS-236820_TRANSX' : [0.0, 0.014, 0.0],
-                'INS-236820_TRANSY' : [0.0, 0.0, 0.014],
-                'INS-236820_ITRANSS' : [0.0, 71.42857143, 0.0],
-                'INS-236820_ITRANSL' : [0.0, 0.0, 71.42857143],
-                'INS-236820_BORESIGHT_SAMPLE' : 512.5,
-                'INS-236820_BORESIGHT_LINE' : 512.5,
-                'INS-236820_OD_T_X' : [0.0, 1.0018542696238, 0.0, 0.0, -5.09444047494111e-04, 0.0, 1.00401047146886e-05, 0.0, 1.00401047146886e-05, 0.0],
-                'INS-236820_OD_T_Y' : [0.0, 0.0, 1.0, 9.06001059499675e-04, 0.0, 3.57484262662076e-04, 0.0, 1.00401047146886e-05, 0.0, 1.00401047146886e-05],
-                'INS-236820_FPUBIN_START_SAMPLE': 9.0,
-                'INS-236820_CK_TIME_TOLERANCE': 1.0,
-                'INS-236820_CK_REFERENCE_ID': 1.0,
-                'INS-236820_FOV_CLASS_SPEC': 'ANGLES',
-                'INS-236820_FOV_REF_VECTOR': [1.0,0.0,0.0],
-                'INS-236820_CK_FRAME_ID': -236000.0,
-                'INS-236820_FOV_SHAPE': 'RECTANGLE',
-                'INS-236820_FOV_ANGLE_UNITS': 'DEGREES',
-                'FRAME_-236820_CLASS': 4.0,
-                'INS-236820_BORESIGHT_LINE': 512.5,
-                'INS-236820_SWAP_OBSERVER_TARGET': 'TRUE',
-                'INS-236820_LIGHTTIME_CORRECTION': 'LT+S',
-                'INS-236820_FOV_FRAME': 'MSGR_MDIS_NAC',
-                'INS-236820_PIXEL_SAMPLES': 1024.0,
-                'INS-236820_REFERENCE_FRAME': 'MSGR_SPACECRAFT',
-                'INS-236820_FL_UNCERTAINTY': 0.5,
-                'INS-236820_ITRANSL': [0.0,0.0,71.42857143],
-                'INS-236820_ITRANSS': [0.0,71.42857143,0.0],
-                'INS-236820_FOV_CROSS_ANGLE': 0.7465,
-                'TKFRAME_-236820_SPEC': 'MATRIX',
-                'INS-236820_BORESIGHT_SAMPLE': 512.5,
-                'INS-236820_PIXEL_LINES': 1024.0,
-                'INS-236820_F/NUMBER': 22.0,
-                'INS-236820_IFOV': 25.44,
-                'INS-236820_SPK_TIME_BIAS': 0.0,
-                'INS-236820_CCD_CENTER': [512.5,512.5],
-                'FRAME_-236820_NAME': 'MSGR_MDIS_NAC',
-                'INS-236820_FRAME': 'MSGR_MDIS_NAC',
-                'INS-236820_PLATFORM_ID': -236000.0,
-                'INS-236820_LT_SURFACE_CORRECT': 'FALSE',
-                'INS-236820_TRANSX': [0.0,0.014,0.0],
-                'INS-236820_TRANSY': [0.0,0.0,0.014],
-                'INS-236820_FL_TEMP_COEFFS': [549.5120497341695,0.01018564339123439,0.0,0.0,0.0,0.0],
-                'FRAME_-236820_CENTER': -236.0,
-                'TKFRAME_-236820_RELATIVE': 'MSGR_MDIS_WAC',
-                'INS-236820_WAVELENGTH_RANGE': [700.0,800.0],
-                'INS-236820_CK_TIME_BIAS': 0.0,
-                'INS-236820_FOV_REF_ANGLE': 0.7465,
-                'TKFRAME_-236820_MATRIX': [-0.9998215487408793,-0.018816063038872958,0.001681203469647119,0.01881610195359367,-0.9998229614554359,7.33168257224375e-06,0.0016807678784302768,3.8964070113872887e-05,0.9999985867495713],
-                'INS-236820_FPUBIN_START_LINE': 1.0,
-                'FRAME_-236820_CLASS_ID': -236820.0,
-                'INS-236820_PIXEL_PITCH': 0.014,
-                'INS-236820_BORESIGHT': [0.0,0.0,1.0],
-                'BODY199_PM': [329.5988,6.1385108,0.0],
-                'BODY199_POLE_RA': [281.0103,-0.0328,0.0],
-                'BODY199_NUT_PREC_PM': [0.01067257,-0.00112309,-0.0001104,-2.539e-05,-5.71e-06],
-                'BODY199_LONG_AXIS': 0.0,
-                'BODY199_POLE_DEC': [61.4155,-0.0049,0.0],
-                'BODY199_NUT_PREC_RA': [0.0,0.0,0.0,0.0,0.0],
-                'BODY199_NUT_PREC_DEC': [0.0,0.0,0.0,0.0,0.0]
-            },
-            'InstrumentPointing': {
-                'TimeDependentFrames': [-236890, -236892, -236880, -236000, 1],
-                'ConstantFrames': [-236820, -236800, -236890],
-                'ConstantRotation': (0.001686595916635, 0.99996109494739, 0.0086581745086423, 6.3008625209968e-04, -0.0086592477671008, 0.99996230949942, 0.99999837919145, -0.0016810769512645, -6.44666390486019e-04),
-                'CkTableStartTime': 483122606.85252,
-                'CkTableEndTime': 483122606.85252,
-                'CkTableOriginalSize': 1,
-                'EphemerisTimes': [483122606.85252],
-                'Quaternions': [[-0.38021468196247,-0.021997068513824,0.88129521110671,0.27977075522175]],
-                'AngularVelocity' : [[3.70128511234226e-04,-0.0012069098299837,-6.64295531160265e-04]]},
-            'BodyRotation': {
-                'TimeDependentFrames': [10011, 1],
-                'CkTableStartTime': 483122606.85252,
-                'CkTableEndTime': 483122606.85252,
-                'CkTableOriginalSize': 1,
-                'EphemerisTimes': [483122606.85252],
-                'Quaternions': [[-0.58791736752687,0.18448696708541,-0.16404715837556,0.77032866866346]],
-                'AngularVelocity' : [[1.13272180361114e-07,-5.82448215686951e-07,1.08896661936564e-06]]},
-            'InstrumentPosition': {
-                'SpkTableStartTime': 483122606.85252,
-                'SpkTableEndTime': 483122606.85252,
-                'SpkTableOriginalSize': 1,
-                'EphemerisTimes': [483122606.85252],
-                'Positions': [[1844.0372753409,-966.47836059939,1322.8442926008]],
-                'Velocities': [[-2.6146204621248,-0.30506719264668,2.8563617189104]]},
-            'SunPosition': {
-                'SpkTableStartTime': 483122606.85252,
-                'SpkTableEndTime': 483122606.85252,
-                'SpkTableOriginalSize': 1,
-                'EphemerisTimes': [483122606.85252],
-                'Positions': [[11805115.780304,-39513889.220831,-22331586.824705]],
-                'Velocities': [[56.903276907758496, 11.401211521119633, 0.19123815749182813]]}},
-        'usgscsm': {
-            'radii': {
-                'semimajor': 2439.4,
-                'semiminor': 2439.4,
-                'unit': 'km'},
-            'sensor_position': {
-                'positions': np.array([[-629496.4862139452, -1582946.0091313303, 1783952.6403104223]]),
-                'velocities': np.array([[1732.186663134826, 2502.768253236102, 2412.6523222267365]]),
-                'unit': 'm'},
-            'sun_position': {
-                'positions': np.array([[-4.68946673e+10, -5.36158427e+08,  2.71167863e+07]]),
-                'velocities': np.array([[-4629.73346128, 256.72086237, 10.63960444]]),
-                'unit': 'm'},
-            'sensor_orientation': {
-                'quaternions': np.array([[-0.9341837162001089, -0.0014477307579469636, 0.0044938223368195815, 0.3567611161870253]])},
-            'detector_sample_summing': 2,
-            'detector_line_summing': 2,
-            'focal_length_model': {
-                'focal_length': 549.5535053027719},
-            'detector_center': {
-                'line': 512,
-                'sample': 512},
-            'starting_detector_line': 0,
-            'starting_detector_sample': 0,
-            'focal2pixel_lines': [0.0, 0.0, 71.42857143],
-            'focal2pixel_samples': [0.0, 71.42857143, 0.0],
-            'optical_distortion': {
-                'transverse': {
-                    'x': [0.0, 1.001854269623802, 0.0, 0.0, -0.0005094440474941111, 0.0, 1.004010471468856e-05, 0.0, 1.004010471468856e-05, 0.0],
-                    'y': [0.0, 0.0, 1.0, 0.0009060010594996751, 0.0, 0.0003574842626620758, 0.0, 1.004010471468856e-05, 0.0, 1.004010471468856e-05]}},
-            'image_lines': 512,
-            'image_samples': 512,
-            'name_platform': 'MESSENGER',
-            'name_sensor': 'MERCURY DUAL IMAGING SYSTEM NARROW ANGLE CAMERA',
-            'reference_height': {
-                'maxheight': 1000,
-                'minheight': -1000,
-                'unit': 'm'},
-            'name_model': 'USGS_ASTRO_FRAME_SENSOR_MODEL',
-            'center_ephemeris_time': 483122606.85252464}}}
+    'EN1072174528M': get_isd("messmdis")}
 
 @pytest.mark.parametrize("label_type", ["pds3", "isis3"])
-@pytest.mark.parametrize("formatter", ['usgscsm', 'isis'])
 @pytest.mark.parametrize("image", image_dict.keys())
-def test_load(test_kernels, label_type, formatter, image):
+def test_load(test_kernels, label_type, image):
     label_file = get_image_label(image, label_type)
-
-    usgscsm_isd_str = ale.loads(label_file, props={'kernels': test_kernels}, formatter=formatter)
+    print(test_kernels)
+    usgscsm_isd_str = ale.loads(label_file, props={'kernels': test_kernels}, verbose=True)
     usgscsm_isd_obj = json.loads(usgscsm_isd_str)
     print(json.dumps(usgscsm_isd_obj, indent=2))
 
-    assert compare_dicts(usgscsm_isd_obj, image_dict[image][formatter]) == []
+    assert compare_dicts(usgscsm_isd_obj, image_dict[image]) == []
 
 # ========= Test Pds3 Label and NAIF Spice driver =========
 class test_pds3_naif(unittest.TestCase):
-- 
GitLab