23.8. User and commissioning commands and tools¶
Useful commands and tools are provided for beamline staff, defined under
user_commissioning_tools in i02-2-config/scripts, and often imported
into the top-level namespace in localStation.py.
WARNING For commands and tools that move hardware absolutely no safety checks are made, it is the responsibility of users/staff to ensure the beamline is in the appropriate state before proceeding.
23.8.1. Scanning¶
The OmegaScan and GridScan commands perform manual data collections and
are used to test changes made to the scanning subsystems.
Only the work to actually execute a scan is done by these commands,
nothing is done to prepare the endstation. That is, the OAV is not moved
out of the way, etc. However, the detector, zebra, etc, are prepared and
reset appropriately.
Data is collected into the current GDA visit, as selected upon startup, and
can be changed with the visit function (from gdascripts.visit.VisitSetter).
NeXus files are produced in exactly the same manner as during normal
operations, and their location is printed to the terminal.
23.8.1.1. Rotation Omega Scan¶
OmegaScan(omega_start, omega_step, count, time)
This function is provided in user_commissioning_tools.scanning and is made
available in localStation.py.
On execution it triggers a rotation scan at the current sam_x, sam_y, sam_z positions using the specified parameters.
23.8.1.2. Grid Scan¶
GridScan(y_start, y_stop, y_step, x_start, x_stop, x_step, time)
This function is also in user_commissioning_tools.scanning.
On execution it triggers a grid scan at the specified location. Omega is not moved to zero, so in theory grid scans at non-zero angles are permitted.
The order of parameters is analogous to the GDA scan syntax
scan y y_start, y_stop, y_step x x_start, x_stop, x_step, time where x
is nested in y.
23.8.2. Plate Movement¶
The following commands are defined in user_commissioning_tools.plate:
move_to_well_coords(coords, plate_type)`
This moves sam_x/y to the well coordinates specified, where coordinates is the
tuple(row, column, drop)with zero-based indices (first well is (0, 0, 0)).
move_to_well_string(well_id, plate_type)`
This moves to the well with id string (e.g.
B5d2), row is letter, column is number, drop isd[0-9]. One-based index (i.e. first well isA1d1).
move_to_well_index(well_index, plate_type)
This moves to the well given by its numerical index, which is the same as the ISPyB index, this is a running count starting from 1 (first well is 1).
For all three of the above commands, the second argument specifies the type of plate to move. The currently supported types are:
PlateType.CRYSTAL_QUICK_XPlateType.MITEGENPlateType.MITEGEN_3_DROPPlateType.FILM
PlateType is placed into the namespace in localStation.py and is
defined in data_collection.plates.
23.8.3. State¶
The command DumpPlateStatus is provided, and defined in
user_commissioning_tools.state. This command simply outputs the state of
every active plate according to ISPyB and the Orange Triangle.
This command always attempts to use a live ISPyB connection LimsAgentVmxi
object and so does not work in dummy mode.