Exemplo n.º 1
0
    def test_geometry(self):
        bbox = BBox([46.07, 13.23, 46.24, 13.57], CRS.WGS84)

        self.assertTrue(isinstance(bbox.get_geojson(), dict),
                        "Expected dictionary, got type {}".format(type(bbox.geometry)))
        self.assertTrue(isinstance(bbox.get_geometry(), shapely.geometry.Polygon),
                        "Expected type {}, got type {}".format(shapely.geometry.Polygon,
                                                               type(bbox.get_geometry())))
def get_area_id(bbox, crs=CRS.WGS84):
    today = datetime.today()
    monthago = today - timedelta(days=7)
    time_interval = (monthago.strftime("%Y-%m-%dT%H:%M:%S"),
                     today.strftime("%Y-%m-%dT%H:%M:%S"))

    search_bbox = BBox(bbox=bbox, crs=crs)
    wfs_iterator = WebFeatureService(search_bbox,
                                     time_interval,
                                     instance_id=config.get(
                                         'config', 'sentinel_id'))
    aoi = search_bbox.get_geometry()
    instances = list(wfs_iterator)

    tiles = {}
    for i, tile_info in enumerate(wfs_iterator.get_tiles()):
        poly = shape(instances[i]['geometry'])
        tiles[tile_info[0]] = round(
            poly.intersection(aoi).area / poly.union(aoi).area * 100, 3)

    return sorted(tiles.items(), key=lambda x: -x[1])