-
-
Notifications
You must be signed in to change notification settings - Fork 14
DevNotes
P. L. Lim edited this page Aug 24, 2018
·
2 revisions
Developer notes from Erik Tollerud and Matt Craig.
GUI interactions:
- Right clicking should do ds9-style stretch adjustment. (not the same as
the
stretch
property - here I mean "brightness/contrast" adjustment within the bounds of a given stretch) - The user should be able to pan the view interactively. This can be via
middle clicking on the new center, click-and-drag, or scrolling (i.e., with
touchpad a la what Ginga does). The properties
click_drag
,click_center
, andscroll
can turn on/off these options (as does the "selection" mode). - Zooming - if
scroll_pan
is False (probably the default), zooming is via the scroll wheel. - "Selection mode" - see
select_points
method. - If the user provides an NDData or FITS input (assuming the FITS file has valid WCS), if the cursor is not turned off it shows both the pixel coordinates and the WCS coordinates under the cursor.
Initially, no keyboard shortcuts should be implemented. Eventually there should be a clear mapping from keyboard shortcuts to methods, but until the methods are stabilized, the keyboard shortcuts should be avoided. Other requirements:
- Should be able to hanle ~4k x 4k images without significant performance lagging.
- Should be able to handle ~1000x markers without significant performance degredation.
- Stretch goal: hould be able to handle ~10k x 10k images acceptable
- Extra-stretchy goal: handle very large datasets using a "tiling" approach.
This will presumably require different
load_*
functions, and more cleverness on the JS side.
A few more notes:
- We should be subclassing some kind of
ipywidget
, likelyBox
is the best choice. - If we do that, then
_repr_html_
is unnecessary (and undesirable), because the widget machinery will take care of it. - Really like to avoid middle-click interactions, or at least I would like them to have an alias that works on a trackpad or a two-button mouse.
- I'd like a little more flexibility in adding markers (i.e., not necessarily require the use of a table, though that should be one way to do it).
- I also think we need at least minimal ability to change/set marker color, shape very early on.