Versions Compared

Key

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

...

Only listed segments are highlighted on plots:

 

Background

Averaged background shape

 

Background shape evaluated in exp=cxif5315:run=162

...

Background shape evaluated 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.

...

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)

Image RemovedImage Removed

  • nbins (rad:500, phi:32)

...

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:

Image AddedImage Added

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))

Image AddedImage Added

SIngle angular bin still works fine in our ROI defined by both masks.

...

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, 40<phi< 320:

 

 

 

OLD IMAGE PROCESSING

Subtract background shape evaluated in run 192. 

Note

Background shape was evaluated WITH common mode correction. Central ; 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

Image AddedImage Added

after background subtraction

Image AddedImage Added

  • 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.

References