Beispiel #1
0
def test_get_keys_from_cbers4():
    """test_get_keys_from_cbers"""

    # MUX
    meta = get_keys_from_cbers("test/fixtures/CBERS_4_MUX_20170528_090_084_"
                               "L2_BAND6.xml")
    assert meta["mission"] == "CBERS"
    assert meta["number"] == "4"
    assert meta["sensor"] == "MUX"
    assert meta["projection_name"] == "UTM"
    assert meta["origin_longitude"] == "27"
    assert meta["origin_latitude"] == "0"
    assert meta["ct_lat"] == "14.423188"
    assert meta["ct_lon"] == "24.257145"
    assert meta["collection"] == "CBERS4-MUX"
    assert meta["vz"] == "-7131.111624"

    # AWFI
    meta = get_keys_from_cbers("test/fixtures/CBERS_4_AWFI_20170409_167_123"
                               "_L4_BAND14.xml")
    assert meta["sensor"] == "AWFI"
    assert meta["mission"] == "CBERS"
    assert meta["number"] == "4"
    assert meta["projection_name"] == "UTM"
    assert meta["origin_longitude"] == "-57"
    assert meta["origin_latitude"] == "0"
    assert meta["collection"] == "CBERS4-AWFI"

    # PAN10
    meta = get_keys_from_cbers("test/fixtures/CBERS_4_PAN10M_20190201_180_"
                               "125_L2_BAND2.xml")
    assert meta["sensor"] == "PAN10M"
    assert meta["mission"] == "CBERS"
    assert meta["number"] == "4"
    assert meta["projection_name"] == "UTM"
    assert meta["origin_longitude"] == "-69"
    assert meta["origin_latitude"] == "0"
    assert meta["collection"] == "CBERS4-PAN10M"

    # PAN5
    meta = get_keys_from_cbers("test/fixtures/CBERS_4_PAN5M_20161009_219_050_"
                               "L2_BAND1.xml")
    assert meta["sensor"] == "PAN5M"
    assert meta["mission"] == "CBERS"
    assert meta["number"] == "4"
    assert meta["projection_name"] == "UTM"
    assert meta["origin_longitude"] == "-93"
    assert meta["origin_latitude"] == "0"
    assert meta["collection"] == "CBERS4-PAN5M"

    # PAN10, no gain attribute for each band
    meta = get_keys_from_cbers("test/fixtures/CBERS_4_PAN10M_NOGAIN.xml")
    assert meta["sensor"] == "PAN10M"
    assert meta["mission"] == "CBERS"
    assert meta["number"] == "4"
    assert meta["projection_name"] == "UTM"
Beispiel #2
0
def test_build_pan10_stac_item_keys():
    """test_pan10_build_stac_item_keys"""

    meta = get_keys_from_cbers("test/fixtures/CBERS_4_PAN10M_20190201_180_125_"
                               "L2_BAND2.xml")
    buckets = {
        "metadata": "cbers-meta-pds",
        "cog": "cbers-pds",
        "stac": "cbers-stac"
    }
    smeta = build_stac_item_keys(meta, buckets)

    # id
    assert smeta["id"] == "CBERS_4_PAN10M_20190201_180_125_L2"

    # bbox
    assert len(smeta["bbox"]) == 4
    assert smeta["bbox"][1] == -22.882858
    assert smeta["bbox"][0] == -71.601800
    assert smeta["bbox"][3] == -21.746077
    assert smeta["bbox"][2] == -70.762020

    # skipping geometry values, same as other cameras
    assert len(smeta["geometry"]["coordinates"][0][0]) == 5

    # properties
    assert smeta["properties"]["datetime"] == "2019-02-01T14:36:38Z"

    # properties:view
    assert smeta["properties"]["view:sun_azimuth"] == 87.5261
    assert smeta["properties"]["view:sun_elevation"] == 57.0749
    assert smeta["properties"]["view:off_nadir"] == 0.0073997

    # properties:proj
    assert smeta["properties"]["proj:epsg"] == 32719

    # properties:cbers
    assert smeta["properties"]["cbers:data_type"] == "L2"
    assert smeta["properties"]["cbers:path"] == 180
    assert smeta["properties"]["cbers:row"] == 125

    # links
    for link in smeta["links"]:
        if link["rel"] == "self":
            assert (link["href"] == "https://cbers-stac.s3.amazonaws.com/"
                    "CBERS4/PAN10M/180/125/CBERS_4_PAN10M_"
                    "20190201_180_125_L2.json")
        elif link["rel"] == "parent":
            assert (link["href"] == "https://cbers-stac.s3.amazonaws.com/"
                    "CBERS4/PAN10M/180/125/catalog.json")
        elif link["rel"] == "collection":
            assert (link["href"] == "https://cbers-stac.s3.amazonaws.com/"
                    "CBERS4/PAN10M/collection.json")
        else:
            pytest.fail("Unrecognized rel %s" % link["rel"])

    # assets
    # 3 bands, 1 metadata, 1 thumbnail
    assert len(smeta["assets"]) == 5
