code: def get_modscag_fn_list(dem_dt, tile_list=('h08v04', 'h09v04', 'h10v04', 'h08v05', 'h09v05'), pad_days=7):
      import re
      import requests
      from bs4 import BeautifulSoup
      auth = iolib.get_auth()
      pad_days = timedelta(days=pad_days)
      dt_list = timelib.dt_range(dem_dt-pad_days, dem_dt+pad_days+timedelta(1), timedelta(1))
      outdir = os.path.join(datadir, 'modscag')
      if not os.path.exists(outdir):
          os.makedirs(outdir)
      out_vrt_fn_list = []
      for dt in dt_list:
          out_vrt_fn = os.path.join(outdir, dt.strftime('%Y%m%d_snow_fraction.vrt'))
          if os.path.exists(out_vrt_fn):
              vrt_ds = gdal.Open(out_vrt_fn)
              if np.all([np.any([tile in sub_fn for sub_fn in vrt_ds.GetFileList()]) for tile in tile_list]):
                  out_vrt_fn_list.append(out_vrt_fn)
                  continue
          modscag_fn_list = []
          for tile in tile_list:
              modscag_url_str = 'https://snow-data.jpl.nasa.gov/modscag-historic/%Y/%j/' 
              modscag_url_base = dt.strftime(modscag_url_str)
              print("Trying: %s" % modscag_url_base)
              r = requests.get(modscag_url_base, auth=auth)
              modscag_url_fn = []
              if r.ok:
                  parsed_html = BeautifulSoup(r.content, "html.parser")
                  modscag_url_fn = parsed_html.findAll(text=re.compile('%s.*snow_fraction.tif' % tile))
              if not modscag_url_fn:
                  modscag_url_str = 'https://snow-data.jpl.nasa.gov/modscag/%Y/%j/' 
                  modscag_url_base = dt.strftime(modscag_url_str)
                  print("Trying: %s" % modscag_url_base)
                  r = requests.get(modscag_url_base, auth=auth)
              if r.ok: 
                  parsed_html = BeautifulSoup(r.content, "html.parser")
                  modscag_url_fn = parsed_html.findAll(text=re.compile('%s.*snow_fraction.tif' % tile))
              if not modscag_url_fn:
                  print("Unable to fetch MODSCAG for %s" % dt)
              else:
                  parsed_html = BeautifulSoup(r.content, "html.parser")
                  modscag_url_fn = parsed_html.findAll(text=re.compile('%s.*snow_fraction.tif' % tile))
                  if modscag_url_fn:
                      modscag_url_fn = modscag_url_fn[0]
                      modscag_url = os.path.join(modscag_url_base, modscag_url_fn)
                      print(modscag_url)
                      modscag_fn = os.path.join(outdir, os.path.split(modscag_url_fn)[-1])
                      if not os.path.exists(modscag_fn):
                          iolib.getfile2(modscag_url, auth=auth, outdir=outdir)
                      modscag_fn_list.append(modscag_fn)
          if modscag_fn_list:
              cmd = ['gdalbuildvrt', '-vrtnodata', '255', out_vrt_fn]
              cmd.extend(modscag_fn_list)
              print(cmd)
              subprocess.call(cmd, shell=False)
              out_vrt_fn_list.append(out_vrt_fn)
      return out_vrt_fn_list