示例#1
0
def image_with_random_peaks(shape=(500, 500)):
    from psana.pyalgos.generic.NDArrUtils import print_ndarr

    print('XXX1 shape:', shape)
    img = ag.random_standard(shape, mu=0, sigma=10)
    print_ndarr(img, 'XXX ag.random_standard')

    peaks = ag.add_random_peaks(img,
                                npeaks=50,
                                amean=100,
                                arms=50,
                                wmean=1.5,
                                wrms=0.3)
    ag.add_ring(img, amp=20, row=500, col=500, rad=300, sigma=50)
    return img
示例#2
0
    def keyPressEvent(self, e):
        #print('keyPressEvent, key=', e.key())
        if e.key() == Qt.Key_Escape:
            print('Close app')
            self.close()

        elif e.key() == Qt.Key_R:
            print('Reset original size')
            self.reset_original_size()

        elif e.key() == Qt.Key_N:
            print('Set new pixel map')
            s = self.pmi.pixmap().size()
            img = image_with_random_peaks((s.height(), s.width()))
            self.set_pixmap_from_arr(img, set_def=False)

        elif e.key() in (Qt.Key_W, Qt.Key_D):
            change_def = e.key() == Qt.Key_D
            print('%s: change scene rect %s' %
                  (self._name, 'set new default' if change_def else ''))
            v = ag.random_standard((4, ), mu=0, sigma=200, dtype=np.int)
            rs = QRectF(v[0], v[1], v[2] + 1000, v[3] + 1000)
            print('Set scene rect: %s' % str(rs))
            #self.set_rect_scene(rs, set_def=change_def)
            img = image_with_random_peaks((int(rs.height()), int(rs.width())))
            self.set_pixmap_from_arr(img, set_def=change_def)

        else:
            print(self.key_usage())
示例#3
0
    def keyPressEvent(self, e):
        #logger.debug('keyPressEvent, key=', e.key())
        if e.key() == Qt.Key_Escape:
            self.close()

        elif e.key() == Qt.Key_R:
            print('Reset original size')
            #self.reset_original_size()
            self.set_scene_rect_default()

        elif e.key() == Qt.Key_U:
            print('Update default rect scene')
            #self.reset_original_size()
            self.set_scene_rect_default(rs=QRectF(-10, -10, 30, 30))

        elif e.key() in (Qt.Key_W, Qt.Key_D):
            change_def = e.key() == Qt.Key_D
            print('%s: change scene rect %s' %
                  (self._name, 'set new default' if change_def else ''))
            v = ag.random_standard((4, ), mu=0, sigma=20, dtype=np.int)
            rs = QRectF(v[0], v[1], v[2] + 100, v[3] + 100)
            print('Set scene rect: %s' % str(rs))
            self.set_rect_scene(rs, set_def=change_def)

        else:
            print(self.key_usage())
示例#4
0
文件: FWHist.py 项目: slac-lcls/lcls2
def test_histogram():
    import psana.pyalgos.generic.NDArrGenerators as ag
    from psana.pyalgos.generic.HBins import HBins
    nbins = 1000
    arr = ag.random_standard((nbins,), mu=50, sigma=10, dtype=ag.np.float64)
    hb = HBins((0,nbins), nbins=nbins)
    hb.set_bin_data(arr, dtype=ag.np.float64)
    return hb
示例#5
0
文件: MDBUtils.py 项目: monarin/lcls2
 def get_test_nda():
     """Returns random standard nupmpy array for test purpose.
 """
     import psana.pyalgos.generic.NDArrGenerators as ag
     return ag.random_standard(shape=(32, 185, 388),
                               mu=20,
                               sigma=5,
                               dtype=np.float)
