Beispiel #1
0
def test_cspad2x2():
    """ Test cspad2x2 geometry table
    """
    ## MecTargetChamber.0:Cspad2x2.1
    basedir = '/reg/g/psdm/detector/alignment/cspad2x2/calib-cspad2x2-01-2013-02-13/'
    fname_geometry = basedir + 'calib/CsPad2x2::CalibV1/MecTargetChamber.0:Cspad2x2.1/geometry/0-end.data'
    fname_data = basedir + 'cspad2x2.1-ndarr-ave-meca6113-r0028.dat'

    ## MecTargetChamber.0:Cspad2x2.2
    #basedir = '/reg/g/psdm/detector/alignment/cspad2x2/calib-cspad2x2-02-2013-02-13/'
    #fname_geometry = basedir + 'calib/CsPad2x2::CalibV1/MecTargetChamber.0:Cspad2x2.2/geometry/0-end.data'
    #fname_data     = basedir + 'cspad2x2.2-ndarr-ave-meca6113-r0028.dat'

    geometry = GeometryAccess(fname_geometry, 0o377)
    amp_range = (0, 15000)

    # get pixel coordinate index arrays:
    #xyc = xc, yc = 1000, 1000
    #iX, iY = geometry.get_pixel_coord_indexes(xy0_off_pix=xyc)

    iX, iY = geometry.get_pixel_coord_indexes(do_tilt=True)

    root, ext = os.path.splitext(fname_data)
    arr = np.load(fname_data) if ext == '.npy' else np.loadtxt(fname_data,
                                                               dtype=np.float)
    arr.shape = (185, 388, 2)

    print('iX, iY, W shape:', iX.shape, iY.shape, arr.shape)
    img = img_from_pixel_arrays(iX, iY, W=arr)

    axim = gg.plotImageLarge(img, amp_range=amp_range)
    gg.move(500, 10)
    gg.show()
Beispiel #2
0
def test_epix100a():
    """ Test test_epix100a geometry table
    """
    basedir = '/reg/g/psdm/detector/alignment/cspad/calib-cxi-ds1-2014-05-15/'
    fname_geometry = basedir + 'calib/CsPad::CalibV1/CxiDs1.0:Cspad.0/geometry/2-end.data'
    fname_data = basedir + 'cspad-arr-cxid2714-r0023-lysozyme-rings.txt'

    #basedir = '/reg/g/psdm/detector/alignment/epix100/calib-xpp-Epix100a-2014-11-05/'
    #fname_geometry = basedir + 'calib/Epix100a::CalibV1/NoDetector.0:Epix100a.0/geometry/0-end.data'
    #fname_data     = basedir + 'epix100a-ndarr-ave-clb-xppi0614-r0073.dat'

    geometry = GeometryAccess(fname_geometry, 0o177777)
    amp_range = (-4, 10)

    iX, iY = geometry.get_pixel_coord_indexes()

    root, ext = os.path.splitext(fname_data)
    arr = np.load(fname_data) if ext == '.npy' else np.loadtxt(fname_data,
                                                               dtype=np.float)

    print('iX, iY, W shape:', iX.shape, iY.shape, arr.shape)
    img = img_from_pixel_arrays(iX, iY, W=arr)

    axim = gg.plotImageLarge(img, amp_range=amp_range)
    gg.move(500, 10)
    gg.show()
Beispiel #3
0
    def __init__(self, img, **kwa):
        """
        """
        flexbase.__init__(self, **kwa)
        #arr = kwa.setdefault('arr', img)
        arr = kwa.get('arr', None)
        if arr is None: arr = img
        amin, amax = self._intensity_limits(arr, **kwa)
        self.hcolor = kwa.get('color', 'lightgreen')
        self.hbins = kwa.get('bins', 100)

        kwa.setdefault('w_in', 14)
        kwa.setdefault('h_in', 8)
        _fig = gr_figure(**kwa)

        kwfica = {}
        fymin, fymax = 0.04, 0.93
        self.fig, self.axim, self.axcb, self.axhi = gr.fig_img_cbar_hist_axes(\
            fig=_fig,\
            win_axim = kwa.get('win_axim', (0.04,  fymin, 0.71, fymax)),\
            win_axhi = kwa.get('win_axhi', (0.76,  fymin, 0.15, fymax)),\
            win_axcb = kwa.get('win_axcb', (0.915, fymin, 0.01, fymax)), **kwfica)

        kwa.setdefault('amin', amin)
        kwa.setdefault('amax', amax)
        self.imsh, self.cbar = gr_imshow_cbar(self.fig, self.axim, self.axcb,
                                              img, **kwa)

        self.update_his(arr, **kwa)
        gr.draw_fig(self.fig)
