Larch is an open-source library and toolkit for processing and analyzing X-ray spectroscopic and scattering data collected at modern synchrotron sources. It also provides a wide selection of tools for organizing complex data sets and processing and analyzing arrays of scientific data.

Larch is written in Python and relies heavily on the many scientific python libraries including numpy, scipy, h5py, and matplotlib. The Larch package provides several GUI applications for visualization and analysis of scientific data sets. For programming and scripting, Larch can also be used as a Python library or from its own Python-like macro language that aims to be very easy to use for novices while also being complete enough for advanced data processing and analysis.

Larch has several related target application areas:

  • XAFS analysis, becoming version 2 of the Ifeffit Package for EXAFS analysis.
  • Visualizing and analyzing micro-X-ray fluorescence and X-ray diffraction maps.
  • Quantitative X-ray fluorescence analysis.
  • Data collection software for synchrotron data.

A key idea is that these otherwise different application areas can share many components and algorithms. Connecting these through a common macro language will strengthen the tools available for all of these areas. In addition, the macro language can provide a very shallow barrier for those interested in scripting the manipulation and analysis of their data, while providing a scripted, reproducible, and extensible analysis that can become the framework upon which new analysis tools can be built.

Currently, Larch provides a complete set of XAFS Analysis tools (replacing all of the Ifeffit package), has some support for visualizing and analyzing XRF and XRD maps, and has many extra tools for X-ray spectral analysis, data handling, and general-purpose data modeling. Larch includes a full scientific Python environment and several applications.

The following table lists the main Larch applications. New and in-development features and application will be explicitly described as “beta”.

Table of Larch Applications and Programs
The applications installed with Larch. Here, GUI = Graphical User Interface, CLI = Command Line Interface, and beta indicates a work in progress.
Application Name GUI / CLI Description
larch CLI simple command-lne interface
larch_gui GUI enhanced command-lne interface with data browser
gse_mapviewer GUI XRF Map Viewer for GSECARS X-ray microprobe data.
xas_viewer GUI Display XANES data, and Pre-edge Peak Fitting.
xrfdisplay GUI Display and analyze XRF Spectra.
Dioptas GUI Display XRD images, calibrate to XRD patterns.
1D XRD Viewer GUI Display and work with 1-D XRD patterns (beta).
2D XRD Viewer GUI Display XRD images (beta)
feff6l CLI Feff 6 EXAFS calculations
feff8l CLI Feff 8 EXAFS calculations - no XANES

Larch is under active and open development, and has support from the U. S. National Science Foundation.