Software


DARTS on-demand computing

The Data Analysis Remote Treatment Service (DARTS) [1] is a remote desktop service that launches virtual machines in the cloud, and displays them in your browser. These machines can be used for e.g. scientific data treatment. A user indicates how many CPU cores and how much memory he wishes, can optionally request a GPU for heavy-duty computations, and can be customized at start-up. The sessions typically start in about 10 seconds, and can be shared with colleagues within their life-time (typically 4 days). Each user can manage all his active sessions (connect, stop, share). This service can be installed and configured within a few minutes (sudo apt install qemu-web-desktop), and it requires minimal maintenance. It can also run on a set of servers without any underlying complex infrastructure. The source code is fully open-source, and relies on very simple elements (Apache web-server and QEMU). Give it a try ! The source code is at https://gitlab.com/soleil-data-treatment/soleil-software-projects/remote-desktop

FabIO

FabIO is a Python library for reading and handling data from 2-D X-ray detectors. FabIO provides a function for reading any image and returning a FabioImage object which contains both metadata (header information) and raw data. All FabioImage objects offer additional methods to extract information about the image and open other detector images from the same data series.

h5glance

H5Glance lets you conveniently explore HDF5 files in the terminal or an HTML interface, including in Jupyter notebooks.

h5nuvola - HDF5 services on the cloud

A web-based equivalent for HDFView which adds additional functionality. It implements Cloud file browsing, data visualisation services, and selective exporting of data. Its modular architecture includes an API facilitating data and metadata exploration through REST services. Back-end tasks are based on the Python framework Flask. HDF5 files are accessed through h5py. Bokeh plotting library handles the visualisation. The front-end uses HTML5, CSS, and JavaScript. h5nuvola is integrated in Elettra’s Virtual Unified Office. It can also be integrated with Jupyter.

H5Web

H5Web is a web-based HDF5 file viewer with NeXus support. It allows for the browsing and inspecting of the hierarchical structure of HDF5 files, as well as visualising their datasets as basic plots (1D, 2D). With H5Web, our intent is to provide synchrotron users with an easy-to-use application and to make open-source components available for other similar web applications. H5Web is built with React, a front-end web development library. It supports the exploration of HDF5 files, requested from a separate back-end for modularity (e.g. HSDS, Jupyter, etc.), and the visualisation of datasets using performant WebGL-based visualisations.

iFit

The iFit library (pronounce [eye-fit]) is a set of methods to load, analyse, plot, fit and optimize models, and export results. iFit is based on Matlab, but can also be launched without Matlab license (stand-alone version).Matlab It does not currently include advanced graphical user interfaces (GUI), and rather focuses on doing the math right. Any text file can be imported straight away, and a set of binary files are supported. Any data dimensionality can be handled, including event based data sets (even though not all methods do work for these). Any model can be assembled for fitting data sets. Last, a number of routines are dedicated to the analyses of S(q,w) and S(alpha,beta). More advanced features include the full automation to compute phonon dispersions in materials, using DFT codes such as ABINIT, ELK, VASP, QuantumEspresso, GPAW and more (Models/sqw_phonons). The software can also compute the neutron TAS resolution function (4D) and fits to experimental data with full resolution convolution (ResLibCal). An interface for McStas and McXtrace is also available to automate and optimize instrument simulations.

nanomax-analysis-utils

A set of Python tools and widgets for handling and visualizing scanning imaging data at the NanoMAX (MAX IV) beamline.

nexdatas

Historically it is the job of the Control Client (CC) to write the data recorded during the experiment (this is true at least for low rate data-sources). However, with the appearance of complex data formats like Nexus the IO code becomes more complex. To cope with this complexity, NexDaTaS has been developed jointly by PNI-HDRI and PaNdata to provide an easy to use interface between the NeXus data integration and the control system. NexDaTaS is realized as a Tango server which allows to store NeXuS Data in H5 files. The server provides storing data from other Tango devices, various databases as well as passed by a user client via JSON strings.

OASYS

OASYS (OrAnge SYnchrotron Suite) is an open-source Graphical Environment for optic simulation software packages used in synchrotron facilities, based on [Orange 3](http://orange.biolab.si/orange3/). It includes SHADOWOUI, a port to the [SHADOW](https://github.com/srio/shadow3) ray-tracing code and XOPPY (the Python version of [XOP](http://www.esrf.eu/Instrumentation/software/data-analysis/xop2.4)

pni-libraries

The PNI libraries are a stack of related C++ libraries developed with the intention to simplify the development of scientific software in the field of Photon-, Neutron, and Ion-scattering.

silx

The silx project aims at providing a collection of Python packages to support the development of data assessment, reduction and analysis applications at synchrotron radiation facilities. The purpose is to deliver reading/writing of different file formats, data reduction routines and a set of Qt widgets to browse and visualize data.

XOP (includes SHADOWVUI)

XOP (X-ray Oriented Programs) is a widget-based driver program used as a common front-end interface for modelling of x-ray sources characteristics of optical devices (mirror, filters, crystals, multilayers, etc.); multipurpose data visualizations and analyses