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:

https://gitlab.esrf.fr/bliss/bliss

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