Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
 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'))
Ejemplo n.º 6
0
 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
Ejemplo n.º 7
0
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