Beispiel #4
0
    def __init__(self, arr, **kwa):
        """
        """
        flexbase.__init__(self, **kwa)
        w_in = kwa.pop('w_in', 6)
        h_in = kwa.pop('h_in', 5)

        kwfig = {}
        _fig=gr.plt.figure(num   = kwa.get('num',None),\
                       figsize   = kwa.get('figsize',(w_in, h_in)),\
                       dpi       = kwa.get('dpi',80),\
                       facecolor = kwa.get('facecolor','w'),\
                       edgecolor = kwa.get('edgecolor','w'),\
                       frameon   = kwa.get('frameon',True),\
                       clear     = kwa.get('clear',False),\
                       **kwfig)

        kwfia = {}
        self.fig, self.axhi = gr.fig_img_axes(\
            fig=_fig,\
            win_axim = kwa.get('win_axhi', (0.10, 0.05, 0.87, 0.90)),\
            **kwfia)

        self.update(arr, **kwa)

        gr.draw_fig(self.fig)
Beispiel #5
0
  def test_cspad2x2():
    """ Test cspad2x2 geometry table.
    """
    basedir = '/reg/g/psdm/detector/alignment/cspad2x2/calib-cspad2x2-01-2013-02-13/'   
    fname_geometry = basedir + 'calib/CsPad2x2::CalibV1/MecTargetChamber.0:Cspad2x2.1/geometry/0-end.data'
    fname_data     = basedir + 'cspad2x2.1-ndarr-ave-meca6113-r0028.dat'    

    geometry = GeometryAccess(fname_geometry, pbits=0o377, use_wide_pix_center=False)
    amp_range = (0,15000)

    # get pixel coordinate index arrays:
    #xyc = xc, yc = 1000, 1000
    #rows, cols = geometry.get_pixel_coord_indexes(xy0_off_pix=xyc)

    rows, cols = geometry.get_pixel_coord_indexes(do_tilt=True)

    root, ext = os.path.splitext(fname_data)
    arr = np.load(fname_data) if ext == '.npy' else np.loadtxt(fname_data, dtype=np.float) 
    arr.shape= (185,388,2)

    logger.info('shapes rows: %s cols: %s weight: %s' % (str(rows.shape), str(cols.shape), str(arr.shape)))
    img = img_from_pixel_arrays(rows,cols,W=arr)

    axim = gg.plotImageLarge(img,amp_range=amp_range)
    gg.move(500,10)
    gg.show()
Beispiel #6
0
  def test_cspad_xy_at_z():
    """ Test cspad geometry table.
    """
    ## 'CxiDs1.0:Cspad.0)' or 'DscCsPad' 
    basedir = '/reg/g/psdm/detector/alignment/cspad/calib-cxi-camera1-2014-09-24/'    
    fname_geometry = basedir + '2016-06-03-geometry-cxi06216-r25-camera1-z175mm.txt'
    fname_data     = basedir + '2016-06-03-chun-cxi06216-0025-DscCsPad-max.txt'    

    geometry = GeometryAccess(fname_geometry, pbits=0o377)

    # get pixel coordinate index arrays:
    xyc = xc, yc = 1000, 1000
    #rows, cols = geometry.get_pixel_coord_indexes(xy0_off_pix=xyc)
    #rows, cols = geometry.get_pixel_coord_indexes(do_tilt=True)
    #rows, cols = geometry.get_pixel_xy_inds_at_z(zplane=None, xy0_off_pix=xyc)
    rows, cols = geometry.get_pixel_xy_inds_at_z(zplane=150000)

    root, ext = os.path.splitext(fname_data)
    arr = np.load(fname_data) if ext == '.npy' else np.loadtxt(fname_data, dtype=np.float) 

    #logger.info('arr.shape=', arr.shape
    arr.shape= (32,185,388)

    #ave, rms = arr.mean(), arr.std()
    #amp_range = (ave-rms, ave+3*rms)
    amp_range = (0, 1000)
    logger.info('amp_range:' + str(amp_range))

    logger.info('shapes rows: %s cols: %s weight: %s' % (str(rows.shape), str(cols.shape), str(arr.shape)))
    img = img_from_pixel_arrays(rows,cols,W=arr)

    axim = gg.plotImageLarge(img,amp_range=amp_range)
    gg.move(500,10)
    gg.show()
