...
For more examples, see How to access HDF5 data from Python and http://code.google.com/p/h5py/![](/images/icons/linkext7.gif)
...
Plotting with
...
The version available in our offline release system is
IPython 0.9.1 – An enhanced Interactive Python.
so this is the one I've been using in these examples.
Not a whole lot more than a python shell.
However, the latest IPython has loads of new and interesting features...
http://ipython.org/
Image Removed
Panel |
---|
title | Loading your arrays into (I)Python and plotting interactively: |
---|
|
Code Block |
---|
[ofte@psana0106 xpptutorial]$ ipython
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.
In [1]: from numpy import *
In [2]: from matplotlib.pyplot import *
In [3]: ipm3 = load('point_scan_delay.npy')
In [4]: ipm3.shape
Out[4]: (200, 3)
In [5]: ion()
In [6]: delay = ipm3[:,0]
In [7]: ipmraw = ipm3[:,1]
In [8]: ipmnorm = ipm3[:,2]
n [9]: plot(delay,ipmnorm,'ro')
Out[9]: [<matplotlib.lines.Line2D object at 0x59c4c10>]
In [10]: draw()
In [11]:
|
|
Plotting with MatPlotLib
Matplotlib:
- The plotting can be done directly in the pyana module, but be aware that you need to disable plotting for the
module to run successfully in a batch job. Code Block |
---|
import matplotlib.pyplot as plt
plt.plot(array)
plt.show()
|
- Or you can load arrays from a file and interactively plot them in iPython. The same ('recommended') syntax as above can be used, or if you use 'import *' you don't need to prepend the commands with the package name, which is handy when plotting interactively:
Code Block |
---|
from matplotlib.pyplot import *
ion()
plot(array)
draw()
|
Related useful tools and links
...
MatPlotLib
Matplotlib:
- The plotting can be done directly in the pyana module, but be aware that you need to disable plotting for the
module to run successfully in a batch job. Code Block |
---|
import matplotlib.pyplot as plt
plt.plot(array)
plt.show()
|
- Or you can load arrays from a file and interactively plot them in iPython. The same ('recommended') syntax as above can be used, or if you use 'import *' you don't need to prepend the commands with the package name, which is handy when plotting interactively:
Code Block |
---|
from matplotlib.pyplot import *
ion()
plot(array)
draw()
|
Related useful tools and links
Interactive analysis with IPython
The version available in our offline release system is
IPython 0.9.1 – An enhanced Interactive Python.
so this is the one I've been using in these examples.
Not a whole lot more than a python shell.
However, the latest IPython has loads of new and interesting features...
http://ipython.org/
Image Added
Panel |
---|
title | Loading your arrays into (I)Python and plotting interactively: |
---|
|
Code Block |
---|
[ofte@psana0106 xpptutorial]$ ipython
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.
In [1]: from numpy import *
In [2]: from matplotlib.pyplot import *
In [3]: ipm3 = load('point_scan_delay.npy')
In [4]: ipm3.shape
Out[4]: (200, 3)
In [5]: ion()
In [6]: delay = ipm3[:,0]
In [7]: ipmraw = ipm3[:,1]
In [8]: ipmnorm = ipm3[:,2]
n [9]: plot(delay,ipmnorm,'ro')
Out[9]: [<matplotlib.lines.Line2D object at 0x59c4c10>]
In [10]: draw()
In [11]:
|
|
...
Non-interactive batch analysis
...
Cloak |
---|
|
- Fetching the ControlPV information:
ControlPV is available from the env object, and since it only changes at the beginning of each calibration cycle, the begincalibcycle function is the appropriate place to get it: none The ControlConfig object may contain several pvControl and pvMonitor objects. In this case there's only one, but make sure the name matches anyway: none
- Fetching the IPIMB and PhaseCavity information:
All the other information that we need, is available through the evt object, and event member function is the place to get it: none Use "XppSb3Ipm-1|Ipimb-0" (a.k.a. IPM3) sum of all channels for normalization and filtering none Use "XppSb3Pim-1|Ipimb-0" (a.k.a. PIM3) channel 1 as signal none Get the phase cavity: none Compute delay time and fill histograms none
|
Image peak finding
Here are a collection of useful algorithms for image analysis: http://docs.scipy.org/doc/scipy/reference/ndimage.html![](/images/icons/linkext7.gif)
...