docs: def _explode_raster(raster, band_names=[]):
      # type: (_Raster, Iterable[str]) -> List[_Raster]
      """Splits a raster into multiband rasters.
  
      """
      # Using band_names=[] does no harm because we are not mutating it in place
      # and it makes MyPy happy
      if not band_names:
          band_names = raster.band_names
      else:
          band_names = list(IndexedSet(raster.band_names).intersection(band_names))
  
      return [_Raster(image=raster.bands_data([band_name]), band_names=[band_name]) for band_name in band_names]