id4_common.plans.local_scans#

Modifed bluesky scans

Module Contents#

id4_common.plans.local_scans.count(num, time, detectors=None, lockin=False, dichro=False, vortex_sgz=False, g_sgz=False, delay=None, per_shot=None, md=None)#

Take one or more readings from detectors.

This is a local version of bluesky.plans.count. Note that the per_shot cannot be set here, as it is used for dichro scans.

Parameters:
  • num (integer) – number of readings to take If None, capture data until canceled

  • time (float) – If a number is passed, it will modify the counts over time. All detectors need to have a .preset_monitor signal.

  • detectors (list, optional) – List of ‘readable’ objects. If None, will use the detectors defined in counters.detectors.

  • lockin (boolean, optional) – Flag to do a lock-in scan. Please run pr_setup.config() prior do a lock-in scan.

  • dichro (boolean, optional) – Flag to do a dichro scan. Please run pr_setup.config() prior do a dichro scan. Note that this will switch the x-ray polarization at every point using the +, -, -, + sequence, thus increasing the number of points by a factor of 4

  • vortex_sgz (boolean, optional) – Measures the Vortex detector using the softgluezynq triggers. This is a special mode that requires the ‘vortex’ and ‘sgz_vortex’ devices to exist otherwise an error will be thrown.

  • delay (iterable or scalar, optional) – Time delay in seconds between successive readings; default is 0.

  • per_shot (callable, optional) – Hook for customizing action of inner loop (messages per step). See docstring of bluesky.plan_stubs.one_nd_step() (the default) for details.

  • md (dict, optional) – metadata

Notes

If delay is an iterable, it must have at least num - 1 entries or the plan will raise a ValueError during iteration.

id4_common.plans.local_scans.ascan(*args, detectors=None, lockin=False, dichro=False, fixq=False, vortex_sgz=False, g_sgz=False, per_step=None, md=None)#

Scan over one multi-motor trajectory.

This is a local version of bluesky.plans.scan. Note that the per_step cannot be set here, as it is used for dichro scans.

Parameters:
  • *args

    For one dimension, motor, start, stop, number of points, time. In general: .. code-block:: python

    motor1, start1, stop1, motor2, start2, start2, …, motorN, startN, stopN, number of points, time

    Motors can be any ‘settable’ object (motor, temp controller, etc.)

  • detectors (list, optional) – List of detectors to be used in the scan. If None, will use the detectors defined in counters.detectors.

  • lockin (boolean, optional) – Flag to do a lock-in scan. Please run pr_setup.config() prior do a lock-in scan.

  • dichro (boolean, optional) – Flag to do a dichro scan. Please run pr_setup.config() prior do a dichro scan. Note that this will switch the x-ray polarization at every point using the +, -, -, + sequence, thus increasing the number of points by a factor of 4

  • fixq (boolean, optional) – Flag for fixQ scans. If True, it will fix the diffractometer hkl position during the scan. This is particularly useful for energy scan. Note that hkl is moved ~after~ the other motors!

  • vortex_sgz (boolean, optional) – Measures the Vortex detector using the softgluezynq triggers. This is a special mode that requires the ‘vortex’ and ‘sgz_vortex’ devices to exist otherwise an error will be thrown.

  • per_step (callable, optional) – hook for customizing action of inner loop (messages per step). See docstring of bluesky.plan_stubs.one_nd_step() (the default) for details.

  • md (dictionary, optional) – Metadata to be added to the run start.

See also

bluesky.plans.scan(), lup()

id4_common.plans.local_scans.lup(*args, detectors=None, lockin=False, dichro=False, fixq=False, vortex_sgz=False, g_sgz=False, per_step=None, md=None)#

Scan over one multi-motor trajectory relative to current position.

This is a local version of bluesky.plans.rel_scan. Note that the per_step cannot be set here, as it is used for dichro scans.

