Hi.
Due to the difficulties of getting demeter to work on the Apple M1 machines, I have started to use xraylarch and so far I like the interface as well as the possibility of scripting later on. I had a couple of observations and a question regarding xraylarch usage that I hope could be addressed here.
Thanks -- I gave some short answers to this at Github, but I thought I would respond here too, as there might be people with thoughts on this stuff here.
First, one can load multiple spectra into the (feff) fitting window. It seems, however, that which paths are selected are universal (the selected paths are used for all exafs spectra). Does this mean that multiple edge fitting is not possible. If multiple edge fitting is possible, how is it done?
In the fitting window, one can have several spectra loaded and one can select all or some of the spectra to be fit. The interface seems like it was designed for multiple edge fitting, but is it?
Right now - and maybe for a while - the XAS Viewer GUI only supports fitting 1 data set at a time. My view is kind of that "a GUI for simple stuff, and scripts for complex stuff" is a reasonable starting point. But also, fitting 1 data set at a time is just more complicated and harder to expose as a GUI. Suggestions welcome!
Second, it is strange that whenever a parameter is changed that the fitting variable settings (fixed, vary, constrain) are reset. For complex fits, this generates a lot of unnecessary clicking (and the corresponding mistake possibilities)
Yes, I agree. I think this can be better (and a few things in this area have been updated in the devel version). Having others using this in recent short courses also showed similar problems, including when using >8 paths and using many variables. It's still kind of a work in progress and this kind of feedback is really helpful.
Third, when one reads in several different feff calculations, one would, in principle, like to have a different value of e0 (the origin of energy offset) for each feff calculation. By default when a feff calculation is read in the variable e0 is defined. When one defines alternative energy offset variables for the different feff calculations and deletes the original e0 value, something strange happens. Accessing the “Edit Parameters” window results in e0 reappearing (even though it has been manually deleted previously). Is this a feature? The same thing may happen for other “automatic” variables as well.
First, yes it does look like a bug that XAS Viewer insists on having Parameters named "e0" and "s02". Will investigate, hopefully pushing a fix in a month or so...
Second, I think that creating a different "e0" for each Feff run
is a good idea
.
In fact, it would probably be reasonable to read the "Vint" value from the feffNNNN.dat file and use "E0 Path Parameter = vint + e0_feff_run". vint could even be (like Reff) a per-path variable, and the variable for E0 could be (by default) the same for all paths from a single Feff run, but different for different Feff runs.
I think there are no clear results on whether using the value of per-feff-run vint was good enough to make a single e0 variable really independent of the Feff run. I do believe that the values for vint are pretty good with Feff8, but It would be interesting to try to figure out how to test this well. If you or anyone else has an opinion or thoughts on any of this, that would be valuable.
Four. This is really a feature request. When a variable is unused (lets say some additional paths are introduced in the fitting process and a new fit without them is attempted), the choices in the parameter list are (fix, vary, and constrain). There is no option to “skip” like in Artemis. Obviously, one can choose fix, but in doing so the unused variable shows up in the fit result summary and is somewhat confusing. It would be subjectively better to have the option to “skip” a variable and not have it show up in the fit summary.
Another good point: Skip is a good option to have
and doing "set to Skip" instead of "set to Fixed" would be a reasonable thing for XAS_Viewer to do for "unused parameters". On the To Do list now
!
Just some initial thoughts...
Thanks very much!