-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
markers plugin #1953
markers plugin #1953
Conversation
As I have said before and I will re-iterate here for the record, the complicated part is to account for all the linking that can happen in the same session. Imagine this scenario:
In terms of keeping track of marker positions, we would need to do this in a similar fashion as we handle spatial subsets. Internally, we need to store them consistent wrt reference image used in linking (not to be confused with reference image of the individual viewers... and also this logic might break down when we allow people to remove data from the app entirely but that is a headache for another day). But then when we get the marker info back out, we need to ask user to select data as a reference frame for the correct pixel and sky coordinates; otherwise, they will be ambiguous. |
Also, when people see this feature, they might want extra stuff to be added to the table (like maybe sky and value under the cursor). |
This is just a proof-of-concept for when we revisit in the future for more widespread table/marker support (nothing is new - I just thought having a draft PR would be useful so it isn't lost in one of my local branches). That said, this does log the layer that was active when the marker was created, so we should be able to handle any necessary translation on the fly without linking. We'll just need a clear UI for the user to decide whether they want to keep pixel or sky fixed depending on the link type, or we could always only consider markers "valid"/visible for the layer on which they were created until they are exported as a data collection entry in which case that can be handled via linking. Copying from the ticket, here is a list of potential follow-up extensions I had in mind when I first put this together (I'll also copy this into the description):
|
Of course, and thanks for posting what you have so it does not get lost! I am just commenting so we remember the conversation happened when we revisit. 😸 |
e251501
to
4ba2424
Compare
4ba2424
to
ea89e6c
Compare
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #1953 +/- ##
==========================================
+ Coverage 92.17% 92.28% +0.10%
==========================================
Files 140 143 +3
Lines 15394 15782 +388
==========================================
+ Hits 14190 14565 +375
- Misses 1204 1217 +13
... and 9 files with indirect coverage changes Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report in Codecov by Sentry. |
bd9c5b3
to
b714cad
Compare
b714cad
to
aca7483
Compare
aca7483
to
81bfe21
Compare
3579693
to
b02e3e6
Compare
edeb56e
to
eeef8cf
Compare
Gave it a test drive and it works beautifully! |
Co-authored-by: P. L. Lim <2090236+pllim@users.noreply.github.com>
* hiding and re-showing a column will now show it in its original order instead of re-ordered to the end
and hide axes coordinates from UI (still available in exported table)
* also applies to table in aperture photometry plugin
may be replaced in the future with a clone of the layer cycler or an indication of the selected layer and helpful mouseover text
* and therefore exclude any scatter data (including those added with the add_markers API) * note that this also renames the previously mis-named is_image to is_cube (and fixes what was probably a bug where 2D images would be included in dropdowns for moment maps and collapse plugins in cubeviz)
* mosviz tests are failing on GitHub CI, but not locally, because not found in cache. Could just be a different order of callbacks being processed, so this should result in the same thing and force the cache to be populated
* explain layer cycling for mouseover/markers * link to plugin docs and API docs for exporting table from markers plugin
Co-authored-by: P. L. Lim <2090236+pllim@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM now. Thanks for your patience!
Description
This pull request implements a cycler to choose which data to expose in the mouseover coordinates display in the app-level toolbar as well as a "markers" plugin to log this information into a table component.
Plugin Docs
Plugin API Docs
Demo of potential workflow in Imviz (some UI changes since):
This pull request shows an experimental proof-of-concept for how an interactive markers plugin could be implemented 🐱.Screen.Recording.2022-11-18.at.2.18.21.PM.mov
The new markers plugin is capable of logging all the information exposed there, as well as the ability to toggle the choice of layer or disable the spectrum marker entirely (see #1986):
Screen.Recording.2023-02-14.at.9.49.36.AM.mov
TODO:
Potential follow-up efforts: during review, consider if these need to be addressed before merging and which warrant follow-up tickets
.show()
also enable? At the least we should be consistent between this and the "l" event in line profile in Imviz)Closes #1713, closes #1986
Change log entry
CHANGES.rst
? If you want to avoid merge conflicts,list the proposed change log here for review and add to
CHANGES.rst
before merge. If no, maintainershould add a
no-changelog-entry-needed
label.Checklist for package maintainer(s)
This checklist is meant to remind the package maintainer(s) who will review this pull request of some common things to look for. This list is not exhaustive.
trivial
label.