Beispiel #1
0
def silent_reduce(ds, map = None):
    location = ds.location
    id = ds.id
    title = ds.title
    ds = ds.get_reduced(1)
    
    if not map is None:
        ds = lib.eff_corr(ds, map)
        
    rds = lib.geo_corr(ds, geo_corr_enabled.value)
#    ds.close()
    rds.id = id
    return rds
Beispiel #2
0
def silent_reduce(ds, map=None):
    location = ds.location
    id = ds.id
    title = ds.title
    ds = ds.get_reduced(1)

    if not map is None:
        ds = lib.eff_corr(ds, map)

    rds = lib.geo_corr(ds, geo_corr_enabled.value)
    ds.close()
    rds.id = id
    return rds
Beispiel #3
0
def reduce():
    global DS
    global VI
    global IR
    
    old_id = -1
    if not DS is None:
        old_id = DS.id 
    li = __get_selected_files__()
    if len(li) == 0:
        open_error('Please select a file from the file source view.')
        return
    if Plot1.ndim is 0:
        Plot1.set_dataset(instance([2,2]))

    prog_bar.max = 5
    prog_bar.selection = 1
    df.datasets.clear()
    DS = df[str(li[0])]
    curr_idx = -1
    if old_id == DS.id:
        curr_idx = ind_jump.value
    location = DS.location
    id = DS.id
    title = DS.title
    DS = DS.get_reduced(1)
    
    prog_bar.selection = 2
    if eff_corr_enabled.value and eff_map.value != None \
            and len(eff_map.value.strip()) > 0:
        log('running efficiency correction')
        map = lib.make_eff_map(df, get_calibration_path() + '/' + str(eff_map.value))
        DS = lib.eff_corr(DS, map)
        
    prog_bar.selection = 3
    if geo_corr_enabled.value :
        log('running geometry correction')
    DS = lib.geo_corr(DS, geo_corr_enabled.value)

    DS.location = location
    DS.id = id
    DS.title = title
#    Plot1.set_dataset(DS[0])
#    Plot1.title = str(DS.id) + '_0'
#    Plot1.set_mask_listener(regionListener)
        
    masks = []
    if reg_enabled.value :
        if len(Plot1.get_masks()) > 0:
            masks = Plot1.get_masks()
        else :
#            if reg_list.value != None and reg_list.value.strip() != '':
#            if reg_minX.value != None and reg_minX.value.strip() != '' and reg_maxX.value != None and reg_maxX.value.strip() != '' \
#                    reg_minY.value != None and reg_minY.value.strip() != '' reg_maxY.value != None and reg_maxY.value.strip() != ''
#                mask_str = 'I-1[' + reg_minX.value + ',' + reg_maxX.value + ',' + reg_minY.value + ',' + reg_maxY.value + ']'
                mask_str = get_mask_str() 
                masks = str2maskstr(mask_str)
                for mask in masks:
                    Plot1.add_mask_2d(float(mask[0]), float(mask[1]), \
                                      float(mask[2]), float(mask[3]), mask[4])
                masks = Plot1.get_masks()
    
    prog_bar.selection = 4
    log('running vertical integration')
    VI = lib.v_intg(DS, masks)
    
#    Plot2.set_dataset(VI[0])
#    Plot2.title = str(DS.id) + "_integration_0"

    ind_jump.options = range(DS.shape[0])
    var_jump.options = DS.axes[0].tolist()
    if curr_idx == -1:
        ind_jump.value = 0
    else:
        ind_jump.value = curr_idx
    update_plots(curr_idx)
    
    prog_bar.selection = 5
    log('running intensity integration')
    IR = lib.i_intg(VI)

    prog_bar.selection = 5
    Plot3.set_dataset(IR)
    Plot3.title = str(DS.id) + "_intensity"
    Plot3.set_mouse_listener(NavMouseListener())
    
    Plot1.set_awt_mouse_listener(mouse_press_listener)
    Plot1.set_mask_listener(regionListener)
    prog_bar.selection = 0
    
#    set_pref_value(SAVED_MASK_PRFN , str(reg_list.value))
    set_pref_value(SAVED_MASK_PRFN , str(get_mask_str()))
    set_pref_value(SAVED_EFFICIENCY_FILENAME_PRFN, str(eff_map.value))
    save_pref()
