GithubHelp home page GithubHelp logo

lavue-org / lavue Goto Github PK

View Code? Open in Web Editor NEW

This project forked from syncope/lavue

7.0 4.0 3.0 53.93 MB

Lightweight Live Viewer

License: GNU General Public License v2.0

Python 25.63% HTML 72.38% Dockerfile 0.53% Shell 0.04% CSS 0.22% Makefile 0.01% C++ 0.01% JavaScript 1.19%
python pyqtgraph tango pyqt viewer online detector science live

lavue's Introduction

LaVue - Live Image Viewer

Authors: Christoph Rosemann <christoph.rosemann at desy.de>, Jan Kotański <jan.kotanski at desy.de>, André Rothkirch <andre.rothkirch at desy.de>

Introduction

This is a simple implementation of a live viewer front end. It is supposed to show a live image view from xray-detectors at PETRA3 @ desy.de, e.g. Pilatus, Lambda, Eiger, PerkinElmer, PCO, LimaCCD, and others.

https://github.com/lavue-org/lavue/blob/develop/doc/_images/lavue.png?raw=true

Installation

LaVue requires the following python packages: qt5/qt4 pyqtgraph numpy zmq scipy

It is also recommended to install: pytango hidra pil fabio requests h5py pni nxstools

From sources

Download the latest LaVue version from https://github.com/lavue-org/lavue

Extract sources and run

$ python setup.py install

The setup.py script may need: setuptools sphinx numpy pytest python packages as well as qtbase5-dev-tools or libqt4-dev-bin.

Debian packages

Debian bullseye, buster or Ubuntu lunar, jammy, focal packages can be found in the HDRI repository.

To install the debian packages, add the PGP repository key

$ sudo su
$ curl -s http://repos.pni-hdri.de/debian_repo.pub.gpg  | gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/debian-hdri-repo.gpg --import
$ chmod 644 /etc/apt/trusted.gpg.d/debian-hdri-repo.gpg

and then download the corresponding source list, e.g.

$ cd /etc/apt/sources.list.d

and

$ wget http://repos.pni-hdri.de/bullseye-pni-hdri.list

or

$ wget http://repos.pni-hdri.de/buster-pni-hdri.list

or

$ wget http://repos.pni-hdri.de/jammy-pni-hdri.list

or

$ wget http://repos.pni-hdri.de/focal-pni-hdri.list

respectively.

Finally,

$ apt-get update
$ apt-get install python3-lavue
$ apt-get install lavue-controller

or

$ apt-get install lavue-controller3

for python 3 version (for older debian/ubuntu releases).

From pip

To install it from pip you need to install pyqt5 in advance, e.g.

$ python3 -m venv myvenv
$ . myvenv/bin/activate

$ pip install PyQtWebKit

or

$ pip install pyqt5

or

$ pip install PyQt5==5.14

and then

$ pip install lavue

Moreover it is also good to install the following python packages:

$ pip install fabio
$ pip install pillow
$ pip install pyFAI
$ pip install lavuefilters
$ pip install pytango

Start the Viewer

To start LaVue

$ lavue

or

$ lavue3

for python 3 version (for older debian/ubuntu releases).

Start the Viewer in the expert mode

Changing LaVue settings is available in the expert mode, i.e.

$ lavue -m expert

under an additional button: Configuration.

Launching options

To get all possible command-line parameters

$ lavue -h

Further reading

More information can be found at: LaVue

lavue's People

Contributors

criticanalytic avatar jkotan avatar lrlunin avatar terrygeng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

lavue's Issues

zmq and http source stored in the configuration

Request from users:

  1. When using zmq, tango-attributes, or the http source it's a bit
    annoying that you always have to put in these usually long and cryptic
    addresses manually. It would be nice if one could store some favorites
    somewhere, or predefine them in config like it's done with the hidra
    sources. However, I think manual input should still be possible to stay
    flexible.

dynamic help for comboboxes

It would be nice to ad dynamic help gor image sources and image tools comboboxes with description of current item

Save custom color gradient

We have been using LaVue for EIGER2 data at the Australian synchrotron, since the new Dectris API broke the live-view functionality of ALBULA due to a change in the monitor interface: we use a gradient to mimic ALBULA's default high-contrast scale which we were used to for EIGER, plus a blue clipping indicator: {0.0: white, 0.15: black, 0.4: red, 0.7: yellow, 0.99: white, 1.0: blue}

Screenshot from 2019-04-25 07-27-46

It's great that you can define a custom color gradient in the widget, it would also be nice to be able to save one or more user-defined gradients, or alternatively specify a custom gradient from a command line JSON.

set lavue configuration from the spock

User request:

  1. It would be great if one could change some of the settings in lavue
    (e.g. region of interest, central pixel, energy, etc.) through some remote
    interface. The idea behind that is that I would like to change these
    things from spock, because at least in our setup at the beamline spock we
    have define most of the in spock anyway and then it would be very
    convenient if the information could be transferred automatically to lavue.
    I discussed a bit with Jan Garrevoet about this and he suggested to set up
    a special tango server to pass the information to lavue to avoid that it
    becomes too much interlinked with spock and can still be used
    independently. One thing which would be also a bit tricky is that it
    should also work with multiple instances of lavue (e.g. for monitoring
    several detectors at the same time). I guess each instance of lavue would
    then need its own tango device and one would need to specify, may be with
    a flag during startup, which device is used for this instance.

mask 0/1 selection

user should have possibility to choose if in the mask file zero or non-zero is a bad pixel.

display original coordinates

The user request:

  1. I'm not sure if Jan has already talked to you about this, but we
    recently had a discussion if the beam center should use the "real" image
    coordinates or the transformed coordinates (if image transformations are
    applied). I think we concluded that both options might be required
    depending on the use case. Therefore, it would be nice to have the
    possibility to change this somewhere in the settings and have a message
    somewhere. This is in principle similar to the problem, if the log-scaling
    etc should be applied for the image statistics or not.
    As far as I know the coordinate system problem also applies to the roi
    mode. Maybe one could have the same option there to select either "real"
    image coordinates or transformed coordinates

cross marking in qspace

Request from uses:

  1. It looks like there is a bug with the red cross in the angle/q-value
    mode. When I lock it in the intensity mode and switch to angle/q it
    remains locked, if it wasn't locked it stays not locked and while in
    angle/q mode there is no way to change it. In angle/q mode it would be
    nice to have a cross marking the beam center. I'm not sure if one can just
    use the current red cross for that and just fix its position to the beam
    center in angle/q mode or to have a separate one to make sure that this is
    something different.

split ImageDisplayWidget

It would be nice to split imageDisplayWidget class into parts. Split parts can be added into the main class as pluggable extensions

commandline flag to set lavue

Request from users:

  1. It would be nice if one could set a command line flag when starting
    lavue to automatically select a certain datasource.

ROIS QSPACE PROJECTIONS in one tool

Request from users:

  1. I think we already discussed a bit about combining several of the
    display modes and the conclusion was to have a separate entry for the
    combination that we would like to have: I think what would be most
    interesting for me at the moment is combining angle/q, rois and
    projections

Improve tango attribute source

We had request to predefine possible tango attributes. It can be done by adding an editable combobox into the source widget.

hidra server combobox editable

I would nice to male the hidra server combobox editable that the user can put a server name in the image source widget.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.