GithubHelp home page GithubHelp logo

neutrons / addie Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 4.0 27.42 MB

ADvanced DIffraction Environment - GUI for Reduction of Neturon Time-of-Flight Total Scattering Diffraction Data

License: GNU General Public License v3.0

Python 99.59% Shell 0.04% Batchfile 0.03% HTML 0.35%
mantid neutron-scattering pair-distance-distribution-function radial-distribution-function time-of-flight

addie's People

Contributors

ahalgh avatar danolds avatar dependabot[bot] avatar granrothge avatar jeanbilheux avatar kedokudo avatar kvieta1990 avatar marshallmcdonnell avatar peterfpeterson avatar quantumsteve avatar rosswhitfield avatar wdzhou avatar wesleyjak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

addie's Issues

autoNOM launched via FastGR different than autoNOM via CLI

When launching autoNOM from command line, job completes without error.

From FastGR (with same command issued for autoNOM), autoNOM produces errors and dies "pre-maturely"

Possible causes to look into:

  1. process workflow is not occurring in the right order (processes launching pre-maturely and crashing)
  2. or some processes are cut short before they complete (still a process workflow issue

Improve performance on trees

  1. add horizontal scroll bar for workspace with long name;
  2. try to synchronize the colour of workspace name in the tree and the plot;

RMCProfile interface - output files from FastGR as input files into RMCProfile

Will give user initial input files to start a reverse Monte Carlo modeling analysis in RMCProfile.

Will need fields in FastGR for:
1) supercell dimensions
2) an input GSAS file
3) an input CIF file
4) additional options - polyhedral constraints, bond distance constraints, etc.

Would probably output a RMC directory with all files inside to launch RMCProfile from.

Calculate G(r) Tab - change the filter check box to a drop-down with different options

This filter is currently applying the Lorch function to modify the S(Q) data. We would like to change this to a drop-down list where you can choose the following:

Options Action
No Modification Do not change S(Q)
Lorch Apply Lorch Function to create new, modified S(Q) workspace

screenshot 7

For future, we can add new modification functions to apply to S(Q) as they become available [ ex. Adaptive Temperature Factor, Modified Lorch Function (Soper), etc. ]

Do not overwrite Qmax upon loading in a new S(Q) for plot

When we load an S(Q) plot, the GUI restores the Qmax along with other options as well. We should keep current state of these variables and instead have a buttong that says something like 'Restore default settings/options'.

It is more common to find a common Qmax and load multiple S(Q) using the same parameters than to restore them and have to re-type them in every time.

Bragg Peaks Tab - Issues with Home button and x-axis using wrong units.

This one is very hard to reproduce but...

First, you load in a *.gsa file:

screenshot from 2016-12-14 06-27-08

Then, zoom in on the plot:

screenshot from 2016-12-14 06-27-17

Change the x-axis units (to say d-spacing) after the plot has zoomed in:

screenshot from 2016-12-14 06-32-02

Finally, pressing the Home button to reset the graph causes the plot to still use the original x-axis scale vs. the newly selected one. So, for our example, the TOF scale is used instead of reverting back to d-spacing scale, shown below:

screenshot from 2016-12-14 06-27-31

tab1_and_tab2_work_08_09

Tab 1

  • Manual naming of folder: provide a directory browsing tool (this will allow the user to check he is at the right place and if the folder does already exist or not)
  • Select Current folder should check for status of bottom run button
  • Run button with IPTS-17210/shared/autoNOM_matt_1 fails ! Investigate why

Tab 2

  • unable to load los.csv from same folder (see above)
  • Clear table should also clear background widgets

Tab 1 & 2

  • Add more info messages to status bar to show what is going on (file loaded, move to folder...)

Matplotlib deprecation warning

Upon startup I get the following deprecation warning. Get rid of the warning if the python on RHEL7 allows it.

/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_qt5agg.py:210: MatplotlibDeprecationWarning:

This class has been deprecated in 1.4 as it has no additional functionality over `NavigationToolbar2QT`.  Please change your code to use `NavigationToolbar2QT` instead

[DB...BAUnderstand]: shell run:  /home/pf9/code/FastGR/build/lib/mantidplotrc.py

Calculate G(r) Tab - Keep S(Q) plots on graph when we load or change graph

When we load one S(Q) data set and then another, the graph only keeps the 2nd, newest plot. We would like the default behavior to be keep all plots on the S(Q) plot and delete what we don't want.

Also, when we change the y-axis [ S(Q), S(Q)-1, Q(S(Q)-1) ], we also lose all plots but the newest plot added. Would like to keep all plots on the graph for this case also.

Basically, we want the same behavior that we have for the G(r) plot right now as the default for S(Q).

Reset 1D lines' color and marker

It is for automatic color and marker. For each resetting and clearing canvas operation, the color/marker index should be reset.

Calculate G(r) - The min/max causes an error when switching between different modes s [S(Q) <-> S(Q)-1 <-> Q(S(Q)-1)]

If you plot the Min/Max in one mode, switch to a different mode, and then press the Show Min/Max again, an error will occur.

I think this is linked to the fact that a mode change will clear all the lines from the plot ( in the SofQView Class, the reset() calls the inherited clear_all_lines from the MplGraphicsView Class. This deletes the red Min/Max indicator lines on the plot. )

The real issue occurs if we press Show Min/Max in one mode and then switch to a new mode and press the Show Min/Max again. The issue is that the Show Min/Max is a toggle button. When we press it the first time, it says “Okay I’ll show you the lines.” Then, when we switched to the new mode, all the lines were deleted, including the Min/Max indicators. The new plot just has the new mode line plotted (say the Q[SQ-1]) and nothing else. When we go and press the Show Min/Max again, the toggle button says “Okay, I’ll will now delete the lines for you since I was just showing them before.” The toggle_boundary function in the SofQView class has a remove_indicator(id) function that tries to delete the already deleted indicator lines. This causes the above error (NoneType because the line does not exist).

