diff --git a/autocnet/cg/change_detection.py b/autocnet/cg/change_detection.py index c238db56b8b13490e0e353f2cedc6c1f01984039..1265049951dd73aa179c89654c1a16f4838fe6b2 100644 --- a/autocnet/cg/change_detection.py +++ b/autocnet/cg/change_detection.py @@ -26,7 +26,12 @@ import richdem as rd import pandas as pd import geopandas as gpd -from kalasiris import specialpixels +try: + import kalasiris as isis +except Exception as exception: + from autocnet.utils.utils import FailedImport + isis = FailedImport(exception) + from autocnet.utils.utils import bytescale from autocnet.matcher.cpu_extractor import extract_features @@ -57,7 +62,7 @@ def image_diff(arr1, arr2): arr1[arr1 == 0] = np.nan arr2[arr2 == 0] = np.nan - isis_null = specialpixels.Real.Null + isis_null = isis.specialpixels.Real.Null arr1[arr1 == isis_null] = np.nan arr2[arr2 == isis_null] = np.nan @@ -92,7 +97,7 @@ def image_ratio(arr1, arr2): arr1[arr1 == 0] = np.nan arr2[arr2 == 0] = np.nan - isis_null = specialpixels.Real.Null + isis_null = isis.specialpixels.Real.Null arr1[arr1 == isis_null] = np.nan arr2[arr2 == isis_null] = np.nan diff --git a/autocnet/cg/tests/test_change_detection.py b/autocnet/cg/tests/test_change_detection.py index b56328f5a88435d01f3ee13ffb093c2d627f6de5..676dfcf703f86e82b0d9f4b3b1416778fbf73bd1 100644 --- a/autocnet/cg/tests/test_change_detection.py +++ b/autocnet/cg/tests/test_change_detection.py @@ -12,7 +12,7 @@ import unittest import numpy as np import numpy.testing as npt from autocnet.cg import change_detection as cd - +from autocnet.utils.utils import FailedImport class TestISIS(unittest.TestCase): @@ -20,16 +20,18 @@ class TestISIS(unittest.TestCase): arr1 = np.array([1.0, 2.0, -3.4028227e+38]) arr2 = np.array([1.0, 3.0, 0]) - npt.assert_array_equal( - np.array([0, -1.0, 0]), - cd.image_diff(arr1, arr2) - ) + if not isinstance(cd.isis, FailedImport): + npt.assert_array_equal( + np.array([0, -1.0, 0]), + cd.image_diff(arr1, arr2) + ) def test_image_ratio(self): arr1 = np.array([1.0, 4.0, -3.4028227e+38]) arr2 = np.array([1.0, 2.0, 0]) - npt.assert_array_equal( - np.array([1.0, 2.0, 0]), - cd.image_ratio(arr1, arr2) - ) \ No newline at end of file + if not isinstance(cd.isis, FailedImport): + npt.assert_array_equal( + np.array([1.0, 2.0, 0]), + cd.image_ratio(arr1, arr2) + ) \ No newline at end of file diff --git a/autocnet/utils/hirise.py b/autocnet/utils/hirise.py index 1258b1039f9bfe1fcedcae9acd3f741fa12029f9..bd44a062a3f97ff0f8567bc6361ca1d4643f5431 100644 --- a/autocnet/utils/hirise.py +++ b/autocnet/utils/hirise.py @@ -3,7 +3,12 @@ from glob import glob import textwrap import geopandas as gpd -import kalasiris as isis +try: + import kalasiris as isis +except Exception as exception: + from autocnet.utils.utils import FailedImport + isis = FailedImport(exception) + from subprocess import CalledProcessError from plio.io.io_gdal import GeoDataset