abfind: force-fitting abundances to match single-line equivalent widths.

Suppose we have a list of lines (stored as as a DataFrame called linelist) with their measured EW as follow (appended to the line list as the last column):

	wavelength	id	EP	loggf	C6	D0	EW
0	11032.103	12.0	5.9460	-1.801	0.000	NaN	23.05
1	11033.662	12.0	5.9460	-2.073	0.000	NaN	13.33
2	11034.481	12.0	5.9460	-2.426	0.000	NaN	6.24
3	11005.127	14.0	6.2228	-2.098	-7.200	NaN	5.54
4	11013.703	14.0	6.2061	-0.983	-7.320	NaN	48.24
5	11017.966	14.0	6.2061	0.760	-7.320	NaN	281.02
6	11040.405	14.0	6.2061	-1.449	-7.320	NaN	22.53
7	11019.848	19.0	2.6700	-0.010	3073.329	NaN	11.13
8	11022.653	19.0	2.6703	-0.161	3073.329	NaN	7.98
9	11015.530	24.0	3.4493	-0.429	-7.530	NaN	43.10
10	11044.610	24.0	3.0112	-1.930	-7.780	NaN	5.74
11	11013.235	26.0	4.7955	-1.383	-7.550	NaN	35.22
12	11026.788	26.0	3.9434	-2.805	-7.810	NaN	11.92
13	11045.599	26.0	5.5870	-0.624	-7.500	NaN	35.73
14	11057.772	26.0	4.8349	-1.967	-7.550	NaN	11.55
15	11069.374	26.0	6.2223	-1.055	-7.140	NaN	5.06
16	11081.595	26.0	5.6425	-1.419	-7.470	NaN	7.37
17	11088.584	28.0	4.1647	-1.512	-7.560	NaN	16.36
18	11054.253	30.0	5.7958	-0.300	0.000	NaN	18.43

Note

The DataFrame has to be sorted in id and wavelength.

Then abfind can run as:

a = pymoog.abfind.abfind(5000, 4.0, 0.0, line_list=linelist)
a.prepare_file()
a.run_moog()
a.read_output()

The output of abfind, a.abfind_res will be stored as a dict with it keys as elements and values as DataFrame:

{12.0:    wavelength    ID     EP  logGF   EWin  logRWin  abund  delavg
 0   11032.103  12.0  5.946 -1.801  23.05   -5.680  7.376  -0.002
 1   11033.662  12.0  5.946 -2.073  13.33   -5.918  7.378   0.000
 2   11034.481  12.0  5.946 -2.426   6.24   -6.248  7.379   0.001,
 14.0:    wavelength    ID     EP  logGF    EWin  logRWin  abund  delavg
 0   11005.127  14.0  6.223 -2.098    5.54   -6.298  7.606  -0.030
 1   11013.703  14.0  6.206 -0.983   48.24   -5.359  7.639   0.003
 2   11017.966  14.0  6.206  0.760  281.02   -4.593  7.667   0.031
 3   11040.405  14.0  6.206 -1.449   22.53   -5.690  7.632  -0.004,
 19.0:    wavelength    ID    EP  logGF   EWin  logRWin  abund  delavg
 0   11019.848  19.0  2.67 -0.010  11.13   -5.996  4.866  -0.002
 1   11022.653  19.0  2.67 -0.161   7.98   -6.140  4.871   0.002,
 24.0:    wavelength    ID     EP  logGF   EWin  logRWin  abund  delavg
 0    11015.53  24.0  3.449 -0.429  43.10   -5.408  5.044   0.002
 1    11044.61  24.0  3.011 -1.930   5.74   -6.284  5.040  -0.002,
 26.0:    wavelength    ID     EP  logGF   EWin  logRWin  abund  delavg
 0   11013.235  26.0  4.795 -1.383  35.22   -5.495  7.129  -0.076
 1   11026.788  26.0  3.943 -2.805  11.92   -5.966  7.046  -0.159
 2   11045.599  26.0  5.587 -0.624  35.73   -5.490  7.242   0.037
 3   11057.772  26.0  4.835 -1.967  11.55   -5.981  7.171  -0.033
 4   11069.374  26.0  6.222 -1.055   5.06   -6.340  7.359   0.154
 5   11081.595  26.0  5.643 -1.419   7.37   -6.177  7.282   0.077,
 28.0:    wavelength    ID     EP  logGF   EWin  logRWin  abund  delavg
 0   11088.584  28.0  4.165 -1.512  16.36   -5.831  6.009     0.0}