-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
The origin of pysat was a GUI written in IDL. Written specifically for C/NOFS, it worked well with IVM, adding VEFI was tough, and it wasn't going to scale for further. Thus I started down the path that lead to here. Adding trigger callbacks at then end of the main load function gets us 90% of the way to a GUI, fully contained within the Instrument object. The graphical interface is missing, but a Trigger Callback enables plotting that automatically updates with a load call.
Plan:
- Create Trigger class that subclasses Custom. First change is the add function is replaced with a partial call to existing add function with kind set to 'pass'.
- Trigger functions must be generators
- Only accept the actual generator, not the function that creates the generator
- At the end of load, invoke the _apply_all method
- To get an equivalent trigger on orbits, put trigger call in the to be created output function
- Need a way for the orbit call to disable the trigger on main load in favor of orbit (can do this in orbit print function, set a flag or something)
- Instruments will be required to have a summary plot routine designed for the Trigger
- pysat.Instrument needs a summary_plot routine to allow user to invoke the process from terminal, as well as a flag upon instantiation to do the same call
Feature:
- Include summary_plot functions with each instrument
- The function returns a generator, creates the plot window, axes, etc, then in a loop clears the current data, plots new data, then returns a generator
- This generator is hooked up to the Instrument trigger
- Every time data is loaded into Instrument, the plot generator is triggered
- summary plot clears the axes, then plots the newly loaded data
- works at the terminal
GUI Feature:
- All GUI foundation is in the Instrument object
- Create the GUI with buttons that map to Instrument calls
- The main feature is the self updating window into the data, but relies upon all the data handling within the Instrument object
- Users could provide their own plotting routine for their own custom view
- Users could hook in custom routines, to view their own custom parameters
Metadata
Metadata
Assignees
Labels
No labels