コード例 #1
0
def test_steps(comment=''):
    flyers = [pb9.enc1, pba2.adc6, pba2.adc7]
    plan = bp.relative_scan([hhm.theta, pb9.enc1, pba2.adc6, pba2.adc7],
                            hhm.theta, -0.1, 0.1, 5)
    plan = bp.fly_during_wrapper(plan, flyers)
    plan = bp.pchain(plan)
    yield from plan
コード例 #2
0
def general_scan_plan(detectors, motor, rel_start, rel_stop, num):
    
    plan = bp.relative_scan(detectors, motor, rel_start, rel_stop, num)
    
    if hasattr(detectors[0], 'kickoff'):
        plan = bpp.fly_during_wrapper(plan, detectors)

    yield from plan
コード例 #3
0
def general_scan_plan(detectors, motor, rel_start, rel_stop, num):

    plan = bp.relative_scan(detectors, motor, rel_start, rel_stop, num)

    if hasattr(detectors[0], 'kickoff'):
        plan = bpp.fly_during_wrapper(plan, detectors)

    yield from plan
コード例 #4
0
def find_peak(det, mot, start, stop, steps):
    print(f"Scanning {mot.name} vs {det.name}...")
    
    uid = yield from bp.relative_scan([det], mot, start, stop, steps)
    
    sp = '_setpoint' if mot is ivu_gap else '_user_setpoint'
    data = np.array(db[uid].table()[[det.name+'_sum_all', mot.name+sp]])[1:]
    
    peak_idx = np.argmax(data[:, 0])
    peak_x = data[peak_idx, 1]
    peak_y = data[peak_idx, 0]
    
    print(f"Found peak for {mot.name} at {peak_x} {mot.egu} [BPM reading {peak_y}]")
    return peak_x, peak_y
コード例 #5
0
def sampleXY_plan(detectors, motor, start, stop, num):
    """
    Example
    -------
    >>> RE(sampleXY_plan([pba1.adc7], samplexy.x, -2, 2, 5, ''), LivePlot('pba1.adc7_volt', 'samplexy_x'))
    """

    flyers = detectors 

    plan = bp.relative_scan(flyers, motor, start, stop, num)
    
    if hasattr(flyers[0], 'kickoff'):
        plan = bpp.fly_during_wrapper(plan, flyers)
        # Check if I can remove bpp.pchain

    yield from plan
コード例 #6
0
def tune(detectors, motor, start, stop, num, name='', **metadata):
    """
    Example
    -------
    >>> RE(tune([pba1.adc7], hhm.pitch,-2, 2, 5, ''), LivePlot('pba1.adc7_volt', 'hhm_pitch'))
    """

    flyers = detectors 

    plan = bp.relative_scan(flyers, motor, start, stop, num, md={'plan_name': 'tune ' + motor.name, 'name': name})
    
    if hasattr(flyers[0], 'kickoff'):
        plan = bpp.fly_during_wrapper(plan, flyers)
        plan = bpp.pchain(plan)

    yield from plan
コード例 #7
0
def sampleXY_plan(detectors, motor, start, stop, num):
    """
    Example
    -------
    >>> RE(sampleXY_plan([pba1.adc7], samplexy.x, -2, 2, 5, ''), LivePlot('pba1.adc7_volt', 'samplexy_x'))
    """

    flyers = detectors

    plan = bp.relative_scan(flyers, motor, start, stop, num)

    if hasattr(flyers[0], 'kickoff'):
        plan = bpp.fly_during_wrapper(plan, flyers)
        # Check if I can remove bpp.pchain

    yield from plan
コード例 #8
0
def test_round_trip_from_run_engine(db_all, RE):
    from bluesky.plans import count, scan, relative_scan, inner_product_scan
    from bluesky.examples import motor, det, motor1
    fname = tempfile.NamedTemporaryFile().name
    cb = spec.DocumentToSpec(fname)
    RE.subscribe(cb)
    RE(scan([det], motor, -1, 1, 10), owner="Tom")
    RE(relative_scan([det], motor, -1, 1, 10))
    RE(count([det]))

    RE(inner_product_scan([det], 10, motor, -1, 1, motor1, -1, 1))

    sf = spec.Specfile(fname)
    sf1 = _round_trip(sf, db_all)

    # a2scan is not round trippable
    num_unconvertable_scans = 1
    assert len(sf) == (len(sf1) + num_unconvertable_scans)
コード例 #9
0
def dummy_edge_scan(sample_name, edge, md=None):
    from bluesky.examples import det, motor, det2

    if md is None:
        md = {}
    local_md = {'plan_name': 'edge_ascan'}
    md = ChainMap(md, local_md)

    e_scan_params = EDGE_MAP[edge]
    # TODO configure the vortex

    sample_props = SAMPLE_MAP[sample_name]
    # sample_props = list(sample_manager.find(sample_name))[0]
    local_md.update(sample_props)
    lp_list = []
    for n in ['det', 'det2']:
        fig = plt.figure(edge + ': ' + n)
        lp = bs.callbacks.LivePlot(n, 'motor', fig=fig)
        lp_list.append(lp)
    yield from bpp.subs_wrapper(bp.relative_scan([det, det2], motor, -5, 5, 15, md=md),
                               lp_list)
