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 is d[0-9]. One-based index (i.e. first well is A1d1).

  • 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_X

  • PlateType.MITEGEN

  • PlateType.MITEGEN_3_DROP

  • PlateType.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.