def get_method(name, **kwargs):
    """
    Return a callable function for the utility method corresponding to the
    given name.\n\

    Arrays methods:

    +-------------------+-----------------------------------------------------+
    |     Name          |              Description                            |
    +===================+=====================================================+
    | centred_coord     | compute a 2D coordinate array                       |
    +-------------------+-----------------------------------------------------+

    Cleansing methods:

    +-------------------+-----------------------------------------------------+
    |     Name          |              Description                            |
    +===================+=====================================================+
    | decluster         | decluster a set of sparse data points               |
    +-------------------+-----------------------------------------------------+
    | detect_outliers   | detect outliers in a dataset                        |
    +-------------------+-----------------------------------------------------+

    Conversion methods:

    +-------------------+-----------------------------------------------------+
    |     Name          |              Description                            |
    +===================+=====================================================+
    | mm/h or rainrate  | convert to rain rate [mm/h]                         |
    +-------------------+-----------------------------------------------------+
    | mm or raindepth   | convert to rain depth [mm]                          |
    +-------------------+-----------------------------------------------------+
    | dbz or            | convert to reflectivity [dBZ]                       |
    | reflectivity      |                                                     |
    +-------------------+-----------------------------------------------------+

    Dimension methods:

    +-------------------+-----------------------------------------------------+
    |     Name          |              Description                            |
    +===================+=====================================================+
    |  accumulate       | aggregate fields in time                            |
    +-------------------+-----------------------------------------------------+
    |  clip             | resize the field domain by geographical coordinates |
    +-------------------+-----------------------------------------------------+
    |  square           | either pad or crop the data to get a square domain  |
    +-------------------+-----------------------------------------------------+
    |  upscale          | upscale the field                                   |
    +-------------------+-----------------------------------------------------+

    FFT methods (wrappers to different implementations):

    +-------------------+-----------------------------------------------------+
    |     Name          |              Description                            |
    +===================+=====================================================+
    |  numpy            | numpy.fft                                           |
    +-------------------+-----------------------------------------------------+
    |  scipy            | scipy.fftpack                                       |
    +-------------------+-----------------------------------------------------+
    |  pyfftw           | pyfftw.interfaces.numpy_fft                         |
    +-------------------+-----------------------------------------------------+

    Image processing methods:

    +-------------------+-----------------------------------------------------+
    |     Name          |              Description                            |
    +===================+=====================================================+
    |  morph_opening    | filter small scale noise                            |
    +-------------------+-----------------------------------------------------+

    Interpolation methods:

    +-------------------+-----------------------------------------------------+
    |     Name          |              Description                            |
    +===================+=====================================================+
    |  rbfinterp2d      | Radial Basis Function (RBF) interpolation of a      |
    |                   | (multivariate) array over a 2D grid.                |
    +-------------------+-----------------------------------------------------+
    |  idwinterp2d      | Inverse distance weighting (IDW) interpolation of a |
    |                   | (multivariate) array over a 2D grid.                |
    +-------------------+-----------------------------------------------------+

    Additional keyword arguments are passed to the initializer of the FFT
    methods, see utils.fft.

    Reprojection methods:

    +-------------------+-----------------------------------------------------+
    |     Name          |              Description                            |
    +===================+=====================================================+
    |  reproject_grids  | Reproject grids to a destination grid.              |
    +-------------------+-----------------------------------------------------+

    Spectral methods:

    +-------------------+-----------------------------------------------------+
    |     Name          |              Description                            |
    +===================+=====================================================+
    |  rapsd            | Compute radially averaged power spectral density    |
    +-------------------+-----------------------------------------------------+
    |  rm_rdisc         | remove the rain / no-rain discontinuity             |
    +-------------------+-----------------------------------------------------+

    Tapering methods:

    +-------------------------------+-----------------------------------------+
    |     Name                      |              Description                |
    +===============================+=========================================+
    |  compute_mask_window_function | Compute window function for a           |
    |                               | two-dimensional area defined by a       |
    |                               | non-rectangular mask.                   |
    +-------------------------------+-----------------------------------------+
    |  compute_window_function      | Compute window function for a           |
    |                               | two-dimensional rectangular area.       |
    +-------------------------------+-----------------------------------------+

    Transformation methods:

    +-------------------+-----------------------------------------------------+
    |     Name          |              Description                            |
    +===================+=====================================================+
    | boxcox or box-cox | one-parameter Box-Cox transform                     |
    +-------------------+-----------------------------------------------------+
    | db or decibel     | transform to units of decibel                       |
    +-------------------+-----------------------------------------------------+
    | log               | log transform                                       |
    +-------------------+-----------------------------------------------------+
    | nqt               | Normal Quantile Transform                           |
    +-------------------+-----------------------------------------------------+
    | sqrt              | square-root transform                               |
    +-------------------+-----------------------------------------------------+

    """

    if name is None:
        name = "none"

    name = name.lower()

    def donothing(R, metadata=None, *args, **kwargs):
        return R.copy(), {} if metadata is None else metadata.copy()

    methods_objects = dict()
    methods_objects["none"] = donothing

    # arrays methods
    methods_objects["centred_coord"] = arrays.compute_centred_coord_array

    # cleansing methods
    methods_objects["decluster"] = cleansing.decluster
    methods_objects["detect_outliers"] = cleansing.detect_outliers

    # conversion methods
    methods_objects["mm/h"] = conversion.to_rainrate
    methods_objects["rainrate"] = conversion.to_rainrate
    methods_objects["mm"] = conversion.to_raindepth
    methods_objects["raindepth"] = conversion.to_raindepth
    methods_objects["dbz"] = conversion.to_reflectivity
    methods_objects["reflectivity"] = conversion.to_reflectivity

    # dimension methods
    methods_objects["accumulate"] = dimension.aggregate_fields_time
    methods_objects["clip"] = dimension.clip_domain
    methods_objects["square"] = dimension.square_domain
    methods_objects["upscale"] = dimension.aggregate_fields_space

    # image processing methods
    methods_objects["morph_opening"] = images.morph_opening

    # interpolation methods
    methods_objects["rbfinterp2d"] = interpolate.rbfinterp2d
    methods_objects["idwinterp2d"] = interpolate.idwinterp2d

    # reprojection methods
    methods_objects["reproject_grids"] = reprojection.reproject_grids

    # spectral methods
    methods_objects["rapsd"] = spectral.rapsd
    methods_objects["rm_rdisc"] = spectral.remove_rain_norain_discontinuity

    # tapering methods
    methods_objects["compute_mask_window_function"] = (
        tapering.compute_mask_window_function
    )
    methods_objects["compute_window_function"] = tapering.compute_window_function

    # transformation methods
    methods_objects["boxcox"] = transformation.boxcox_transform
    methods_objects["box-cox"] = transformation.boxcox_transform
    methods_objects["db"] = transformation.dB_transform
    methods_objects["decibel"] = transformation.dB_transform
    methods_objects["log"] = transformation.boxcox_transform
    methods_objects["nqt"] = transformation.NQ_transform
    methods_objects["sqrt"] = transformation.sqrt_transform

    # FFT methods
    if name in ["numpy", "pyfftw", "scipy"]:
        if "shape" not in kwargs.keys():
            raise KeyError("mandatory keyword argument shape not given")
        return _get_fft_method(name, **kwargs)
    else:
        try:
            return methods_objects[name]
        except KeyError as e:
            raise ValueError(
                "Unknown method %s\n" % e
                + "Supported methods:%s" % str(methods_objects.keys())
            )
