Skip to content

diegslva/taurus_pyqtgraph

 
 

Repository files navigation

taurus_pyqtgraph

taurus_pyqtgraph is an extension package for the Taurus package. It adds the taurus.qt.qtgui.tpg submodule which provides pyqtgraph-based widgets. The rationale behind taurus_pyqtgraph is described in the TEP17

Install

Just install this module e.g.:

For the latest release in PyPI:

pip install taurus_pyqtgraph

For developing, use a python3 virtual env (or conda, or similar) and:

git clone https://github.com/taurus-org/taurus_pyqtgraph.git
cd taurus_pyqtgraph
pip install -r requirements_dev.txt -r requirements.txt
pip install -e .

After successful installation, the module will be accessible as taurus.qt.qtgui.tpg and the taurus tpg CLI will be available

Features implementation checklist

taurus_pyqtgraph is still in alpha stage. Its API may be subject to change before the 1.0.0 release.

This is a list of planned / done features. The tasks which are checked are those for which there is already an alpha-quality prototype:

For 1D plots

  • 1D plot: plot of multiple 1D models with auto-changing color and availability of legend
  • Date-time support on X axis (display only, see "UI for setting scale limits in date/time format" below)
  • Stand-alone widget
  • Zooming & panning with "restore original view" option (not the same as zoom stacking, see below)
  • Possibility to use (at least) 2 Y-scales
  • UI for adding taurus curves via ModelChooser. See also "Improved Model Chooser" below
  • Store/retreive configuration (save/load settings)
  • Support for non-taurus curves in same plot (aka "raw data")
  • UI for setting scale limits and lin/log options
  • Export data as ascii: without date-time support
  • Export plot as image (S0)
  • UI for moving a curve from one Y-scale to another
  • UI for choosing line color, thickness symbol, filling...
  • Arbitrary Label scale (aka FixedLabelsScale)
  • configurable properties support (setting permanence)

Outside TEP17 scope:

  • UI for setting scale limits in date/time format (S16)
  • Point-picking (aka "inspect mode") (S4)
  • Date-time support in "export data as ascii" (S24)
  • Plot freeze (pause) (S8)
  • Improved Model Chooser: replacement of the "input data selection" dialog allowing to choose both X and Y models (see curve selection dialog in extra_guiqwt's tauruscurve) (C16)
  • Drop support for taurus attributes (C4)
  • Zoom stack: possibility of stacking zoom levels and navigating back one level at a time. (C16)
  • Cursor position info (display X-Y position of cursor in active axis coords) (C2)
  • 1D ROI selector (C2)
  • Curve statistics calculator (mean, stdev...) as in curve stats dialog of TaurusPlot/Trend (C8)
  • UI for changing curve names (C8)
  • Peak locator: Visual label min/max of curves (C12)
  • UI for adding raw data (W8)

For 1D trends

Most of the features mentioned for 1D plots affect the 1D trends as well. Apart from those, here is a list of more specific features of trends:

  • "1D trends": plot of scalars vs event number or timestamp
  • Fixed-range scale (aka oscilloscope mode)
  • UI to switch between fixed and free scale mode
  • Stand-alone Widget
  • Support for forced-reading of attributes (aka "-r mode")
  • UI for forced-reading mode
  • configurable properties support (setting permanence)

Outside TEP17 scope:

  • "Trend sets": plot of 1D attribute vs time interpreting it as a set of 1D scalars (M16)
  • Accessing Archived values (M40). Done via taurus_tangoarchiving plugin
  • Accessing Tango Polling buffer (W24)
  • Support for limiting curve buffers (C8)
  • UI for curve buffers (C2)

For 2D plots (images)

Outside TEP17 scope:

  • Plot a single image
  • UI for Add/remove image
  • Stand-alone Widget (M8)
  • "calibrated" XYImage (assigning values to X and Y scale, as in guiqwt's XYImageItem) S8
  • Cross sections (slicing) (S4)
  • 2D ROI Selector (S4)
  • LUT/contrast control (S0)
  • Drop support for taurus attributes (C4)
  • LogZ scale (C?)
  • Annotation/measure tools (C16)

For 2D trends (spectrograms)

Most of the features for 2D plots affect also the 2D trends. Apart from those, here is a list of more specific features of 2D trends:

Outside TEP17 scope:

  • Stand-alone Widget (M8)
  • Absolute date-time scale (display, see same feat in TaurusPlot)
  • Fixed-range scale (aka oscilloscope mode, same as for 1Dtrends) (M8)
  • UI to switch between fixed and free scale mode (S12)

In general:

  • Document all public API
  • Make all code pep8-clean

About

Taurus extension providing pyqtgraph-based widgets

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.7%
  • Makefile 1.3%