Euv_fitting: Automated Peak Fitting and Calibration of NIST EUV Spectra#

Euv_fitting provides a high level interface for processing NIST Extreme Ultraviolet (EUV) Spectra. It is written entirely in Python, and contains classes for opening, processing, and plotting spectra from the NIST EUV Spectrometer. Euv_fitting relies heavily on lmfit, and has functionality including:

  • Processing of binary .SPE files into NumPy arrays and metadata via SpeReader objects. The cosmic rays present in these files can then be removed using a CosmicRayFilter object.

  • A searchable hdf5 database of the last ten years of NIST EUV spectra. Users can filter their search for specific elements, dates, and beam energies through the EUVH5_Handler class.

  • Using MultiBatchGaussian objects to automatically detect peaks in a spectra and fit them with gaussians. The fit data is easily accessible in NumPy arrays, and users can adjust the number of detected peaks and manually input peak locations that are missed.

  • Identification of calibration lines using Distance_Calibrator objects. Distance_Calibrators can also convert collections of identified calibration lines into the calibration coefficients and their uncertainties. Systematic uncertainties present in the spectra are also estimated via the reduced chi-squared.

    • Iterative intensity calibration of EUV spectra based on Poisson statistics and the response function of the CCD camera.

Indices and tables#