Helper module for working with data from the SGM Beamline
The complete docs are hosted on readthedocs.
Using pip:
pip install sgm-data
or from source:
git clone https://github.com/Canadian-Light-Source/sgmdata.git ./sgmdata
cd sgmdata
python setup.py install
First import the package, and select data to load in.
import sgmdata
data = sgmdata.SGMData(["file1.hdf5", "file2.hdf5", "..."])
This will identify the independent axis, signals and other data within the files listed. The file load list also works with hsds domains.
data = sgmdata.SGMData(["file1.data.sgm-hdf5.lightsource.ca", "..."])
Useful functions:
data.scans #contains a dictionary of the identified data arrays loaded from your file list
data.interpolate(start=270, stop=2000, resolution=0.5) #bin the data in scans dictionary and interpolates missing points
data.mean() #average data with the same sample name, and spec command together.
Working with individual scans:
df = data.scans['FilePrefix'].entry1.interpolate(start=270, stop=2000, resolution=0.1) #bin data for a single scan.
df2 = data.scans['FilePrefix'].entry1.fit_mcas() #perform batch gaussian fitting of interpolated SDD signal
Plotting (with Bokeh):
data.scans['FilePrefix'].entry1.plot()
data.average.plot()