docs: def interpolate(self, **options):
          """Interpolate Irradiance to a specified evenly spaced resolution/grid
          This is necessary to make integration and folding (with a channel
          relative spectral response) straightforward.
  
          dlambda = wavelength interval in microns
          start = Start of the wavelength interval (left/lower)
          end = End of the wavelength interval (right/upper end)
          options:
          dlambda: Delta wavelength used when interpolating/resampling
          ival_wavelength: Tuple. The start and end interval in wavelength
          space, defining where to integrate/convolute the spectral response
          curve on the spectral irradiance data.
          """
          from scipy.interpolate import InterpolatedUnivariateSpline
  
          # The user defined wavelength span is not yet used:
          # FIXME!
          if 'ival_wavelength' in options:
              ival_wavelength = options['ival_wavelength']
          else:
              ival_wavelength = None
  
          if 'dlambda' in options:
              self._dlambda = options['dlambda']
  
          if ival_wavelength is None:
              if self.wavespace == 'wavelength':
                  start = self.wavelength[0]
                  end = self.wavelength[-1]
              else:
                  start = self.wavenumber[0]
                  end = self.wavenumber[-1]
          else:
              start, end = ival_wavelength
  
          xspl = np.linspace(start, end, round((end - start) / self._dlambda) + 1)
          if self.wavespace == 'wavelength':
              ius = InterpolatedUnivariateSpline(
                  self.wavelength, self.irradiance)
          else:
              ius = InterpolatedUnivariateSpline(
                  self.wavenumber, self.irradiance)
          yspl = ius(xspl)
  
          self.ipol_wavelength = xspl
          self.ipol_irradiance = yspl