@@ -660,7 +660,6 @@ def parse_item(
660
660
band2grid = template .band2grid
661
661
has_proj = False if template .has_proj is False else has_proj_ext (item )
662
662
_assets = item .assets
663
- _acc_names = list (_assets .keys ())
664
663
665
664
_grids : Dict [str , GeoBox ] = {}
666
665
bands : Dict [BandKey , RasterSource ] = {}
@@ -677,14 +676,13 @@ def _get_grid(grid_name: str, asset: pystac.asset.Asset) -> GeoBox:
677
676
_grids [grid_name ] = grid
678
677
return grid
679
678
679
+ band_names = []
680
680
for bk , meta in template .meta .bands .items ():
681
681
asset_name , band_idx = bk
682
682
asset = _assets .get (asset_name )
683
683
if asset is None :
684
684
continue
685
- # the assets that aren't bands should be accessories
686
- if asset_name in _acc_names :
687
- _acc_names .remove (asset_name )
685
+ band_names .append (asset_name )
688
686
689
687
grid_name = band2grid .get (asset_name , "default" )
690
688
geobox : Optional [GeoBox ] = _get_grid (grid_name , asset ) if has_proj else None
@@ -715,7 +713,9 @@ def _get_grid(grid_name: str, asset: pystac.asset.Asset) -> GeoBox:
715
713
driver_data = driver_data ,
716
714
)
717
715
718
- accessories = {name : {"path" : _assets [name ].href } for name in _acc_names }
716
+ # the assets that aren't bands are accessories
717
+ acc_names = set (_assets .keys ()).difference (set (band_names ))
718
+ accessories = {name : {"path" : _assets [name ].href } for name in acc_names }
719
719
720
720
md = item .common_metadata
721
721
return ParsedItem (
0 commit comments