Installing H5Analysis and Jupyter Notebook
1. Install Python Manager for Windows/Mac from here: https://conda-forge.org/download/
-
Open a “Miniforge Prompt” and create new environment:
conda create --name py310 python=3.10.14
-
Select the newly created environment:
conda activate py310
-
Install h5analysis with the following command:
pip install h5analysis
Upgrading to new versions, add the upgrade flag
pip install h5analysis --upgrade
-
Navigate to your data directory and start Jupyter Notebook
cd C:\Users\username\Documents
jupyter notebook
-
Select a new Python 3 (ipykernel)
-
Copy, paste and execute notebook cell to load REIXS definitions. (shift+enter executes the cell)
#IMPORT REIXS DEFINITIONS
from h5analysis.beamlines.REIXS import *
Further information on plotting data in cells is give below.
Detailed documentation for base classes and API.
Detailed Code and Examples
Logbook and Metadata
→ Loads REIXS Experiment Logbook
→ Loads REIXS Metadata
General Data Plotting
→ Loads REIXS Data vs Point Number
→ Loads REIXS 1D or 1D Reduced Data
→ Loads REIXS 2D or 2D Reduced Data
→ Loads REIXS Mesh Data
→ Loads REIXS 3D Image Stack
Basic Spectroscopy Plotting
→ Loads XES Spectra with Simple ROIs
→ Loads XAS Spectra with Simple ROIs
→ Loads XEOL Spectra with Simple ROIs
→ Loads XES/XAS Map
→ Loads XEOL/XAS Map
Complex Spectroscopy Plotting
→ Loads XAS Spectra with Complex ROIs
→ Loads XES Spectra on Energy Loss Scale
→ Loads XES/XAS Map with Energy Loss Scale
Data Stream Aliases
RSXS Detectors
## SCA ALIASES ##
## Beamline Energy
RSXS.sca('Energy','Data/beam')
## Total Electron Yield
RSXS.sca('TEY','Data/tey')
## Mesh Current
RSXS.sca('I0','Data/i0')
## Total Electron Yield Normalized
RSXS.sca('TEY_N','Data/tey', norm_by = 'Data/i0')
## MCA DETECTORS ##
## XRF SDD (Fixed Angle)
RSXS.mca('SDDX','Data/sdd_xrf_mca','Data/sdd_xrf_scale',None)
## 2Theta Arm SDD
RSXS.mca('SDDA','Data/sdd_arm_mca','Data/sdd_arm_scale',None)
## XRF SDD (Fixed Angle) Normalized
RSXS.mca('SDDX_N','Data/sdd_xrf_mca','Data/sdd_xrf_scale','Data/i0')
## 2Theta Arm SDD Normalized
RSXS.mca('SDDA_N','Data/sdd_arm_mca','Data/sdd_arm_scale','Data/i0')
## IMAGE DETECTORS ##
## MCP Image
RSXS.stack('mcpIMG','Data/mcp_a_img','Data/mcp_tth_scale','Data/mcp_detz_scale',None)
## MCP Image w/oScales
RSXS.stack('mcpIMG_N','Data/mcp_a_img',None,None,None)
RSXS Logbook
## LOG BOOK ENTRIES FOR RSXS ES ##
rsxs_log['Command'] = 'command'
rsxs_log['Sample'] = 'Endstation/Sample/Name'
rsxs_log['Comments'] = ('comment_01','comment_02','comment_03','comment_04','comment_05',
'comment_06','comment_07','comment_08','comment_09','comment_10')
rsxs_log['X'] = ['Endstation/Motors/x', 3]
rsxs_log['Y'] = ['Endstation/Motors/y', 3]
rsxs_log['Z'] = ['Endstation/Motors/z', 3]
rsxs_log['Theta'] = ['Endstation/Motors/th', 3]
rsxs_log['2Theta'] = ['Endstation/Motors/tth', 3]
rsxs_log['Chi'] = ['Endstation/Motors/chi',3]
rsxs_log['Phi'] = ['Endstation/Motors/phi',3]
rsxs_log['Detz'] = ['Endstation/Motors/detz',3]
rsxs_log['H'] = ['Endstation/Motors/H', 4]
rsxs_log['K'] = ['Endstation/Motors/K', 4]
rsxs_log['L'] = ['Endstation/Motors/L', 4]
rsxs_log['Temperature'] = ['Endstation/Counters/t_k', 2]
rsxs_log['Energy'] = ['Beamline/Monochromator/beam',2]
rsxs_log['Exit Slit'] = ['Beamline/Apertures/Exit_Slit/vert_gap',1]
rsxs_log['Flux'] = 'Beamline/flux'
rsxs_log['Dwell'] = ['Endstation/Counters/sec', 1]
rsxs_log['Mirror/Grating'] = ('/Beamline/Monochromator/grating','/Beamline/Monochromator/mirror')
rsxs_log['Polar/Harmonic'] = ('Beamline/Source/EPU/polarization','Beamline/Source/EPU/harmonic')
rsxs_log['Status'] = 'status'
rsxs_log['Date'] = 'date'
RIXS Detectors
## SCA ALIASES ##
RIXS.sca('Energy','Data/beam')
RIXS.sca('TEY','Data/tey')
RIXS.sca('I0','Data/i0')
RIXS.sca('TEY_N','Data/tey', norm_by = 'Data/i0')
## MCA DETECTORS ##
## SDD A, Inline with XES
RIXS.mca('SDDA','Data/sdd_a_mca','Data/sdd_a_scale',None)
## SDD A, Inline with XES, No Scale
RIXS.mca('SDDA_NOSCALE','Data/sdd_a_mca',None,None)
## SDD A, Inline with XES, Normalized
RIXS.mca('SDDA_N','Data/sdd_a_mca','Data/sdd_a_scale',norm_by = 'Data/i0')
## SDD B, Inline with VLS
RIXS.mca('SDDB','Data/sdd_b_mca','Data/sdd_b_scale',None)
## SDD B, Inline with VLS, No Scale
RIXS.mca('SDDB_NOSCALE','Data/sdd_b_mca',None,None)
## SDD B, Inline with VLS, Normalized
RIXS.mca('SDDB_N','Data/sdd_b_mca','Data/sdd_b_scale',norm_by = 'Data/i0')
## Optical Spectrometer
RIXS.mca('XEOL','Data/xeol_a_mca_norm','Data/xeol_a_scale',None)
## Optical Spectrometer, Normalized
RIXS.mca('XEOL_N','Data/xeol_a_mca_norm','Data/xeol_a_scale',norm_by = 'Data/i0')
## XES Spectrometer
RIXS.mca('XES','Data/mcp_xes_mca','Data/mcp_xes_scale',None)
## XES Spectrometer, Normalized
RIXS.mca('XES_N','Data/mcp_xes_mca','Data/mcp_xes_scale',norm_by = 'Data/i0')
## IMAGE DETECTORS ##
## MCP A Image
RIXS.stack('mcpIMG_A','Data/mcp_a_img',None,None,None)
## MCP B Image
RIXS.stack('mcpIMG_B','Data/mcp_b_img',None,None,None)
RIXS Logbook
#LOGBOOK ENTRIES FOR RIXS ES ##
rixs_log['Command'] = 'command'
rixs_log['Sample'] = 'Endstation/Sample/Name'
rixs_log['Comments'] = ('comment_01','comment_02','comment_03','comment_04','comment_05',
'comment_06','comment_07','comment_08','comment_09','comment_10')
rixs_log['Horz (ssh)'] = ['Endstation/Motors/ssh',2]
rixs_log['Vert (ssv)'] = ['Endstation/Motors/ssv',2]
rixs_log['Depth (ssd)'] = ['Endstation/Motors/ssd',2]
rixs_log['Angle (ssa)'] = ['Endstation/Motors/ssa',1]
rixs_log['Temperature'] = ['Endstation/Counters/temp', 1]
rixs_log['Energy'] = ['Beamline/Monochromator/beam',2]
rixs_log['Exit Slit'] = ['Beamline/Apertures/Exit_Slit/vert_gap',1]
rixs_log['Flux'] = 'Beamline/flux'
rixs_log['Dwell'] = ['Endstation/Counters/sec', 1]
rixs_log['Mirror/Grating'] = ('/Beamline/Monochromator/grating','/Beamline/Monochromator/mirror')
rixs_log['Polar/Harmonic'] = ('Beamline/Source/EPU/polarization','Beamline/Source/EPU/harmonic')
rixs_log['XES Energy'] = ['Endstation/Detectors/XES/mcp_mca_xes_energy', 2]
rixs_log['XES Grating'] = 'Endstation/Detectors/XES/mcp_mca_xes_grating'
rixs_log['XES Offset'] = ['Endstation/Detectors/XES/mcp_mca_xes_offset', 1]
rixs_log['Shift File'] = 'Endstation/Detectors/XES/mcp_mca_xes_shift_file'
rixs_log['XEOL Rate'] = ['Endstation/Detectors/XEOL/xeol_time_rate_a', 3]
rixs_log['Status'] = 'status'
rixs_log['Date'] = 'date'
HDF5 Data Structures