Beispiel #3
0
def test_get_keys_from_cbers4a():
    """test_get_keys_from_cbers4a"""

    # MUX
    meta = get_keys_from_cbers("test/fixtures/CBERS_4A_MUX_20200808_201_137_"
                               "L4_BAND6.xml")
    assert meta["mission"] == "CBERS"
    assert meta["number"] == "4A"
    assert meta["sensor"] == "MUX"
    assert meta["projection_name"] == "UTM"
    assert meta["origin_longitude"] == "-45"
    assert meta["origin_latitude"] == "0"
    assert meta["collection"] == "CBERS4A-MUX"
    assert meta["vz"] == "-7079.380000"

    # WPM
    meta = get_keys_from_cbers("test/fixtures/CBERS_4A_WPM_20200730_209_139_"
                               "L4_BAND2.xml")
    assert meta["sensor"] == "WPM"
    assert meta["mission"] == "CBERS"
    assert meta["number"] == "4A"
    assert meta["projection_name"] == "UTM"
    assert meta["origin_longitude"] == "-51"
    assert meta["origin_latitude"] == "0"
    assert meta["collection"] == "CBERS4A-WPM"

    # WFI
    meta = get_keys_from_cbers("test/fixtures/CBERS_4A_WFI_20200801_221_156_"
                               "L4_BAND13.xml")
    assert meta["sensor"] == "WFI"
    assert meta["mission"] == "CBERS"
    assert meta["number"] == "4A"
    assert meta["projection_name"] == "UTM"
    assert meta["origin_longitude"] == "-63"
    assert meta["origin_latitude"] == "0"
    assert meta["collection"] == "CBERS4A-WFI"
    assert meta["ur_lat"] == "-31.394870"
    assert meta["ur_lon"] == "-59.238522"
    assert meta["lr_lat"] == "-38.025663"
    assert meta["lr_lon"] == "-60.669294"
    assert meta["ct_lat"] == "-33.625192"
    assert meta["ct_lon"] == "-62.969105"
    assert meta["bb_ll_lat"] == "-38.033425"
    assert meta["bb_ll_lon"] == "-68.887467"
    assert meta["bb_ur_lat"] == "-29.919749"
    assert meta["bb_ur_lon"] == "-59.245969"
