Esempio n. 1
0
    def test_addConstantBands(self):
        newimg = tools.addConstantBands(0, "a", "b", "c")(self.l8SR)
        vals = tools.get_value(newimg, self.p_l8SR_no_cloud, 30)

        self.assertEqual(vals["B1"], 517)
        self.assertEqual(vals["a"], 0)
        self.assertEqual(vals["b"], 0)
        self.assertEqual(vals["c"], 0)

        newimg2 = tools.addConstantBands(a=0, b=1, c=2)(self.l8SR)
        vals2 = tools.get_value(newimg2, self.p_l8SR_no_cloud, 30)

        self.assertEqual(vals2["B1"], 517)
        self.assertEqual(vals2["a"], 0)
        self.assertEqual(vals2["b"], 1)
        self.assertEqual(vals2["c"], 2)

        newimg3 = tools.addConstantBands(0, "a", "b", "c", d=1, e=2)(self.l8SR)
        vals3 = tools.get_value(newimg3, self.p_l8SR_no_cloud, 30)

        self.assertEqual(vals3["B1"], 517)
        self.assertEqual(vals3["a"], 0)
        self.assertEqual(vals3["b"], 0)
        self.assertEqual(vals3["c"], 0)
        self.assertEqual(vals3["d"], 1)
        self.assertEqual(vals3["e"], 2)
Esempio n. 2
0
    def test_expressions(self):
        from geetools import expressions
        generator = expressions.ExpGen()
        exp_max = generator.max("b('B1')", "b('B2')")
        exp_min = generator.min("b('B1')", "b('B2')")

        img_max = self.l8SR.expression(exp_max).select([0], ["max"])
        img_min = self.l8SR.expression(exp_min).select([0], ["min"])

        vals_max = tools.get_value(img_max, self.p_l8SR_no_cloud, 30, 'client')
        vals_min = tools.get_value(img_min, self.p_l8SR_no_cloud, 30, 'client')

        self.assertEqual(vals_max["max"], 580)
        self.assertEqual(vals_min["min"], 517)
Esempio n. 3
0
    def test_bap2016_0(self):
        pmulti = scores.MultiYear(2016, self.temporada)
        objbap = bap.Bap(year=2016,
                         colgroup=self.coleccion,
                         season=self.temporada,
                         scores=(self.pindice, self.pmascpor, self.psat,
                                 self.pout, self.pop, self.pdoy, pmulti),
                         masks=(self.nubes,),
                         filters=(self.filtro,),
                         )

        # objbap.debug = True
        sitio = self.sitio

        unpix = objbap.bestpixel(sitio, indices=("ndvi",))
        img = unpix.image
        col = unpix.col

        self.assertIsInstance(img, ee.Image)
        self.assertIsInstance(col, ee.ImageCollection)

        idict = img.getInfo()
        cdict = col.getInfo()
        self.assertIsInstance(idict, dict)
        self.assertIsInstance(cdict, dict)

        value = tools.get_value(img, self.centroid, 30, 'client')
        print(value)

        self.assertIsInstance(value, dict)
        # self.assertEqual(value["BLUE"], 0.008500000461935997)
        # self.assertEqual(value["col_id"], 12.0)
        # self.assertEqual(value["ndvi"], 0.872759222984314)
Esempio n. 4
0
    def test_bap2016_0(self):
        pmulti = scores.MultiYear(2016, self.temporada)
        objbap = bap.Bap(year=2016,
                         # colgroup=self.coleccion,
                         season=self.temporada,
                         scores=(self.pindice, self.pmascpor, self.psat,
                                 self.pout, self.pop, self.pdoy, pmulti),
                         masks=(self.nubes,),
                         filters=(self.filtro,),
                         )

        # objbap.debug = True
        sitio = self.sitio

        unpix = objbap.bestpixel(sitio, indices=("ndvi",))
        img = unpix.image
        col = unpix.col

        self.assertIsInstance(img, ee.Image)
        self.assertIsInstance(col, ee.ImageCollection)

        idict = img.getInfo()
        cdict = col.getInfo()
        self.assertIsInstance(idict, dict)
        self.assertIsInstance(cdict, dict)

        value = tools.get_value(img, self.centroid, 30, 'client')
        print(value)

        self.assertIsInstance(value, dict)

        visual = img.visualize(bands=['NIR','SWIR','RED'], min=0, max=0.5)
        url = visual.getThumbUrl({'region':tools.getRegion(img)})
        print('Result:', url)
