diff --git a/tests/test_conf.py b/tests/test_conf.py new file mode 100644 index 0000000000000000000000000000000000000000..33a193cf8de0293a58e70d01fbd630e991be0416 --- /dev/null +++ b/tests/test_conf.py @@ -0,0 +1,56 @@ +import os +import numpy as np + +import pytest + +import mvcm.conf as conf + + +@pytest.fixture +def fixturepath(): + return os.path.join(os.path.dirname(__file__), 'fixtures') + + +@pytest.fixture +def rad(): + return np.arange(260, 282) + + +@pytest.fixture +def single_threshold(): + return [267, 270, 273, 1] + + +@pytest.fixture +def double_threshold(): + return [264, 267, 270, 273, 276, 279, 1] + + +@pytest.fixture +def reference_data(fixturepath): + return os.path.join(fixturepath, 'ref_conf.npz') + + +def test_single_threshold(rad, single_threshold, reference_data): + ref_confidence = np.load(reference_data)['ref_sgl'] + ref_confidence_flipped = np.load(reference_data)['ref_sgl_flipped'] + + c = conf.conf_test_new(rad, single_threshold) + assert np.all(c == ref_confidence) + + single_threshold[0:-1] = single_threshold[-2::-1] + c = conf.conf_test_new(rad, single_threshold) + assert np.all(c == ref_confidence_flipped) + + +def test_double_threshold(rad, double_threshold, reference_data): + ref_confidence = np.load(reference_data)['ref_dbl'] + ref_confidence_flipped = np.load(reference_data)['ref_dbl_flipped'] + + c = conf.conf_test_dble(rad, double_threshold) + print(c) + assert np.all(c == ref_confidence) + + double_threshold[0:-1] = double_threshold[-2::-1] + c = conf.conf_test_dble(rad, double_threshold) + assert np.all(c == ref_confidence_flipped) diff --git a/tests/test_spectral_tests.py b/tests/test_spectral_tests.py new file mode 100644 index 0000000000000000000000000000000000000000..b6ac684fb960ad3efa55386742f614532d2162eb --- /dev/null +++ b/tests/test_spectral_tests.py @@ -0,0 +1,44 @@ +import os +import yaml +import xarray as xr +import numpy as np + +import pytest + +import mvcm.spectral_tests as tst + + +@pytest.fixture +def fixturepath(): + return os.path.join(os.path.dirname(__file__), 'fixtures') + + +@pytest.fixture +def thresholds_file(fixturepath): + return os.path.join(fixturepath, 'thresholds.mvcm.snpp.v0.0.1.yaml') + + +@pytest.fixture +def data_path(): + return '/ships19/hercules/pveglio/mvcm_cleanup' + + +@pytest.fixture +def data_file(data_path): + return os.path.join(data_path, 'viirs_data_A2022173.1312.nc') + + +def test_11um_test(data_file, thresholds_file): + with open(thresholds_file, 'r') as f: + cfg_text = f.read() + thresholds = yaml.safe_load(cfg_text) + + viirs_data = xr.open_dataset(data_file) + cmin = np.ones(viirs_data.latitude.shape) + + for scene_name in ['Ocean_Day', 'Ocean_Night', 'Polar_Day_Ocean', 'Polar_Night_Ocean']: + SceneType = tst.CloudTests(data=viirs_data, + scene_name=scene_name, + thresholds=thresholds) + + cmin, bit = SceneType.test_11um('M15', cmin)