def fetch_catalogue(source, radec, radius, extracolumns=[], column_filters=
    {'rmag': '5..25'}, **kwargs):
    """ Download a catalogue from internet (Vizier)
    (Module based on astroquery.)

    NB: The gaia catalogue DR1 only have G-band magnitude (in vega magnitude) and has no error.
        There is FG and e_FG entries that are the fluxes (and errors) in e-/s in the gaia G-band
    
    Parameters
    ----------
    source: [string]
        Source of the catalogue. Could be: sdss/2mass/wise/gaia

    radec: [string / 2D array]
        Coordinates [deg] of the central point of the catalogue.
        Format - string ('%f %f'%(ra,dec)) or 2D array [ra,dec]

    radius: [string]
        Radius around the central location (radec) of the catalogue
        Format: string 'ValueUnits' e.g.: 0.5degree radius would be '0.5d'

    extracolumns: [array of string] -optional-
        Additional column to download for the catalogue. Entries depend on the
        requested catalogue.

    column_filters: [dict] -optional-
        Criteria the requested catalogue entries should have to be downloaded.
        This should be a dictionary with keys being column names (see Vizier)
        Column name depend on the catalogues.
        Example: If you only want stars for the sdss catalogue add  'cl':6

    **kwargs goes to vizier.Vizier

    Returns
    -------
    Catalogue
    """
    source_ = source.lower()
    if 'fetch_%s_catalogue' % source_ not in globals():
        raise ValueError('Unknown catalog %s' % source_)
    return eval('fetch_%s_catalogue(radec,radius,' % source_ +
        'extracolumns=extracolumns,' +
        'column_filters=column_filters, **kwargs)')
