docs: def heal(self, channel=0, method="linear", fill_value=np.nan, verbose=True):
          """
          Remove nans from channel using interpolation.
  
          Parameters
          ----------
          channel : int or str (optional)
              Channel to heal. Default is 0.
          method : {'linear', 'nearest', 'cubic'} (optional)
              The interpolation method. Note that cubic interpolation is only
              possible for 1D and 2D data. See `griddata`__ for more information.
              Default is linear.
          fill_value : number-like (optional)
              The value written to pixels that cannot be filled by interpolation.
              Default is nan.
          verbose : bool (optional)
              Toggle talkback. Default is True.
  
  
          __ http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html
  
  
          .. note:: Healing may take several minutes for large datasets.
             Interpolation time goes as nearest, linear, then cubic.
  
  
          """
          warnings.warn("heal", category=wt_exceptions.EntireDatasetInMemoryWarning)
          timer = wt_kit.Timer(verbose=False)
          with timer:
              # channel
              if isinstance(channel, int):
                  channel_index = channel
              elif isinstance(channel, str):
                  channel_index = self.channel_names.index(channel)
              else:
                  raise TypeError("channel: expected {int, str}, got %s" % type(channel))
              channel = self.channels[channel_index]
              values = self.channels[channel_index][:]
              points = [axis[:] for axis in self._axes]
              xi = tuple(np.meshgrid(*points, indexing="ij"))
              # 'undo' gridding
              arr = np.zeros((len(self._axes) + 1, values.size))
              for i in range(len(self._axes)):
                  arr[i] = xi[i].flatten()
              arr[-1] = values.flatten()
              # remove nans
              arr = arr[:, ~np.isnan(arr).any(axis=0)]
              # grid data wants tuples
              tup = tuple([arr[i] for i in range(len(arr) - 1)])
              # grid data
              out = griddata(tup, arr[-1], xi, method=method, fill_value=fill_value)
              self.channels[channel_index][:] = out
          # print
          if verbose:
              print(
                  "channel {0} healed in {1} seconds".format(
                      channel.name, np.around(timer.interval, decimals=3)
                  )
              )