code: def download(self, scenes, bands=None):
          
  
          if isinstance(scenes, list):
              files = []
  
              for scene in scenes:
  
                  # for all scenes if bands provided, first check AWS, if the bands exist
                  # download them, otherwise use Google and then USGS.
                  try:
                      # if bands are not provided, directly go to Goodle and then USGS
                      if not isinstance(bands, list):
                          raise RemoteFileDoesntExist
                      files.append(self.amazon_s3(scene, bands))
  
                  except RemoteFileDoesntExist:
                      try:
                          files.append(self.google_storage(scene, self.download_dir))
                      except RemoteFileDoesntExist:
                          files.append(self.usgs_eros(scene, self.download_dir))
  
              return files
  
          else:
              raise Exception('Expected sceneIDs list')
docs: Download scenese from Google Storage or Amazon S3 if bands are provided
  
          :param scenes:
              A list of scene IDs
          :type scenes:
              List
          :param bands:
              A list of bands. Default value is None.
          :type scenes:
              List
  
          :returns:
              (List) includes downloaded scenes as key and source as value (aws or google)