Problem with using lincomb_fit function in the Larch
Hello Matt, I could not be able to perform LCA using the lincomb_fit function in the Larch software. I am getting the error message from line number 80 in the lincombo_fitting.py script. I expect the function has some bug with reading the group values. It could not be even able to read the default array 'norm' nither any user-provided 'arrayname' such as 'flat or fpp.' Can you suggest any solution for it? Please find the data files and larch script I am using for this purpose. Thanks, Akhil
Hi Ahkil,
On Tue, Feb 26, 2019 at 3:51 AM Tayal, Akhil
Hello Matt,
I could not be able to perform LCA using the lincomb_fit function in the Larch software. I am getting the error message from line number 80 in the lincombo_fitting.py script. I expect the function has some bug with reading the group values. It could not be even able to read the default array 'norm' nither any user-provided 'arrayname' such as 'flat or fpp.' Can you suggest any solution for it? Please find the data files and larch script I am using for this purpose.
There are a couple of things wrong -- some with your script but also a bug in lincombo_fit() that I had not seen until this morning. First, you should just use the group symbols, not the names of the groups, so replace lincombo_fit(group='g3',components='g1 g2', .... with lincombo_fit(group=g3, components=[g1, g2], .... Second, you should also keep the result (somewhat unusually for Larch, it does not currently get written into the main group -- perhaps this should be fixed), so result = lincomb_fit(group=g3, ....) Third, the 'xmin' and 'xmax' parameters you have appear to be intended to be "relative to e0", but lincombo_fit() wants absolute x values (and e0 is not defined anyway). So you probably want something like result = lincombo_fit(group=g3, components=[g1, g2], arrayname='flat', xmin=22070, xmax=22170, sum_to_one=True) But: this still won't work with Larch 0.9.41 because of a typo in lincombo_fit(). I have a fix pushed to github, and I'm working on a release for 0.9.42 today anyway (mostly fixing other bugs in XAS Viewer), and this will be included in that. Anyway, until you can upgrade to Larch 0.9.42, you will need to supply starting weights (they do not have to be accurate, just not `None`). So, in summary, you should use: result = lincombo_fit(group=g3, components=[g1, g2], arrayname='flat', xmin=22070, xmax=22170, weights=[0.8. 0.2], sum_to_one=True) Cheers, --Matt
participants (2)
-
Matt Newville
-
Tayal, Akhil