ZELLMECHANIK-DRESDEN / ShapeOut

Shape-Out has been superseded by Shape-Out 2.
https://shapeout.readthedocs.io
GNU General Public License v2.0
5 stars 5 forks source link

exclude event/update plot problems #84

Closed chrherold closed 8 years ago

chrherold commented 8 years ago

The exclude event function seems to be buggy.

When repeatedly clicking on a cell and selecting "exclude event" followed by "update plot" it seems the correct point is not always removed. (clicking several cells, setting them to exclude and updating once afterwards seems to work)

As a consequence all other points lose order (see pictures attached - a very large cell is identified as a very small cell).

before exclusion after exclusion

When going on to exclude cells the program enters a "half-frozen" state, where all tabs are blank or disappear completely (but buttons like analyze can still be pressed - with no effect though). When trying to close the program in this state the "session save dialogue" opens but has no buttons to select for choosing what to do.

update: I could reliably reproduce the error with no other filter settings (or when going back to no filter settings). With other filters active and only one panel, repeated use of the exclusion seems to work alright. When several panels are used, problems do also occur with other filter settings active. Here, I was unable to identify patterns.

update 2, remark: It would be great if the list of excluded cells in one panel could be maintained, if another panel is added via the analyze button.

paulmueller commented 8 years ago

This could have been caused by a memory leak when replotting the scatter plot. Could you please check if this problem still persists in the latest development build? https://ci.appveyor.com/project/paulmueller/shapeout/build/1.0.375/artifacts

chrherold commented 8 years ago

Checked the development build. The error of not working "exclude element" persists if repeated.

And already upon opening the program another error occurs: error dev5

paulmueller commented 8 years ago

There must have been some changes in chaco that caused the bug you just saw (fixed now). As for the original problem, I cannot reproduce it on Ubuntu, so I will check again on Windows.

https://ci.appveyor.com/project/paulmueller/shapeout/build/1.0.377/artifacts

paulmueller commented 8 years ago

I could reliably reproduce the error with no other filter settings (or when going back to no filter settings). With other filters active and only one panel, repeated use of the exclusion seems to work alright.

If with "no filter settings" you mean unchecking the "Enable Filters" checkbox, then filtering is not performed at all and the events are not removed from the plot. In the version above, filtered (gray) events are displayed by mistake as well. I fixed this in the latest build.

Note that if the "Downsampling" of the scatter plot is enabled, then manually filtered events might be removed from the plot instead of shown in gray. If you want to see all (filtered and selected) events, you have to disable "Downsampling".

Please try again: https://ci.appveyor.com/project/paulmueller/shapeout/build/1.0.378/artifacts

chrherold commented 8 years ago

Sorry, "no filter settings" was a very misleading expression. I meant that filters are enabled but there is no polygon filter active and all other settings are set to "0.0". "Downsampling" is activated.

And the problem is that it neither goes gray nor vanishes. It remains clickable at the same position but shows the wrong image (as do all other points that come later than the removed one, very well visible if very large events show images of very small objects).

I tried again. The problem persists (at least the problem of wrong image allocation after removing single events, I did not manage to send it to the frozen state anymore!)

I liked your idea that "Downsampling" may have something to do with it. And I think it might.

I made the following observations:

1) A wrongly not removed point turns gray when I switch of downsampling afterwards. BUT: this does not solve the entire problem. The order of cells displayed when clicking on points is still mixed up. Removing another point in this new (deactivated) situation does not work either.

2) After an initialy activated downsampling (as it is the default option) I deactivate downsampling. As a result, the images that are displayed when clicking on points are wrong!

3) If downsampling is deactivated when pressing analyze, all images seem correct. AND: Excluding events works as expected!

To me it seems like downsampling and excluding events does not work well together. (This could be the reason why it worked with filtered data for me as the events left after filtering were less than the downsampling limit.)

paulmueller commented 8 years ago

I could reproduce this bug easily by setting the downsampling value to a low number like 200.

The reason for the bug is a faulty hashing strategy when trying to save computation time. Arrays were hashed like this: str(array) instead of like this array.tostring(), which caused the bug to appear rather randomly. All versions coming with dclab>0.1.7dev10 should work now.

https://ci.appveyor.com/project/paulmueller/shapeout/build/1.0.381/artifacts