Return a callable function for the utility method corresponding to the
given name.\n\

Arrays methods:

+-------------------+-----------------------------------------------------+
|     Name          |              Description                            |
+===================+=====================================================+
| centred_coord     | compute a 2D coordinate array                       |
+-------------------+-----------------------------------------------------+

Cleansing methods:

+-------------------+-----------------------------------------------------+
|     Name          |              Description                            |
+===================+=====================================================+
| decluster         | decluster a set of sparse data points               |
+-------------------+-----------------------------------------------------+
| detect_outliers   | detect outliers in a dataset                        |
+-------------------+-----------------------------------------------------+

Conversion methods:

+-------------------+-----------------------------------------------------+
|     Name          |              Description                            |
+===================+=====================================================+
| mm/h or rainrate  | convert to rain rate [mm/h]                         |
+-------------------+-----------------------------------------------------+
| mm or raindepth   | convert to rain depth [mm]                          |
+-------------------+-----------------------------------------------------+
| dbz or            | convert to reflectivity [dBZ]                       |
| reflectivity      |                                                     |
+-------------------+-----------------------------------------------------+

Dimension methods:

+-------------------+-----------------------------------------------------+
|     Name          |              Description                            |
+===================+=====================================================+
|  accumulate       | aggregate fields in time                            |
+-------------------+-----------------------------------------------------+
|  clip             | resize the field domain by geographical coordinates |
+-------------------+-----------------------------------------------------+
|  square           | either pad or crop the data to get a square domain  |
+-------------------+-----------------------------------------------------+
|  upscale          | upscale the field                                   |
+-------------------+-----------------------------------------------------+

