scans.optimize maximises a live signal over several coupled axes while an
ordinary step scan records every point: probe around the start, local
quadratic model whose eigen-directions are the coupled axis combinations,
RCDS-style line searches along them, a delay calibrated to follow the
other axes (follow={delay: "calibrate"}) or fixed follow coefficients,
a check for a better maximum elsewhere (sequential GP upper bound, local
search around surprising values, restart), and the best point measured
last. Results: summary(), best(), move_to_best(), landscape(), and the
directions as virtual adjustables. Pure numpy/scipy, on the adaptive
scan driver.
adaptive_scan(..., mesh="free"): candidates on a 4x finer lattice, the
axis step as mesh resolution, no grid_specs (step 4 of
docs/multidim_scan_data.md).
sim.thz_focus: THz focused by an off-axis parabola onto a probe spot,
five coupled alignment axes and the probe delay, as a target to try it.
Docs: docs/optimize.md, mesh="free" in adaptive_scans, sim target,
two did-you-know tips.
6.3 KiB
eco — Experiment Control
lead
eco is a Python-based control environment for experiments, developed and used at SwissFEL, PSI. It provides an object-oriented representation of beamline and experiment devices that can be driven interactively from an IPython/Jupyter shell or reused as a library by higher-level applications and GUIs.
eco follows an object-oriented approach: every device — from a single motor to a whole instrument — is a Python object with a small, predictable interface. Because devices share conventions, they can be freely combined in generic acquisition and scanning routines and analysed with the growing landscape of scientific Python libraries.
1 1 2 2
rocket Getting
started
Install eco and open your first interactive session.
megaphone Did
you know?
Short tips on recent features: one call, what it gains you, and where to read more.
sparkle-fill
What's new
Recent changes and new features, and what to watch out for when you update.
light-bulb
Concepts
Why eco exists, its basic elements (Adjustable, Detector, Assembly) and the Bernina namespace.
list-ordered
Queues
Queue scans and commands with %queue: each one test-run
when queued, run one after another while the prompt stays free.
comment-discussion Ask eco
%ei how do I ...? answers from the docs, the command
history, SciLog and the machine elog, with your session's devices.
goal Adaptive
scans
Scans that put the next points where the live data say they help
most. Try them on the simulated targets in sim.
zap Optimizing
scans
Align several coupled axes at once: maximise a signal, find the axis combinations that matter, let the delay follow.
device-mobile
eco on a phone
eco web: the running session in a browser, with live
values, moves, queues and the cameras.
pulse Listening
monitor
Subscribe to a channel and collect its value stream in the background.
graph Archiver →
strip chart
Pull historical data from the archiver and open a live strip chart.
server Pipeline
offload
Upload your own code to the pipeline server to offload BS-stream calculations.
gear Delta Tau
configs
Read, edit, apply and verify PowerBrick motor-controller configurations.
cpu PowerBrick
servo mode
Servo parameters, their auto-assigned ratios, and how to tune them.
key PowerBrick
parameters
The controller's own view of a motor (cnf_pb), and
loading the Kappa or SampleStage onto the diffractometer.
plug Direct
motor drivers
Talk to Newport XPS and Schneider MCode controllers directly, with no EPICS in the loop.
browser Build a
simple GUI
Click a small control panel together in eco desktop (dials, gauges, strip charts, optionally laid out in Qt Designer) and save it as a startup script.
device-desktop
Widget views
The default Adjustable/Detector row in Qt vs ipywidgets, and the matched, stock-widget-only LED/gauge/dial "indicator" gadgets on both.
stack Widget
containers
Compose a custom panel by stacking assembly/adjustable/detector/ viewer widgets, aligned left/center/right, on either front end.
Did you know?
%ei what happened to the machine since yesterday? reads
the SwissFEL commissioning elog for you and answers with the entries in
order. More tips like this: did_you_know/index, or features() in a
session.
installation launching whats_new concepts did_you_know/index
scanning adaptive_scans optimize simple_gui simulated_targets queues tweak command_history ask_eco tab_completion recspace recspace_crystals status_server alarms alarm_phones run_history scilog_viewer storage shared_files
examples/listening_monitor examples/archiver_stripchart examples/pipeline_offload examples/deltatau_config examples/direct_motor_drivers
deltatau_servo powerbrick_parameters smaract channel_access
widget_views widget_containers schematic_panels live_gui web_app terminal_plots
developer_notes multidim_scan_data
api