Esempio n. 5
0
    def test_parametrize(self):
        newimg = tools.parametrize((0, 10000), (0, 1), ["B1", "B2"])(self.l8SR)

        vals = tools.get_value(newimg, self.p_l8SR_no_cloud, 30)
        self.assertEqual(vals["B1"], 517.0 / 10000)
        self.assertEqual(vals["B2"], 580.0 / 10000)
        self.assertEqual(vals["B3"], 824)
Esempio n. 6
0
    def test_sumBands(self):
        newimg = tools.sumBands("added_bands", ("B1", "B2", "B3"))(self.l8SR)

        vals = tools.get_value(newimg, self.p_l8SR_no_cloud, 30)
        suma = int(vals["B1"]) + int(vals["B2"]) + int(vals["B3"])

        self.assertEqual(vals["added_bands"], suma)
Esempio n. 7
0
    def test_mask2(self):
        masked_img = self.l8SR.updateMask(self.l8SR.select(["cfmask"]).eq(0))

        mask2zero = tools.mask2zero(masked_img)
        val_no_change = tools.get_value(mask2zero, self.p_l8SR_no_cloud,
                                        30)["B1"]
        val_change = tools.get_value(mask2zero, self.p_l8SR_cloud, 30)["B1"]

        self.assertEqual(val_no_change, 517)
        self.assertEqual(val_change, 0)

        mask2num = tools.mask2number(10)(masked_img)
        val_no_change_num = tools.get_value(mask2num, self.p_l8SR_no_cloud,
                                            30)["B1"]
        val_change_num = tools.get_value(mask2num, self.p_l8SR_cloud, 30)["B1"]

        self.assertEqual(val_no_change_num, 517)
        self.assertEqual(val_change_num, 10)
Esempio n. 8
0
    def test_minmax(self):
        min = 150
        max = 2000

        thres = scores.Threshold(self.band, (min, max))
        newimg = thres.map()(self.img)

        val1 = tools.get_value(img=newimg,
                               point=self.p1,
                               scale=30,
                               side='client')['score-thres']
        val2 = tools.get_value(img=newimg,
                               point=self.p2,
                               scale=30,
                               side='client')['score-thres']
        val3 = tools.get_value(img=newimg,
                               point=self.p3,
                               scale=30,
                               side='client')['score-thres']

        self.assertEqual(val1, 1)
        self.assertEqual(val2, 0)
        self.assertEqual(val3, 0)

        masked = newimg.select(['B5', 'B7',
                                'B4']).updateMask(newimg.select('score-thres'))
        thumb = masked.getThumbUrl({
            'min':
            0,
            'max':
            5000,
            'region':
            self.region.getInfo()['coordinates']
        })
        original = newimg.select(['B5', 'B7', 'B4']).getThumbUrl({
            'min':
            0,
            'max':
            5000,
            'region':
            self.region.getInfo()['coordinates']
        })
        print('Original: {}'.format(original))
        print('See image at: {}'.format(thumb))
Esempio n. 9
0
    def test_default(self):
        # SCORE
        score = scores.MaskPercent(self.band)
        newimg = score.map(self.col, self.pol)(self.image)

        maskpercent_prop = newimg.get(score.name).getInfo()
        maskpercent_pix = tools.get_value(newimg, self.p,
                                          side='client')[score.name]

        self.assertEqual(maskpercent_prop, 0, 5625)
        self.assertEqual(maskpercent_pix, 0, 5625)
