Downloads the Marshall et al. (2006) dust map, which is based on 2MASS
    stellar photometry.

    Args:
        clobber (Optional[:obj:`bool`]): If ``True``, any existing file will be
            overwritten, even if it appears to match. If ``False`` (the
            default), :obj:`fetch()` will attempt to determine if the dataset
            already exists. This determination is not 100\% robust against data
            corruption.

def fetch(clobber=False):
    """
    Downloads the Marshall et al. (2006) dust map, which is based on 2MASS
    stellar photometry.

    Args:
        clobber (Optional[:obj:`bool`]): If ``True``, any existing file will be
            overwritten, even if it appears to match. If ``False`` (the
            default), :obj:`fetch()` will attempt to determine if the dataset
            already exists. This determination is not 100\% robust against data
            corruption.
    """

    table_dir = os.path.join(data_dir(), 'marshall')

    # Check if file already exists
    if not clobber:
        h5_fname = os.path.join(table_dir, 'marshall.h5')
        h5_size = 5033290 # Guess, in Bytes
        h5_dsets = {
            'l': (801, 81),
            'b': (801, 81),
            'chi2_all': (801, 81),
            'chi2_giants': (801, 81),
            'A': (801, 81, 33),
            'sigma_A': (801, 81, 33),
            'dist': (801, 81, 33),
            'sigma_dist': (801, 81, 33)
        }
        if fetch_utils.h5_file_exists(h5_fname, h5_size, dsets=h5_dsets):
            print('File appears to exist already. Call ``fetch(clobber=True)`` '
                  'to force overwriting of existing file.')
            return

    # Download the ASCII table
    url = 'ftp://cdsarc.u-strasbg.fr/pub/cats/J/A%2BA/453/635/table1.dat.gz'
    md5 = '637b95b025517a8b9757b6465b632285'
    table_fname = os.path.join(table_dir, 'table1.dat.gz')
    fetch_utils.download_and_verify(url, md5, fname=table_fname)

    # Download the README
    url = 'ftp://cdsarc.u-strasbg.fr/pub/cats/J/A%2BA/453/635/ReadMe'
    md5 = '3b7c1296b181b3d77106ab50193dc7ee'
    readme_fname = os.path.join(table_dir, 'ReadMe')
    fetch_utils.download_and_verify(url, md5, fname=readme_fname)

    # Convert from ASCII table to HDF5
    dat2hdf5(table_dir)

    # Cleanup
    print('Cleaning up ...')
    os.remove(table_fname)
    os.remove(readme_fname)