Design Principles
Joachim Wuttke, 2006
A data analysis program for neutron scattering should satisfy the following requirements:
-
Open source — so that new modules can be added quickly and algorithms can be independently verified.
-
No commercial licenses — so that the program can be freely given to future users regardless of their institution.
-
Neutron-scattering specifics — reading raw data formats, transforming to S(2θ, ω), interpolating to S(q, ω), etc.
-
Flexible x[-z]-y operations — selective deletion, rebinning, arithmetic, curve fitting, and more, on generic tabular data.
-
Speed — routine operations on large data sets must be fast, which implies coding in C or Fortran for inner loops.
-
Line-oriented input — designed for the expert user: a minimum of typing for a maximum of power.
-
GUI facility — for occasional or novice users.
-
Documentation — tutorial, manual, FAQ.
Frida’s predecessor IDA (now Frida-1) fulfilled requirements 1–6 but failed completely on 7 and 8. Frida-2 was designed to preserve those strengths while making room for a GUI layer and improving documentation.