code: def convolve_comb_lines(lines_wave, lines_flux, sigma,
                          crpix1, crval1, cdelt1, naxis1):
      
  
      # generate wavelengths for output spectrum
      xwave = crval1 + (np.arange(naxis1) + 1 - crpix1) * cdelt1
  
      # initialize output spectrum
      spectrum = np.zeros(naxis1)
  
      # convolve each line
      for wave, flux in zip(lines_wave, lines_flux):
          sp_tmp = gauss_box_model(x=xwave, amplitude=flux, mean=wave,
                                   stddev=sigma)
          spectrum += sp_tmp
  
      return xwave, spectrum
docs: Convolve a set of lines of known wavelengths and flux.
  
      Parameters
      ----------
      lines_wave : array like
          Input array with wavelengths
      lines_flux : array like
          Input array with fluxes
      sigma : float
          Sigma of the broadening gaussian to be applied.
      crpix1 : float
          CRPIX1 of the desired wavelength calibration.
      crval1 : float
          CRVAL1 of the desired wavelength calibration.
      cdelt1 : float
          CDELT1 of the desired wavelength calibration.
      naxis1 : integer
          NAXIS1 of the output spectrum.
  
      Returns
      -------
      xwave : array like
          Array with wavelengths for the output spectrum.
      spectrum : array like
          Array with the expected fluxes at each pixel.