eo-plotsdisplays's People
eo-plotsdisplays's Issues
investigate dev sensor definition for Corner Rafts for heatmap use
It appears the sensor names are different in dev than prod. There is only one CR-0002 EO run and it's in dev. Even if the run is only used for the emulation config setting up a user module, the heatmap code is unhappy when checking sensor names. Run 6633D can be used for debugging.
investigate running the heatmap in a Jupyter environment
DM has provided examples:
https://github.com/lsst-sqre/notebook-demo/blob/master/bokeh-WIP/linked_plots.py
Error handling: runs that do not include all EO tests
Add handling of the case where the run selected does not include all EO tests. Use this as practice/brainstorming for other error handling.
Add Corner Rafts
add user control of RangeSlider limits
There are cases where being able to reproducibly set the limits, and also to cut out guard values (eg setting bad channels to -1).
This comes up in two places - manually with perhaps 3 buttons - to set min, max and reset to default; and allow the user module hook function to set them. Presumably the reset button would have no effect on the user module use case, since the module would reset them.
Install at SLAC
(And decide where.)
Fix Long Raft Names
Use width parameter in DataTable to ensure that column width accommodates all raft names.
Changes to Reading in Emulation Config File
Currently you can only read in the emulation config file from the CWD.
Enable programmatically creating a static png from the heatmap for each FP test quantity
It is desired to have canned images of the heatmap. So we need to be able to script creation of a png from the app for each test. Presumably this can be done via the command line arguments. We'll have to see if we can run the main outside bokeh serve.
odd heatmap slider lower limit behaviour
Bo reports that if there are negative values in the test list (he is in the user module case) and he moves the lower range slider limit above -1 (that's his smallest value), the limit snaps to zero. But he says he has other values between (-1,0). This affects the histogram most visually.
Note that the histogram limits are the range limits, since they are applied to the test list. np.histogram then finds the bin limits dynamically.
Odd heatmap slider upper limit behaviour
Bo reports:
"oh, another issue. for this example, my data is in [-1 25]
I set the min and max to [23 24]
The slider shows up with a full range of [-1 24], and the min and max at correct positions: [23 24].
after the startup, I can drag the min to the left, but cannot drag the max to the right.."
The slider has limits on both max slider value and current range. Maybe these aren't being set right.
investigate loading jupyter notebooks as user module
It seems that it can be done:
https://jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/Importing%20Notebooks.html
User Manual
To go into confluence but possibly include a link to the page in this repo.
Update get_EO_analysis_results & heatmap etc for newly defined BOT results schema
The BOT results schema is now defined:
and a run in dev with fake data exists:
Now we can update the results fetching and heatmap code accordingly.
Try out bokeh 1.0
A major release of bokeh is now on the street. Should try it sometime.
Clean up serveRenderFP to allow use of command line arguments
The idea would be to clean up the main so that users don't need to edit it. They can get their way via CL arguments.
"If you would like to pass command line arguments to Bokeh applications, you can pass the --args option as the LAST option on the command line:
bokeh serve app_script.py myapp.py --args foo bar --baz
Everything that follows --args will be included in sys.argv when the application runs. In this case, when myapp.py executes, the contents of sys.argv will be ['myapp.py', 'foo', 'bar', '--baz'], consistent with standard Python expectations for sys.argv."
Hopefully this will work with pareargs!
Check Amp Ordering in HeatMap Geometry
(it looks inverted . ie matches LCA-13381, which is inverted wrt heatmap currently)
Dropdown for User Hook
Create dropdown for enabling, disabling and setting the user hook. Look into how the user code could be refreshed without restarting the app (if possible!)
List of remnant feature requests after first big commit to master
A list of potential features still needed in the heatmap tool:
-
user manual
-
add corner rafts
-
check ordering of amps in the heatmap geometry (it looks inverted . ie matches LCA-13381, which is inverted wrt heatmap currently)
-
check the view direction - the heatmap is currently the mirror image of LCA-13381; but it matches the figure Aaron showed in the I&T bootcamp meeting
-
sort out brushing of heatmap with the test quantity histogram. Would be great if np.digitize allowed simple brushing via self.source's ColumnDataSource.
-
create dropdown for enabling, disabling and setting the user hook. Look into how the user code could be refreshed without restarting the app (if possible!)
-
add conditional menu to select raft or CCD in single raft or CCD modes to not force users to go back to full FP mode to select a different device. The menus should only appear when those modes are set.
-
figure out how to read the emulation config file from any location (ie not just CWD).
-
can we cache the FP version of the ColumnDataSource upon return from other modes? It's slow to build from scratch. Though I suspect we have to eat that time every time we update the test quantity, so may not be a big win.
-
try out bokeh server on SLAC JupyterLab
-
install at SLAC (decide where)
-
include output pngs of plots in eotest format
-
make sure we can use runs that do not include all tests
-
plotGoodRaftRuns: use width parameter in DataTable to ensure that column width accommodates all raft names
-
plotGoodRaftRuns: set up cron job to update pages hosted at SLAC in group (not personal) web space
-
set up meeting with Aaron to review feature requests and path forward
fix reload of user module
The current implementation of the user module text box uses on_change to trigger the callback. One can't just hit return to activate the button. I've posted a query to the bokeh forum, but it may be we need a dedicated reload button.
single ccd mode broken again
It looks like the raft_list is not getting set in single_ccd_mode.
add heatmap button to clear cache of tests
If the heatmap does end up running in IR2, it could be long running, and memory use could pile up as each run's tests are cached. Add a button to reset the cache?
Create utility to make report-ready plots for full focal plane BOT testing
I have committed a first shot at a class to take a run number, test name and output file spec and write a png file with the full focal plane-wide plot of the EO test result. It uses get_EO_analysis_results to get the EO test values. The script is plotEOtest_results.py currently on the reports_plots branch of this repo.
It will need an overplot of the test spec (from LCA-57-A; Example is just for total_noise) and will need some nicer formatting to block off raft and sensor slots, as well as tick numbering on the x-axis.
It could be we want to always have a full 9-raft wide plot and pad the empty slots with zeros.
The plot is from the simulated 2-raft run in dev, 6384D.
add single CCD option to heatmap solo raft mode
This option would complete the drill-down capability - be able to view single CCDs while in solo raft mode.
Revive button to set/reload the user hook
Add a button to either set the user hook module, or allow the user to reload it (eg after they make changes to it). We should also rethink the arguments to the hook to ensure the user has useful information to work from.
update tests pulldown button to show current test
Other buttons show their state. We could have the tests button do as well to show the currently active test.
Improve Readability of GoodRuns Plots
Improve the readability of good runs plots, check with the output format of eotest.
create a heatmap startup mode
Think about allowing firing up the heatmap with no initial run selected. Just show Exit, links and Run buttons. Could be done by adding a startup boolean and checking on entry to render if the run number is None. Then set the interactors list as above and flip the startup flag.
allow user to define test menu items for their module
Bo has a use case where his m5 optics studies produce 6 quantities. He'd like to be able to set them. Maybe we can add an optional user module pull down menu that they can set the list of. Or add to the existing menu.
SLAC Jupyter Lab
Try out bokeh server on SLAC jupyter lab.
Handling dev and prod database access?
Since I&T has some runs in the dev eTraveler database, there will be some temptation to apply the heatmap there. Worse, there could be a mix of dev and prod runs in emulation mode.
At present the tools are set up for prod use. There is no fundamental problem, but invocation of every api tool would have to be switchable between dev and prod.
Optimize button locations
We're getting a fair number of buttons. Take a look at improving the position, including a vertical column on the left - hopefully there is a way to set the button width.
Add conditional menu to select raft and CCD
Add conditional menu to select raft or CCD in single raft or CCD modes to not force users to go back to full FP mode to select a different device. The menus should only appear when those modes are set.
Update for Corner Raft
Steps along the way to supporting CR tests can go here. datacat-utilities has been updated to handle CR results.
Sort out Brushing
Change the brushing feature for the heatmap and test quantity histogram to a callback that adjusts the values highlighted between the two plots in response to user input such as a click.
Check Timing of Caching FP Version
Check if it is possible/ saves time to cache the FP version of the ColumnDataSource upon return from other modes. It's slow to build from scratch but we have to eat that time every time we update the test quantity, so may not be a big win.
Setup Cron Job to Update Raft Good Run Plots Pages at SLAC
Set up cron job to update pages hosted at SLAC in group (not personal) web space.
Look at refactoring serveRenderFP to move callouts into renderFoalPlane
It will be a lot tidier if we can move the callouts into the renderFocalPlane app. The bokeh example gm_plot that sqre is playing with shows this. This might make it easier to interface to Jupyter notebooks.
https://github.com/lsst-sqre/notebook-demo/blob/master/bokeh-WIP/gapminder.ipynb
Change Line Thickness
It was suggested that it would be easier to see the colors on the heatmap if the lines delineating the amplifiers were thinner. Additionally it would be good to have a different ( thicker ) line to show the CCD / Raft boundaries.
Suppress emulation buttons in solo raft mode
The emulation buttons make no sense (and I think do bad things) if executed in Solo Raft mode. When we are in Solo Raft mode, we should suppress the 2 emulation buttons.
add new PTC test values to the test pull down menu
Seth just put in a PR for datacat-utilities to add new PTC test values. These should be reflected in the heatmap's pull down menu for tests.
Change the View Direction
The heatmap is currently the mirror image of LCA-13381 and needs to be changed to match this document. For both this item and issue #6 can adjust the arrangement by swapping the order of the items (rafts, amps), no changes to coordinates needed.
Testing and Documentation of Bokeh Plots in Non-Server Mode
Ref: JIRA Issue LSSTTD-1342
Need to test and document how to produce Bokeh plots without launching Bokeh i.e. in a batch mode. This is a prerequisite to producing the pngs as an analysis step in the EO traveler.
Output PlotGoodRaftRun PNGs to match EO report formats
Output pngs of plots of good runs.
fix dev/prod hardware description kludge for heatmap
The full focal plane geometry never got updated in dev for runs 2 and 3 (ie post 2-ETU running). I kludged it by picking a prod run in run 3. If one asks for an earlier run, it's wrong... drat.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.