Beispiel #4
0
def test_build_pan5_stac_item_keys():
    """test_pan5_build_stac_item_keys"""

    meta = get_keys_from_cbers("test/fixtures/CBERS_4_PAN5M_20161009_219_050_"
                               "L2_BAND1.xml")
    buckets = {
        "metadata": "cbers-meta-pds",
        "cog": "cbers-pds",
        "stac": "cbers-stac"
    }
    smeta = build_stac_item_keys(meta, buckets)

    # id
    assert smeta["id"] == "CBERS_4_PAN5M_20161009_219_050_L2"

    # bbox
    # skipping check for valus == same as other cameras
    assert len(smeta["bbox"]) == 4

    # skipping geometry values, same as other cameras
    assert len(smeta["geometry"]["coordinates"][0][0]) == 5

    # properties
    assert smeta["properties"]["datetime"] == "2016-10-09T17:14:38Z"

    # properties:view
    assert smeta["properties"]["view:sun_azimuth"] == 167.751
    assert smeta["properties"]["view:sun_elevation"] == 38.3015
    assert smeta["properties"]["view:off_nadir"] == 0.0050659

    # properties:proj
    assert smeta["properties"]["proj:epsg"] == 32615

    # properties:cbers
    assert smeta["properties"]["cbers:data_type"] == "L2"
    assert smeta["properties"]["cbers:path"] == 219
    assert smeta["properties"]["cbers:row"] == 50

    # links
    for link in smeta["links"]:
        if link["rel"] == "self":
            assert (link["href"] == "https://cbers-stac.s3.amazonaws.com/"
                    "CBERS4/PAN5M/219/050/CBERS_4_PAN5M_"
                    "20161009_219_050_L2.json")
        elif link["rel"] == "parent":
            assert (link["href"] == "https://cbers-stac.s3.amazonaws.com/"
                    "CBERS4/PAN5M/219/050/catalog.json")
        elif link["rel"] == "collection":
            assert (link["href"] == "https://cbers-stac.s3.amazonaws.com/"
                    "CBERS4/PAN5M/collection.json")
        else:
            pytest.fail("Unrecognized rel %s" % link["rel"])

    # assets
    # 1 band, 1 metadata, 1 thumbnail
    assert len(smeta["assets"]) == 3
Beispiel #5
0
def test_build_awfi_stac_item_keys():
    """test_awfi_build_stac_item_keys"""

    meta = get_keys_from_cbers("test/fixtures/CBERS_4_AWFI_20170409_167_123_"
                               "L4_BAND14.xml")
    buckets = {
        "metadata": "cbers-meta-pds",
        "cog": "cbers-pds",
        "stac": "cbers-stac"
    }
    smeta = build_stac_item_keys(meta, buckets)

    # id
    assert smeta["id"] == "CBERS_4_AWFI_20170409_167_123_L4"

    # bbox
    assert len(smeta["bbox"]) == 4
    assert smeta["bbox"][1] == -24.425554
    assert smeta["bbox"][0] == -63.157102
    assert smeta["bbox"][3] == -16.364230
    assert smeta["bbox"][2] == -53.027684

    # geometry
    assert len(smeta["geometry"]["coordinates"][0][0]) == 5
    assert smeta["geometry"]["coordinates"][0][0][0][1] == -23.152887
    assert smeta["geometry"]["coordinates"][0][0][0][0] == -63.086835
    assert smeta["geometry"]["coordinates"][0][0][4][1] == -23.152887
    assert smeta["geometry"]["coordinates"][0][0][4][0] == -63.086835

    # properties
    assert smeta["properties"]["datetime"] == "2017-04-09T14:09:23Z"
    assert smeta["properties"]["gsd"] == 64.0

    # properties:view
    assert smeta["properties"]["view:sun_azimuth"] == 43.9164
    assert smeta["properties"]["view:sun_elevation"] == 53.4479
    assert smeta["properties"]["view:off_nadir"] == 0.00828942

    # properties:proj
    assert smeta["properties"]["proj:epsg"] == 32721

    # properties:cbers
    assert smeta["properties"]["cbers:data_type"] == "L4"
    assert smeta["properties"]["cbers:path"] == 167
    assert smeta["properties"]["cbers:row"] == 123
