<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def interp(self, coords=None, method='linear', assume_sorted=False, kwargs={}, **coords_kwargs):
 """ Multidimensional interpolation of variables. coords : dict, optional Mapping from dimension names to the new coordinates. new coordinate can be an scalar, array-like or DataArray. If DataArrays are passed as new coordates, their dimensions are used for the broadcasting. method: {'linear', 'nearest'} for multidimensional array, {'linear', 'nearest', 'zero', 'slinear', 'quadratic', 'cubic'} for 1-dimensional array. assume_sorted: boolean, optional If False, values of x can be in any order and they are sorted first. If True, x has to be an array of monotonically increasing values. kwargs: dictionary Additional keyword passed to scipy's interpolator. The keyword arguments form of ``coords``. One of coords or coords_kwargs must be provided. Returns ------- interpolated: xr.DataArray New dataarray on the new coordinates. Notes ----- scipy is required. See Also -------- scipy.interpolate.interp1d scipy.interpolate.interpn Examples -------- <xarray.DataArray ()> array(2.0) Coordinates: x float64 0.5 """

        if self.dtype.kind not in 'uifc':
            raise TypeError('interp only works for a numeric type array. '
                            'Given {}.'.format(self.dtype))

        ds = self._to_temp_dataset().interp(
            coords, method=method, kwargs=kwargs, assume_sorted=assume_sorted,
            **coords_kwargs)
        return self._from_temp_dataset(ds)