Commit c821b1da authored by Kelvin Rodriguez's avatar Kelvin Rodriguez Committed by Stuart Sides
Browse files

Naif Keyword update (sledgehammer edition) (#273)

* Naif Keyword update (sledgehammer edition)

* updated test data

* renamed func

* updated as per comments

* passing tests

* getting call stack for python sometimes causes bus error

* removed debug prints
parent a9b1ef04
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -426,6 +426,7 @@ class NaifSpice():
        """
        return float(spice.gdpool('INS{}_BORESIGHT_LINE'.format(self.ikid), 0, 1)[0])


    @property
    def isis_naif_keywords(self):
        """
@@ -438,11 +439,7 @@ class NaifSpice():

        naif_keywords['BODY{}_RADII'.format(self.target_id)] = self.target_body_radii
        naif_keywords['BODY_FRAME_CODE'] = self.target_frame_id
        naif_keywords['INS{}_PIXEL_SIZE'.format(self.ikid)] = self.pixel_size
        naif_keywords['INS{}_ITRANSL'.format(self.ikid)] = self.focal2pixel_lines
        naif_keywords['INS{}_ITRANSS'.format(self.ikid)] = self.focal2pixel_samples
        naif_keywords['INS{}_FOCAL_LENGTH'.format(self.ikid)] = self.focal_length
        naif_keywords['INS{}_BORESIGHT_SAMPLE'.format(self.ikid)] = self.detector_center_sample + 0.5
        naif_keywords['INS{}_BORESIGHT_LINE'.format(self.ikid)] = self.detector_center_line + 0.5
        naif_keywords['BODY_CODE'] = self.target_id

        naif_keywords = {**naif_keywords, **util.query_kernel_pool(f"*{self.ikid}*")}
        return naif_keywords
+2 −2
Original line number Diff line number Diff line
@@ -389,7 +389,7 @@ namespace ale {
     Py_DECREF(pStringFormatter);
     
     if(!pResult) {
        throw invalid_argument(getPyTraceback());
        throw invalid_argument("No Valid instrument found for label.");
     }

     PyObject *pResultStr = PyObject_Str(pResult);
+8 −7
Original line number Diff line number Diff line
@@ -189,19 +189,20 @@ def test_isis_naif_keywords(driver):
    expected_keywords = {
        'BODY199_RADII' : driver.target_body_radii,
        'BODY_FRAME_CODE' : 10011,
        'INS-236820_PIXEL_SIZE' : 0.014,
        'INS-236820_PIXEL_PITCH' : 0.014,
        'INS-236820_ITRANSL' : [0.0, 0.0, 71.42857143],
        'INS-236820_ITRANSS' : [0.0, 71.42857143, 0.0],
        'INS-236820_FOCAL_LENGTH' : 549.5535053027719,
        'INS-236820_FOCAL_LENGTH' : 549.1178195372703,
        'INS-236820_BORESIGHT_SAMPLE' : 512.5,
        'INS-236820_BORESIGHT_LINE' : 512.5
    }
    assert set(driver.isis_naif_keywords.keys()) == set(expected_keywords.keys())
    for key, value in driver.isis_naif_keywords.items():
        if isinstance(value, np.ndarray):
            np.testing.assert_almost_equal(value, expected_keywords[key])
    print(driver.isis_naif_keywords.keys())
    assert set(expected_keywords.keys()).issubset(set(driver.isis_naif_keywords.keys()))
    for key, value in expected_keywords.items():
        if isinstance(value, np.ndarray) or isinstance(value, list):
            np.testing.assert_almost_equal(value, driver.isis_naif_keywords[key])
        else:
            assert value == expected_keywords[key]
            assert value == driver.isis_naif_keywords[key]

def test_sensor_model_version(driver):
    assert driver.sensor_model_version == 2
+43 −9
Original line number Diff line number Diff line
@@ -66,14 +66,48 @@ def usgscsm_compare_dict():
def isis_compare_dict():
    return {
    'CameraVersion': 1,
    'NaifKeywords': {'BODY499_RADII': [3396.19, 3396.19, 3376.2],
    'NaifKeywords': {
      'BODY499_RADII': [3396.19, 3396.19, 3376.2],
      'BODY_FRAME_CODE': 10014,
                     'INS-74021_PIXEL_SIZE': 7e-06,
                     'INS-74021_ITRANSL': [0.0, 142.85714285714, 0.0],
                     'INS-74021_ITRANSS': [0.0, 0.0, 142.85714285714],
      'BODY_CODE': 499,
      'INS-74021_FOV_ANGLE_UNITS': 'DEGREES',
      'TKFRAME_-74021_UNITS': 'DEGREES',
      'INS-74021_FOV_ANGULAR_SIZE': [5.73, 0.001146],
      'INS-74021_PIXEL_LINES': 1.0,
      'TKFRAME_-74021_ANGLES': [0.0, 0.0, 0.0],
      'INS-74021_IFOV': [2e-05, 2e-05],
      'FRAME_-74021_CENTER': -74.0,
      'INS-74021_F/RATIO': 3.25,
      'INS-74021_PLATFORM_ID': -74000.0,
      'INS-74021_CCD_CENTER': [2500.5, 0.5],
      'INS-74021_PIXEL_SAMPLES': 5000.0,
      'INS-74021_FOCAL_LENGTH': 352.9271664,
      'INS-74021_FOV_CROSS_ANGLE': 0.00057296,
      'INS-74021_TRANSX': [0.0, 0.0, 0.007],
      'INS-74021_FOV_CLASS_SPEC': 'ANGLES',
      'INS-74021_TRANSY': [0.0, 0.007, 0.0],
      'INS-74021_FOV_REF_VECTOR': [0.0, 1.0, 0.0],
      'INS-74021_BORESIGHT': [0.0, 0.0, 1.0],
      'FRAME_-74021_NAME': 'MRO_CTX',
      'INS-74021_PIXEL_PITCH': 0.007,
      'TKFRAME_-74021_AXES': [1.0, 2.0, 3.0],
      'TKFRAME_-74021_SPEC': 'ANGLES',
      'INS-74021_BORESIGHT_LINE': 0.430442527,
      'INS-74021_FOV_SHAPE': 'RECTANGLE',
      'INS-74021_BORESIGHT_SAMPLE': 2543.46099,
                     'INS-74021_BORESIGHT_LINE': 0.9304425270000001},
      'FRAME_-74021_CLASS': 4.0,
      'INS-74021_CK_FRAME_ID': -74000.0,
      'INS-74021_ITRANSL': [0.0, 142.85714285714, 0.0],
      'INS-74021_FOV_REF_ANGLE': 2.86478898,
      'INS-74021_ITRANSS': [0.0, 0.0, 142.85714285714],
      'FRAME_-74021_CLASS_ID': -74021.0,
      'INS-74021_OD_K': [-0.0073433925920054505,
       2.8375878636241697e-05,
       1.2841989124027099e-08],
      'INS-74021_FOV_FRAME': 'MRO_CTX',
      'INS-74021_CK_REFERENCE_ID': -74900.0,
      'TKFRAME_-74021_RELATIVE': 'MRO_CTX_BASE',
      'INS-74021_PIXEL_SIZE': [0.007, 0.007]},
    'InstrumentPointing': {'TimeDependentFrames': [-74021, 1],
                           'CkTableStartTime': 297088762.24158406,
                           'CkTableEndTime': 297088762.9923841,