Esempio n. 10
0
    def test_rename_bands(self):
        i = tools.rename_bands({"B1": "BLUE", "B2": "GREEN"})(self.l8SR)

        vals = tools.get_value(i, self.p_l8SR_no_cloud, 30)
        bands = i.bandNames().getInfo()

        self.assertEqual(bands, [
            "BLUE", "GREEN", "B3", "B4", "B5", "B6", "B7", "cfmask",
            "cfmask_conf"
        ])
        self.assertEqual(vals["BLUE"], 517)
Esempio n. 11
0
    def test_threshold_satcol(self):
        col = Collection.Landsat8USGS()
        p = ee.Geometry.Point([-70.16521453857422, -43.02372558882024])
        colEE = col.colEE.filterBounds(p).map(col.rename())
        score = Threshold()
        colEE_score = colEE.map(score.map(col))

        p1 = ee.Geometry.Point([-69.38690186070744, -43.06088427532436])
        p0 = ee.Geometry.Point([-69.21112061070744, -43.41704165930161])

        image = ee.Image(colEE_score.first())

        p1_val = tools.get_value(image, p1, 30, 'client')['score-thres']
        p0_val = tools.get_value(image, p0, 30, 'client')['score-thres']

        self.assertEqual(float(p1_val), 1)
        self.assertEqual(float(p0_val), 0)

        # output(image, 'from_satcol', {'bands':['score-thres'], 'min':0, 'max':1})
        export(image.select([score.name]), 'test_scores', 'threshold_satcol',
               30)
Esempio n. 12
0
    def test_break2band(self):
        b2b = self.principe.break2band()

        self.assertEqual(type(b2b), ee.Image)
        if exist_geetools:
            values = tools.get_value(b2b, self.center, scale=30, side='client')
            pp.pprint(values)

        self.output(b2b, 'test_break2band', {
            'bands': ['change_0', 'change_1', 'change_2'],
            'min': 0,
            'max': 1
        })
Esempio n. 13
0
    def test_with_zeros(self):

        col = Collection.Sentinel2()
        score = MaskPercent()
        image = cloud_mask.sentinel2()(cloud_S2)
        bounds = image.geometry().buffer(-50000)
        computed = score.map(col, bounds)(image)

        maskprop = computed.get(score.name).getInfo()
        maskband = tools.get_value(computed,
                                   image.geometry().centroid(), 10,
                                   'client')[score.name]
        print(maskband, maskprop)

        self.assertEqual(maskband, maskprop)
Esempio n. 14
0
scores = (doy, sat, op, out, ind, mascpor, dist)

# BAP OBJECT
bap = bap.Bap(year=2010, range=(0, 0),
              season=a_season,
              # colgroup=col_group,  # if colgroup is None, it'll use season.SeasonPriority
              masks=masks,
              scores=scores,
              filters=filters)

# SITE
site = ee.Geometry.Polygon([[-71,-42],
                            [-71,-43],
                            [-72,-43],
                            [-72,-42]])

# COMPOSITE
composite = bap.bestpixel(site=site,
                          indices=("ndvi",))

# The result (composite) is a namedtuple, so
image = composite.image

# image is a ee.Image object, so you can do anything
# from here..

one_value = tools.get_value(image,
                            site.centroid(),
                            30, 'client')

