The PyMAD project and IPython

A brief description, by Frédéric Mantegazza

At the french research institutes CEA-Grenoble (Commissariat à l'Energie Atomique de Grenoble), and ILL (Institut Laue Langevin), which is the biggest neutrons reactor for scientific experiments, we use big instruments, called spectrometers. These instruments have several motors, encoders and I/O to move around the neutrons beam, and to set the diffraction direction. All these motors are controled by a python software called PyMAD, which is responsible for transforming energy, wave length, and all physical values into motors positions, power supplies values and

PyMAD is mainly console-oriented. Even if there are some GUI to configure or watch spectrometer state, all commands are send through a command-line interpreter. This is much more efficient, and gives the ability to the user to write batch files to send thousands commands, and so have the
spectrometer works all the night or week-end without interaction.

This console is based on IPython, which already gives all the features we need:
The last point is very important, as users control the spectrometer directly through python objects (magic commands are only shortcuts on this objects). Users can also build complex commands to prototype some unsuported actions, or to automatically take decisions according to the previous commands results.

So, IPython is really the heart of the client-side PyMAD project, and is the end-user visible part. It is so powerfull, that we would be crazy to choose another solution!

Back to the main IPython page.