def export_images():
    path = selectSaveFolder()
    if path == None:
        return
    dss = __DATASOURCE__.getSelectedDatasets()
    if len(dss) == 0:
        print 'Error: please select at least one data file.'
    fi = File(path)
    if not fi.exists():
        if not fi.mkdir():
            print 'Error: failed to make directory: ' + path
            return
    dss_idx = 0
    prog_bar.max = len(dss) + 1
    try:
        for dinfo in dss:
            dss_idx += 1
            prog_bar.selection = dss_idx
            ds = df[str(dinfo.location)]
            if ds.ndim < 3:
                log('dimension of ' + str(ds.id) + ' is not supported')
            dname = ds.name
            if ds.ndim == 4:
                ds = ds.get_reduced(1)
            if par_eff.value and eff_map.value != None \
                and len(eff_map.value.strip()) > 0:
                log('running efficiency correction')
                map = lib.make_eff_map(df, str(eff_map.value))
                ds = lib.eff_corr(ds, map)
            if par_geo.value :
                log('running geometry correction')
                ds = lib.geo_corr(ds, par_geo.value)
            log('process ' + dname)
            idx = dname.find('.')
            if idx > 0:
                fn = dname[0:idx]
            fn = path + '/' + fn
            wt = int(math.log10(len(ds))) + 1
            for i in xrange(len(ds)):
                log('\t frame ' + str(i))
                if ds.ndim == 4:
                    sl = ds[i, 0]
                elif ds.ndim == 3:
                    sl = ds[i]
                elif ds.ndim == 2:
                    sl = ds
                else:
                    log('dimensions are not allowed for ' + dname)
                    break
                if str(par_type.value) == 'ASCII' :
                    ext = ('%0' + str(wt) + 'd.xyz') % i
                    f = open(fn + '_' + ext, 'w')
                    try:
                        header = '#'
                        header += get_line(sl.axes[1], 3)
                        f.write(header)
                        for line in sl:
                            f.write(get_line(line, 3))
                    finally:
                        f.close()
                else:
                    pds = NXFactory.createHist2DDataset(sl.__iNXDataset__)
                    HPLOT.setDataset(pds)
                    HPLOT.getChart().setTitle(str(dname) + '_' + str(i))
                    ext = (('%0' + str(wt) + 'd.' + str(par_type.value)) % i)
                    try:
                        HPLOT.getXYPlot().getRenderer().getPaintScale().setColorScale(color_scale.Rainbow)
                    except:
                        pass
                    HPLOT.saveImage(fn + '_' + ext, str(par_type.value))
    finally:
        prog_bar.selection = 0
        prog_bar.max = 0
    log('Done')
Beispiel #5
0
def reduce():
    global DS
    global VI
    global IR

    old_id = -1
    if not DS is None:
        old_id = DS.id
    li = __get_selected_files__()
    if len(li) == 0:
        open_error('Please select a file from the file source view.')
        return
    if Plot1.ndim is 0:
        Plot1.set_dataset(instance([2, 2]))

    prog_bar.max = 5
    prog_bar.selection = 1
    df.datasets.clear()
    DS = df[str(li[0])]
    curr_idx = -1
    if old_id == DS.id:
        curr_idx = ind_jump.value
    location = DS.location
    id = DS.id
    title = DS.title
    DS = DS.get_reduced(1)

    prog_bar.selection = 2
    if eff_corr_enabled.value and eff_map.value != None \
            and len(eff_map.value.strip()) > 0:
        log('running efficiency correction')
        map = lib.make_eff_map(
            df,
            get_calibration_path() + '/' + str(eff_map.value))
        DS = lib.eff_corr(DS, map)

    prog_bar.selection = 3
    if geo_corr_enabled.value:
        log('running geometry correction')
    DS = lib.geo_corr(DS, geo_corr_enabled.value)

    DS.location = location
    DS.id = id
    DS.title = title
    #    Plot1.set_dataset(DS[0])
    #    Plot1.title = str(DS.id) + '_0'
    #    Plot1.set_mask_listener(regionListener)

    masks = []
    if reg_enabled.value:
        if len(Plot1.get_masks()) > 0:
            masks = Plot1.get_masks()
        else:
            #            if reg_list.value != None and reg_list.value.strip() != '':
            #            if reg_minX.value != None and reg_minX.value.strip() != '' and reg_maxX.value != None and reg_maxX.value.strip() != '' \
            #                    reg_minY.value != None and reg_minY.value.strip() != '' reg_maxY.value != None and reg_maxY.value.strip() != ''
            #                mask_str = 'I-1[' + reg_minX.value + ',' + reg_maxX.value + ',' + reg_minY.value + ',' + reg_maxY.value + ']'
            mask_str = get_mask_str()
            masks = str2maskstr(mask_str)
            for mask in masks:
                Plot1.add_mask_2d(float(mask[0]), float(mask[1]), \
                                  float(mask[2]), float(mask[3]), mask[4])
            masks = Plot1.get_masks()

    prog_bar.selection = 4
    log('running vertical integration')
    VI = lib.v_intg(DS, masks)

    #    Plot2.set_dataset(VI[0])
    #    Plot2.title = str(DS.id) + "_integration_0"

    ind_jump.options = range(DS.shape[0])
    var_jump.options = DS.axes[0].tolist()
    if curr_idx == -1:
        ind_jump.value = 0
    else:
        ind_jump.value = curr_idx
    update_plots(curr_idx)

    prog_bar.selection = 5
    log('running intensity integration')
    IR = lib.i_intg(VI)

    prog_bar.selection = 5
    Plot3.set_dataset(IR)
    Plot3.title = str(DS.id) + "_intensity"
    Plot3.set_mouse_listener(NavMouseListener())

    Plot1.set_awt_mouse_listener(mouse_press_listener)
    Plot1.set_mask_listener(regionListener)
    prog_bar.selection = 0

    #    set_pref_value(SAVED_MASK_PRFN , str(reg_list.value))
    set_pref_value(SAVED_MASK_PRFN, str(get_mask_str()))
    set_pref_value(SAVED_EFFICIENCY_FILENAME_PRFN, str(eff_map.value))
    save_pref()