Page History
...
Code Block |
---|
# Import import psana # Initialize a detector object det = psana.Detector(detInfo, env'myAreaDetectorName') # Merges photons split among pixels and returns n-d array with integer number of photons per pixel. nphotons_nda = det.photons(evt, adu_per_photon, nda_calib=None, mask=None, adu_per_photon=None) |
The det.photons() function divides the pixel intensities (ADUs) by adu_per_photon, resulting in a fractional number of photons for each pixel. This function is a wrapper around photons() method in PyAlgos:
Code Block |
---|
# Import from ImgAlgos.PyAlgos import photons # Merges photons split among pixels and returns n-d array with integer number of photons per pixel. nphotons_nda = photons(fphotons, maskadu_per_photon=30) |
Method photons
receives (float) n-d numpy array fphotons
representing image intensity in terms of (float) fractional number of photons and an associated mask
of bad pixels. Both arrays should have the same shape. Two lowest dimensions represent pixel rows and columns in 2-d pixel matrix arrays. Algorithm works with good pixels defined by the mask array (1/0 = good/bad pixel). Array fphotons
is represented with two arrays; An array containing whole number of photons (integer) and the leftover fractional number of photon array (float) of the same shape. Assuming the photons are only split between two adjacent pixels, we round up the adjacent pixels if they sum up to be above 0.9 photons. The algorithm is best explained using an example:
...