pp.pprint(one_value)
Esempio n. 15
0
    def test_cloud_mask(self):
        from geetools import cloud_mask
        # LANDSAT 4 TOA
        masked_l4toa = cloud_mask.fmask("fmask")(self.l4toa)
        p_l4toa = ee.Geometry.Point([-72.2736, -44.6062])
        vals_l4toa = tools.get_value(masked_l4toa, p_l4toa, 30)
        self.assertEqual(vals_l4toa["B1"], None)

        # LANDSAT 5 USGS
        p_l5usgs = ee.Geometry.Point([-65.4991, -24.534])
        masked_l5usgs = cloud_mask.fmask("cfmask")(self.l5SR)
        vals_l5usgs = tools.get_value(masked_l5usgs, p_l5usgs, 30)
        self.assertEqual(vals_l5usgs["B1"], None)

        # LANDSAT 5 LEDAPS
        p_l5led = ee.Geometry.Point([-70.3455, -43.8306])
        masked_l5led = cloud_mask.ledaps(self.l5led)
        vals_l5led = tools.get_value(masked_l5led, p_l5led, 30)
        self.assertEqual(vals_l5led["B1"], None)

        # LANDSAT 5 TOA
        masked_l5toa = cloud_mask.fmask("fmask")(self.l5toa)
        p_l5toa = ee.Geometry.Point([-70.9003, -39.7421])
        vals_l5toa = tools.get_value(masked_l5toa, p_l5toa, 30)
        self.assertEqual(vals_l5toa["B1"], None)

        # LANDSAT 7 USGS
        p_l7usgs = ee.Geometry.Point([-64.8533, -26.1052])
        masked_l7usgs = cloud_mask.fmask("cfmask")(self.l7SR)
        vals_l7usgs = tools.get_value(masked_l7usgs, p_l7usgs, 30)
        self.assertEqual(vals_l7usgs["B1"], None)

        # LANDSAT 7 LEDAPS
        p_l7led = ee.Geometry.Point([-64.9141, -25.2264])
        masked_l7led = cloud_mask.ledaps(self.l7led)
        vals_l7led = tools.get_value(masked_l7led, p_l7led, 30)
        self.assertEqual(vals_l7led["B1"], None)

        # LANDSAT 7 TOA
        masked_l7toa = cloud_mask.fmask("fmask")(self.l7toa)
        p_l7toa = ee.Geometry.Point([-64.8495, -25.2354])
        vals_l7toa = tools.get_value(masked_l7toa, p_l7toa, 30)
        self.assertEqual(vals_l7toa["B1"], None)

        # LANDSAT 8 USGS
        p_l8usgs = ee.Geometry.Point([-65.5568, -24.3327])
        masked_l8usgs = cloud_mask.fmask("cfmask")(self.l8SR)
        vals_l8usgs = tools.get_value(masked_l8usgs, p_l8usgs, 30)
        self.assertEqual(vals_l8usgs["B1"], None)

        # LANDSAT 8 TOA
        masked_l8toa = cloud_mask.fmask("fmask")(self.l8toa)
        p_l8toa = ee.Geometry.Point([-71.7833, -43.6634])
        vals_l8toa = tools.get_value(masked_l8toa, p_l8toa, 30)
        self.assertEqual(vals_l8toa["B1"], None)

        # LANDSAT SENTINEL 2
        masked_s2 = cloud_mask.sentinel2(self.sentinel2)
        p_s2 = ee.Geometry.Point([-72.2104, -42.7592])
        vals_s2 = tools.get_value(masked_s2, p_s2, 10)
        self.assertEqual(vals_s2["B1"], None)

        # LANDSAT MODIS AQ
        masked_ma = cloud_mask.modis(self.modis_aqua)
        p_ma = ee.Geometry.Point([-69.071, -43.755])
        vals_ma = tools.get_value(masked_ma, p_ma, 500)
        self.assertEqual(vals_ma["sur_refl_b01"], None)

        # LANDSAT MODIS TE
        masked_te = cloud_mask.modis(self.modis_terra)
        p_te = ee.Geometry.Point([-71.993, -43.692])
        vals_te = tools.get_value(masked_te, p_te, 500)
        self.assertEqual(vals_te["sur_refl_b01"], None)
Esempio n. 16
0
 def test_replace(self):
     testband = ee.Image.constant(10).select([0], ["anyname"])
     newimg = tools.replace(self.l8SR, "B1", testband)
     vals = tools.get_value(newimg, self.p_l8SR_no_cloud, 30)
     self.assertEqual(vals["B1"], 10)