This project is an opportunity to enhance a neutron data analysis program used by hundreds of academic and industrial researchers around the world! New mathematical subroutines have been written (so no heavy maths is involved!); you will be responsible creating and integrating GUIs to drive them, and for testing the end product. You will work as part of an international team of software developers, primarily based in the UK, US and EU. This is your chance to make a worthwhile and lasting contribution to neutron and X-ray data analysis!
Traditionally, SAS instruments record their data in ‘reciprocal space’ as a function of a variable called the scattering vector; so small values of the scattering vector relate to longer length scales in the sample (typically of the order of nanometres), and vice versa. However, physics places a limit on how small a value of the scattering vector conventional SAS instruments can measure. To overcome this, ISIS, working in collaboration with a team from TU Delft in Holland, has developed an exciting new type of SAS instrument that records data in ‘real space’ but to much longer length scales (microns). In other words, this is a neutron scattering instrument that can probe the same sorts of length scale that hitherto were only accessible by light scattering instruments! This new technique – Spin-Echo SANS - has necessitated new algorithms for analysing its data, and these now need to be provided with user-friendly GUIs that robustly integrate into the rest of the SasView program.
- Good understanding of object-oriented programming
- Good experience of programming in Python
- Experience of using collaborative code development environments (eg, Git, TRAC, etc)
- Experience of using PyQt to build GUIs
- Some experience of using WxPython to build GUIs
- Some familiarity with Matplotlib
- Experience of adding content to a Wiki
This is a genuine opportunity to experience working on a high-profile, multi-national (UK, US, EU), collaborative software development project with all that entails (teleconferences, code branching, code reviews, unit testing, presentations, etc).