Recipes

Scan recipes will be placed in the location Z:\Recipes, a folder in the shared “Z:\” drive, which is shared between the on-board Linux machine and connected Windows computer (packaged with the Apex instrument). They are in JSON format, as described below. They can be edited both by hand and via the xrm companion.

The main structure is a series of parameters representing X-ray scan points to be performed on each sample. Each Queue entry represents an X-Ray scan point.

Recipes are created through the XRM Companion application:

  1. Open XRM Companion

  2. Click “Scan Settings” in the bottom-right

_images/image_companion.png
  1. Create a recipe through the scan settings, and click the “Save” button

  2. Save the recipe in “Z:Recipes”

  3. The recipe can now be opened and loaded in the SigrayConnect API

Format

The format of the recipes are as follows:

{
 "Queue": [
         {
             "Nickname": "Scan Point Nickname",
             "System": "ApexV2",
             "Sample": "Manual",
             "Scan": {
                 "base_filename": "test_delete_me",
                 "flat_axis": "Sample Z",
                 "start_theta": -180,
                 "end_theta": 180,
                 "number_of_views": 3601,
                 "exposure_time": .5,
                 "num_filter": 1,
                 "bright_num": 4,
                 "send_email": false,
                 "email_address": "vsingh@sigray.com",
                 "do_fly_scan": false,
                 "collect_post_scan": false,
                 "collect_flat": true,
                 "collect_dark": false,
                 "collect_tomo": true,
                 "montage_col": 1,
                 "montage_rows": 1,
                 "warm_up": false,
                 "warm_up_duration": 1
             },
             "Motor": {
                 "sample_x": -580.25,
                 "sample_z": -1196.05,
                 "sample_y": 10000,
                 "source_object": -3,
                 "object_detector": 654.65,
                 "filter_wheel": "HED4",
                 "slant": 20,
             },
             "Source": {
                 "type": "Dage",
                 "voltage": 60.0,
                 "energy": 0,
                 "power": 5.2,
                 "material": 1
             },
             "Detector": {
                 "detector_index": 0,
                 "binning": 1
             }
         }
     ]
 }

Many of these existing fields are irrelevant and unutilized for the Apex TCP-control functionality, which is kept purposefully slim. Some of them are not supported for the Apex in general, since this recipe is meant to function on multiple XRM systems, including the Prisma and Eclipse.

The following fields are the only ones utilized in the TCP control of the Apex 300E. Other fields are described in the XRM Companion documentation.

Field Descriptions

The fields representing a category of fields with multiple sub-fields will be printed and described in bold-face.

Fields

Field

Data Type

Description

Queue

JSON Object list

List of recipe routines to execute on each sample. Once all routines are complete, the stage will move back to the wafer load positions for sample unloading.

“Scan”

Category

The parameters used to control the X-Ray scan.

“base_filename”

string

File name prefix for each recorded .h5 data file under “Z:\<today’s date>\<today’s acquisition nickname>”

“start_theta”

double

The starting rotational position of the sample stage for the X-Ray scan.

“end_theta”

double

The ending rotational position of the sample stage for the X-Ray scan.

“number_of_views”

double

The total number of images taken in the entire duration of the X-Ray scan.

“exposure_time”

double

The exposure time for each image taken during the scan.

“do_fly_scan”

boolean

Whether or not to execute the X-Ray scan as a fly scan.

“collect_flat”

boolean

Specifies whether to collect a flat image after the scan-point has completed.

“collect_dark”

boolean

Specifies whether to collect a dark image after the scan-point has completed.

“warm_up”

boolean

Boolean flag setting whether the source should perform a warm-up before the X-Ray scan.

“warm_up_duration”

integer

If the warm_up flag is set, how long, in seconds, the warm-up should take.

“Motor”

Category

The starting positions for various motors required to start an X-Ray scan

“sample_x”

double

The starting x-position for the sample stage before an X-Ray scan is started.

“sample_y”

double

The position of the sample stage in the “y” direction.

“sample_z”

double

The starting z-position for the sample stage before an X-Ray scan is started.

“source_object”

double

The starting source-object distance (distance from X-Ray source to sample stage - also called source zoom) required for an X-Ray scan.

“object_detector”

double

The starting object_detector distance (distance from sample stage to detector) required for an X-Ray scan.

“filter_wheel”

string

The filter wheel setting for a scan - “HED1” through “HED5” (various copper filters) or “None” for no filter.

“slant”

double

The starting slant angle (also called detector angle) required for an X-Ray scan.

“Source”

Category

The source parameters required to start an X-Ray scan.

“voltage”

double

Source voltage in Volts required to start an X-Ray scan.

“power”

double

Source power in Watts required to start an X-Ray scan.

“Detector”

Category

The detector parameters required to start an X-Ray scan.

binning

integer

The detector binning value required to start an X-Ray scan.