示例#6
0
def test_01(func):
   """
   """
   flimg = None
   for i in range(10):
       arr = img = ag.random_standard(shape=(256,256), mu=200, sigma=25, dtype=float)
       #amin, amax = ug.arr_median_limits(arr, nneg=1, npos=3)
       #if flimg is None: flimg = ug.fleximage(img, arr=arr, nneg=1, npos=3)
       if flimg is None: flimg = func(img, nneg=3, npos=3)
       else: flimg.update(img)#, arr=arr)
       flimg.axtitle(title='image %d' % i)
       ug.gr.show(mode='NO HOLD')
   ug.gr.show()
示例#7
0
def test_mask_select(tname, mo):
    mask = None
    if tname == '9':
        import psana.pyalgos.generic.NDArrGenerators as ag
        status = mo.mask_from_status()
        sh = status.shape  # (4, 352, 384)
        mask = ag.random_standard(shape=sh, mu=0, sigma=0.25, dtype=float)

    elif tname == '1':
        mask = mo.mask_from_status()  # status_bits=0xffff, gain_range_inds=(0,1,2,3,4), dtype=DTYPE_MASK, **kwa)

    elif tname == '2':
        msts = mo.mask_from_status()
        mask = mo.mask_neighbors(msts, rad=9, ptrn='r')

    elif tname == '3':
        mask = mo.mask_edges(width=0, edge_rows=10, edge_cols=5)  # dtype=DTYPE_MASK, **kwa)

    elif tname == '4':
        mask = mo.mask_center(wcenter=0, center_rows=5, center_cols=3)  # dtype=DTYPE_MASK, **kwa)

    elif tname == '5':
        mask = mo.mask_calib_or_default()  # dtype=DTYPE_MASK)

    elif tname == '6':
        mask = test_umask(mo)

    elif tname == '7':
        mask = mo.mask_comb(\
                    status=True, status_bits=0xffff, gain_range_inds=(0,1,2,3,4),\
                    neighbors=True, rad=5, ptrn='r',\
                    edges=True, width=0, edge_rows=10, edge_cols=5,\
                    center=True, wcenter=0, center_rows=5, center_cols=3,\
                    calib=True,\
                    umask=test_umask(mo),\
                    force_update=False)
    else:
        mask = None

    logger.info(info_ndarr(mask, 'mask'))
    return mask
示例#8
0
def test_plot_quad(geometry):
    """ Tests geometry acess methods of the class GeometryAccess object for CSPAD quad
    """
    ## get index arrays
    iX, iY = geometry.get_pixel_coord_indexes('QUAD:V1',
                                              1,
                                              pix_scale_size_um=None,
                                              xy0_off_pix=None,
                                              do_tilt=True)

    # get intensity array
    arr = ag.cspad_ndarr(n2x1=iX.shape[0])
    arr.shape = (8, 185, 388)
    amp_range = (0, 185 + 388)

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

    gg.plotImageLarge(img, amp_range=amp_range)
    gg.move(500, 10)
    gg.show()
