docs: def execute(self, points, *args, **kwargs):
          # TODO array of Points, (x, y) pairs of shape (N, 2)
          """
          Parameters
          ----------
          points: dict
  
          Returns:
          -------
          Prediction array
          Variance array
          """
          if isinstance(self.model, OrdinaryKriging) or \
                  isinstance(self.model, OrdinaryKriging3D):
              prediction, variance = \
                  self.model.execute('points',
                                     n_closest_points=self.n_closest_points,
                                     backend='loop',
                                     **points)
          else:
              print('n_closest_points will be ignored for UniversalKriging')
              prediction, variance = \
                  self.model.execute('points', backend='loop', **points)
  
          return prediction, variance