Beispiel #7
0
 def test_2x2_img_easy():
     w = SegGeometryEpixHR2x2V1(use_wide_pix_center=False)
     X, Y = w.get_seg_xy_maps_pix_with_offset()
     iX, iY = (X + 0.25).astype(int), (Y + 0.25).astype(int)
     img = gg.getImageFromIndexArrays(iY, iX, iX + 2 * iY)
     gg.plotImageLarge(img, amp_range=(0, 750), figsize=(10, 8))
     gg.show()
def test_2x1_img() :
    from time import time

    t0_sec = time()
    w = SegGeometryCspad2x1V1(use_wide_pix_center=False)
    #w = SegGeometryCspad2x1V1(use_wide_pix_center=True)
    print('Consumed time for coordinate arrays (sec) =', time()-t0_sec)

    X,Y = w.get_seg_xy_maps_pix()

    w.print_seg_info(0o377)

    #print('X(pix) :\n', X)
    print('X.shape =', X.shape)

    xmin, ymin, zmin = w.get_xyz_min_um()
    xmax, ymax, zmax = w.get_xyz_max_um()
    xmin /= w.pixel_scale_size()
    xmax /= w.pixel_scale_size()
    ymin /= w.pixel_scale_size()
    ymax /= w.pixel_scale_size()

    xsize = xmax - xmin + 1
    ysize = ymax - ymin + 1
    print('xsize =', xsize) # 391.0
    print('ysize =', ysize) # 185.0

    H, Xedges, Yedges = np.histogram2d(X.flatten(), Y.flatten(), bins=[xsize,ysize], range=[[xmin, xmax], [ymin, ymax]], normed=False, weights=X.flatten()+Y.flatten()) 

    print('Xedges:', Xedges)
    print('Yedges:', Yedges)
    print('H.shape:', H.shape)

    gg.plotImageLarge(H, amp_range=(-250, 250), figsize=(8,10)) # range=(-1, 2), 
    gg.show()
    def test_2x1_img():

        w = SegGeometryCspad2x1V1(use_wide_pix_center=False)
        X, Y = w.get_seg_xy_maps_pix()

        w.print_seg_info(0o377)

        xmin, ymin, zmin = w.get_xyz_min_um()
        xmax, ymax, zmax = w.get_xyz_max_um()
        xmin /= w.pixel_scale_size()
        xmax /= w.pixel_scale_size()
        ymin /= w.pixel_scale_size()
        ymax /= w.pixel_scale_size()

        xsize = int(xmax - xmin + 1)
        ysize = int(ymax - ymin + 1)

        H, Xedges, Yedges = np.histogram2d(X.flatten(), Y.flatten(), bins=[xsize,ysize],\
                              range=[[xmin, xmax], [ymin, ymax]], normed=False, weights=X.flatten()+Y.flatten())

        s = 'test_img'\
          + '\n  X.shape:' + str(X.shape)\
          + '\n  xsize = %.1f' % xsize\
          + '\n  ysize = %.1f' % ysize\
          + '\n  Xedges:'  + str(Xedges)\
          + '\n  Yedges:'  + str(Yedges)\
          + '\n  H.shape:' + str(H.shape)
        logger.info(s)

        gg.plotImageLarge(H, amp_range=(-250, 250),
                          figsize=(7, 10))  # range=(-1, 2),
        gg.show()
