Repository navigation
Add playback and step selection to the time slider, and extend it to the sky plot and displacement plots. - #441
Merged
Merged
Conversation
wbrannon
approved these changes
Sep 30, 2026
wbrannon
left a comment
Contributor
There was a problem hiding this comment.
Looks good, assuming that the functionality has been tested.
The dispatch checked for a 'plot_skyplot' function, but the sky plot's function is named 'plot_gnss_skyplot', so the pattern always fell through to the default (decimated) call. Both 'skyplot' and 'gnss_skyplot' match the pattern and select it.
Each satellite previously chose its own nearest sample to a 30 second boundary, so a satellite that reacquired mid-interval landed a few seconds away from the rest. The sky plot is a snapshot of the sky at a moment in time, so those samples read as moments of their own holding one or two satellites, which the time slider would then step to.
A satellite is drawn filled where the navigation engine used at least one of its signals at that moment and open where it used none, so that what the solution actually leaned on can be read off the sky directly. The satellite system and coloring buttons now restyle only the marker color rather than replacing the marker outright, so that they keep the shapes instead of dropping them.
A range can now be dragged out anywhere on the track and slid through the log once selected, double-clicking narrows it to a single step in time to step between one moment and the next, and ctrl+scroll zooms the time scale itself so a range can be picked far more precisely than a whole log's worth of pixels allows. The control is no longer specific to the map, so it moves to plotly_time_slider.js and takes the trace attributes it filters, and the curves it charts, as parameters rather than assuming the map's lat/lon and speed.
A play button (or the space bar) runs the displayed range forward at a selectable multiple of real time, so the data can be watched change rather than stepped through by hand. Redraws are rate-limited to a share of the main thread and held while the figure itself is being panned or zoomed, since a figure redrawn mid-drag loses the gesture. The slider greys out while playback is held that way, so a clock ticking on against a stationary map reads as the control waiting rather than as the vehicle having stopped.
The sky plot draws every epoch's satellites on top of one another, so the slider is the only way to see the constellation at a single moment or to watch it change. Its background chart counts the satellites drawn at each epoch and how many of those had a signal in use, and the title says how coarsely the data is decimated, without which stepping through a decimated plot looks like it is skipping most of the log.
These plot position against East/North rather than time, so the whole log is drawn on top of itself with no way to see where the position was at a given moment. The slider covers all three of them: displacement vs. median fixed position, error vs. reference, and position vs. base station. Their hover customdata moves to one row per point, which is the layout the slider can slice, so the hover text reads the point's own row rather than indexing a field-major array.
The background chart ran over the epochs that had a satellite drawn at them, so an epoch that tracked nothing, or nothing with a known az/el, left a hole that read as missing data. It now runs over the epochs the receiver reported, which leaves the chart broken only where the messages themselves stop.
Dragging an edge in, or dragging out a tiny selection, could leave a window narrower than the gap between two steps, which lands between them and displays nothing at all. The arrow keys were no way out either, moving a tenth of a window that small per press. A drag asking for less than one step's worth of time now selects the step under the cursor, the same state a double-click selects, and an arrow key moves at least one step's spacing however narrow the window.
adamshapiro0
force-pushed
the
time-slider
branch
from
September 30, 2026 19:04
53b84a4 to
05dea7e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
New Features
Changes
Fixes
--plot skyplotnot disabling sky plot decimation