ibex_bluesky_core.plans
Generic plans.
Submodules
Plans specific to Muon beamlines. |
|
Plans specific to Reflectometry beamlines. |
|
Plans specific to SANS beamlines. |
Members
Scan the DAE against a block using an adaptive scan. |
|
Wrap adaptive_scan() plan and create a block_mot and a DAE object. |
|
Wrap our scan() plan and create a block_mot and a DAE object. |
|
Move to a destination but drop updates from readable if motor position has not changed. |
|
Scan the DAE against a Movable. |
- ibex_bluesky_core.plans.adaptive_scan(dae: SimpleDae, block: NamedMovable[float], start: float, stop: float, min_step: float, max_step: float, target_delta: float, *, model: FitMethod | None = None, periods: bool = True, save_run: bool = False, rel: bool = False) Generator[Msg, None, ISISCallbacks] [source]
Scan the DAE against a block using an adaptive scan.
This will scan coarsely until target_delta occurs, then it will go back and perform finer scans.
- Parameters:
dae – the simple DAE object to use.
block – a movable to move during the scan.
start – the starting position of the block.
stop – the final position of the block.
min_step – smallest step for fine regions.
max_step – largest step for coarse regions.
target_delta – desired fractional change in detector signal between steps
model – the fit method to use.
periods – whether or not to use software periods.
save_run – whether or not to save run.
rel – whether or not to scan around the current position or use absolute positions.
- Returns:
an
ibex_bluesky_core.callbacks.ISISCallbacks
instance.
- ibex_bluesky_core.plans.motor_adaptive_scan(block_name: str, start: float, stop: float, min_step: float, max_step: float, target_delta: float, *, frames: int, det: int, mon: int, model: FitMethod | None = None, pixel_range: int = 0, periods: bool = True, save_run: bool = False, rel: bool = False) Generator[Msg, None, ISISCallbacks] [source]
Wrap adaptive_scan() plan and create a block_mot and a DAE object.
This only works with blocks that are pointing at motor records. This is really just a wrapper around
ibex_bluesky_core.plans.adaptive_scan()
- Parameters:
block_name – the name of the block to scan.
start – the starting position of the block.
stop – the final position of the block.
min_step – smallest step for fine regions.
max_step – largest step for coarse regions.
target_delta – desired fractional change in detector signal between steps.
frames – the number of frames to wait for when scanning.
det – the detector number.
mon – the monitor number.
pixel_range – the range of pixels to scan over, using det as a centred pixel.
model – the fit method to use.
periods – whether or not to use software periods.
save_run – whether or not to save run.
rel – whether or not to scan around the current position or use absolute positions.
- Returns:
an
ibex_bluesky_core.callbacks.ISISCallbacks
instance.
- ibex_bluesky_core.plans.motor_scan(block_name: str, start: float, stop: float, num: int, *, frames: int, det: int, mon: int, model: FitMethod | None = None, pixel_range: int = 0, periods: bool = True, save_run: bool = False, rel: bool = False) Generator[Msg, None, ISISCallbacks] [source]
Wrap our scan() plan and create a block_mot and a DAE object.
This only works with blocks that are pointing at motor records. This is really just a wrapper around
ibex_bluesky_core.plans.scan()
- Parameters:
block_name – the name of the block to scan.
start – the starting position of the block.
stop – the final position of the block.
num – the number of points to make.
frames – the number of frames to wait for when scanning.
det – the detector number.
mon – the monitor number.
pixel_range – the range of pixels to scan over, using det as a centred pixel.
model – the fit method to use.
periods – whether or not to use software periods.
save_run – whether or not to save run.
rel – whether or not to scan around the current position or use absolute positions.
- Returns:
an
ibex_bluesky_core.callbacks.ISISCallbacks
instance.
- ibex_bluesky_core.plans.polling_plan(motor: NamedReadableAndMovable, readable: Readable[Any], destination: float) Generator[Msg, None, None] [source]
Move to a destination but drop updates from readable if motor position has not changed.
- Parameters:
motor – the motor to move.
readable – the readable to read updates from, but drop if motor has not moved.
destination – the destination position.
- Returns:
None
If we just used bp.scan() with a readable that updates more frequently than a motor can register that it has moved, we would have lots of updates with the same motor position, which may not be helpful.
- ibex_bluesky_core.plans.scan(dae: SimpleDae, block: NamedMovable[float], start: float, stop: float, num: int, *, model: FitMethod | None = None, periods: bool = True, save_run: bool = False, rel: bool = False) Generator[Msg, None, ISISCallbacks] [source]
Scan the DAE against a Movable.
- Parameters:
dae – the simple DAE object to use.
block – a movable to move during the scan.
start – the starting position.
stop – the final position.
num – the number of points to make.
model – the fit method to use.
periods – whether or not to use software periods.
save_run – whether or not to save run.
rel – whether or not to scan around the current position or use absolute positions.