Working with Igor

What about Waves?

Igor Pro’s wave abstraction proved to be incredibly useful in the analysis of physics data. Unlike some other disciplines, in physics it is import to keep track of the axis coordinates, dimensions, and units for volumetric data, especially in ARPES.

One of the principal difficulties in making fluent and natural data analysis suites for ARPES outside Igor Pro has been finding an adequate replacement for this abstraction, as carrying around data and coordinates separately is far too cumbersome. Thankfully, the Python scientific programming community has built the excellent open source library `xarray <http://xarray.pydata.org/en/stable/>`__, which offers first class support for labelled, unitful volumetric data.

You can learn about how PyARPES uses this library to provide a robust data model for ARPES in the documentation on PyARPES spectra.

Installing the patched igorpy

You’ll need to install a patched copy of igorpy to get Igor support in PyARPES. You can do this with

pip install https://github.com/chstan/igorpy/tarball/712a4c4#egg=igor

Importing Data from Igor

In addition to offering a viable alternative for the Igor wave data model, PyARPES offers limited support for loading a subset of Igor data, notably binary waves and packed experiment files containing a single wave into PyARPES using a patched copy of the `igorpy <https://github.com/chstan/igorpy>`__ library.

An API for directly interfacing with Igor Pro binaries is available in arpes.load_pxt.