xylib is a portable C++ library for reading files that contain x-y data from spectroscopy, powder diffraction or other experimental methods.
· plain text (CSV or TSV or space-separated-values)
· Crystallographic Information File for Powder Diffraction (pdCIF)
· Siemens/Bruker UXD
· Siemens/Bruker RAW v1/2/3
· Philips UDF
· Philips RD (raw scan) V3
· Rigaku DAT
· Sietronics Sieray CPI
· DBWS/DMPLOT data file
· Canberra MCA (only one of Canberra MCA formats?)
· XFIT/Koalariet XDD
· RIET7/LHPM/CSRIET/ILL_D1A5/PSI_DMC DAT
· Vamas ISO14976 (only experiment modes: SEM or MAPSV or MAPSVDP are supported; only REGULAR scan_mode is supported)
· Princeton Instruments WinSpec SPE (only 1-D data is supported)
To build xylib you need:
· any modern C++ compiler
· Boost libraries (only at compile time).
Linux, FreeBSD, etc: the library can be compiled in a standard ./configure && make way. If you downloaded the source from svn, you need to run autoreconf -i before.
How to add a new format
We will be glad to include support for (almost) any format. You may contact us before you start working.
Each .cpp/.h file pair in xylib/ (excluding xylib.* and util.*) corresponds to one supported filetype.
Each of these .cpp files contains basic info about the format in constructor of struct FormatInfo. Each header files includes a note what the implementation is based on (i.e. what documentation was available to developers). In some cases the format is described in .cpp file.
To add a new filetype:
· go to xylib/ subdirectory
· write new_format.cpp and .h files
· #include new_format.h in xylib.cpp
· add an entry to formats array in xylib.cpp
· add new_format.cpp and .h files to Makefile.am
What's New in This Release: [ read full changelog ]
· Added XPS format from Ron Unwin's Spectra program (Matthias Richter)
· Fixed bug in reading energy calibration from Canberra formats