Beispiel #10
0
    def __init__(self, img, **kwa):
        flexbase.__init__(self, **kwa)
        arr = kwa.get('arr', None)
        if arr is None: arr = img  #kwa['arr'] = arr = img
        amin, amax = self._intensity_limits(arr, **kwa)

        aspratio = float(img.shape[0]) / float(img.shape[1])  # heigh/width

        kwa.setdefault('w_in', 9)
        kwa.setdefault('h_in', 8)
        _fig = gr_figure(**kwa)

        kwfica = {}
        fymin, fymax = 0.04, 0.93
        self.fig, self.axim, self.axcb = gr.fig_img_cbar_axes(\
            fig=_fig,\
            win_axim = kwa.get('win_axim', (0.05,  fymin, 0.86, fymax)),\
            win_axcb = kwa.get('win_axcb', (0.915, fymin, 0.01, fymax)), **kwfica)

        kwa.setdefault('amin', amin)
        kwa.setdefault('amax', amax)
        self.imsh, self.cbar = gr_imshow_cbar(self.fig, self.axim, self.axcb,
                                              img, **kwa)

        gr.draw_fig(self.fig)
Beispiel #11
0
  def test_epix100a():
    """ Test test_epix100a geometry table.
    """
    basedir = '/reg/g/psdm/detector/alignment/cspad/calib-cxi-ds1-2014-05-15/'    
    fname_geometry = basedir + 'calib/CsPad::CalibV1/CxiDs1.0:Cspad.0/geometry/2-end.data'
    fname_data     = basedir + 'cspad-arr-cxid2714-r0023-lysozyme-rings.txt'    

    #basedir = '/reg/neh/home1/dubrovin/LCLS/GeometryCalib/calib-xpp-Epix100a-2014-11-05/'    
    #fname_geometry = basedir + 'calib/Epix100a::CalibV1/NoDetector.0:Epix100a.0/geometry/0-end.data'
    #fname_data     = basedir + 'epix100a-ndarr-ave-clb-xppi0614-r0073.dat'    

    geometry = GeometryAccess(fname_geometry, pbits=0o377)
    amp_range = (-4,10)

    rows, cols = geometry.get_pixel_coord_indexes()

    root, ext = os.path.splitext(fname_data)
    arr = np.load(fname_data) if ext == '.npy' else np.loadtxt(fname_data, dtype=np.float) 

    logger.info('shapes rows: %s cols: %s weight: %s' % (str(rows.shape), str(cols.shape), str(arr.shape)))
    img = img_from_pixel_arrays(rows,cols,W=arr)

    axim = gg.plotImageLarge(img,amp_range=amp_range)
    gg.move(500,10)
    gg.show()
Beispiel #12
0
    def update_his(self, nda, **kwa):
        """use kwa: arr=arr, nneg=1, npos=3 OR arr, fraclo=0.05, frachi=0.95
        """
        amp_range = amin, amax = self._intensity_limits(nda, kwa)

        self.axhi.cla()
        self.axhi.invert_xaxis()  # anvert x-axis direction
        self.axhi.set_ylim(amp_range)
        self.axhi.set_yticklabels([])  # removes axes labels, not ticks
        self.axhi.tick_params(axis='y', direction='in')
        self.axhi.set_ylim(amp_range)
        #self.axhi.set_ylabel('V')
        #self.axhi.get_yaxis().set_visible(False) # hides axes labels and ticks

        kwh={'bins'       : kwa.get('bins',self.hbins),\
             'range'      : kwa.get('range',amp_range),\
             'weights'    : kwa.get('weights',None),\
             'color'      : kwa.get('color', self.hcolor),\
             'log'        : kwa.get('log',False),\
             'bottom'     : kwa.get('bottom', 0),\
             'align'      : kwa.get('align', 'mid'),\
             'histtype'   : kwa.get('histtype',u'bar'),\
             'label'      : kwa.get('label', ''),\
             'orientation': kwa.get('orientation',u'horizontal'),\
            }

        #self.his = gr.hist(self.axhi, nda, **kwh)
        self.his = pp_hist(self.axhi, nda.ravel(), **kwh)
        wei, bins, patches = self.his
        gr.add_stat_text(self.axhi, wei, bins)
