@@ -1200,7 +1200,10 @@ def test_band_from_common_bands_metadata(self):
12001200 },
12011201 "links" : [],
12021202 },
1203- ["B04" , "B03" ],
1203+ [
1204+ Band ("B04" , common_name = "red" , wavelength_um = 0.665 ),
1205+ Band ("B03" , common_name = "green" , wavelength_um = 0.560 ),
1206+ ],
12041207 ),
12051208 (
12061209 {
@@ -1216,17 +1219,44 @@ def test_band_from_common_bands_metadata(self):
12161219 },
12171220 "links" : [],
12181221 },
1219- ["B04" , "B03" ],
1222+ [Band ("B04" ), Band ("B03" )],
1223+ ),
1224+ (
1225+ {
1226+ "type" : "Catalog" ,
1227+ "id" : "catalog123" ,
1228+ "description" : "Catalog 123" ,
1229+ "stac_version" : "1.1.0" ,
1230+ "summaries" : {
1231+ "bands" : [
1232+ {"name" : "B04" , "eo:common_name" : "red" , "eo:center_wavelength" : 0.665 },
1233+ {"name" : "B03" , "eo:common_name" : "green" , "eo:center_wavelength" : 0.560 },
1234+ ],
1235+ },
1236+ "links" : [],
1237+ },
1238+ [
1239+ Band ("B04" , common_name = "red" , wavelength_um = 0.665 ),
1240+ Band ("B03" , common_name = "green" , wavelength_um = 0.560 ),
1241+ ],
12201242 ),
12211243 ],
12221244 )
1223- def test_bands_from_stac_catatlog (self , data , expected ):
1245+ def test_bands_from_stac_catalog (self , data , expected ):
12241246 catalog = pystac .Catalog .from_dict (data )
1225- assert _StacMetadataParser ().bands_from_stac_catalog (catalog = catalog ). band_names () == expected
1247+ assert _StacMetadataParser ().bands_from_stac_catalog (catalog = catalog ) == expected
12261248
12271249 @pytest .mark .parametrize (
12281250 ["data" , "expected" ],
12291251 [
1252+ (
1253+ StacDummyBuilder .collection (
1254+ stac_version = "1.0.0" ,
1255+ stac_extensions = ["https://stac-extensions.github.io/eo/v1.1.0/schema.json" ],
1256+ summaries = {"eo:bands" : [{"name" : "B02" }, {"name" : "B03" }, {"name" : "B04" }]},
1257+ ),
1258+ [Band ("B02" ), Band ("B03" ), Band ("B04" )],
1259+ ),
12301260 (
12311261 StacDummyBuilder .collection (
12321262 stac_version = "1.0.0" ,
@@ -1238,25 +1268,39 @@ def test_bands_from_stac_catatlog(self, data, expected):
12381268 ],
12391269 },
12401270 ),
1241- ["B04" , "B03" ],
1271+ [
1272+ Band ("B04" , common_name = "red" , wavelength_um = 0.665 ),
1273+ Band ("B03" , common_name = "green" , wavelength_um = 0.560 ),
1274+ ],
1275+ ),
1276+ (
1277+ StacDummyBuilder .collection (
1278+ stac_version = "1.1.0" ,
1279+ summaries = {"bands" : [{"name" : "B02" }, {"name" : "B03" }, {"name" : "B04" }]},
1280+ ),
1281+ [Band ("B02" ), Band ("B03" ), Band ("B04" )],
12421282 ),
12431283 (
12441284 StacDummyBuilder .collection (
12451285 stac_version = "1.1.0" ,
1286+ stac_extensions = ["https://stac-extensions.github.io/eo/v1.1.0/schema.json" ],
12461287 summaries = {
12471288 "bands" : [
1248- {"name" : "B04" },
1249- {"name" : "B03" },
1289+ {"name" : "B04" , "eo:common_name" : "red" , "eo:center_wavelength" : 0.665 },
1290+ {"name" : "B03" , "eo:common_name" : "green" , "eo:center_wavelength" : 0.560 },
12501291 ],
12511292 },
12521293 ),
1253- ["B04" , "B03" ],
1294+ [
1295+ Band ("B04" , common_name = "red" , wavelength_um = 0.665 ),
1296+ Band ("B03" , common_name = "green" , wavelength_um = 0.560 ),
1297+ ],
12541298 ),
12551299 ],
12561300 )
12571301 def test_bands_from_stac_collection (self , data , expected ):
12581302 collection = pystac .Collection .from_dict (data )
1259- assert _StacMetadataParser ().bands_from_stac_collection (collection = collection ). band_names () == expected
1303+ assert _StacMetadataParser ().bands_from_stac_collection (collection = collection ) == expected
12601304
12611305 @pytest .mark .parametrize (
12621306 ["data" , "expected" ],
@@ -1266,28 +1310,114 @@ def test_bands_from_stac_collection(self, data, expected):
12661310 stac_version = "1.0.0" ,
12671311 stac_extensions = ["https://stac-extensions.github.io/eo/v1.1.0/schema.json" ],
12681312 properties = {
1269- "datetime" : "2023-10-01T00:00:00Z" ,
12701313 "eo:bands" : [{"name" : "B04" }, {"name" : "B03" }],
12711314 },
12721315 ),
1273- ["B04" , "B03" ],
1316+ [Band ("B04" ), Band ("B03" )],
1317+ ),
1318+ (
1319+ StacDummyBuilder .item (
1320+ stac_version = "1.0.0" ,
1321+ stac_extensions = ["https://stac-extensions.github.io/eo/v1.1.0/schema.json" ],
1322+ properties = {
1323+ "eo:bands" : [
1324+ {"name" : "B04" , "common_name" : "red" , "center_wavelength" : 0.665 },
1325+ {"name" : "B03" , "common_name" : "green" , "center_wavelength" : 0.560 },
1326+ ],
1327+ },
1328+ ),
1329+ [
1330+ Band ("B04" , common_name = "red" , wavelength_um = 0.665 ),
1331+ Band ("B03" , common_name = "green" , wavelength_um = 0.560 ),
1332+ ],
12741333 ),
12751334 (
12761335 StacDummyBuilder .item (
12771336 stac_version = "1.1.0" ,
12781337 properties = {
1279- "datetime" : "2023-10-01T00:00:00Z" ,
12801338 "bands" : [{"name" : "B04" }, {"name" : "B03" }],
12811339 },
12821340 ),
1283- ["B04" , "B03" ],
1341+ [Band ("B04" ), Band ("B03" )],
1342+ ),
1343+ (
1344+ StacDummyBuilder .item (
1345+ stac_version = "1.1.0" ,
1346+ properties = {
1347+ "bands" : [
1348+ {"name" : "B04" , "eo:common_name" : "red" , "eo:center_wavelength" : 0.665 },
1349+ {"name" : "B03" , "eo:common_name" : "green" , "eo:center_wavelength" : 0.560 },
1350+ ],
1351+ },
1352+ ),
1353+ [
1354+ Band ("B04" , common_name = "red" , wavelength_um = 0.665 ),
1355+ Band ("B03" , common_name = "green" , wavelength_um = 0.560 ),
1356+ ],
12841357 ),
12851358 ],
12861359 )
12871360 def test_bands_from_stac_item (self , data , expected ):
1361+ item = pystac .Item .from_dict (data )
1362+ assert _StacMetadataParser ().bands_from_stac_item (item = item ) == expected
1363+
1364+ @pytest .mark .parametrize (
1365+ ["data" , "expected" ],
1366+ [
1367+ (
1368+ StacDummyBuilder .item (
1369+ stac_version = "1.0.0" ,
1370+ stac_extensions = ["https://stac-extensions.github.io/eo/v1.1.0/schema.json" ],
1371+ properties = {
1372+ "eo:bands" : [{"name" : "B04" }, {"name" : "B03" }, {"name" : "B02" }],
1373+ },
1374+ ),
1375+ ["B04" , "B03" , "B02" ],
1376+ ),
1377+ (
1378+ StacDummyBuilder .item (
1379+ stac_version = "1.1.0" ,
1380+ properties = {
1381+ "bands" : [{"name" : "B04" }, {"name" : "B03" }],
1382+ },
1383+ ),
1384+ ["B04" , "B03" ],
1385+ ),
1386+ ],
1387+ )
1388+ def test_bands_from_stac_item_band_names (self , data , expected ):
12881389 item = pystac .Item .from_dict (data )
12891390 assert _StacMetadataParser ().bands_from_stac_item (item = item ).band_names () == expected
12901391
1392+ @pytest .mark .parametrize (
1393+ ["data" , "expected" ],
1394+ [
1395+ (
1396+ StacDummyBuilder .collection (
1397+ stac_version = "1.0.0" ,
1398+ stac_extensions = ["https://stac-extensions.github.io/eo/v1.1.0/schema.json" ],
1399+ summaries = {"eo:bands" : [{"name" : "B02" }, {"name" : "B03" }, {"name" : "B04" }]},
1400+ ),
1401+ [Band ("B02" ), Band ("B03" ), Band ("B04" )],
1402+ ),
1403+ (
1404+ StacDummyBuilder .collection (
1405+ stac_version = "1.1.0" ,
1406+ summaries = {"bands" : [{"name" : "B02" }, {"name" : "B03" }, {"name" : "B04" }]},
1407+ ),
1408+ [Band ("B02" ), Band ("B03" ), Band ("B04" )],
1409+ ),
1410+ ],
1411+ )
1412+ def test_bands_from_stac_item_parent_collection (self , data , expected ):
1413+ collection = pystac .Collection .from_dict (data )
1414+ item = pystac .Item .from_dict (StacDummyBuilder .item (collection = collection ))
1415+ assert _StacMetadataParser ().bands_from_stac_item (item = item ) == expected
1416+
1417+ def test_bands_from_stac_item_no_bands (self ):
1418+ item = pystac .Item .from_dict (StacDummyBuilder .item ())
1419+ assert _StacMetadataParser ().bands_from_stac_item (item = item ) == []
1420+
12911421 @pytest .mark .parametrize (
12921422 ["data" , "expected" ],
12931423 [
0 commit comments