コード例 #10
0
def dummy_edge_scan(sample_name, edge, md=None):
    from bluesky.examples import det, motor, det2

    if md is None:
        md = {}
    local_md = {'plan_name': 'edge_ascan'}
    md = ChainMap(md, local_md)

    e_scan_params = EDGE_MAP[edge]
    # TODO configure the vortex

    sample_props = SAMPLE_MAP[sample_name]
    # sample_props = list(sample_manager.find(sample_name))[0]
    local_md.update(sample_props)
    lp_list = []
    for n in ['det', 'det2']:
        fig = plt.figure(edge + ': ' + n)
        lp = bs.callbacks.LivePlot(n, 'motor', fig=fig)
        lp_list.append(lp)
    yield from bpp.subs_wrapper(bp.relative_scan([det, det2], motor, -5, 5, 15, md=md),
                               lp_list)
コード例 #11
0
def tune(detectors, motor, start, stop, num, comment='', **metadata):
    """
    Example
    -------
    >>> RE(tune([pba2.adc7],-2, 2, 5, ''), LivePlot('pba2_adc7_volt', 'hhm_pitch'))
    """

    flyers = detectors  #[pba2.adc6, pba2.adc7]
    # Start with a step scan.
    plan = bp.relative_scan(flyers,
                            motor,
                            start,
                            stop,
                            num,
                            md={'comment': comment})
    plan = bp.fly_during_wrapper(plan, flyers)

    #for flyer in flyers:
    #    yield from bp.stage(flyer)

    plan = bp.pchain(plan)
    yield from plan
コード例 #12
0
def tune(detectors, motor, start, stop, num, name='', **metadata):
    """
    Example
    -------
    >>> RE(tune([pba1.adc7], hhm.pitch,-2, 2, 5, ''), LivePlot('pba1.adc7_volt', 'hhm_pitch'))
    """

    flyers = detectors

    plan = bp.relative_scan(flyers,
                            motor,
                            start,
                            stop,
                            num,
                            md={
                                'plan_name': 'tune ' + motor.name,
                                'name': name
                            })

    if hasattr(flyers[0], 'kickoff'):
        plan = bpp.fly_during_wrapper(plan, flyers)
        plan = bpp.pchain(plan)

    yield from plan
コード例 #13
0
def generate_data(RE):
    # This adds {'proposal_id': 1} to all future runs, unless overridden.
    RE.md['proposal_id'] = 1
    RE(count([det]))
    RE(scan([det], motor, 1, 5, 5))
    RE(scan([det], motor, 1, 10, 10))

    RE.md['proposal_id'] = 2
    RE(count([det]))
    RE(scan([det], motor, -1, 1, 5))
    RE(relative_scan([det], motor, 1, 10, 10))
    RE(scan([det], motor, -1, 1, 1000))

    RE.md['proposal_id'] = 3
    # This adds {'operator': 'Ken'} to all future runs, unless overridden.
    RE.md['operator'] = 'Ken'
    RE(count([det]), purpose='calibration', sample='A')
    RE(scan([det], motor, 1, 10, 10), operator='Dan')  # temporarily overrides Ken
    RE(count([det]), sample='A')  # (now back to Ken)
    RE(count([det]), sample='B')
    RE.md['operator'] = 'Dan'
    RE(count([det]), purpose='calibration')
    RE(scan([det], motor, 1, 10, 10))
    del RE.md['operator']  # clean up by un-setting operator
コード例 #14
0
def hhm_theta_scan(start,
                   stop,
                   num,
                   flyers=[pb9.enc1, pba2.adc6, pba2.adc7],
                   comment='',
                   **metadata):
    """
    Example
    -------
    >>> RE(hhm_theta_scan(-0.1, 0.1, 2, [pb4.di, xia]))
    """
    def inner():
        md = {'plan_args': {}, 'plan_name': 'step scan', 'comment': comment}
        md.update(**metadata)
        yield from bp.open_run(md=md)

    # Start with a step scan.
    plan = bp.relative_scan([hhm_en.energy],
                            hhm_en.energy,
                            start,
                            stop,
                            num,
                            md={'comment': comment})
    # Wrap it in a fly scan with the Pizza Box.
    plan = bp.fly_during_wrapper(plan, flyers)
    # Working around a bug in fly_during_wrapper, stage and unstage the pizza box manually.

    for flyer in flyers:
        yield from bp.stage(flyer)
    yield from bp.stage(hhm)

    plan = bp.pchain(plan)
    #plan = bp.pchain(bp.stage(pb9.enc1), bp.stage(pba2.adc6), bp.stage(pba2.adc7),
    #                 plan,
    #                 bp.unstage(pb9.enc1), bp.unstage(pba2.adc6), bp.unstage(pba2.adc7))
    yield from plan
コード例 #15
0
from bluesky.plans import relative_scan
from bluesky.callbacks import LiveTable

RE(relative_scan([BTA2_DiagA2_1], BTA2_diag.trans, -0.1, 0.1, 5),
   LiveTable([BTA2_diag.trans, BTA2_DiagA2_1]))
コード例 #16
0
ファイル: scans.py プロジェクト: NSLS-II-HXN/hxntools
def relative_scan(dets, motor, start, finish, intervals, time=None, *,
                  md=None):
    yield from _pre_scan(dets, total_points=intervals + 1, count_time=time)
    return (yield from plans.relative_scan(dets, motor, start, finish,
                                           intervals+1, md=md))
コード例 #17
0
from bluesky.plans import relative_scan
from bluesky.callbacks import LiveTable, LivePlot


assert epu2.connected

RE(relative_scan([epu2], epu2.gap, 0, 0.2, 5), LiveTable([epu2]))
コード例 #18
0
from bluesky.plans import relative_scan
from bluesky.callbacks import LivePlot, LiveTable

RE(relative_scan([qem08], m4_diag1, -1, 1, 5), [
    LiveTable(['rs_diag_1_tey', 'm4_diag1']),
    LivePlot('rs_diag_1_tey', 'm4_diag1')
])