nodes: 0, module; 1, function_definition; 2, function_name:interp; 3, parameters; 4, block; 5, identifier:self; 6, default_parameter; 7, default_parameter; 8, default_parameter; 9, default_parameter; 10, dictionary_splat_pattern; 11, expression_statement; 12, if_statement; 13, expression_statement; 14, return_statement; 15, identifier:coords; 16, None; 17, identifier:method; 18, string; 19, identifier:assume_sorted; 20, False; 21, identifier:kwargs; 22, dictionary; 23, identifier:coords_kwargs; 24, comment:""" 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.
          **coords_kwarg : {dim: coordinate, ...}, optional
              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
          --------
          >>> da = xr.DataArray([1, 3], [('x', np.arange(2))])
          >>> da.interp(x=0.5)
          <xarray.DataArray ()>
          array(2.0)
          Coordinates:
              x        float64 0.5
          """; 25, comparison_operator:self.dtype.kind not in 'uifc'; 26, block; 27, assignment; 28, call; 29, string_content:linear; 30, attribute; 31, string; 32, raise_statement; 33, identifier:ds; 34, call; 35, attribute; 36, argument_list; 37, attribute; 38, identifier:kind; 39, string_content:uifc; 40, call; 41, attribute; 42, argument_list; 43, identifier:self; 44, identifier:_from_temp_dataset; 45, identifier:ds; 46, identifier:self; 47, identifier:dtype; 48, identifier:TypeError; 49, argument_list; 50, call; 51, identifier:interp; 52, identifier:coords; 53, keyword_argument; 54, keyword_argument; 55, keyword_argument; 56, dictionary_splat; 57, call; 58, attribute; 59, argument_list; 60, identifier:method; 61, identifier:method; 62, identifier:kwargs; 63, identifier:kwargs; 64, identifier:assume_sorted; 65, identifier:assume_sorted; 66, identifier:coords_kwargs; 67, attribute; 68, argument_list; 69, identifier:self; 70, identifier:_to_temp_dataset; 71, concatenated_string; 72, identifier:format; 73, attribute; 74, string; 75, string; 76, identifier:self; 77, identifier:dtype; 78, string_content:interp only works for a numeric type array.; 79, string_content:Given {}.
code: 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.
          **coords_kwarg : {dim: coordinate, ...}, optional
              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
          --------
          >>> da = xr.DataArray([1, 3], [('x', np.arange(2))])
          >>> da.interp(x=0.5)
          <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)