I made a quick hack that can fix this I think. It requires the following two changes:

  1. In mplgraphicsview.py – in the remove_plot_1d() function, add an if-statement that says:

    if self._lineDict[plot_key] is not None:

right after the if plot_key in self._lineDict: Push the 7 lines after that under this if-statement. This will fix the double-deletion issue.

  1. In graphicsviewlib.py – in the reset() function, add the line self._showBoundary = False. This will reset the Show Min/Max behavior when we switch to a different mode.

New Tab: Journal View - gives view of scan information

Want to see the scan information:
IPTS, start time, stop time, proton charge, user, title of run, etc.

Also, want to plot meta-data from run:
sample temperature, sample environment target temperature, proton charge, etc.

Will probably be tab between autoNOM and Post-Processing.

Improvements for GSAS and SofQ tabs early July

autoNOM

  • Allow user to select folder when starting the application and autopopulate all the fields
  • Make program go to shared when starting program (Matt: I can easily go to /SNS/NOM/shared but I won’t be able to guess which IPTS if you want me to go inside an IPTS/shared folder)

NDabs

  • New file format produced by step1 cannot be parsed by Dan’s code
  • In IPTS_17210/shared/autoNOM_NeXus is the new format
  • In IPTS_17210/shared/autoNOM_powder is the old format
  • Allow to copy/paste contain of cells
  • Add a clear table button (above table or right click inside table)

Load Ascii

  • Display contain of an ascii file

GSAS tab (Bragg Peaks)

  • Give option to clear tree contains
  • All buttons should recalculate/replot plots
  • Implement deletion of individual GSAS workspace from GSAS tree;
  • Add a reset button to clear all the GSAS workspaces and canvas;
  • Add a file filter (.gsa) to GSAS file dialog;
  • Enable FastGR to respond the change the selection of multi-GSAS and multi-bank
  • Move 'Combine to GSAS' button to an item in pop-up menu of a GSAS file's main node;

SofQ tab (Calculate G(R))

  • Need to provide the option to plot multi S(Q) and G(R)
  • Again, some buttons do not refresh the main plot
  • Make sure S(Q) is always plot at the top, sometimes it does show up at the bottom
  • Provide option to remove workspace from tree view on the right (right click)
  • Save GR button does not work
  • Below Generate GR, we need to be able to specify which algorithm from Mantid to use in the calculation
  • Plots do not have any legend
  • Labels in G(R) plot are missing
  • Implement deletion of individual workspace from SofQ-GofR tree;
  • Implement deletion of multiple workspaces from main node of SofQ-GofR tree;
  • Add a reset button to clear all the workspaces and canvas;
  • Change clear canvas buttons' names to 'Clear G(R) Canvas' and 'Clear S(Q) Canvas';
  • For g(r), its workspace's name should start with g(r);
  • Add button 'Load G(R)';

Extra

  • Implement a pop-up window to show data in table
  • Enable FastGR to read .getN file;

Default directories for GSAS, S(Q) and G(r) and etc.

This issue contains some lightweight improvements on visualization tabs.

  1. If the file system structure is like ..../ABC/GSAS/, .../ABC/gofr/, and .../ABC/SofQ, then FastGR should choose the right default directory for loading GSAS, SofQ or GofR;
  2. Modify the legend set up window's 'Quit' button to 'Cancel' button;
  3. Make the default mark for all plots to be None;
  4. Add the IPython generated SofQ or GofR to tree for plotting.

Data Reduction - use Mantid to perform data reduction and diagnostics

Using SNSPowderReduction algorithm structure, create a data reduction workflow.

Would like the following:

  1. Load from Nexus event file or load saved cache files
  2. Add event filters to split up the run based on:
    i) time
    ii) temperature
    iii) proton charge
  3. Re-arrange absorption correction order so we can compute corrected, effective background.

Scaling issue

Implement buttons to do auto scaling:

  1. GSAS tab:
    1.1 change unit and set the range of data
    1.2 keep the currently selected data
  2. S(Q) canvas: auto rescale with new S(Q)
  3. G(r) : change color or style of all lines
    example: over plot a few G(r)
  4. remove legend

Post-Processing - run selection field by title matching

Want to add a text field to be able to select runs based on title matching. We will use this to strip the equilibration runs by have 'equil' be the default for the text field. This will pattern match all the titles that contain the text in the field. Then, we can remove rows based on the selection.

Also, would like to add an 'invert selection' option so we can select all the runs that do not have a given pattern in their title.

Implement deletion actions and etc.

Main

  • Close application from menu

GSAS tab (Bragg Peaks)

  • Bug fix: in 'multiple GSS' mode, loading a new GSS file results in a blank canvas
  • Implement deletion of individual GSAS workspace from GSAS tree;

SofQ tab (Calculate G(R))

  • Implement deletion of individual workspace from SofQ-GofR tree;
  • Implement deletion of multiple workspaces from main node of SofQ-GofR tree;
  • Implement removing one line, G(r) or S(q), from canvas;
  • The loaded G(r) from file does not appear in any tree node;

Extra

  • Implement a pop-up window to show data in table
  • Enable FastGR to read .getN file;

Post-Processing Tab - update table without overwritting changes

Would like to have the table update based on the los.csv without deleting or overwriting any changes made to the table. This will require a look up of the runs that are already located in the table, the runs located in the los.csv, and then upon comparing to see what new runs the los.csv contains, update the table accordingly with only the new runs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.