From 29bbfdc5928bb239bba54607741df5a29c92ce8c Mon Sep 17 00:00:00 2001
From: Paolo Veglio <paolo.veglio@ssec.wisc.edu>
Date: Thu, 27 Oct 2022 20:41:15 +0000
Subject: [PATCH] started including the tests for various scenes... work in
 progress...

---
 main.py | 110 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 85 insertions(+), 25 deletions(-)

diff --git a/main.py b/main.py
index c74fa58..e7851d4 100644
--- a/main.py
+++ b/main.py
@@ -6,7 +6,7 @@ from glob import glob
 
 import read_data as rd
 import scene as scn
-from tests import CloudTests_new
+from tests import CloudTests
 
 # import tests
 import ocean_day_tests as odt
@@ -79,35 +79,96 @@ def main(*, data_path=_datapath, mod02=_fname_mod02, mod03=_fname_mod03,
     # viirs_data.drop_vars(['latitude', 'longitude'])
 
     cmin_G1 = np.ones(viirs_data.M01.shape)
-    cmin_test = {'Ocean_Day': np.ones(viirs_data.M01.shape),
-                 'Polar_Ocean_Day': np.ones(viirs_data.M01.shape),
-                 'Polar_Ocean_Night': np.ones(viirs_data.M01.shape)
-                 }
+    cmin_G2 = np.ones(viirs_data.M01.shape)
+#    cmin_test = {'Ocean_Day': np.ones(viirs_data.M01.shape),
+#                 'Polar_Ocean_Day': np.ones(viirs_data.M01.shape),
+#                 'Polar_Ocean_Night': np.ones(viirs_data.M01.shape)
+#                 }
     cmin2 = np.ones(viirs_data.M01.shape)
     cmin3 = np.ones(viirs_data.M01.shape)
     cmin4 = np.ones(viirs_data.M01.shape)
 
-    Ocean_Day = CloudTests_new(viirs_data, 'Ocean_Day', thresholds)
-    Polar_Ocean_Day = CloudTests_new(viirs_data, 'Polar_Ocean_Day', thresholds)
-    Polar_Ocean_Night = CloudTests_new(viirs_data, 'Polar_Ocean_Night', thresholds)
-
-    # Land_Day = CloudTests(viirs_data, 'Land_Day', thresholds)
-    # Night_Snow = CloudTests(viirs_data, 'Night_Snow', thresholds)
-    # Day_Snow = CloudTests(viirs_data, 'Day_Snow', thresholds)
-    # Land_Night = CloudTests(viirs_data, 'Land_Night', thresholds)
-    # Land_Day_Coast = CloudTests(viirs_data, 'Land_Day_Coast', thresholds)
-    # Land_Day_Desert = CloudTests(viirs_data, 'Land_Day_Desert', thresholds)
-    # Land_Day_Desert_Coast = CloudTests(viirs_data, 'Land_Day_Desert_Coast', thresholds)
+    Land_Day = CloudTests(viirs_data, 'Land_Day', thresholds)
+    Land_Night = CloudTests(viirs_data, 'Land_Night', thresholds)
+    Land_Day_Coast = CloudTests(viirs_data, 'Land_Day_Coast', thresholds)
+    Land_Day_Desert = CloudTests(viirs_data, 'Land_Day_Desert', thresholds)
+    Land_Day_Desert_Coast = CloudTests(viirs_data, 'Land_Day_Desert_Coast', thresholds)
+    Ocean_Day = CloudTests(viirs_data, 'Ocean_Day', thresholds)
+    Ocean_Night = CloudTests(viirs_data, 'Ocean_Night', thresholds)
+    Polar_Day_Land = CloudTests(viirs_data, 'Polar_Day_Land', thresholds)
+    Polar_Night_Land = CloudTests(viirs_data, 'Polar_Night_Land', thresholds)
+    Polar_Day_Coast = CloudTests(viirs_data, 'Polar_Day_Coast', thresholds)
+    Polar_Day_Desert = CloudTests(viirs_data, 'Polar_Day_Desert', thresholds)
+    Polar_Day_Desert_Coast = CloudTests(viirs_data, 'Polar_Day_Desert_Coast', thresholds)
+    Polar_Day_Snow = CloudTests(viirs_data, 'Polar_Day_Snow', thresholds)
+    Polar_Night_Snow = CloudTests(viirs_data, 'Polar_Night_Snow', thresholds)
+    Polar_Ocean_Day = CloudTests(viirs_data, 'Polar_Ocean_Day', thresholds)
+    Polar_Ocean_Night = CloudTests(viirs_data, 'Polar_Ocean_Night', thresholds)
+    Day_Snow = CloudTests(viirs_data, 'Day_Snow', thresholds)
+    Night_Snow = CloudTests(viirs_data, 'Night_Snow', thresholds)
+    Antarctic_Day = CloudTests(viirs_data, 'Antarctic_Day', thresholds)
 
     # 11um BT Test
-    cmin_test['Ocean_Day'] = Ocean_Day.single_threshold_test('11um_Test', 'M15', cmin_G1)
-    cmin_test['Polar_Ocean_Day'] = Polar_Ocean_Day.single_threshold_test('11um_Test', 'M15', cmin_G1)
-    cmin_test['Polar_Ocean_Night'] = Polar_Ocean_Night.single_threshold_test('11um_Test', 'M15', cmin_G1)
-
-    return cmin_test
-    '''
-    # CO2 High Cloud Test
-    # cmin_G1 = Land_Day
+    cmin_G1 = Ocean_Day.single_threshold_test('11um_Test', 'M15', cmin_G1)
+    cmin_G1 = Polar_Ocean_Day.single_threshold_test('11um_Test', 'M15', cmin_G1)
+    cmin_G1 = Polar_Ocean_Night.single_threshold_test('11um_Test', 'M15', cmin_G1)
+
+    # CO2 High Clouds Test
+    # NOTE: VIIRS doesn't have the MODIS equivalent of B35 so this test is not performed
+    cmin_G1 = Land_Day.single_threshold_test('CO2_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Land_Night.single_threshold_test('CO2_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Land_Day_Coast.single_threshold_test('CO2_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Land_Day_Desert.single_threshold_test('CO2_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Land_Day_Desert_Coast.single_threshold_test('CO2_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Ocean_Day.single_threshold_test('CO2_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Ocean_Night.single_threshold_test('CO2_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Day_Snow.single_threshold_test('CO2_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Night_Snow.single_threshold_test('CO2_High_Clouds_Test', 'bad_data', cmin_G1)
+
+    # Water Vapor High Clouds Test
+    # NOTE: VIIRS doesn't have the MODIS equivalent of B27 so this test is not performed
+    cmin_G1 = Land_Day.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Land_Night.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Land_Day_Coast.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Land_Day_Desert.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Land_Day_Desert_Coast.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Ocean_Day.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Ocean_Night.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Polar_Day_Land.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Polar_Night_Land.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Polar_Day_Coast.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Polar_Day_Desert.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Polar_Day_Desert_Coast.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Polar_Day_Snow.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Polar_Night_Snow.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Polar_Ocean_Day.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Polar_Ocean_Night.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Day_Snow.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Night_Snow.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+    cmin_G1 = Antarctic_Day.single_threshold_test('Water_Vapor_High_Clouds_Test', 'bad_data', cmin_G1)
+
+    # Surface Temperature Test
+    # ## NOTE: This requires some calculations for the thresholds.
+    # Moreover this test is using the 11um - 12um difference instead of a single channel
+    # Also, look at the test carefully for these two cases. Polar_Night_Land uses some hardcoded coeffs
+    # (i.e. *_df1 and *_df2) that might be worth moving in the thresholds file for consistency
+    cmin_G1 = Land_Night.single_threshold_test('Surface_Temperature_Test', 'M15-M16', cmin_G1)
+    cmin_G1 = Polar_Night_Land.single_threshold_test('Surface_Temperature_Test', 'M15-M16', cmin_G1)
+
+    # SST Test
+    # ## NOTE: This requires some calculations for the thresholds.
+    # Moreover this test is using the 11um - 12um difference instead of a single channel
+    cmin_G1 = Ocean_Day.single_threshold_test('SST_Test', 'M15-M16', cmin_G1)
+    cmin_G1 = Polar_Ocean_Day.single_threshold_test('SST_Test', 'M15-M16', cmin_G1)
+    cmin_G1 = Polar_Ocean_Night.single_threshold_test('SST_Test', 'M15-M16', cmin_G1)
+    # the following test uses a different set of coefficients compared to the others above
+    cmin_G1 = Ocean_Night.single_threshold_test('SST_Test', 'M15-M16', cmin_G1)
+
+    # 11-8.6um BT Difference Test
+    cmin_G2 = Ocean_Day.single_threshold_test('11-8.6um_Test', 'M15-M14', cmin_G2)
+    cmin_G2 = Ocean_Night.single_threshold_test('11-8.6um_Test', 'M15-M14', cmin_G2)
+    cmin_G2 = Polar_Ocean_Day.single_threshold_test('11-8.6um_Test', 'M15-M14', cmin_G2)
+    cmin_G2 = Polar_Ocean_Night.single_threshold_test('11-8.6um_Test', 'M15-M14', cmin_G2)
 
     # 11-12um BT Difference
     cmin_G1 = Ocean_Day.single_threshold_test('11-12BT_diff',
@@ -174,7 +235,6 @@ def main(*, data_path=_datapath, mod02=_fname_mod02, mod03=_fname_mod03,
              lat=viirs_data.latitude.values, lon=viirs_data.longitude.values)
 
     return confidence
-    '''
 
 
 def test_main():
-- 
GitLab