Page History
...
Equatorial and arc combined mask
Radial background subtraction
For some reason polarization correction does not work well in this experiment for entire image.
Comparison of the 2-d interpolated radial background subtraction
- nbins (rad:500, phi:1)
- nbins (rad:500, phi:32)
...
Masks for segments
Code below shows how to generate mask n-d arrays for particular set of segments (2x1s)
Code Block |
---|
shape_cspad = (32,185,388)
seg1 = np.ones((185,388))
mask_winds_all = np.zeros(shape_cspad, dtype=np.int16)
mask_winds_equ = np.zeros(shape_cspad, dtype=np.int16)
mask_winds_arc = np.zeros(shape_cspad, dtype=np.int16)
mask_winds_all[(0,1,7,8,9,15,16,17,23,24,25,31),:,:] = seg1
mask_winds_equ[(0,1,9,15,16,17,25,31),:,:] = seg1
mask_winds_arc[(0,7,8,15),:,:] = seg1 |
Only listed segments are highlighted on plots:
Background
Averaged background shape
Background shape evaluated in exp=cxif5315:run=162 with common mode correction - central segments got offset to higher intensity
Background shape evaluated evaluated in exp=cxif5315:run=162 without common mode correction - common mode offsets averaged out to zero and image represents true background shape.
Command to average data with options for processing algorithms:
Code Block |
---|
det_ndarr_average -d exp=cxif5315:run=162 -s CxiDs2.0:Cspad.0 -n 10000 -m 5000 -a 3 -f nda-bkgd -p -v |
skips 5000 and averages next 10000 events.
Deployed as: /reg/d/psdm/cxi/cxif5315/calib/CsPad::CalibV1/CxiDs2.0:Cspad.0/pixel_bkgd/95-end.data
Radial background subtraction
polarization correction factor map orientation should be consistent with geometry file - in cxif5315 it should be rotated by 90°.
Code Block |
---|
from pyimgalgos.RadialBkgd import RadialBkgd, polarization_factor
X, Y, Z = geo.get_pixel_coords()
rb = RadialBkgd(X, Y, mask, nradbins=500, nphibins=1)
pf = polarization_factor(rb.pixel_rad(), rb.pixel_phi()+90, 91.33e3)
# in event loop:
nda, title = rb.subtract_bkgd_interpol(arr * pf) * mask |
For example we apply this algorithm to the water background averaged sample from exp=cxif5315:run=162:
Radial background fails to work in the region of shadow, where image miss symmetry. This region can be removed by constraining the range of angles phiedges=(40, 325).
In the next plot the radial range is also constrained as radedges=(5000,100000) for the purpose of example:
Code Block |
---|
# the same as in previous case, but
rb = RadialBkgd(X, Y, mask, nradbins=500, nphibins=1, phiedges=(40, 325), radedges=(5000,100000)) |
SIngle angular bin still works fine in our ROI defined by both masks.
Background subtraction examples
Subtract background shape evaluated in run 192
Code Block |
---|
from pyimgalgos.GlobalUtils import subtract_bkgd
# once per run:
nda_peds = det.pedestals(runnum)
nda_bkgd = det.bkgd(runnum) # get n-d array with averaged background from calib/.../pixel_bkgd
nda_smask = det.mask(evt, calib=False, status=True, edges=True, central=True, unbond=True, unbondnbrs=True)
# windows for background normalization
winds_bkgd = [(s, 10, 100, 270, 370) for s in (4,12,20,28)] # use part of segments 4,12,20,28 to subtr bkg
# in the event loop
nda_raw = det.raw(evt)
if nda_raw is not None :
nda = np.array(nda_raw, dtype=np.float32, copy=True)
nda -= nda_peds
# Subtract background shape averaged for pure water
nda = subtract_bkgd(nda, nda_bkgd, mask=nda_smask, winds=winds_bkgd) |
Radial background subtraction
Image corrected up to 80mm, rings span for entire phi
Image corrected up to 80mm, 40<phi< 320:
OLD IMAGE PROCESSING
Subtract background shape evaluated in run 192.
Note |
---|
Background shape was evaluated WITH common mode correction; central 2x1s got offset due to non-uniform water background shape. |
Averaged Fraser- transformed image using angles from fit to 2 arc peaks
Spectrum of intensities
Spectrum of intensities of all quad 2x1-segment 0 (close to beam) and 4 (water ring region)
before background subtraction
after background subtraction
- masked pixels contributes to peak at 0
- 1-, 2- and 3- photon peaks are seen
- common mode correction before background subtraction does not work well in this data sample due to significant fraction of 1-photon peak next to noise peak, which makes an offset due to illumination.
- common mode correction after background subtraction does not work - it moves noise peak to 0 and destroys background subtraction results.
Note |
---|
Potentially any non-dark data spectra can be used to calibrate pixel gain. |