示例#1
0
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
示例#2
0
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
示例#3
0
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))
示例#4
0
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]
示例#5
0
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]
示例#6
0
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')
示例#7
0
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))
示例#8
0
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))