Installing the NIST scan framework

The NIST scan framework runs under ARTIQ version 3.7 and requires Python version 3.5.

First, create a conda environment with Python version 3.5 and ARTIQ version 3.7 installed and activate the environment. See installing ARTIQ version 3.7 for further details on installing ARTIQ.

conda create -n artiq-3.7 artiq=3.7
conda activate artiq-3.7

Next, clone the scan_framework repository into a folder that is in your PYTHONPATH and make sure the top level folder containing the scan_framework source is named scan_framework.

TODO: update github url below

git clone https://github.com/nist/scan_framework.git /folder/on/pythonpath

Finally, create ARTIQ applets to plot data generated by the scan framework.

Note

All scan framework applets are listed in the source code at scan_framework/applet_commands.txt

In the ARTIQ dashboard, create the current scan applet using the command below. Scan’s automatically write all data to the current_scan namespace. The current scan applet plots this data as a scan is being executed.

$python -m scan_framework.applets.plot_xy current_scan.plots.y
    --x current_scan.plots.x
    --fit current_scan.plots.fitline
    --title current_scan.plots.plot_title
    --x_scale current_scan.plots.x_scale
    --x_units current_scan.plots.x_units
    --y_scale current_scan.plots.y_scale
    --x_label current_scan.plots.x_label
    --y_units current_scan.plots.y_units
    --y_label current_scan.plots.y_label
    --rid current_scan.rid
    --error current_scan.plots.error

In the ARTIQ dashboard, create the current sub-scan applet using the command below. The current sub-scan applet plots data from 2D scans as they execute.

$python -m scan_framework.applets.plot_xy current_scan.plots.dim1.y
    --x current_scan.plots.dim1.x
    --fit current_scan.plots.dim1.fitline
    --title current_scan.plots.dim1.plot_title
    --x_scale current_scan.plots.dim1.x_scale
    --x_units current_scan.plots.dim1.x_units
    --x_label current_scan.plots.dim1.x_label
    --y_units current_scan.plots.dim1.y_units
    --y_label current_scan.plots.dim1.y_label
    --trigger current_scan.plots.trigger
    --rid current_scan.rid
    --i_plot current_scan.plots.subplot.i_plot

In the ARTIQ dashboard, create the count monitor applet using the command below (optional). The count monitor applet displays the average measured value at each scan point.

${artiq_applet}big_number counts

In the ARTIQ dashboard, create the current histogram applet (optional). The current histogram applet plots a histogram of collected data at each scan point as the scan executes.

$python -m scan_framework.applets.plot_hist current_hist.bins
    --x current_hist.bin_boundaries
    --x_units current_hist.x_units
    --x_label current_hist.x_label
    --plot_title current_hist.plot_title