docs: def inFootprint(config, pixels, nside=None):
      """
      Open each valid filename for the set of pixels and determine the set 
      of subpixels with valid data.
      """
      config = Config(config)
      nside_catalog    = config['coords']['nside_catalog']
      nside_likelihood = config['coords']['nside_likelihood']
      nside_pixel      = config['coords']['nside_pixel']
  
      if np.isscalar(pixels): pixels = np.array([pixels])
      if nside is None: nside = nside_likelihood
  
      filenames = config.getFilenames()
      catalog_pixels = filenames['pix'].compressed()
  
      inside = np.zeros(len(pixels), dtype=bool)
      if not nside_catalog:
          catalog_pix = [0]
      else:
          catalog_pix = superpixel(pixels,nside,nside_catalog)
          catalog_pix = np.intersect1d(catalog_pix,catalog_pixels)
  
      for fnames in filenames[catalog_pix]:
          logger.debug("Loading %s"%filenames['mask_1'])
          #subpix_1,val_1 = ugali.utils.skymap.readSparseHealpixMap(fnames['mask_1'],'MAGLIM',construct_map=False)
          _nside,subpix_1,val_1 = ugali.utils.healpix.read_partial_map(fnames['mask_1'],'MAGLIM',fullsky=False)
          logger.debug("Loading %s"%fnames['mask_2'])
          #subpix_2,val_2 = ugali.utils.skymap.readSparseHealpixMap(fnames['mask_2'],'MAGLIM',construct_map=False)
          _nside,subpix_2,val_2 = ugali.utils.healpix.read_partial_map(fnames['mask_2'],'MAGLIM',fullsky=False)
          subpix = np.intersect1d(subpix_1,subpix_2)
          superpix = np.unique(superpixel(subpix,nside_pixel,nside))
          inside |= np.in1d(pixels, superpix)
          
      return inside