This sprint will start with a prototype program developed during the project inception phase and make this usable on Sectors 33 & 34. This prototype code read in data from spec files collected at 33BM, presented these for display in 3D so that the user could see which part of Q space the collected data covered. It also allowed selection of datasets for inclusion in processing the reciprocal space map. Selection of data was done by either selecting a subset of Q-space by specifying min/max qx, qy, qz values. It also allowed selection/exclusion of images within scans individually or by scan.
This sprint will provide for reading data from either sector 33 or 34 using existing files where they exist or adding files to include missing configuration information.
Abstract reader to allow different sources for 33&34
- Design abstract base for reader
- Design abstraction of user interface
- Document where/how needed parameters for Sector 33 will be stored
- Document where/how needed parameters for Sector 34 will be stored
- Create reader for Sector 33
- Create reader for Sector 34
Separate data from ScanForm
- Replace load method with set reader and get data from reader
Separate processing from ScanForm
Move processing to separate class & grab data from reader/ScanForm
Adapt loading to handle other geometries
- Remove dependance on 33 BM angles
Adapt analysis to handle other instrument geometries
- Remove Sector 33-BM Angles and instrument parameters.
Early in the sprint it was discovered that trying to process data from both Sector 33 & 34 was not reasonable in the allotted time. When the sprint started we assumed that the data for sector 34 would be processed by xrayutilities as we had been doing for sector 33. It turns out that the data on 34 is not as compatible with xrayutilities as it stands today. This data is collected as a scan of energy (which is also done of 33 sometimes) and the detectors are mounted in rigid, fixed locations instead of being mounted on stages and scanned. Xrayutilities is currently geared for the case that the sample and detector positions are scanned.
Work done in this sprint included:
- Move code to load data into a separate object structure
- Move processing into a separate object structure
- Set up parameter files for the instrument and detector
- Move dependence of Sector 33’s angles into the instrument configuration file
- Move dependence of Sector 33’s detector into the detector configuration file
- Remove need for a modification that Christian made to pyspec.
- Provide some validation of user inputs
- Do some checking that files exist. Make sure that XML files at least have some basics of what they should have.
- Make sure float entries can only take floats.
- Allow the user to specify the output file
- Change input of spec file. This was separated path and file name. Now specify the file in extract the name to find the data.
- Introduce a coordinate transform to deal with the case of the pole figure. This helped with calculating the data extent and mapping.
- Add a list to the GUI so that the user can reduce the amount of data to read if this is known ahead of time.
- Add other user input to the input file.