CSAC Spectral Line Inversions

CSAC hosts a number of spectral line inversion codes that use different forward modeling assumptions and different inversion strategies.


The Milne-Eddington gRid Linear Inversion Network (MERLIN) is a Milne-Eddington (ME) inversion code designed specifically to run automatically in the Hinode/SP data pipeline. It is written in C++ and the inversion scheme is based on the least-squares fitting of the observed Stokes profiles using the Levenberg-Marquardt algorithm. MERLIN can use one or multiple spectral lines to retrieve the magnetic field vector, the line-of-sight velocity, the source function, the Doppler broadening as well as the macroturbulence and the stray light factor. MERLIN routinely inverts Hinode/SP Level 1 (calibrated) spectropolarimetric maps as soon as they are approved by the quality control system, producing the Level 2 data stream. Level 1 and Level 2 Hinode/SP data processed at HAO can be found here.
Here you can find MERLIN's source code and a sample XML input file to run the code.



HAO’s Extended Inversion Code (HEXIC) is a ME inversion code based on VFISV (see below). Written in FORTRAN, it is more general and versatile that its predecessor. It can work with any photospheric spectral line (not only pure triplets) and be used for data from either a spectrograph or a filtergtaph instrument. Its usage requires previous installation of the open source FORTRAN libraries LAPACK and DFFTPACK. The source code for HEXIC will be coming soon.



The Very Fast Inversion of the Stokes Vector; Borrero et al 2011, Centeno et al 2014 is Milne-Eddington code that was purposefully written for and tailored to the inversion of full disk spectropolarimetric data from the Helioseismic and Magnetic Imager (HMI) on board the Solar Dynamics Observatory (SDO). VFISV is written in FORTRAN and was specifically designed to keep pace with the data flow rate and prevent a processing backlog, thus, speed optimization is one of its key features. In order to achieve this, a number of compromises had to be made, in detriment of its versatility. The inversion strategy of this code is based on a Levenberg-Marquardt least squares minimization algorithm. VFISV currently operates in the HMI vector field data pipeline and its data products can be found at Stanford's Joint Science Operations Center. VFISV version v1.05 was designed to invert the Hinode/SP Fe I 630.2 nm line. Its source code and manual can be retrieved through the links.



Developed by López Ariste and Casini (2002), this is a non-LTE spectral line inversion code that accounts for the physics of scattering polarization and the Hanle effect in the generation and modification of the polarization of spectral lines. It is capable of inverting observations from single or multiple lines from multi-term atoms with fine structure. The inversion algorithm is based on PCA (Principal Component Analysis) and requires the generation of a database of synthetic profiles in order to compare them to the observations.



The Non-LTE Inversion COde using the Lorien Engine ( Socas-Navarro et al. 2014) is an open-source general purpose synthesis and inversion code for Stokes profiles emerging from Solar or Stellar atmospheres. It is written entirely in FORTRAN and allows for paralellization. NICOLE solves the statistical equilibrium equations to calculate the atomic population densities. It assumes hydrostatic equilibrium to calculate the density and temperature stratification in the atmosphere and the generation of polarized radiation is dealt with in the context of the Zeeman effect. This means that no atomic level polarization is considered. A description of the code can be found Socas-Navarro et al. 2014. The source code is freely available to the community and can be found here.