Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This script lives in /reg/g/psdmsdf/group/lcls/ds/ana/tutorials/examplePython3psana1_examples/areaDetAccess.py and demonstrates how to access calibrated "unassembled data" (3D array, no geometry applied) and "assembled images" (2D array, geometry applied).  Assembled/unassembled are only different for multi-panel detectors.  For monolithic 2D area detectors they are the same.

NOTE: there are many other python methods of the Detector object for Area Detectors (e.g. x,y pixel coordinates, pedestal values, masks).  One can see all the methods of a class using ipython tab completion, or looking at more complete documentation here, or examining examples in /reg/g/psdm/sw/releases/ana-current/Detector/examples3/ex_all_dets.py.

Code Block
from psana import *
ds = DataSource('exp=xpptut15:run=54:smd')
det = Detector('cspad')
for nevent,evt in enumerate(ds.events()):
    # includes pedestal subtraction, common-mode correction, bad-pixel
    # suppresion, and returns an "unassembled" 3D array of cspad panels
    calib_array = det.calib(evt)
    # this is the same as the above, but also uses geometry to
    # create an "assembled" 2D image (including "fake pixels" in gaps)
    img = det.image(evt)
    break
import matplotlib.pyplot as plt
plt.imshow(img,vmin=-2,vmax=2)
plt.show()

...

The "image" method can also be used to convert any array with the "unassembled" shape into "assembled" format (that is, applying the geometry) with a line like this:

...