Useful Commands

Below is a list of useful commands for running the SRX beamline. Previous commands can be seen by hitting the up arrow in Bluesky. To search through them, you can start typing a command before hitting the up arrow to filter your history.

Starting Bluesky

Start Bluesky - Start Bluesky from the terminal.

$ bsui

General Functions

Change X-ray energy - Either command can be used below. The energy can be entered in units of eV or keV.

Bluesky@SRX [1] %mov energy 7.2
Bluesky@SRX [2] energy.move(7.2)

Optimize the beam - Maximize the X-ray flux.

RE(peakup())

Setting a region of interest - Set the ROI on the detector. The specific edge is optional.

Bluesky@SRX [1] setroi(1, 'Fe')
Bluesky@SRX [2] setroi(1, 'Fe', 'ka1')

XRF Imaging

Fly scan - Perform a high-resolution, position-based fly scan. Return an image with dimensions (numX, numY)

Bluesky@SRX [1] RE(nano_scan_and_fly(startX, stopX, numX,
                                     startY, stopY, numY, dwell))
Bluesky@SRX [2] RE(nano_y_scan_and_fly(startY, stopY, numY,
                                       startX, stopX, numX, dwell))

Fly scan - Perform a coarse, time-based fly scan. Return an image with dimensions (numX, numY)

Bluesky@SRX [1] RE(coarse_scan_and_fly(startX, stopX, numX,
                                       startY, stopY, numY, dwell))
Bluesky@SRX [2] RE(coarse_y_scan_and_fly(startY, stopY, numY,
                                         startX, stopX, numX, dwell))

Step scan - Perform a step scan. Note: these arguments take a step size, not the number of points.

Bluesky@SRX [1] RE(nano_xrf(startX, stopX, stepX,
                            startY, stopY, stepY, dwell))

XAS Spectroscopy

Print element binding energies - Print the binding energies for the element of interest. The “best” edge can be returned as available.

Bluesky@SRX [1] Fe_k = getbindingE('Fe')

Print element emission energies - Print the emission energies for the element of interest.

Bluesky@SRX [1] getemissionE('Fe')

XANES scan - Run a XANES scan. This scan has 3 regions with different steps spanning the iron K-edge.

Bluesky@SRX [1] RE(xanes_plan(erange=[Fe_k-50, Fe_k-10, Fe_k+50, Fe_k+150],
                              estep=[2.0, 1.0, 2.0],
                              acqtime=1.0,
                              samplename='Fe foil',
                              filename='Fe_foil'))

Metadata

Print the start or stop document for a scan - A scan ID of 12345 is assumed. A value of -1 can be used to see the previous scan.

Bluesky@SRX [1] db[12345].start
Bluesky@SRX [2] db[12345].stop

Print the baseline information for a scan - baseline will collect the motor positions at the start (column 1) and completion (column 2) of a scan. There are many motors positions captured so it is helpful to filter the list of values. A scan ID of 12345 is assumed.

Bluesky@SRX [3] print_baseline(12345)
Bluesky@SRX [4] print_baseline(12345, key_filter="nano_stage")

Troubleshooting

Pause a scan - The scan will pause at the next checkpoint.

CTRL+C

Urgently stop a scan - With each CTRL-C, Bluesky raisens the urgency of stopping the scan.

CTRL+C x20

Resume a scan - A scan can be resumed after pausing.

Bluesky@SRX [1] RE.resume()

Stop a scan - Stop a scan and label the scan as a success or failure.

Bluesky@SRX [1] RE.stop()   # Label scan as success
Bluesky@SRX [2] RE.abort()  # Label scan as failure