pyapp-kit / ndv

Simple, fast-loading, n-dimensional array viewer with minimal dependencies.
BSD 3-Clause "New" or "Revised" License
40 stars 7 forks source link

todo: allow user-control over slice-reduction mechanism #12

Open tlambert03 opened 5 months ago

tlambert03 commented 5 months ago

double clicking on a slider label converts it to a slice slider:

https://github.com/pyapp-kit/ndv/assets/1609449/98380511-ba0e-4e29-adb1-2d74a7853c04

currently, the hard-coded behavior is to reduce extra remaining dimensions via max().
https://github.com/pyapp-kit/ndv/blob/2e2b53f76c3ac10eff37a1497122dd024a3d9f0d/src/ndv/viewer/_viewer.py#L474

this should be configurable (on a per-axis basis?)

alisterburt commented 5 months ago

this should be configurable (on a per-axis basis?)

definitely, e.g. average over time and max/min projection of the resulting 3D makes total sense to me

how to support from the UI is a good question... context menu on the dims slider?

tlambert03 commented 5 months ago

i like that idea. another thing that needs configurability is which axes are visualized. (rather than just a roll function). and wherever that is shown (which might be a popup on a right click of the 2d/3d button) could also contain the configuration for reduced dimensions. However, I think i prefer your proposal: having the reduction mechanism right next to the slice slider

vaguely related concept: it could be a neat feature for even the "visible" axes (x,y,z) to have sliders that would essentially just allow cropping. like this:

https://github.com/pyapp-kit/ndv/assets/1609449/597e6841-f008-4d75-9dca-e8bd3c63fab3

normally, those sliders would be hidden (indicating you want the full extent of the visible axes), but some feature could show them.

alisterburt commented 5 months ago

are you visualising the last two/three dimensions by default?

My fav idea for specifying visualized dims would be something like this

image
tlambert03 commented 5 months ago

Oooo nice