FFT methods (wrappers to different implementations):

+-------------------+-----------------------------------------------------+
|     Name          |              Description                            |
+===================+=====================================================+
|  numpy            | numpy.fft                                           |
+-------------------+-----------------------------------------------------+
|  scipy            | scipy.fftpack                                       |
+-------------------+-----------------------------------------------------+
|  pyfftw           | pyfftw.interfaces.numpy_fft                         |
+-------------------+-----------------------------------------------------+

Image processing methods:

+-------------------+-----------------------------------------------------+
|     Name          |              Description                            |
+===================+=====================================================+
|  morph_opening    | filter small scale noise                            |
+-------------------+-----------------------------------------------------+

Interpolation methods:

+-------------------+-----------------------------------------------------+
|     Name          |              Description                            |
+===================+=====================================================+
|  rbfinterp2d      | Radial Basis Function (RBF) interpolation of a      |
|                   | (multivariate) array over a 2D grid.                |
+-------------------+-----------------------------------------------------+
|  idwinterp2d      | Inverse distance weighting (IDW) interpolation of a |
|                   | (multivariate) array over a 2D grid.                |
+-------------------+-----------------------------------------------------+

Additional keyword arguments are passed to the initializer of the FFT
methods, see utils.fft.

Reprojection methods:

+-------------------+-----------------------------------------------------+
|     Name          |              Description                            |
+===================+=====================================================+
|  reproject_grids  | Reproject grids to a destination grid.              |
+-------------------+-----------------------------------------------------+

Spectral methods:

+-------------------+-----------------------------------------------------+
|     Name          |              Description                            |
+===================+=====================================================+
|  rapsd            | Compute radially averaged power spectral density    |
+-------------------+-----------------------------------------------------+
|  rm_rdisc         | remove the rain / no-rain discontinuity             |
+-------------------+-----------------------------------------------------+

Tapering methods:

+-------------------------------+-----------------------------------------+
|     Name                      |              Description                |
+===============================+=========================================+
|  compute_mask_window_function | Compute window function for a           |
|                               | two-dimensional area defined by a       |
|                               | non-rectangular mask.                   |
+-------------------------------+-----------------------------------------+
|  compute_window_function      | Compute window function for a           |
|                               | two-dimensional rectangular area.       |
+-------------------------------+-----------------------------------------+

Transformation methods:

+-------------------+-----------------------------------------------------+
|     Name          |              Description                            |
+===================+=====================================================+
| boxcox or box-cox | one-parameter Box-Cox transform                     |
+-------------------+-----------------------------------------------------+
| db or decibel     | transform to units of decibel                       |
+-------------------+-----------------------------------------------------+
| log               | log transform                                       |
+-------------------+-----------------------------------------------------+
| nqt               | Normal Quantile Transform                           |
+-------------------+-----------------------------------------------------+
| sqrt              | square-root transform                               |
+-------------------+-----------------------------------------------------+
pysteps/utils/interface.py