def test_metadata_valid_custom(monkeypatch): """Get bounds and get stats for all bands with custom percentiles.""" monkeypatch.setattr(sentinel2, "SENTINEL_BUCKET", SENTINEL_BUCKET) meta = sentinel2.metadata(SENTINEL_SCENE, pmin=5, pmax=95) assert meta["sceneid"] == SENTINEL_SCENE assert len(meta["bounds"]["value"]) == 4 assert len(meta["statistics"].items()) == 13 assert meta["statistics"]["01"]["pc"] == [1110, 7236] meta = sentinel2.metadata(SENTINEL_SCENE, pmin=5, pmax=95, histogram_bins=20) assert meta["sceneid"] == SENTINEL_SCENE assert len(meta["bounds"]["value"]) == 4 assert len(meta["statistics"].items()) == 13 assert meta["statistics"]["01"]["pc"] == [1110, 7236] assert len(meta["statistics"]["01"]["histogram"][0]) == 20 meta = sentinel2.metadata(SENTINEL_SCENE, histogram_bins=None, histogram_range=[1000, 4000]) assert meta["sceneid"] == SENTINEL_SCENE assert len(meta["statistics"]["01"]["histogram"][0]) == 10
def test_metadata_valid_custom(rio): """Get bounds and get stats for all bands with custom percentiles.""" rio.open = mock_rasterio_open meta = sentinel2.metadata(SENTINEL_SCENE, pmin=5, pmax=95) assert meta["sceneid"] == SENTINEL_SCENE assert len(meta["bounds"]["value"]) == 4 assert len(meta["statistics"].items()) == 13 assert meta["statistics"]["01"]["pc"] == [1110, 7236] meta = sentinel2.metadata(SENTINEL_SCENE, pmin=5, pmax=95, histogram_bins=20) assert meta["sceneid"] == SENTINEL_SCENE assert len(meta["bounds"]["value"]) == 4 assert len(meta["statistics"].items()) == 13 assert meta["statistics"]["01"]["pc"] == [1110, 7236] assert len(meta["statistics"]["01"]["histogram"][0]) == 20 meta = sentinel2.metadata(SENTINEL_SCENE, histogram_bins=None, histogram_range=[1000, 4000]) assert meta["sceneid"] == SENTINEL_SCENE assert len(meta["statistics"]["01"]["histogram"][0]) == 10
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 = sentinel2.metadata(scene, pmin, pmax) return ("OK", "application/json", json.dumps(info))
def test_metadata_valid_default(monkeypatch): """Get bounds and get stats for all bands.""" monkeypatch.setattr(sentinel2, "SENTINEL_BUCKET", SENTINEL_BUCKET) meta = sentinel2.metadata(SENTINEL_SCENE) assert meta["sceneid"] == SENTINEL_SCENE assert len(meta["bounds"]["value"]) == 4 assert len(meta["statistics"].items()) == 13 assert meta["statistics"]["01"]["pc"] == [1088, 8235]
def test_metadata_valid_default(rio): """Get bounds and get stats for all bands.""" rio.open = mock_rasterio_open meta = sentinel2.metadata(SENTINEL_SCENE) assert meta["sceneid"] == SENTINEL_SCENE assert len(meta["bounds"]["value"]) == 4 assert len(meta["statistics"].items()) == 13 assert meta["statistics"]["01"]["pc"] == [1088, 8235]
def test_metadata_valid_custom(monkeypatch): """ Should work as expected (get bounds and get histogram cuts values for all bands) """ monkeypatch.setattr(sentinel2, 'SENTINEL_BUCKET', SENTINEL_BUCKET) meta = sentinel2.metadata(SENTINEL_SCENE, pmin=5, pmax=95) assert meta.get('sceneid') == 'S2A_tile_20170729_19UDP_0' assert len(meta.get('bounds')) == 4 assert meta.get('rgbMinMax')
def metadata(scene): """Handle metadata requests.""" 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 = sentinel2.metadata(scene, pmin, pmax) return ("OK", "application/json", json.dumps(info))
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 = sentinel2.metadata(scene, pmin, pmax) return ("OK", "application/json", json.dumps(info))