andim / easyleed

Software for Low Energy Electron Diffraction I(E)-spectra analysis
http://andim.github.io/easyleed/
Other
12 stars 4 forks source link

Default parameters cannot properly track energy #12

Open feranick opened 7 years ago

feranick commented 7 years ago

From Renee: "I’ve been playing around with EasyLEED and I can’t get it to track the spots properly. I think it’s probably a matter of getting the parameters set up properly, but I don’t know what are reasonable parameters, e.g. for the Kalman position and velocity. The default values seemed to be 0.1 and 0, but when I use those, the integration windows don’t move with energy. Do you know what are reasonable values to use? It keeps saying the fit failed."

feranick commented 7 years ago

From Renee: I’ve played around with the parameters and I really can’t tell that there’s any difference for completely different parameters. If I set it up to rely mostly on the predicted paths of the spots, it does the same thing as when I set it up to rely mainly on the fitted positions. In fact the tracking looks identical as far as I can tell. So I wonder if there’s a problem with either how the algorithm is working or with the range of parameters allowed.

I guess the good news is that the tracking is much better with the center spot.

One thing I was wondering - when it “predicts” (as opposed to fits) the spot position, is it using the energy to calculate the position? I suppose it must be, but if ie has the starting location and the center spot, I’m not sure it’s enough information, maybe it also needs another reference point - I think HotLEED had another one? I know one version of it did..."

andim commented 7 years ago

In my experience setting the center spot indeed often helps a lot. The initial position combined with the center position is enough information for prediction at least in theory. The spots should move in a straight line towards the center with a square root scaling of radius. This is what is assumed internally. There might of course in practice be deviations due to stray fields, optical aberrations etc. which EasyLEED is currently neither trying to correct for not taking into account.

If it says that the fit failed that means that it did not succeed in finding a spot close to its predicted position. One way that can happen if you're not setting the center and the spacing of energies is relatively large is that the spots have moved two much between two frames relative to the region in which the algorithm is trying to fit a peak. The area in which the algorithm searches for peaks is adjusted using the parameter Tracking_fitRegionFactor, which can currently only been changed through a config file and not through the gui.

feranick commented 7 years ago

There might of course in practice be deviations due to stray fields, optical aberrations etc. which EasyLEED is currently neither trying to correct for not taking into account.

One way to fix this and improve tracking is by setting the center also at the end-energy point. This was implemented in the old HotLEED and worked great in sub-optimal experimental conditions.

The area in which the algorithm searches for peaks is adjusted using the parameter Tracking_fitRegionFactor, which can currently only been changed through a config file and not through the gui.

This should be definitively exposed to the user. I can write a patch once the new parser config is merged.

feranick commented 7 years ago

I have exposed Tracking_fitRegionFactor to the UI in my local branch and experimented with it. Setting a larger area dramatically improves tracking in the data we are working on. Having it exposed to the users is quite essential at this point. As previously stated, a patch is ready once config-parser is merged.

andim commented 7 years ago

Great, it'll be good to have it exposed in the UI.

The other way to change the size of the region is to make the size of the integration region bigger (as the total region scales with this), which is what I did when I was running into this type of problems. But it's definitely better to be able to control both simultaneously.

One way to fix this and improve tracking is by setting the center also at the end-energy point. This was implemented in the old HotLEED and worked great in sub-optimal experimental conditions.

Setting/Adjusting the positions manually also at the end point -- or some time in between -- would be a nice addition. I was just always less excited about coding up solutions that mainly involve a lot of user interface design ;-). But in terms of what is useful I completely agree that this would be great to have!

feranick commented 7 years ago

Setting/Adjusting the positions manually also at the end point -- or some time in between -- would be a nice addition. I was just always less excited about coding up solutions that mainly involve a lot of user interface design ;-). But in terms of what is useful I completely agree that this would be great to have!

That may not be necessary after all. We have been testing setting the center not for the first energy but for any in the middle or even the last. This improves things, along with Tracking_fitRegionFactor. Overall trying to minimize the amount of coding needed.