This repository will include several instruments_[instrument] files
The files are dynamically loaded and the gui.py renders a GUI and runs the expirement
I am implementing the support for generic expirements with different dimensions
You must specify several things in your class:
- dimensions: array, the primary dimensions which you will write your dataset around
- coords: a Coordinates instance consisting of multiple Coordinate objects
- cap_coords - coordinates to capture along, array
- loop_coords - coordinates to loop around, array
You can also specify several optional variables
- datasets - dasets to write to, array. Default is ["ds1"]
- live - render a live view. Default is true
- gather - allow user to gather data. Default is true
- filename - default filename, recommended to use param
If you want to capture along different dimensions for different datasets you must:
- Change dimensions to a dict with the keys being datasets and values being the dimensions
- Change cap_coords to match
For example
cap_coords = {"A":["y"],"B":["z","w"]}
dimensions = {"A":["x","y"],"B":["x","z","w"]}
datasets = ["A","B"]
loop_coords=["x"]
is a valid configuration. The loop_coords does not currently support different dimensions
The program will store the data then write to file every change of the first dimension
- The GUI will display the non hidden parameters in the middle
- It will call widgets() for an optional third panel
- graph() will optional render a graph that is continually refreshed
Your program must have a function get_frame()
which accepts an array of all current loop cords.
EX: looping over x,y from 0,0 will give you [0,0] for the first frame It needs to return a dictionary with the keys
being the datasets and the values being data