Пример #1
0
def scan_peak(id):
    aname = 's2'
    try:
        if DEBUGGING :
            aname = 'dummy_motor'
    except:
        pass
    pos = eval('peak_' + str(id + 1) + '.value')
    if id < 3:
        exec('axis_min.value=' + 'peak_' + str(id + 1) + '.value-2')
        exec('axis_max.value=' + 'peak_' + str(id + 1) + '.value+2')
    elif id == 3:
        exec('axis_min.value=' + 'peak_' + str(id + 1) + '.value-3.5')
        exec('axis_max.value=' + 'peak_' + str(id + 1) + '.value+2')
    elif id == 4:
        exec('axis_min.value=' + 'peak_' + str(id + 1) + '.value-3')
        exec('axis_max.value=' + 'peak_' + str(id + 1) + '.value+3')
    sicsext.call_back = __load_experiment_data__
    print 'scan on ' + aname
    print 'scan_' + str(id + 1) + '.value'
    spara = eval('scan_' + str(id + 1) + '.value')
    print spara
    exec('sicsext.runbmonscan(\'' + aname + '\', ' + spara + ', 0, \'call_back()\')')
    time.sleep(2)
    slog('Nexus file: ' + str(sicsext.getBaseFilename()))
    pos_index.value = id + 1
    fit_curve(axis_min.value, axis_max.value)
    if id == 3:
        fit_2nd_peak(peak_4.value + 2, peak_4.value + 6)
Пример #2
0
def find_a2():
    aname = 'a2'
    try:
        if DEBUGGING :
            aname = 'dummy_motor'
    except:
        pass
    axis_name.value = aname
    sicsext.call_back = __load_experiment_data__
    slog('bmonscan ' + aname + ' ' + scan.value)
    exec('sicsext.runbmonscan(\'' + aname + '\', ' + scan.value + ', 0, \'call_back()\')')
    time.sleep(2)
    slog('Nexus file: ' + str(sicsext.getBaseFilename()))
    fit_curve()
Пример #3
0
def load_experiment_data():
    basename = sicsext.getBaseFilename()
    fullname = str(System.getProperty('sics.data.path') + '/' + basename)
    df.datasets.clear()
    ds = df[fullname]
    dname = str(data_name.value)
    data = SimpleData(ds[dname])
#    data = ds[str(data_name.value)]
    axis = SimpleData(ds[str(axis_name.value)])
    if data.size > axis.size:
        data = data[:axis.size]
    if normalise.value :
        if dname == 'bm1_counts':
            tname = 'bm1_time'
        elif dname == 'bm2_counts':
            tname = 'bm2_time'
        else:
            tname = 'detector_time'
        norm = ds[tname]
        if norm != None and hasattr(norm, '__len__'):
            avg = norm.sum() / len(norm)
            niter = norm.item_iter()
            if niter.next() <= 0:
                niter.set_curr(1)
            data = data / norm * avg

    ds2 = Dataset(data, axes=[axis])
    ds2.title = ds.id
    ds2.location = fullname
    fit_min.value = axis.min()
    fit_max.value = axis.max()
    Plot1.set_dataset(ds2)
    Plot1.x_label = axis_name.value
    Plot1.y_label = str(data_name.value)
    Plot1.title = str(data_name.value) + ' vs ' + axis_name.value
    Plot1.pv.getPlot().setMarkerEnabled(True)
Пример #4
0
def load_experiment_data():
    basename = sicsext.getBaseFilename()
    fullname = str(System.getProperty('sics.data.path') + '/' + basename)
    df.datasets.clear()
    ds = df[fullname]
    dname = str(data_name.value)
    data = SimpleData(ds[dname])
    #    data = ds[str(data_name.value)]
    axis = SimpleData(ds[str(axis_name.value)])
    if data.size > axis.size:
        data = data[:axis.size]
    if normalise.value:
        if dname == 'bm1_counts':
            tname = 'bm1_time'
        elif dname == 'bm2_counts':
            tname = 'bm2_time'
        else:
            tname = 'detector_time'
        norm = ds[tname]
        if norm != None and hasattr(norm, '__len__'):
            avg = norm.sum() / len(norm)
            niter = norm.item_iter()
            if niter.next() <= 0:
                niter.set_curr(1)
            data = data / norm * avg

    ds2 = Dataset(data, axes=[axis])
    ds2.title = ds.id
    ds2.location = fullname
    fit_min.value = axis.min()
    fit_max.value = axis.max()
    Plot1.set_dataset(ds2)
    Plot1.x_label = axis_name.value
    Plot1.y_label = str(data_name.value)
    Plot1.title = str(data_name.value) + ' vs ' + axis_name.value
    Plot1.pv.getPlot().setMarkerEnabled(True)