def test_2x2_img_easy() :
    pc2x2 = SegGeometryEpix100V1(use_wide_pix_center=False)
    X,Y = pc2x2.get_seg_xy_maps_pix_with_offset()
    iX, iY = (X+0.25).astype(int), (Y+0.25).astype(int)
    img = gg.getImageFromIndexArrays(iX,iY,iX+iY)
    gg.plotImageLarge(img, amp_range=(0, 1500), figsize=(8,10))
    gg.show()
Beispiel #14
0
def test_jungfrau_img_easy():
    o = SegGeometryJungfrauV1()
    X, Y = o.get_seg_xy_maps_pix_with_offset()
    iX, iY = (X + 0.25).astype(int), (Y + 0.25).astype(int)
    img = gg.getImageFromIndexArrays(iY, iX, iX + iY)
    gg.plotImageLarge(img, amp_range=(0, 1500), figsize=(14, 6))
    gg.show()
 def test_mask(width=0, edge_rows=5, edge_cols=5):
   o = segment_one_v2
   X, Y = o.get_seg_xy_maps_pix_with_offset()
   mask = o.pixel_mask_array(width=width, edge_rows=edge_rows, edge_cols=edge_cols)
   iX, iY = (X+0.25).astype(int), (Y+0.25).astype(int)
   img = gg.getImageFromIndexArrays(iY,iX,mask)
   gg.plotImageLarge(img, amp_range=(-1, 2), figsize=FIGSIZE_INCH)
   gg.show()
def test_mask(mbits=0o377):
    pc2x1 = SegGeometryMatrixV1()
    X, Y = pc2x1.get_seg_xy_maps_pix_with_offset()
    mask = pc2x1.pixel_mask_array(mbits)
    iX, iY = (X + 0.25).astype(int), (Y + 0.25).astype(int)
    img = gg.getImageFromIndexArrays(iX, iY, mask)
    gg.plotImageLarge(img, amp_range=(-1, 2), figsize=(8, 10))
    gg.show()
def test_img_easy():
    pc2x1 = SegGeometryMatrixV1()
    #X,Y = pc2x1.get_seg_xy_maps_pix()
    X, Y = pc2x1.get_seg_xy_maps_pix_with_offset()
    iX, iY = (X + 0.25).astype(int), (Y + 0.25).astype(int)
    img = gg.getImageFromIndexArrays(iX, iY, iX + iY)
    gg.plotImageLarge(img, amp_range=(0, 1100), figsize=(8, 10))
    gg.show()
Beispiel #18
0
 def test_mask(mbits=0o377, width=5):
     o = segment_one
     X, Y = o.get_seg_xy_maps_pix_with_offset()
     mask = o.pixel_mask_array(mbits, width)
     iX, iY = (X + 0.25).astype(int), (Y + 0.25).astype(int)
     img = gg.getImageFromIndexArrays(iX, iY, mask)
     gg.plotImageLarge(img, amp_range=(-1, 2), figsize=(8, 10))
     gg.show()
 def test_2x2_mask(width=0, wcenter=0, edge_rows=3, edge_cols=6, center_rows=2, center_cols=4):
   pc2x2 = SegGeometryEpix100V1(use_wide_pix_center=False)
   X, Y = pc2x2.get_seg_xy_maps_pix_with_offset()
   mask = 1+pc2x2.pixel_mask_array(width, wcenter, edge_rows, edge_cols, center_rows, center_cols)#, dtype=DTYPE_MASK, **kwa)
   iX, iY = (X+0.25).astype(int), (Y+0.25).astype(int)
   img = gg.getImageFromIndexArrays(iX,iY,mask)
   gg.plotImageLarge(img, amp_range=(0, 2), figsize=(11,10))
   gg.show()
