Open CJ-Wright opened 7 years ago
This will require:
scipy.signal.argrelmax
?)UC that will deliver this cycle:
@sghose @dooryhee we want this initial version to work automatically (no user input) but we could extract a different dependent variable QOI if you let us know what you prefer.
Later there can be user-requested QOIs but we can't deliver that right now.
Very useful. Peak position … and amplitude ? E
From: Simon Billinge [mailto:notifications@github.com] Sent: Wednesday, May 16, 2018 6:02 PM To: xpdAcq/mission-control Cc: Dooryhee, Eric; Mention Subject: Re: [xpdAcq/mission-control] ENH: plot QOIs (#27)
UC that will deliver this cycle:
@sghosehttps://github.com/sghose @dooryheehttps://github.com/dooryhee we want this initial version to work automatically (no user input) but we could extract a different dependent variable QOI if you let us know what you prefer.
Later there can be user-requested QOIs but we can't deliver that right now.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/xpdAcq/mission-control/issues/27#issuecomment-389679489, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ALyE3cbpsy1VkVVBrvYHrNb_-FNMRlWbks5tzKG_gaJpZM4PK-Fs.
The main issue here is that we need to merge (at least) two document streams, the stream which contains the peak positions from the analysis, and the stream which has the independent variable from the raw data.
I think the merging can be done with ChainDB
from regolith
which is a recursive version of ChainMap
.
(@sbillinge see what I did there)
The merged streams will create a single document stream which can be passed to a plotting callback or even BestEffortCallback
if I can get the hinting correct.
TODO:
streamz
/streamz_ext
(currently they don't support connect)BestEffortCallback
.Here are some more precise UCs, which should go from easier (I hope) but still useful on down.
UC1:
UC1A:
replay_scan
and gives a scan id and all the plot windows open up from that scan, including the QOI scans. This doesn't compete with live data, so would have to be working in a separate process.UC1B
UC2: as UC1 but it plots the peak intensity
UC3 as UC1 but it is the PDF data. Let's try not doing it on Nyquist grid but doing it on a 0.01 gird. for the ranges, we could try harvesting all the peaks in the 1.3-6 A range and again, plot in the same figure if they are within 0.25A of each other
UC4: As UCs 1-4 but peak positions and intensities are extracted by fitting using and automated fitting program. We could code up Ran's peak finding program for example.
UC5: as UC2, but now plotting the PDF peak integrated area.
UC6: as UC5 but plot the PDF peak widths. Plot them all on the same axes as they should be all close in value.
UC5: As UCs 1-4 but after the 4th point, put a polynomial or a spline through the data on the plot
From: Simon Billinge [mailto:notifications@github.com] Sent: Tuesday, May 29, 2018 7:03 AM To: xpdAcq/mission-control Cc: Dooryhee, Eric; Mention Subject: Re: [xpdAcq/mission-control] ENH: plot QOIs (#27)
Here are some more precise UCs, which should go from easier (I hope) but still useful on down.
UC1:
UC1A:
UC1B
UC2: as UC1 but it plots the peak intensity
UC3 as UC1 but it is the PDF data. Let's try not doing it on Nyquist grid but doing it on a 0.01 gird. for the ranges, we could try harvesting all the peaks in the 0-6 A range and again, plot in the same figure if they are within 0.25A of each other
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/xpdAcq/mission-control/issues/27#issuecomment-392737549, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ALyE3eFBawV8DAqaafuZSkFNI1t4_En8ks5t3SrigaJpZM4PK-Fs.
Rerendering the email reply in markdown
Here are some more precise UCs, which should go from easier (I hope) but still useful on down.
UC1:
- user starts a scan
- software automatically finds peak positions of all the peaks in I(Q) in a range up to 6 A-1 using a simple local maximum finder, with data on a finish grid.
that would be really awesome. A remark: people usually “know” their diffraction pattern by the d-spacing values.
- software determines how many plot windows to open
- If peaks are within 0.25 A-1 of each other they are in the same plot window, if they are further apart than this, they are in a separate plot window
- software opens this many plot windows, preferrably arranged in a reasonable grid (but separate windows, not subplots of the same figure).
can’t we track all Q positions in one plot? Or better DeltaQ/Q? or maybe 2-3 plots max if overcrowded.
- software plots the position vs. index of each peak in its window as the stream comes down. Since we don't know the correct range, have the plots autoscale.
This may look bad if the data are coming quickly, but let's try it. YES.
- at the end of the scan, save the QOI data in an easily replottable form (xy column format?)
Same for peak intensity and peak width ?
From: Christopher J. Wright notifications@github.com Sent: Wednesday, July 25, 2018 12:14 PM To: xpdAcq/mission-control mission-control@noreply.github.com Cc: Dooryhee, Eric edooryhee@bnl.gov; Mention mention@noreply.github.com Subject: Re: [xpdAcq/mission-control] ENH: plot QOIs (#27)
Rerendering the email reply in markdown
Here are some more precise UCs, which should go from easier (I hope) but still useful on down.
UC1:
that would be really awesome. A remark: people usually “know” their diffraction pattern by the d-spacing values.
can’t we track all Q positions in one plot? Or better DeltaQ/Q? or maybe 2-3 plots max if overcrowded.
This may look bad if the data are coming quickly, but let's try it. YES.
Same for peak intensity and peak width ? Yes, if possible at all…
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/xpdAcq/mission-control/issues/27#issuecomment-407810883, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ALyE3UXqGLKL-siBC_8lYDUH3lKBXL7vks5uKJlPgaJpZM4PK-Fs.
I will move this issue to the current milestone. I feel that it is better to provide some easy-to-code infrastructure, e. g. a python class or just a script leaving someplace (for example, a method that takes in data and returns results) for beamline scientists to code. Then, they run the script and a server will start running and visualize the stuff they would like to see. This is a more long-term solution and offers people more freedom to see what they want.
@CJ-Wright commented on Sat Sep 02 2017
Now that we have some reduced data in the pipeline we are ready to start plotting some interesting QOIs.
seq_num
vs. Peak positions (I(tth), I(Q), G(r))