示例#9
0
def test_mask_select(tname, det):
    mask = None
    if tname == '9':
        import psana.pyalgos.generic.NDArrGenerators as ag
        sh = det.raw._shape_as_daq()  # (4, 352, 384)
        mask = ag.random_standard(shape=sh, mu=0, sigma=0.25, dtype=float)

    elif tname == '1':
        mask = Mask(det, status=True, neighbors=False, edges=False, center=False, calib=False, umask=None)\
               .mask()

    elif tname == '2':
        mask = Mask(det,\
                    status=True, status_bits=0xffff, gain_range_inds=(0,1,2,3,4),\
                    neighbors=True, rad=5, ptrn='r',\
                    edges=False, \
                    center=False,\
                    calib=False,\
                    umask=None).mask()

    elif tname == '3':
        mask = Mask(det,\
                    status=False,\
                    neighbors=False,\
                    edges=True, width=0, edge_rows=10, edge_cols=5,\
                    center=False,\
                    calib=False,\
                    umask=None).mask()

    elif tname == '4':
        mask = Mask(det,\
                    status=False,\
                    neighbors=False,\
                    edges=False,\
                    center=True, wcenter=0, center_rows=5, center_cols=3,\
                    calib=False,\
                    umask=None,\
                    force_update=False).mask()

    elif tname == '5':
        mask = Mask(det,\
                    status=False,\
                    neighbors=False,\
                    edges=False,\
                    center=False,\
                    calib=True,\
                    umask=None).mask()

    elif tname == '6':
        mask = Mask(det,\
                    status=False,\
                    neighbors=False,\
                    edges=False,\
                    center=False,\
                    calib=False,\
                    umask=test_umask(det)).mask()

    elif tname == '7':
        mask = Mask(det,\
                    status=True, status_bits=0xffff, gain_range_inds=(0,1,2,3,4),\
                    neighbors=True, rad=5, ptrn='r',\
                    edges=True, width=0, edge_rows=10, edge_cols=5,\
                    center=True, wcenter=0, center_rows=5, center_cols=3,\
                    calib=True,\
                    umask=test_umask(det),\
                    force_update=False).mask()

    elif tname == '11':
        mask = Mask(det).mask_from_status(
            status_bits=0xffff)  # dtype=DTYPE_MASK, **kwa)

    elif tname == '12':
        o = Mask(det)
        msts = o.mask_from_status(
            status_bits=0xffff)  # dtype=DTYPE_MASK, **kwa)
        mask = o.mask_neighbors(msts, rad=9, ptrn='r')

    elif tname == '13':
        mask = Mask(det).mask_edges(width=0, edge_rows=10,
                                    edge_cols=5)  # dtype=DTYPE_MASK, **kwa)

    elif tname == '14':
        mask = Mask(det).mask_center(wcenter=0, center_rows=5,
                                     center_cols=3)  # dtype=DTYPE_MASK, **kwa)

    elif tname == '15':
        mask = Mask(det).mask_calib_or_default()  # dtype=DTYPE_MASK)

    elif tname == '16':
        mask = test_umask(det)

    elif tname == '17':
        mask = Mask(det).mask_comb(\
                    status=True, status_bits=0xffff, gain_range_inds=(0,1,2,3,4),\
                    neighbors=True, rad=5, ptrn='r',\
                    edges=True, width=0, edge_rows=10, edge_cols=5,\
                    center=True, wcenter=0, center_rows=5, center_cols=3,\
                    calib=True,\
                    umask=test_umask(det),\
                    force_update=False)  # dtype=DTYPE_MASK)

    elif tname == '21':
        mask = det.raw._mask_from_status(
            status_bits=0xffff)  # dtype=DTYPE_MASK, **kwa)

    elif tname == '22':
        msts = det.raw._mask_from_status(
            status_bits=0xffff)  # dtype=DTYPE_MASK, **kwa)
        mask = det.raw._mask_neighbors(msts, rad=9, ptrn='r')

    elif tname == '23':
        mask = det.raw._mask_edges(width=0, edge_rows=10,
                                   edge_cols=5)  # dtype=DTYPE_MASK, **kwa)

    elif tname == '24':
        mask = det.raw._mask_center(wcenter=0, center_rows=5,
                                    center_cols=3)  # dtype=DTYPE_MASK, **kwa)

    elif tname == '25':
        mask = det.raw._mask_calib_or_default()  # dtype=DTYPE_MASK)

    elif tname == '26':
        mask = test_umask(det)

    elif tname == '27':
        mask = det.raw._mask_comb(\
                    status=True, status_bits=0xffff, gain_range_inds=(0,1,2,3,4),\
                    neighbors=True, rad=5, ptrn='r',\
                    edges=True, width=0, edge_rows=10, edge_cols=5,\
                    center=True, wcenter=0, center_rows=5, center_cols=3,\
                    calib=True,\
                    umask=test_umask(det),\
                    force_update=False)  # dtype=DTYPE_MASK)

    logger.info(info_ndarr(mask, '\nmask'))
    return mask