BLISS ISDD Seminar | 28 June 2018 | BLISS team
Page 1
BLISS
Latest news
ESRF ISDD Seminar - 28/06/2018
Matias Guijarro
Sébastien Petitdemange
Vincent Michel
Page 2
State-of-the-art beamline control
Continuous scans, Trajectories,
Data management
Integrated environment
Command Line Interface,
Easy configuration, Online data display
Ready for new challenges
Extensibility, user sequences
BLISS project goals
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Page 3
All-in-one solution
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Page 4
BLISS latest news
1
Development news
2
3
Support for trajectories in scans
Online Data Visualization
CRG coordination meeting | 18 June 2018 | M. Guijarro
Page 5
BLISS development model
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Scrum methodology
Coding sprints
Real world tests planning: TBD
1
Page 6
BLISS development model
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Publicly available issues, sprints reviews, discussions and tasks to do on:
1
Page 7
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Development state: road to BLISS v1.0.0
YAML files support, Tango DB
Sessions, User scripts, Web application
MCA, 2D (Lima), ROI
Keithley, Wago,
Temperature
Sampling, Integrating, P201 (ESRF), BPM
Icepap (ESRF), PI, NF | Virtual axes: slits, energy...
Elmo, tables | Motion hooks
Trajectories
1D, 2D, live plotting
interaction with data
MUSST
OPIOM
PEPU, Speedgoat
Today !
Acquisition chain
Step by step scans
Continuous scans
Data publishing, General scan framework
1
YAML files support, Sessions, User scripts, Tango DB
Web application
Sampling, Integrating, Keithley, Wago, BPM
P201 (ESRF), ROI, Temperature...
MCA, 2D (Lima)
Getting
started
Developer tutorials
User documentation
Controllers: Icepap (ESRF), PI, NF, Elmo, Newport | Virtual axes: tables, slits, energy... | Motion hooks
MUSST, OPIOM
Acquisition chain, Step by step scans, Data publishing, General Scan Framework
Continuous scans
16/10/2017 (last presentation)
Page 8
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Real world testing
DCM - PAMU
since February, 2018
MUSST, OPIOM, PEPU, Speedgoat, continuous scans and ICEPAP trajectories
1
ID31
end of May 2018
3D laser printing on metal, fast scan 250 Hz
MUSST, Pilatus detector
Page 9
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Real world testing
ID11 - nscope (EH3)
1st of May, 2018
Continuous scan with combined diffraction + fluo data
ID13 (EH3)
25th of June, 2018
Continuous "kmap": grid scan with PI trajectories, P201 counters + Eiger data
1
Page 10
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Real world testing
1
Coming next: ID10 (EH2), beginning of July 2018
XPCS experiment, continuous scan with P201, Eiger, Andor
Page 11
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Support for Trajectories in Scans
2
Based on arbitrary path generation (PVT)
Page 12
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Support for Trajectories in Scans
2
Any trajectory can be described as discrete (Position, Velocity, Time) tuples
- default mode for many controllers
- BLISS Motor Controller framework allows to easily integrate trajectories
- currently implemented: PI E712, IcePAP
Page 13
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Support for Trajectories in Scans
2
From a virtual (calc) axis
- BLISS provides a helper to create trajectories from a calc. axis
- Useful for HKL, energy, hexapod...
def trajectory_ascan(calc_axis, start, end, npoints, count_time):
chain = AcquisitionChain()
master = CalcAxisTrajectoryMaster(calc_axis, start, end,
npoints,
count_time)
p201_master = CT2AcquisitionMaster(p201,
npoints,
AcqMode.IntTrigReadout,
count_time)
chain.add(master, p201_master)
p201_counters = \
IntegratingCounterAcquisitionDevice(p201.counters,
npoints,
count_time)
chain.add(p201_master, p201_counters)
scan = Scan(chain)
scan.run()
Page 14
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Support for Trajectories in Scans
2
Scan motion optimization (e.g. trajectory mesh)
- BLISS provides a MeshTrajectoryMaster object
- used for kmap on ID13
- Eliminates overhead between grid lines, fastest possible motion
Page 15
Online data visualization - Flint
BLISS ISDD Seminar | 28 June 2018 | BLISS team
Flint - a plotting application
based on silx and Qt
The application is created and
controlled from a bliss shell
It supports arbitrary data and live scan data
3
Page 16
Online data visualization - Arbitrary data plotting
BLISS ISDD Seminar | 28 June 2018 | BLISS team
FLINT [1]: import numpy as np
FLINT [2]: x = np.arange(0, 4 * np.pi, 0.001)
FLINT [3]: sine = np.sin(x)
FLINT [4]: plot(sine)
- Simple API
- Data type detection
3
Page 17
Online data visualization - Arbitrary data plotting
BLISS ISDD Seminar | 28 June 2018 | BLISS team
FLINT [1]: from scipy import misc
FLINT [2]: f = misc.face()
FLINT [3]: p = plot(f)
- Simple API
- Data type detection
3
Page 18
Online data visualization - Plot interaction
BLISS ISDD Seminar | 28 June 2018 | BLISS team
[...]
FLINT [4]: p.select_shape('rectangle')
Out [4]: ((433.41394, 28.968422), (957.3209, 497.17896))
- Plot interaction
- Shape selection
3
Page 19
Online data visualization - Plot interaction
BLISS ISDD Seminar | 28 June 2018 | BLISS team
BLISS [1]: sim1 = config.get('sim1')
BLISS [2]: ct(0.1, sim1)
BLISS [3]: edit_roi_counters(sim1)
It allows for building
higher-level interactive routines
Example - ROI counter edition
3
Page 20
Online data visualization - Scan live plotting
BLISS ISDD Seminar | 28 June 2018 | BLISS team
FLINT [1]: timescan(0.1, simu1, npoints=20)
# Live plotting...
Out [1]: Scan(name=timescan_1, run_number=1, path=/tmp/scans/flint/)
3
Page 21
Online data visualization - Development
BLISS ISDD Seminar | 28 June 2018 | BLISS team
3
Thanks to Thomas Vincent and the silx team for their valuable help
This part of the bliss project is
still under heavy development
More feedback is necessary to
improve the user experience
Page 22
Demo !
BLISS ISDD Seminar | 28 June 2018 | BLISS team
2nd BLISS ISDD Seminar
By Matias Guijarro
2nd BLISS ISDD Seminar
- 997