diff --git a/mvcm/main.py b/mvcm/main.py index de1d32a5acf1e703af4c3026aec2b5579e9f515a..6f7cd1f7295fc5cd79440560ca10b20e3b99793c 100644 --- a/mvcm/main.py +++ b/mvcm/main.py @@ -139,7 +139,13 @@ def main(satellite: str = 'snpp', text = f.read() thresholds = yml.safe_load(text) - viirs_data = rd.get_data(satellite, sensor, file_names, hires=True) + ################# + ################# + use_hires = False + ################# + ################# + # viirs_data = rd.get_data(satellite, sensor, file_names, hires=True) + viirs_data = rd.get_data(satellite, sensor, file_names, hires=use_hires) sunglint_angle = thresholds['Sun_Glint']['bounds'][3] scene_flags = scn.find_scene(viirs_data, sunglint_angle) @@ -178,13 +184,17 @@ def main(satellite: str = 'snpp', for b in _bitlist: bit[b] = np.zeros(viirs_data.M11.shape) - cmin_G1, bit['01'] = MyScene.test_11um('M15hi', cmin_G1) - cmin_G1, bit['02'] = MyScene.surface_temperature_test('M15hi', viirs_data, cmin_G1) + if use_hires is True: + m15_name = 'M15hi' + else: + m15_name = 'M15' + cmin_G2, bit['06'] = MyScene.variability_11um_test(m15_name, cmin_G2) + cmin_G1, bit['01'] = MyScene.test_11um(m15_name, cmin_G1) + cmin_G1, bit['02'] = MyScene.surface_temperature_test('', viirs_data, cmin_G1) cmin_G1, bit['03'] = MyScene.sst_test('M15', 'M16', cmin_G1) cmin_G2, bit['04'] = MyScene.bt_diff_86_11um('M14-M15', cmin_G2) cmin_G2, bit['05'], thr_temp = MyScene.test_11_12um_diff('M15-M16', cmin_G2, thr_temp) - cmin_G2, bit['06'] = MyScene.variability_11um_test('M15hi', cmin_G2) cmin_G2, bit['07'] = MyScene.bt_difference_11_4um_test_ocean('M15-M12', cmin_G2) # # cmin_G2, bit['08'] = MyScene.bt_difference_11_4um_test_land('M15-M12', cmin_G2) cmin_G2, bit['09'] = MyScene.oceanic_stratus_11_4um_test('M15-M12', cmin_G2) @@ -348,6 +358,8 @@ def main(satellite: str = 'snpp', 'data': bit['05']}, 'bit10': {'dims': ('x', 'y'), 'data': bit['10']}, + 'bit14': {'dims': ('x', 'y'), + 'data': bit['14']}, 'bit15': {'dims': ('x', 'y'), 'data': bit['15']}, 'thr': {'dims': ('x', 'y'), @@ -358,15 +370,15 @@ def main(satellite: str = 'snpp', # 'data': viirs_data.M15.values}, # 'b16': {'dims': ('x', 'y'), # 'data': viirs_data.M16.values}, - # 'b15hi': {'dims': ('x', 'y'), - # 'data': viirs_data.M15hi.values}, + 'GEMI': {'dims': ('x', 'y'), + 'data': viirs_data.GEMI.values}, } sf = {k: {'dims': ('x', 'y'), 'data': scene_flags[k]} for k in scene_flags} out_dict = d | sf ds_out = xr.Dataset.from_dict(out_dict) - # ds_out.to_netcdf('test_w_restorals.nc') - ds_out.to_netcdf('test_hires.nc') + ds_out.to_netcdf('test_w_restorals.nc') + # ds_out.to_netcdf('test_hires.nc') # np.savez('test_w_restorals', confidence=cmin, scene_flags=scene_flags, # lat=viirs_data.latitude.values, lon=viirs_data.longitude.values) diff --git a/mvcm/restoral.py b/mvcm/restoral.py index 94a3c85ec7a3c6a45718c7d52cd6efe45878ab51..860acc74a1a1e73e62303b3a997b736a6eef0357 100644 --- a/mvcm/restoral.py +++ b/mvcm/restoral.py @@ -190,16 +190,16 @@ class Restoral(object): idx = np.nonzero((bit == 1) & (self.scene_flag['day'] == 1) & (self.scene_flag['land'] == 1) & (self.scene_flag['snow'] == 0) & (self.scene_flag['ice'] == 0) & - (confidence <= 0.95) & (rad > thr11um[:, :, 0])) - confidence[idx] = 0.95 + (confidence <= 0.95) & (rad > thr11um[:, :, 2])) + confidence[idx] = 1 idx = np.nonzero((bit == 1) & (self.scene_flag['day'] == 1) & (self.scene_flag['land'] == 1) & (self.scene_flag['snow'] == 0) & (self.scene_flag['ice'] == 0) & (confidence <= 0.95) & (rad > thr11um[:, :, 1])) confidence[idx] = 0.96 idx = np.nonzero((bit == 1) & (self.scene_flag['day'] == 1) & (self.scene_flag['land'] == 1) & (self.scene_flag['snow'] == 0) & (self.scene_flag['ice'] == 0) & - (confidence <= 0.95) & (rad > thr11um[:, :, 2])) - confidence[idx] = 1 + (confidence <= 0.95) & (rad > thr11um[:, :, 0])) + confidence[idx] = 0.95 # Perform additional clear-sky spectral tests idx = np.nonzero((bit == 1) & (self.scene_flag['day'] == 1) & (self.scene_flag['land'] == 1) &