====== IDL Software for Emission Line Fitting ====== ===== Fitting a Gaussian at each spatial pixel in a raster ===== Spectra at each spatial pixel in a raster can be fit with Gaussians using the eis\_auto\_fit IDL routine developed for the Hinode/EIS mission (you must have the EIS branch in your Solarsoft distribution). The key step is to format a SPICE wavelength window into a "windata" structure using the routine spice\_getwindata. An example call is: '' IDL> wd=spice\_getwindata(file) ; choose a wavelength window \\ IDL> eis\_fit\_template,wd,template ; create a template for the fit\\ IDL> eis\_auto\_fit,wd,fit,template=template\\ IDL> eis\_fit\_viewer,wd,fit '' The routine eis\_fit\_viewer is a GUI-based routine for browsing the fit results. More details on the eis\_auto\_fit suite of routines are available in [[https://doi.org/10.5281/zenodo.6339584 |EIS Software Note 15]]. The EIS software enable a number of operations to be performed on windata structures, as described in [[https://sohoftp.nascom.nasa.gov/solarsoft/hinode/eis/doc/eis_notes/21_WINDATA/eis_swnote_21.pdf|EIS Software Note 21]]. For example, eis\_bin\_windata allows spatial binning of the rasters. If you have problems running the EIS software on SPICE data, please contact [[https://science.gsfc.nasa.gov/sed/bio/peter.r.young|Dr. Peter Young]]. ===== Fitting a Gaussian to a spatially-averaged spectrum ===== In this scenario, a spatial region is selected in the raster, perhaps a bright point or a loop, and the spectra are averaged over this region to produce a single, 1D spectrum. Gaussians are then fit to this spectrum. The procedure is as follows: '' IDL> map=spice\_make\_image(file,770.4) ; for Ne VIII 770.4\\ IDL> mask=pixel\_mask\_gui(map) ; GUI routine for selecting pixel mask\\ IDL> spec=spice\_mask\_spectrum(file,mask) ; create averaged spectrum\\ IDL> spec\_gauss\_spice, spec ; GUI routine for fitting Gaussians '' These routines are modified from routines originally written for Hinode/EIS. Further details can be found in [[https://doi.org/10.5281/zenodo.6339584 |EIS Software Note 15]]. ===== Using an auto_fit template for mask spectra ===== The fitting templates created for eis\_auto\_fit can be useful for fitting mask spectra as well. First create the template for the window you are interested in: '' IDL> wd=spice\_getwindata(file)\\ IDL> eis\_fit\_template,wd,template \\ '' Now create the mask spectrum using the procedure described above. You can then apply the template to the mask spectrum by doing: '' IDL> fit=spice\_mask\_auto\_fit(wd,spec,template,chi2=chi2) '' The output structure ''fit'' contains the fit results. The reduced chi-square value for the fit is returned in the optional output. To overplot the fit on the spectrum, do: '' IDL> p=spice\_plot\_mask\_auto\_fit(spec,fit) ''