def test_get_potential_cloud_layer(self): f = Fmask(self.image) self.assertIsInstance(f, Fmask) cloud, shadow, water = f.cloud_mask() c_ct, s_ct = count_nonzero(cloud), count_nonzero(shadow) w_ct = count_nonzero(water) self.assertEqual(c_ct, 229040) self.assertEqual(s_ct, 37570) self.assertEqual(w_ct, 9423)
def test_get_potential_cloud_layer(self): # cloud and shadow have been visually inspected # test have-not-changed f = Fmask(self.image) self.assertIsInstance(f, Fmask) cloud, shadow, water = f.cloud_mask() combo = f.cloud_mask(combined=True) c_ct, s_ct = count_nonzero(cloud), count_nonzero(shadow) w_ct, combo_ct = count_nonzero(water), count_nonzero(combo) self.assertEqual(c_ct, 145184) self.assertEqual(s_ct, 41854) self.assertEqual(w_ct, 87399) self.assertEqual(combo_ct, 200182)
def fmask(directory): dirs = [os.path.join(directory, x) for x in os.listdir(directory)] tif_name = 'cloud_mask.tif' for d in dirs: if tif_name in os.listdir(d): print('Looks like {} already has a {}'.format(d, tif_name)) else: print('Processing {}'.format(d)) l = Landsat8(d) f = Fmask(l) combo = f.cloud_mask(combined=True) f.save_array(combo, outfile=os.path.join(d, tif_name)) return None
def _make_fmask(self, image_dir): s = os.path.basename(image_dir) self.dst_path_cloud = os.path.join(image_dir, '{}_cloud_fmask.tif'.format(s)) self.dst_path_water = os.path.join(image_dir, '{}_water_fmask.tif'.format(s)) if os.path.isfile(self.dst_path_cloud) and os.path.isfile(self.dst_path_water): print('{} and {} exist for {}'.format(os.path.basename(self.dst_path_cloud), os.path.basename(self.dst_path_water), image_dir)) else: print('fmask for {}'.format(image_dir)) lst_image = self.landsat_mapping[self.sat_abv](image_dir) f = Fmask(lst_image) c, shadow, water = f.cloud_mask() cloud = c | shadow f.save_array(cloud, self.dst_path_cloud) f.save_array(water, self.dst_path_water)
def test_get_potential_cloud_layer(self): ndvi = self.image.ndvi() f = Fmask(self.image) self.assertIsInstance(f, Fmask) cloud, shadow, water = f.cloud_mask() combo = f.cloud_mask(combined=True) c_ct, s_ct = count_nonzero(cloud), count_nonzero(shadow) w_ct = count_nonzero(water) self.assertEqual(c_ct, 133502) self.assertEqual(s_ct, 21960) self.assertEqual(w_ct, 29678) home = os.path.expanduser('~') outdir = os.path.join(home, 'images', 'sandbox') f.save_array(ndvi, os.path.join(outdir, 'ndvi.tif'))
def fetch_fmask(self, sat_image): f = Fmask(sat_image) combo = f.cloud_mask(min_filter=(3, 3), max_filter=(40, 40), combined=True) f.save_array(combo, self.file_path) return combo
def fmask(directory): dirs = [os.path.join(directory, x) for x in os.listdir(directory)] for d in dirs: l = LandsatImage(d) f = Fmask(l) pass