Page History
Include Page | ||||
---|---|---|---|---|
|
Table of Contents |
---|
Include Page | ||||
---|---|---|---|---|
|
About
This page provides examples for selected modules from psana - Module Catalog.
Auxiliary scripts
A few python scripts in ImgPixSpectra/data/
show how to process/plot the spectral array stored in the file.
...
psana.cfg
- set non-default parameters to runpsana
forImgAlgos::ImgPeakFinder
andImgAlgos::ImgPeakFilter
Thepsana
running this script saves images and peaks for event 115 in text files.PlotCameraImageFromFile.py
- Plots image and spectrum for image saved in file.PlotCameraImageAndPeaks.py
- Plots image with found peaks and spectrum.
Examples for package cspad_mod
Example for module cspad_mod::CsPad2x2Pedestals
Configuration file for pedestals calibration of two CSPAD2x2 simultaneously:
...
Output files contain results, which can be plotted for average values:
and rms values:
Example for package CSPadPixCoords
How to write the CSPad image in text file:
...
Example for module CSPadPixCoords::CSPadNDArrProducer
See Module CSPadPixCoords::CSPadNDArrProducer
Example of the module CSPadNDArrProducer working in sequence with ImgAlgos::NDArrAverage is shown in Example for module ImgAlgos::NDArrAverage
Example for module CSPadPixCoords::CSPad2x2NDArrProducer
No Format |
---|
# Run this script: # psana -c psana-meca1113-r0045-cspad-cspad2x2-dark-hotpix.cfg [psana] # Default calibration directory: # calib-dir = /reg/d/psdm/mec/meca1113/calib files = exp=meca1113:run=45 events = 400 #skip-events = 0 modules = CSPadPixCoords.CSPad2x2NDArrProducer:1 \ CSPadPixCoords.CSPad2x2NDArrProducer:2 \ ImgAlgos.NDArrAverage:1 \ ImgAlgos.NDArrAverage:2 [CSPadPixCoords.CSPad2x2NDArrProducer:1] source = MecTargetChamber.0:Cspad2x2.1 inkey = outkey = cspad2x2.1_ndarr outtype = int16 print_bits = 3 [CSPadPixCoords.CSPad2x2NDArrProducer:2] source = MecTargetChamber.0:Cspad2x2.2 inkey = outkey = cspad2x2.2_ndarr outtype = int16 print_bits = 3 [ImgAlgos.NDArrAverage:1] source = MecTargetChamber.0:Cspad2x2.1 key = cspad2x2.1_ndarr avefile = cspad2x2.1-ave rmsfile = cspad2x2.1-rms maskfile = cspad2x2.1-msk hotpixfile = cspad2x2.1-hot #evts_stage1 = 100 #gate_width1 = 100. thr_rms_ADU = 10 thr_min_ADU = 4 thr_max_ADU = 10000 print_bits = 29 [ImgAlgos.NDArrAverage:2] source = MecTargetChamber.0:Cspad2x2.2 key = cspad2x2.2_ndarr avefile = cspad2x2.2-ave rmsfile = cspad2x2.2-rms maskfile = cspad2x2.2-msk hotpixfile = cspad2x2.2-hot #evts_stage1 = 100 #gate_width1 = 100. thr_rms_ADU = 10 thr_min_ADU = 4 thr_max_ADU = 10000 print_bits = 29 |
...
See Module CSPadPixCoords::CSPad2x2NDArrProducer
Example for module CSPadPixCoords::CSPad2x2ImageProducer
See Module CSPadPixCoords::CSPad2x2ImageProducer
...
Code Block | ||
---|---|---|
| ||
[psana] files = /reg/d/psdm/xpp/xpptut13/xtc/e308-r0008-s02-c00.xtc \ /reg/d/psdm/xpp/xpptut13/xtc/e308-r0008-s03-c00.xtc #modules = cspad_mod.CsPad2x2Pedestals #calib-dir = ./calib calib-dir = /reg/d/psdm/xpp/xpptut13/xtc/calib modules = cspad_mod.CsPadCalib:0 \ cspad_mod.CsPadCalib:1 \ CSPadPixCoords.CSPad2x2ImageProducer:0 \ CSPadPixCoords.CSPad2x2ImageProducer:1 \ ImgAlgos.ImgSaveInFile:0 \ ImgAlgos.ImgSaveInFile:1 events = 5 [cspad_mod.CsPadCalib:0] source = DetInfo(XppGon.0:Cspad2x2.0) inputKey = outputKey = calibrated_arr0 doPedestals = yes doPixelStatus = no doCommonMode = yes [cspad_mod.CsPadCalib:1] source = DetInfo(XppGon.0:Cspad2x2.1) inputKey = outputKey = calibrated_arr1 doPedestals = yes doPixelStatus = no doCommonMode = yes [CSPadPixCoords.CSPad2x2ImageProducer:0] calibDir = /reg/d/psdm/xpp/xpptut13/xtc/calib typeGroupName = CsPad2x2::CalibV1 source = DetInfo(XppGon.0:Cspad2x2.0) inkey = calibrated_arr0 outimgkey = Image tiltIsApplied = false useWidePixCenter = false print_bits = 15 [CSPadPixCoords.CSPad2x2ImageProducer:1] calibDir = /reg/d/psdm/xpp/xpptut13/xtc/calib typeGroupName = CsPad2x2::CalibV1 source = DetInfo(XppGon.0:Cspad2x2.1) inkey = calibrated_arr1 outimgkey = Image tiltIsApplied = false useWidePixCenter = false print_bits = 15 [ImgAlgos.ImgSaveInFile:0] source = DetInfo(:Cspad2x2.0) key = Image fname = cspad2x2.0 ftype = txt #ftype = tiff saveAll = true print_bits = 3 #eventSave = 5 [ImgAlgos.ImgSaveInFile:1] source = DetInfo(:Cspad2x2.1) key = Image fname = cspad2x2.1 #ftype = txt ftype = tiff saveAll = true print_bits = 3 #eventSave = 5 |
Example for package ImgPixSpectra
Modules:
- ImgPixSpectra::CSPadPixSpectra
- ImgPixSpectra::CSPad2x2PixSpectra
- ImgPixSpectra::CameraPixSpectra
Example for module ImgPixSpectra::CSPadPixSpectra
See module description in Module ImgPixSpectra::CSPadPixSpectra
Configuration file psana-cxib2313-r0114-cspad-pix-spectra.cfg
:
...
Plot for content of the file cspad_spectral_array.txt
:
Example for module ImgPixSpectra::CSPad2x2PixSpectra
See module description in Module ImgPixSpectra::CSPad2x2PixSpectra
Configuration file example for CSPad2x2PixSpectra
:
...
generates image for limited range of pixels for CSPad, CSPad2x2, or Camera, respectively:
Examples for package ImgAlgos
See Package ImgAlgos
Example for module ImgAlgos::Tahometer
See Module ImgAlgos::Tahometer
...
Code Block | ||
---|---|---|
| ||
[psana] files = /reg/d/psdm/<INSTRUMENT>/<experiment>/xtc/<file-name-1>.xtc\ /reg/d/psdm/<INSTRUMENT>/<experiment>/xtc/<file-name-2>.xtc modules = ImgAlgos.Tahometer [ImgAlgos.Tahometer] dn = 10 print_bits = 7 |
Example for module ImgAlgos::PnccdImageProducer
See Module ImgAlgos::PnccdImageProducer
...
This script saves text files with images like pnccd-img-ev-<run-date-time.nsec>.txt
, which can be presented as:
Example for module ImgAlgos::CameraImageProducer
See Module ImgAlgos::CameraImageProducer
...
./ImgAlgos/data/PlotCameraImageFromFile.py <filename>.txt <Amin> <Amax>
Example for module ImgAlgos::PrincetonImageProducer
See Module ImgAlgos::PrincetonImageProducer
...
Anchor | ||||
---|---|---|---|---|
|
Example for module ImgAlgos::AcqirisArrProducer
See description of parameters in Module ImgAlgos::AcqirisArrProducer
...
Anchor | ||||
---|---|---|---|---|
|
Example for module ImgAlgos::AcqirisAverage
See description of parameters in Module ImgAlgos::AcqirisAverage
...
Anchor | ||||
---|---|---|---|---|
|
Example for module ImgAlgos::AcqirisCalib
See description of parameters in Module ImgAlgos::AcqirisCalib
...
Anchor | ||||
---|---|---|---|---|
|
Example for module ImgAlgos::AcqirisCFD
See description of parameters in Module ImgAlgos::AcqirisCFD
...
Anchor | ||||
---|---|---|---|---|
|
Example for combination of Acqiris modules
See description of parameters in Modules ImgAlgos::AcqirisArrProducer, AcqirisAverage, and AcqirisCalib
...
- acq-signal-amo01509-r0125-ave-wfs.txt- contains signal averaged arrays, which can be presented by full scale and zoomed plots:
Example for module ImgAlgos::NDArrAverage
- See Module ImgAlgos::NDArrAverage andModule CSPadPixCoords::CSPadNDArrProducer
The
NDArrAverage
module in combination with CSPadNDArrProducer (or any other device NDArrProducer) can be used for evaluation of averaged pedestals or background using dedicated runs.
Typical configuration file may looks like this:No Format # Run this script: # psana -c psana-meca1113-r0045-cspad-cspad-dark-hotpix.cfg [psana] files = exp=meca1113:run=45 events = 400 #skip-events = 0 modules = CSPadPixCoords.CSPadNDArrProducer \ ImgAlgos.NDArrAverage \ ImgAlgos.Tahometer [CSPadPixCoords.CSPadNDArrProducer] source = MecTargetChamber.0:Cspad.0 inkey = outkey = cspad_ndarr outtype = int16 is_fullsize = yes print_bits = 3 [ImgAlgos.NDArrAverage] source = MecTargetChamber.0:Cspad.0 key = cspad_ndarr avefile = cspad.0-ave rmsfile = cspad.0-rms maskfile = cspad.0-msk hotpixfile = cspad.0-hot thr_rms_ADU = 10 thr_min_ADU = 4 thr_max_ADU = 10000 print_bits = 29 #evts_stage1 = 100 #gate_width1 = 500. #evts_stage2 = 200 #gate_width2 = 100. [ImgAlgos.Tahometer] dn = 100 print_bits = 7
- Module
ImgAlgos.Tahometer
is not required in this configuration file and is added for convenience to print timing statistics for this job. - Evaluation of average intensity in 2 or 3 stages using gate-based algorithms excludes out-layers in intensity spectra and makes average more stable and reliable. However, the gate width is not an universal parameter. In order to set this parameter one has to look at spectrum of averaged intensities for particular device. The same is valid for evaluation of hot/bad pixel masks. One has to plot spectra of averaged intensity and rms values. Averaged intensity and rms spectra for exp=meca1113:run=45 are shown on plots, respectively:
...
- thr_rms_ADU = 10 – to discard very noisy pixels,
- thr_min_ADU = 4 – to discard presumably dead pixels with 0-intensity,
- thr_max_ADU = 10000 – to discard pixels with intensity significantly exceeding average value. To be on safe side for int16 data this parameter can be set to 216-4, where 4 in both cases is just a small arbitrary number for spare safety gap.
Example for module ImgAlgos::NDArrCalib
- See Module ImgAlgos::NDArrCalib, Module ImgAlgos::NDArrAverage
The
NDArrCalib
module in combination with PnccdNDArrProducer (or any other device NDArrProducer) can be used for evaluation of averaged pedestals or background using dedicated runs.
Typical configuration file may looks like this:
Code Block |
---|
[psana] files = exp=amoa1214:run=7 #skip-events = 100 events = 5 modules = ImgAlgos.Tahometer \ ImgAlgos.PnccdNDArrProducer \ ImgAlgos.NDArrCalib \ ImgAlgos.PnccdImageProducer \ ImgAlgos.ImgSaveInFile # ImgAlgos.NDArrAverage \ [ImgAlgos.PnccdNDArrProducer] source = DetInfo(Camp.0:pnCCD.0) key_in = key_out = pnccd-ndarr outtype = asdata print_bits = 13 [ImgAlgos.NDArrCalib] source = DetInfo(Camp.0:pnCCD.0) key_in = pnccd-ndarr key_out = calibrated do_peds = yes do_cmod = yes do_stat = no do_mask = no do_bkgd = no do_gain = no do_nrms = no do_thre = no fname_mask = fname_bkgd = masked_value = 0 threshold_nrms = 3 threshold = 100 below_thre_value = 0 bkgd_ind_min = 0 bkgd_ind_max = 1000 bkgd_ind_inc = 10 print_bits = 255 [ImgAlgos.PnccdImageProducer] source = DetInfo(Camp.0:pnCCD.0) #inkey = pnccd-ndarr inkey = calibrated outimgkey = pnccd-img gap_size = 20 gap_value = 0 print_bits = 1 [ImgAlgos.ImgSaveInFile] source = DetInfo(Camp.0:pnCCD.0) key = pnccd-img fname = pnccd-img-from-arr ftype = txt saveAll = true print_bits = 31 [ImgAlgos.Tahometer] dn = 100 print_bits = 7 |
Example for module ImgAlgos::ImgAverage
- See Module ImgAlgos::ImgAverage
- The
ImgAverage
module can be used for evaluation of averaged pedestals or background using dedicated runs. Typical configuration file may looks like this:
Code Block | ||
---|---|---|
| ||
[psana] files = /reg/d/psdm/<instrument>/<experiment>/xtc/<file-name>.xtc modules = ImgAlgos.CameraImageProducer \ ImgAlgos.ImgAverage events = 1000 [ImgAlgos.CameraImageProducer] source = DetInfo(:Opal1000) key_in = key_out = img subtract_offset = true print_bits = 1 [ImgAlgos.ImgAverage] source = DetInfo(:Opal1000) key = img avefile = img-ave.dat rmsfile = img-rms.dat print_bits = 31 evts_stage1 = 100 evts_stage2 = 100 gate_width1 = 200 gate_width2 = 20 |
Example for module ImgAlgos::ImgMaskEvaluation
- See Module ImgAlgos::ImgMaskEvaluation
- Configuration parameters for psana:
...
Plots for fraction of saturated pixels:
Masks: noisy, saturated, and combined:
Example for module ImgAlgos::ImgCalib
...
Example of the mask file and resulting image:
Example for module ImgAlgos::ImgRadialCorrection
See Module ImgAlgos::ImgRadialCorrection
...
Calibrated and radial-corrected image, spectrum, and subtracted r-phi12 distribution for n_phi_bins
=12:
Example for module ImgAlgos::ImgPeakFinder
See Module ImgAlgos::ImgPeakFinder
...
zoom of the previous plot.
Example for module ImgAlgos::ImgPeakFilter
Code Block | ||
---|---|---|
| ||
[ImgAlgos.ImgPeakFilter] source = DetInfo(:Opal1000) key = peaks threshold_peak = 5 threshold_total= 0 n_peaks_min = 10 print_bits = 11 fname = img selection_mode = SELECTION_ON |
Example for module ImgAlgos::ImgPeakFinderAB
See Module ImgAlgos::ImgPeakFinderAB
...
Code Block | ||
---|---|---|
| ||
[psana] files = /reg/d/psdm/<instrument>/<experiment>/xtc/<file-name>.xtc modules = ImgAlgos.CameraImageProducer \ ImgAlgos.ImgPeakFinderAB events = 10 [ImgAlgos.CameraImageProducer] source = DetInfo(:Opal1000) key_in = key_out = img subtract_offset = true print_bits = 1 [ImgAlgos.ImgPeakFinderAB] source = DetInfo(:Opal1000) key = img key_peaks_out = peaks #key_signal_out = signal-arr #hot_pix_mask_inp_file = ana-misc-exp/mask.dat #hot_pix_mask_out_file = noise-mask-out.dat #frac_noisy_evts_file = noise-frac-out.dat evt_file_out = tmp/img- rmin = 10 dr = 1 SoNThr_noise = 3 SoNThr_signal = 3 frac_noisy_imgs = 0.9 peak_npix_min = 3 peak_npix_max = 100 peak_amp_tot_thr = 0. peak_SoN_thr = 4. event_npeak_min = 5 event_npeak_max = 1000 event_amp_tot_thr = 0. nevents_mask_update = 0 nevents_mask_accum = 50 selection_mode = SELECTION_ON out_file_bits = 15 print_bits = 513 |
Results:
Example for module ImgAlgos::ImgHitFinder
See Module ImgAlgos::ImgHitFinder
...
Which creates the file: img-sum-result-r0093.dat for thre_mode = 2
and thre_mode = 3
, respectively:
Example for module ImgAlgos::ImgSpectra
See Module ImgAlgos::ImgSpectra
...
or graphics for several images:
Example for module ImgAlgos::ImgSpectraProc
See Module ImgAlgos::ImgSpectraProc
...
Code Block | ||
---|---|---|
| ||
[info:ImgAlgos.ImgSpectraProc] Spectral array shape =3, 1024 [info:ImgAlgos.ImgSpectraProc] Image spectra for run=0060 Evt=000100 Column: 0 100 200 300 400 500 600 700 800 900 1000 Signal: 1211 4062 11150 17070 16406 12949 7991 5168 3968 3542 3811 Refer.: 933 3485 10425 17128 17791 13522 8315 5000 3390 2967 3193 Diff. : 0.259 0.153 0.067 -0.003 -0.081 -0.043 -0.040 0.033 0.157 0.177 0.176 [info:ImgAlgos.ImgSpectraProc] Run=0060 Evt=000100 Time=20120507-125420.982421325 done... |
Example for module ImgAlgos::ImgSaveInFile
Code Block | ||
---|---|---|
| ||
modules = ... ImgAlgos.ImgSaveInFile:1 ... [ImgAlgos.ImgSaveInFile:1] source = DetInfo(:Opal1000) # or CxiDs1.0:Cspad.0 key = img fname = my-img #ftype = txt #ftype = bin #ftype = png ftype = tiff #eventSave = 5 saveAll = true |
See Module ImgAlgos::ImgSaveInFile
Example for module ImgPeakFinder and ImgPeakFilter for CSPad
Module ImgAlgos::ImgPeakFinder
works on image. In order to apply this algorithm to CSPad the image should be produced. In next example the image is produced using consequtive modules cspad_mod.CsPadCalib
, ImgAlgos.CSPadMaskApply
, and CSPadPixCoords.CSPadImageProducer
:
Code Block | ||
---|---|---|
| ||
[psana] files = /reg/d/psdm/<instrument>/<experiment>/xtc/<file-name-1>.xtc \ ... /reg/d/psdm/<instrument>/<experiment>/xtc/<file-name-N>.xtc events = 1000 experiment = cxii0212 calib-dir = ana-cxii0212/calib modules = cspad_mod.CsPadCalib \ ImgAlgos.CSPadMaskApply \ CSPadPixCoords.CSPadImageProducer \ ImgAlgos.ImgPeakFinder \ ImgAlgos.ImgPeakFilter \ ImgAlgos.ImgSaveInFile:1 [cspad_mod.CsPadCalib] inputKey = outputKey = calibrated doPedestals = yes doPixelStatus = no doCommonMode = yes [ImgAlgos.CSPadMaskApply] source = DetInfo(CxiDs1.0:Cspad.0) inkey = calibrated outkey = masked_arr mask_fname = <your-local-directory>/<mask-file-name>.dat masked_amp = 0 print_bits = 5 mask_control_bits = 15 [CSPadPixCoords.CSPadImageProducer] calibDir = /reg/d/psdm/<instrument>/<experiment>/calib typeGroupName = CsPad::CalibV1 source = CxiDs1.0:Cspad.0 key = masked_arr imgkey = img print_bits = 0 #tiltIsApplied = true [ImgAlgos.ImgPeakFinder] source = DetInfo(CxiDs1.0:Cspad.0) key = img peaksKey = peaks threshold_low = 2 threshold_high = 5 sigma = 1.5 smear_radius = 5 peak_radius = 7 xmin = 20 xmax = 1700 ymin = 20 ymax = 1700 #testEvent = 5 print_bits = 3 #finderIsOn = true [ImgAlgos.ImgPeakFilter] source = DetInfo(CxiDs1.0:Cspad.0) key = peaks threshold_peak = 5 threshold_total= 0 n_peaks_min = 10 print_bits = 11 fname = cspad-img selection_mode = SELECTION_ON [ImgAlgos.ImgSaveInFile:1] source = CxiDs1.0:Cspad.0 key = img fname = cspad-img #eventSave = 1 saveAll = true |
Example for module ImgAlgos::CSPadArrAverage
See Module ImgAlgos::CSPadArrAverage
...
Images of the CSPad arrays for averaged and rms values, respectively, in one of the CXI runs:
Example for module ImgAlgos::CSPadBkgdSubtract
See Module ImgAlgos::CSPadBkgdSubtract
...
Other event with better subtracted background:
Example for Module ImgAlgos::CSPadMaskApply
See Module ImgAlgos::CSPadMaskApply
...
The background images that still pass this filter have significantly larger intensity with respect to averaged background:
Input parameter mask_control_bits
allows to control masking regions of 2x1. For example, if all edges need to be masked, then use mask_control_bits = 15
, which gives image array like:
where red regions/lines of pixels of amplitude=8 are masked.
Example for module ImgAlgos::CSPadArrNoise
See Module ImgAlgos::CSPadArrNoise
...
Pixel mask for noisy pixels with |S/N| > SoNThr
:
Example for Module ImgAlgos::CSPadArrPeakFinder
See Module ImgAlgos::CSPadArrPeakFinder
...
Selected events
ev-007713:
ev-008944:
Example for module ImgAlgos::CSPadArrPeakAnalysis
See Module ImgAlgos::CSPadArrPeakAnalysis
...
produces the plots with histograms:
Example for TimeStampFilter and XtcOutputModule
This example demonstrates how to run psana with the time stamp filter and event writer in xtc file.
...
See also: Module ImgAlgos::TimeStampFilter and PSXtcOutput::PSXtcOutput
Examples for Package pyimgalgos
Package pyimgalgos contains python modules which work with both frameworks pyana and psana.
...
See description of modules in Package pyimgalgos.
Example of configuration file for CSPAD
File py-xcs72913-r0049-cspad.cfg
:
...
pyana -c py-xcs72913-r0049-cspad.cfg
Example of configuration file for CSPAD2x2
File py-meca6113-r0028-cspad2x2.cfg
...
pyana -c py-meca6113-r0028-cspad2x2.cfg
References