def test_2x2_mask(mbits=0o377) :
    pc2x2 = SegGeometryEpix100V1(use_wide_pix_center=False)
    X, Y = pc2x2.get_seg_xy_maps_pix_with_offset()
    mask = pc2x2.pixel_mask_array(mbits)
    mask[mask==0]=3
    iX, iY = (X+0.25).astype(int), (Y+0.25).astype(int)
    img = gg.getImageFromIndexArrays(iX,iY,mask)
    gg.plotImageLarge(img, amp_range=(-1, 2), figsize=(8,10))
    gg.show()
Beispiel #21
0
def test_jungfrau_mask(mbits=0o377, width=1):
    o = SegGeometryJungfrauV1()
    X, Y = o.get_seg_xy_maps_pix_with_offset()
    mask = o.pixel_mask_array(mbits, width)
    mask[mask == 0] = 4
    iX, iY = (X + 0.25).astype(int), (Y + 0.25).astype(int)
    img = gg.getImageFromIndexArrays(iY, iX, mask)
    gg.plotImageLarge(img, amp_range=(-1, 4), figsize=(14, 6))
    gg.show()
Beispiel #22
0
def test01(tname):

    PF = V3 if tname == '3' else V4
    SHOW_PEAKS = tname != '0'

    ds = data_hdf5_v0(FNAME)
    #ds.print_images()

    alg = peak_finder_algos(pbits=0)
    if PF == V3:
        alg.set_peak_selection_parameters(npix_min=0,
                                          npix_max=1e6,
                                          amax_thr=0,
                                          atot_thr=0,
                                          son_min=6)
    if PF == V4:
        alg.set_peak_selection_parameters(npix_min=0,
                                          npix_max=1e6,
                                          amax_thr=0,
                                          atot_thr=0,
                                          son_min=6)

    img = ds.next_image()
    shape = img.shape
    mask = np.ones(shape, dtype=np.uint16)
    INDS = np.indices((shape[0], shape[1]), dtype=np.int64)
    imRow, imCol = INDS[0, :], INDS[1, :]

    fig1, axim1, axcb1 = gr.fig_img_cbar_axes(gr.figure(figsize=(8, 7)))

    for nev in range(min(EVTMAX, ds.nevmax)):

        img = ds.next_image()

        #ave, rms = img.mean(), img.std()
        #amin, amax = ave-1*rms, ave+8*rms
        #amin, amax = img.min(), img.max()
        amin, amax = 0, img.max()
        axim1.clear()
        axcb1.clear()

        #imsh1,cbar1=\
        gr.imshow_cbar(fig1, axim1, axcb1, img, amin=amin, amax=amax, extent=None,\
                       interpolation='nearest', aspect='auto', origin='upper',\
                       orientation='vertical', cmap='inferno')
        fig1.canvas.set_window_title('Event: %04d random data' % nev)
        gr.move_fig(fig1, x0=400, y0=30)

        if SHOW_PEAKS:
            peaks = alg.peak_finder_v3r3_d2(img, mask, rank=5, r0=7, dr=2, nsigm=9)               if PF == V3 else\
                alg.peak_finder_v4r3_d2(img, mask, thr_low=100, thr_high=200, rank=5, r0=7, dr=2) if PF == V4 else\
                None
            plot_peaks_on_img(peaks, axim1, imRow, imCol, color='w', lw=1)

        gr.show(mode='do not hold')

    gr.show()
def test_2x1_mask(mbits=0o377) :
    pc2x1 = SegGeometryCspad2x1V1(use_wide_pix_center=False)
    X, Y = pc2x1.get_seg_xy_maps_pix_with_offset()
    mask = pc2x1.pixel_mask_array(mbits)
    print('mask:\n%s' % mask)
    print('mask.shape: ', mask.shape)
    iX, iY = (X+0.25).astype(int), (Y+0.25).astype(int)
    img = gg.getImageFromIndexArrays(iX,iY,mask)
    gg.plotImageLarge(img, amp_range=(-1, 2), figsize=(8,10))
    gg.show()
 def test_img_easy():
   o = segment_one_v2
   X, Y = o.get_seg_xy_maps_pix()
   xmin, xmax, ymin, ymax  = X.min(), X.max(), Y.min(), Y.max()
   Xoff, Yoff = X-xmin, Y-ymin
   iX, iY = (Xoff+0.25).astype(int), (Yoff+0.25).astype(int)
   img = gg.getImageFromIndexArrays(iY,iX,X+2*Y)
   gg.plotImageLarge(img, amp_range=(xmin+2*ymin, xmax+2*ymax), figsize=FIGSIZE_INCH)
   #gg.move(20,20)
   gg.show()
