Versions Compared

Key

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

...

Application which works with ROI mask is located in  implemented  in CalibManager/app/roicon. All work with mask is split for 3 stages:

  1. Produce file with 2-d image or image-mask for sensors.
  2. Use mask editor to draw ROI on the top of the image.

  3. Convert ROI mask to ndarray with mask shaped as data.

Note
  • Stages 1 and 3 should use the same geometry file in the option -g. This will guarantee that image production and mask conversion algorithms work on the same pixel maps.
  • Stage 2 may be omitted if the mask for geometry-dependent bad pixels (edge, central column, non-bound pixels) is needed only. Then command for Stage 3 should have appropriate name for input mask file.

 

Launching this app with -h option gives enough information about its functionality. In this note we demonstrate graphical content of the files generate in examples for this procedure. 

...

Code Block
Usage: roicon [options]
Examples:
1) Construct 2-d image (or mask-of-segments) from ndarray with image shaped as data using appropriate geometry file
       roicon -p1 -g <geometry-file> [-a <ndarray-with-image-(input)file>] [-i <image-(output)file>] [-c <control-bitword>]
  ex1: roicon -p1 -g /reg/d/psdm/CXI/cxitut13/calib/CsPad::CalibV1/CxiDs1.0:Cspad.0/geometry/0-end.data
  ex2: roicon -p1 -g /reg/d/psdm/CXI/cxitut13/calib/CsPad::CalibV1/CxiDs1.0:Cspad.0/geometry/0-end.data -a /reg/neh/home1/dubrovin/LCLS/CSPadAlignment-v01/calib-cxi-ds1-2014-03-19/cspad-ndarr-ave-cxii0114-r0227.dat
2) Create ROI mask using mask editor "med" (DO NOT FORGET to save mask in file!)
       roicon -p2 [-i <image-(input)file>] [-m <roi-mask-(output)file>]
   ex: roicon -p2
3) Convert ROI mask to ndarray with mask shaped as data
       roicon -p3 -g <geometry-file> [-m <roi-mask-(input)file>] [-n ndarray-with-mask-(output)-file] [-c <control-bitword>]
   ex: roicon -p3 -g /reg/d/psdm/CXI/cxitut13/calib/CsPad::CalibV1/CxiDs1.0:Cspad.0/geometry/0-end.data
Optional input parameters.
Options:
  -h, --help            show this help message and exit
  -g GFNAME, --gfname=GFNAME
                        geometry file name, default = /reg/d/psdm/CXI/cxitut13
                        /calib/CsPad::CalibV1/CxiDs1.0:Cspad.0/geometry/0-end.
                        data
  -a AFNAME, --afname=AFNAME
                        input ndarray file name, default = None
  -i IFNAME, --ifname=IFNAME
                        image file name, default = mask-img.txt
  -m MFNAME, --mfname=MFNAME
                        ROI mask file name, default = mask-roi.txt
  -n NFNAME, --nfname=NFNAME
                        ndarray mask file name, default = mask-nda.txt
  -c CBITS, --cbits=CBITS
                        mask control bits, =0-none, +1-edges, +2-middle,
                        etc..., default = 65535
  -p PROC, --proc=PROC  process number: 1-construct image, 2-run mask editor
                        on image, 3-convert image mask to ndarray; default = 1
  -v, --verb            verbosity, default = False

 

 

Produce file with 2-d image

...

Fig.4: Mask on the top of enumerated (color-coded) pixels (left) and result of the mask conversion to the ndarray (right).

...

Usage of ndarray with ROI mask

ROI mask for ndarray can be used in any stand-alone applications. Our particular goal was to make this mask for module ImgAlgos::NDArrCalib, which can be included in the psana configuration file:

...

Code Block
[ImgAlgos.NDArrCalib] 
source = DetInfo(:Cspad.0) 
...
do_mask    = yes
fname_mask = mask-nda.txt

 

ROI mask for ndarray (or numpy array) can also be used in any stand-alone application, for example in python code. To apply the mask in python code the data numpy  array should be multiplied by the mask numpy array.

 

References