Parameters:
  • *args

    For one dimension, motor, start, stop, number of points. In general: .. code-block:: python

    motor1, start1, stop1, motor2, start2, start2, …, motorN, startN, stopN, number of points

    Motors can be any ‘settable’ object (motor, temp controller, etc.)

  • detectors (list, optional) – List of detectors to be used in the scan. If None, will use the detectors defined in counters.detectors.

  • lockin (boolean, optional) – Flag to do a lock-in scan. Please run pr_setup.config() prior do a lock-in scan.

  • dichro (boolean, optional) – Flag to do a dichro scan. Please run pr_setup.config() prior do a dichro scan. Note that this will switch the x-ray polarization at every point using the +, -, -, + sequence, thus increasing the number of points by a factor of 4

  • fixq (boolean, optional) – Flag for fixQ scans. If True, it will fix the diffractometer hkl position during the scan. This is particularly useful for energy scan. Note that hkl is moved ~after~ the other motors!

  • vortex_sgz (boolean, optional) – Measures the Vortex detector using the softgluezynq triggers. This is a special mode that requires the ‘vortex’ and ‘sgz_vortex’ devices to exist otherwise an error will be thrown.

  • per_step (callable, optional) – hook for customizing action of inner loop (messages per step). See docstring of bluesky.plan_stubs.one_nd_step() (the default) for details.

  • md (dictionary, optional) – Metadata to be added to the run start.

See also

bluesky.plans.rel_scan(), ascan()

id4_common.plans.local_scans.grid_scan(*args, detectors=None, snake_axes=None, lockin=False, dichro=False, fixq=False, vortex_sgz=False, g_sgz=False, per_step=None, md=None)#

Scan over a mesh; each motor is on an independent trajectory.

Parameters:
  • *args

    patterned like (motor1, start1, stop1, num1,

    motor2, start2, stop2, num2, motor3, start3, stop3, num3,motorN, startN, stopN, numN)

    The first motor is the “slowest”, the outer loop. For all motors except the first motor, there is a “snake” argument: a boolean indicating whether to following snake-like, winding trajectory or a simple left-to-right trajectory.

  • time (float, optional) – If a number is passed, it will modify the counts over time. All detectors need to have a .preset_monitor signal.

  • detectors (list, optional) – List of detectors to be used in the scan. If None, will use the detectors defined in counters.detectors.

  • snake_axes (boolean or iterable, optional) – which axes should be snaked, either False (do not snake any axes), True (snake all axes) or a list of axes to snake. “Snaking” an axis is defined as following snake-like, winding trajectory instead of a simple left-to-right trajectory. The elements of the list are motors that are listed in args. The list must not contain the slowest (first) motor, since it can’t be snaked.

  • lockin (boolean, optional) – Flag to do a lock-in scan. Please run pr_setup.config() prior do a lock-in scan.

  • dichro (boolean, optional) – Flag to do a dichro scan. Please run pr_setup.config() prior do a dichro scan. Note that this will switch the x-ray polarization at every point using the +, -, -, + sequence, thus increasing the number of points by a factor of 4

  • fixq (boolean, optional) – Flag for fixQ scans. If True, it will fix the diffractometer hkl position during the scan. This is particularly useful for energy scan. Note that hkl is moved ~after~ the other motors!

  • vortex_sgz (boolean, optional) – Measures the Vortex detector using the softgluezynq triggers. This is a special mode that requires the ‘vortex’ and ‘sgz_vortex’ devices to exist otherwise an error will be thrown.

  • per_step (callable, optional) – hook for customizing action of inner loop (messages per step). See docstring of bluesky.plan_stubs.one_nd_step() (the default) for details.

  • md (dict, optional) – metadata

See also

bluesky.plans.grid_scan(), bluesky.plans.rel_grid_scan(), bluesky.plans.inner_product_scan(), bluesky.plans.scan_nd()

id4_common.plans.local_scans.rel_grid_scan(*args, detectors=None, snake_axes=None, lockin=False, dichro=False, fixq=False, vortex_sgz=False, g_sgz=False, per_step=None, md=None)#

Scan over a mesh relative to current position.

Each motor is on an independent trajectory.