def draw_times(axis, pkvals, pkinds, wt) :
    """Adds to figure axis a set of vertical lines for found peaks.
       Parameters:
       - axis - figure axis to draw a single waveform
       - pkvals [np.array] - 1-d peak values 
       - pkinds [np.array] - 1-d peak indexes in wt
       - wt [np.array] - 1-d waveform sample times - is used to get time [sec] from pkinds
    """
    for v,i in zip(pkvals,pkinds) :
        t = wt[i]
        gr.drawLine(axis, (t,t), (-v,v), s=10, linewidth=1, color='k')
Beispiel #26
0
 def test_jungfrau_img_easy():
     o = jungfrau_front
     X, Y = o.get_seg_xy_maps_pix()
     xmin, xmax, ymin, ymax = X.min(), X.max(), Y.min(), Y.max()
     Xoff, Yoff = X - xmin, ymax - Y
     iX, iY = (Xoff + 0.25).astype(int), (Yoff + 0.25).astype(int)
     img = gg.getImageFromIndexArrays(iY, iX, X + 3 * Y)
     gg.plotImageLarge(img,
                       amp_range=(xmin + 3 * ymin, xmax + 3 * ymax),
                       figsize=(14, 7))
     gg.show()
Beispiel #27
0
def plot_image(data):
    fig, axim, axcb = gr.fig_img_cbar_axes(gr.figure(figsize=(10, 5), dpi=80))
    ave, rms = np.mean(data), np.std(data)
    _, _ = gr.imshow_cbar(fig,
                          axim,
                          axcb,
                          data,
                          amin=ave - 1 * rms,
                          amax=ave + 5 * rms,
                          extent=None,
                          cmap='inferno')
    return axim
def test_mask(sg, width=6, wcenter=4):
    logging.getLogger('matplotlib').setLevel(logging.WARNING)
    import psana.pyalgos.generic.Graphics as gg
    X, Y = sg.get_seg_xy_maps_pix_with_offset()
    mask = 1 + sg.pixel_mask_array(width=width, wcenter=wcenter)
    #mask[mask==0]=3
    iX, iY = (X + 0.25).astype(int), (Y + 0.25).astype(int)
    img = gg.getImageFromIndexArrays(iX, iY, mask)
    sh = sg.shape()
    h_in = 9.
    w_in = h_in * sh[0] / sh[1] * 1.2
    gg.plotImageLarge(img, amp_range=(-1, 2), figsize=(w_in, h_in))
    gg.show()
Beispiel #29
0
def plot_det_image(det, evt, nda, tit=''):
    """Plots averaged image
    """
    import psana.pyalgos.generic.Graphics as gr
    from psana.pyalgos.generic.NDArrUtils import reshape_to_2d
    #img = det.image(evt, nda)
    img = np.array(nda)
    if img is None:
        sys.exit('Image is not available. PROCESSING IS TERMINATED')
    img = reshape_to_2d(img)

    ave, rms = nda.mean(), nda.std()
    gr.plotImageLarge(img, amp_range=(ave - 1 * rms, ave + 3 * rms), title=tit)
    gr.show()
Beispiel #30
0
 def test_jungfrau_mask(width=0,
                        wcenter=0,
                        edge_rows=3,
                        edge_cols=6,
                        center_rows=2,
                        center_cols=4):
     o = jungfrau_one
     X, Y = o.get_seg_xy_maps_pix_with_offset()
     mask = 1 + o.pixel_mask_array(width, wcenter, edge_rows, edge_cols,
                                   center_rows, center_cols)
     mask[mask == 0] = 4
     iX, iY = (X + 0.25).astype(int), (Y + 0.25).astype(int)
     img = gg.getImageFromIndexArrays(iY, iX, mask)
     gg.plotImageLarge(img, amp_range=(0, 2), figsize=(14, 7))
     gg.show()