Beispiel #6
0
def test_build_wfi_stac_item_keys():
    """test_wfi_build_stac_item_keys"""

    meta = get_keys_from_cbers("test/fixtures/CBERS_4A_WFI_20200801_221_156_"
                               "L4_BAND13.xml")
    buckets = {
        "metadata": "cbers-meta-pds",
        "cog": "cbers-pds",
        "stac": "cbers-stac"
    }
    smeta = build_stac_item_keys(meta, buckets)

    # id
    assert smeta["id"] == "CBERS_4A_WFI_20200801_221_156_L4"

    # bbox
    assert len(smeta["bbox"]) == 4
    assert smeta["bbox"][1] == -38.033425
    assert smeta["bbox"][0] == -68.887467
    assert smeta["bbox"][3] == -29.919749
    assert smeta["bbox"][2] == -59.245969

    # geometry is built like other cameras, correct computation
    # is checked in test_get_keys_from_cbers4a

    # properties
    assert smeta["properties"]["datetime"] == "2020-08-01T14:32:45Z"

    # properties:view
    assert smeta["properties"]["view:sun_elevation"] == 32.8436
    assert smeta["properties"]["view:sun_azimuth"] == 29.477449999999997
    assert smeta["properties"]["view:off_nadir"] == 0.000431506

    # properties:proj
    assert smeta["properties"]["proj:epsg"] == 32720

    # properties:cbers
    assert smeta["properties"]["cbers:data_type"] == "L4"
    assert smeta["properties"]["cbers:path"] == 221
    assert smeta["properties"]["cbers:row"] == 156
Beispiel #7
0
def test_build_mux_stac_item_keys():
    """test_mux_build_stac_item_keys"""

    meta = get_keys_from_cbers("test/fixtures/CBERS_4_MUX_20170528_090_084_L2_"
                               "BAND6.xml")
    buckets = {
        "metadata": "cbers-meta-pds",
        "cog": "cbers-pds",
        "stac": "cbers-stac"
    }
    smeta = build_stac_item_keys(meta, buckets)

    # id
    assert smeta["id"] == "CBERS_4_MUX_20170528_090_084_L2"

    # bbox
    assert len(smeta["bbox"]) == 4
    assert smeta["bbox"][1] == 13.700498
    assert smeta["bbox"][0] == 23.465111
    assert smeta["bbox"][3] == 14.988180
    assert smeta["bbox"][2] == 24.812825

    # geometry
    assert len(smeta["geometry"]["coordinates"][0][0]) == 5
    assert smeta["geometry"]["coordinates"][0][0][0][1] == 13.891487
    assert smeta["geometry"]["coordinates"][0][0][0][0] == 23.463987
    assert smeta["geometry"]["coordinates"][0][0][4][1] == 13.891487
    assert smeta["geometry"]["coordinates"][0][0][4][0] == 23.463987

    # properties
    assert smeta["properties"]["datetime"] == "2017-05-28T09:01:17Z"

    # properties:view
    assert smeta["properties"]["view:sun_azimuth"] == 66.2923
    assert smeta["properties"]["view:sun_elevation"] == 70.3079
    assert smeta["properties"]["view:off_nadir"] == 0.00744884

    # properties:proj
    assert smeta["properties"]["proj:epsg"] == 32635

    # properties:cbers
    assert smeta["properties"]["cbers:data_type"] == "L2"
    assert smeta["properties"]["cbers:path"] == 90
    assert smeta["properties"]["cbers:row"] == 84

    # links
    for link in smeta["links"]:
        if link["rel"] == "self":
            assert (
                link["href"] == "https://cbers-stac.s3.amazonaws.com/CBERS4/"
                "MUX/"
                "090/084/CBERS_4_MUX_20170528_090_084_L2.json")
        elif link["rel"] == "parent":
            assert (link["href"] == "https://cbers-stac.s3.amazonaws.com/"
                    "CBERS4/MUX/090/084/catalog.json")
        elif link["rel"] == "collection":
            assert (link["href"] == "https://cbers-stac.s3.amazonaws.com/"
                    "CBERS4/MUX/collection.json")
        else:
            pytest.fail("Unrecognized rel %s" % link["rel"])

    # assets
    # 4 bands, 1 metadata, 1 thumbnail
    assert len(smeta["assets"]) == 6