Skip to main content

Library of Qt widgets for searching, viewing document streams

Project description

A library of Qt widgets for searching saved bluesky data and viewing document streams either live or from disk.

This is a prototype that may be fully rewritten, abandoned, or moved into other libraries.

Launching the demo

Create a custom conda environment.

conda create -n bluesky_browser python=3 \
    bluesky jsonschema matplotlib ophyd pyqt \
    pyzmq qtpy suitcase-jsonl tornado traitlets  \
    -c lightsource2-tag
conda activate bluesky_browser

Clone and install.

git clone https://github.com/NSLS-II/bluesky-browser
cd bluesky-browser
pip install -e .

Run the demo.

bluesky-browser --demo

The above generates example data in a temporary directory and launches a Qt application to browse that data. It supposes there are two catalogs of data, abc and xyz, which could be from two instruments or perhaps “raw” data and “processed” data from the same instrument. The catalogs may be searched by date range or any custom Mongo query. Clicking on a search result pulls up a new tab with a more detailed view. There are two viewing areas to facilitate comparing data. Right-click and drag a tab to move it between areas.

To customize and extend this, generate a configuration file

bluesky-browser --generate-config

and edit it. The bluesky-browser will automatically discover and apply the configuration file if it located in the current directory where bluesky-browser is run. (In the future we will add a proper search path with other standard locations.)

Intended Scope

  • Search saved data from any databroker Catalog (backed by MongoDB or JSONL or ….).
  • View and compare data from runs. Use “hints” as defaults to guide how to view a given run, and let the user adjust from there.
  • Perform basic plot manipulations, not rising to the level of a full data analysis GUI (e.g. no nonlinear curve-fitting) but enabling some interactive tuning to provide a useful view of the data.
  • View live data streaming in from the RunEngine (via some message bus).
  • Be extensible, providing for the possibility of views that are specific to a beamline or instrument.

Current Features

  • Search multiple Catalogs (e.g. multiple beamlines) for saved data and sort search results.
  • View selected search results in individual tabs or “over-plotted” in one tab.
  • View Header, baseline readings, and line plots from saved or streaming data.
  • “Over-plot” arbitrary groups of Runs, including saved data, streaming data, or a mix of both.

Roadmap

  • Get feature parity with Best-Effort Callback.
    • Table
    • Grid
    • PeakStats
  • Add image stack viewer.
  • Enable user to change what is plotted interactively. (The hints becomes just a default.)
  • Add a way to run just the viewer part against live data (from RE).
  • Add a “Summary” widget to the top of the Header tab.
  • Add integration with suitcase for file export, starting with CSV.
  • Add context menus (right click) as an alternative way to do overplotting, etc.
  • Support “progressive search”, iteratively refining search results.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for bluesky-browser, version 0.1.0a7
Filename, size File type Python version Upload date Hashes
Filename, size bluesky_browser-0.1.0a7-py3-none-any.whl (34.2 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size bluesky-browser-0.1.0a7.tar.gz (48.2 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page