def metadata(scene: str, pmin: Union[str, float] = 2., pmax: Union[str, float] = 98.) -> Tuple[str, str, str]: """Handle metadata requests.""" pmin = float(pmin) if isinstance(pmin, str) else pmin pmax = float(pmax) if isinstance(pmax, str) else pmax info = landsat8.metadata(scene, pmin, pmax) return ("OK", "application/json", json.dumps(info))
def test_metadata_valid_custom(landsat_get_mtl, monkeypatch): """Get bounds and get stats for all bands with custom percentiles.""" monkeypatch.setattr(landsat8, "LANDSAT_BUCKET", LANDSAT_BUCKET) landsat_get_mtl.return_value = LANDSAT_METADATA meta = landsat8.metadata(LANDSAT_SCENE_C1, pmin=10, pmax=90) assert meta["sceneid"] == LANDSAT_SCENE_C1 assert len(meta["bounds"]["value"]) == 4 assert len(meta["statistics"].items()) == 11 assert list(map(int, meta["statistics"]["1"]["pc"])) == [1275, 3918]
def test_metadata_valid_default(landsat_get_mtl, monkeypatch): """Get bounds and get stats for all bands.""" monkeypatch.setattr(landsat8, "LANDSAT_BUCKET", LANDSAT_BUCKET) landsat_get_mtl.return_value = LANDSAT_METADATA meta = landsat8.metadata(LANDSAT_SCENE_C1) assert meta["sceneid"] == LANDSAT_SCENE_C1 assert len(meta["bounds"]["value"]) == 4 assert len(meta["statistics"].items()) == 11 assert list(map(int, meta["statistics"]["1"]["pc"])) == [1210, 7046]
def metadata(scene): query_args = APP.current_request.query_params query_args = query_args if isinstance(query_args, dict) else {} pmin = query_args.get('pmin', 2) pmin = float(pmin) if isinstance(pmin, str) else pmin pmax = query_args.get('pmax', 98) pmax = float(pmax) if isinstance(pmax, str) else pmax info = landsat8.metadata(scene, pmin, pmax) return ('OK', 'application/json', json.dumps(info))
def test_metadata_valid_custom(landsat_get_mtl, monkeypatch): """ Should work as expected (get metadata and get histogram cuts values for all bands) """ monkeypatch.setattr(landsat8, 'LANDSAT_BUCKET', LANDSAT_BUCKET) landsat_get_mtl.return_value = LANDSAT_METADATA meta = landsat8.metadata(LANDSAT_SCENE_C1) assert meta.get('sceneid') == 'LC08_L1TP_016037_20170813_20170814_01_RT' assert len(meta.get('bounds')) == 4 assert meta.get('rgbMinMax')
def metadata(scene, pmin=2, pmax=98): """Handle metadata requests.""" pmin = float(pmin) if isinstance(pmin, str) else pmin pmax = float(pmax) if isinstance(pmax, str) else pmax info = landsat8.metadata(scene, pmin, pmax) return ("OK", "application/json", json.dumps(info))