Parameters:
  • *args

    patterned like (motor1, start1, stop1, num1,

    motor2, start2, stop2, num2, motor3, start3, stop3, num3,motorN, startN, stopN, numN)

    The first motor is the “slowest”, the outer loop. For all motors except the first motor, there is a “snake” argument: a boolean indicating whether to following snake-like, winding trajectory or a simple left-to-right trajectory.

  • snake_axes (boolean or iterable, optional) – which axes should be snaked, either False (do not snake any axes), True (snake all axes) or a list of axes to snake. “Snaking” an axis is defined as following snake-like, winding trajectory instead of a simple left-to-right trajectory. The elements of the list are motors that are listed in args. The list must not contain the slowest (first) motor, since it can’t be snaked.

  • detectors (list, optional) – List of detectors to be used in the scan. If None, will use the detectors defined in counters.detectors.

  • lockin (boolean, optional) – Flag to do a lock-in scan. Please run pr_setup.config() prior do a lock-in scan

  • dichro (boolean, optional) – Flag to do a dichro scan. Please run pr_setup.config() prior do a dichro scan. Note that this will switch the x-ray polarization at every point using the +, -, -, + sequence, thus increasing the number of points by a factor of 4

  • fixq (boolean, optional) – Flag for fixQ scans. If True, it will fix the diffractometer hkl position during the scan. This is particularly useful for energy scan. Note that hkl is moved ~after~ the other motors!

  • vortex_sgz (boolean, optional) – Measures the Vortex detector using the softgluezynq triggers. This is a special mode that requires the ‘vortex’ and ‘sgz_vortex’ devices to exist otherwise an error will be thrown.

  • per_step (callable, optional) – hook for customizing action of inner loop (messages per step). See docstring of bluesky.plan_stubs.one_nd_step() (the default) for details.

  • md (dict, optional) – metadata

See also

grid_scan(), bluesky.plans.grid_scan(), bluesky.plans.rel_grid_scan(), bluesky.plans.inner_product_scan(), bluesky.plans.scan_nd()

id4_common.plans.local_scans.qxscan(edge_energy, time, detectors=None, lockin=False, dichro=False, fixq=False, vortex_sgz=False, g_sgz=False, per_step=None, md=None)#

Energy scan with fixed delta_K steps.

WARNING: please run qxscan_params() before using this plan! It will use the parameters set in qxscan_params to determine the energy points.

Parameters:
  • edge_energy (float) – Absorption edge energy. The parameters in qxscan_params offset by this energy.

  • time (float) – If a number is passed, it will modify the counts over time. All detectors need to have a .preset_monitor signal.

  • detectors (list, optional) – List of detectors to be used in the scan. If None, will use the detectors defined in counters.detectors.

  • lockin (boolean, optional) – Flag to do a lock-in scan. Please run pr_setup.config() prior do a lock-in scan

  • dichro (boolean, optional) – Flag to do a dichro scan. Please run pr_setup.config() prior do a dichro scan. Note that this will switch the x-ray polarization at every point using the +, -, -, + sequence, thus increasing the number of points by a factor of 4

  • fixq (boolean, optional) – Flag for fixQ scans. If True, it will fix the diffractometer hkl position during the scan. Note that hkl is moved ~after~ the other motors!

  • md (dictionary, optional) – Metadata to be added to the run start.

See also

bluesky.plans.scan(), lup()

id4_common.plans.local_scans.mv(*args, **kwargs)#

Move one or more devices to a setpoint, and wait for all to complete.

This is a local version of bluesky.plan_stubs.mv. If more than one device is specifed, the movements are done in parallel.

Parameters:
  • args – device1, value1, device2, value2, …

  • kwargs – passed to bluesky.plan_stubs.mv

Yields:

msg (Msg)

See also

bluesky.plan_stubs.mv()

id4_common.plans.local_scans.mvr(*args, **kwargs)#

Move one or more devices to a relative setpoint. Wait for all to complete.

If more than one device is specified, the movements are done in parallel.

This is a local version of bluesky.plan_stubs.mvr.

Parameters:
  • args – device1, value1, device2, value2, …

  • kwargs – passed to bluesky.plan_stub.mvr

Yields:

msg (Msg)

See also

bluesky.plan_stubs.rel_set(), bluesky.plan_stubs.mv()

id4_common.plans.local_scans.abs_set(*args, **kwargs)#

Set a value. Optionally, wait for it to complete before continuing.

This is a local version of bluesky.plan_stubs.abs_set. If more than one device is specifed, the movements are done in parallel.

Parameters:
  • obj (Device)

  • group (string (or any hashable object), optional) – identifier used by ‘wait’

  • wait (boolean, optional) – If True, wait for completion before processing any more messages. False by default.

  • args – passed to obj.set()

  • kwargs – passed to obj.set()

Yields:

msg (Msg)

See also

bluesky.plan_stubs.rel_set(), bluesky.plan_stubs.wait(), bluesky.plan_stubs.mv()