...
Code Block |
---|
usage: xtcscanner [options] xtc-files ...
options:
-h, --help show this help message and exit
-n NDATAGRAMS, --ndatagrams=NDATAGRAMS
-v, --verbose
-l L1_OFFSET, --l1-offset=L1_OFFSET
|
Example:
Code Block |
---|
| none |
---|
| none |
---|
title | xtcscanner -n 200 /reg/d/psdm/AMO/amo01509/xtc/e8-r0094-s0*none |
---|
|
Scanning....
Start parsing files:
['/reg/d/psdm/AMO/amo01509/xtc/e8-r0094-s00-c00.xtc', '/reg/d/psdm/AMO/amo01509/xtc/e8-r0094-s01-c00.xtc']
201 datagrams read in 0.070000 s . . . . . . .
-------------------------------------------------------------
XtcScanner information:
- 1 calibration cycles.
- Events per calib cycle:
[197]
Information from 0 control channels found:
Information from 9 devices found
BldInfo:EBeam: EBeamBld (197)
BldInfo:FEEGasDetEnergy: FEEGasDetEnergy (197)
DetInfo:AmoETof-0|Acqiris-0: (5 ch) AcqConfig_V1 (1) AcqWaveform_V1 (197)
DetInfo:AmoGasdet-0|Acqiris-0: (2 ch) AcqConfig_V1 (1) AcqWaveform_V1 (197)
DetInfo:AmoITof-0|Acqiris-0: (1 ch) AcqConfig_V1 (1) AcqWaveform_V1 (197)
DetInfo:AmoMbes-0|Acqiris-0: (1 ch) AcqConfig_V1 (1) AcqWaveform_V1 (197)
DetInfo:EpicsArch-0|NoDevice-0: Epics_V1 (688)
DetInfo:NoDetector-0|Evr-0: EvrConfig_V2 (1)
ProcInfo:: RunControlConfig_V1 (11)
XtcScanner is done!
-------------------------------------------------------------
|
...
Starting an interactive session
Code Block |
---|
| none |
---|
| none |
---|
title | Starting iPython |
---|
borderStyle | solidnone |
---|
|
[ofte@psana0XXX myrelease]$ ipython -pylab
Python 2.4.3 (#1, Nov 3 2010, 12:52:40)
Type "copyright", "credits" or "license" for more information.
IPython 0.9.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object'. ?object also works, ?? prints more.
|
Code Block |
---|
| none |
---|
| none |
---|
title | load the library module |
---|
borderStyle | solidnone |
---|
|
In [1]: from pymatlab import *
|
Generally, it is recommended to load library modules with 'import pymatlab' and access all its methods and classes with pyamatlab.function. In an interactive session it may be easier to have access to the contents of pymatlab in your immediate workspace by doing 'from pymatlab import *'.
Code Block |
---|
| none |
---|
| none |
---|
title | List the workspace contents ('who' or 'whos') |
---|
borderStyle | solidnone |
---|
|
In [2]: who
H5getobjnames ScanInput ScanOutput filtvec findmovingmotor
getSTDMEANfrac_from_startpoint get_filter get_limits get_limits_automatic
get_limits_channelhist get_limits_correlation get_limits_corrfrac
h5py np plt rdXPPdata runexpNO2fina scan scaninput
In [3]: whos
Variable Type Data/Info
--------------------------------------------------------
H5getobjnames function <function H5getobjnames at 0x2b57de8>
ScanInput type <class 'pymatlab.ScanInput'>
ScanOutput type <class 'pymatlab.ScanOutput'>
filtvec function <function filtvec at 0x2b57f50>
findmovingmotor function <function findmovingmotor at 0x2b57d70>
getSTDMEANfrac_from_startpoint function <function getSTDMEANfrac_<...>_startpoint at 0x2b581b8>
get_filter function <function get_filter at 0x2b57ed8>
get_limits function <function get_limits at 0x2b58050>
get_limits_automatic function <function get_limits_automatic at 0x2b58230>
get_limits_channelhist function <function get_limits_channelhist at 0x2b582a8>
get_limits_correlation function <function get_limits_correlation at 0x2b580c8>
get_limits_corrfrac function <function get_limits_corrfrac at 0x2b58140>
h5py module <module 'h5py' from '/reg<...>ython/h5py/__init__.pyc'>
np module <module 'numpy' from '/re<...>thon/numpy/__init__.pyc'>
plt module <module 'matplotlib.pyplo<...>n/matplotlib/pyplot.pyc'>
rdXPPdata function <function rdXPPdata at 0x2b57c80>
runexpNO2fina function <function runexpNO2fina at 0x2b57e60>
scan ScanOutput <pymatlab.ScanOutput object at 0x2b60536bee90>
scaninput ScanInput <pymatlab.ScanInput object at 0x2b60536b4e90>
|
...
Simple array to a NumPy file:
Code Block |
---|
| none |
---|
| none |
---|
title | saving and loadingnone |
---|
|
import numpy as np
np.save("filename.npy", array)
array = np.load("filename.npy")
np.savetxt("filename.dat", array)
array = loadtxt("filename.dat")
|
...
Simple array to an HDF5 file
Code Block |
---|
| none |
---|
| none |
---|
title | saving simple arrays to HDF5none |
---|
|
import h5py
def beginjob(self,evt,env):
self.ofile = h5py.File("outputfile.hdf5", 'w') # open for writing (overwrites existing file)
self.shot_counter = 0
def event(self,evt,env)
# example: store several arrays from one shot in a group labeled with shot (event) number
self.shot_counter += 1
group = self.ofile.create_group("Shot%d" % self.shot_counter)
image1_source = "CxiSc1-0|TM6740-1"
image2_source = "CxiSc1-0|TM6740-2"
frame = evt.getFrameValue(image1_source)
image1 = frame.data()
frame = evt.getFrameValue(image2_source)
image2 = frame.data()
dataset1 = group.create_dataset("%s"%image1_source,data=image1)
dataset2 = group.create_dataset("%s"%image2_source,data=image2)
def endjob(self,env)
self.ofile.close()
|
...