Skip to main content

ntnda-qt-viewer

A lightweight Qt-based live image viewer for EPICS NTNDArray PVs, built on pyqtgraph and p4p.

Features

  • Live streaming from any NTNDArray PVAccess channel
  • Decoding of compressed NTNDArray payloads using Python codec libraries
  • Supports 8–64 bit signed/unsigned integers and 32/64-bit floats
  • Draggable crosshair lines with linked horizontal and vertical pixel profile plots
  • Scroll-wheel zoom, right-drag zoom-to-rectangle, double-click to reset
  • Bottom ROI controls bar with per-ROI Set button and Enable checkbox
  • Set mode initializes ROI from a right-drag rectangle and then auto-exits
  • Live pixel readout (x, y, value) under the cursor
  • Connection status indicator and framerate display

Installation

pip install ntnda-qt-viewer

A Qt backend is also required. Install one via the gui dependency group or separately:

pip install PySide6

OR

pip install ntnda-qt-viewer[pyside6]

To support compressed NTNDArray codecs (zlib, blosc, lz4/lz4hdf5, bslz4, jpeg) install optional codec dependencies:

pip install "ntnda-qt-viewer[codecs]"

Usage

Launch from the command line with an optional top-level prefix:

ntnda-qt-viewer
ntnda-qt-viewer DEV:XSPD1: --pva-suffix Pva1:
ntnda-qt-viewer DEV:XSPD1: --roi-suffixes ROI1: ROI2: ROI3: ROI4:

Image PV is formed as <prefix><pva-suffix>Image.

ROI PVs are written as <prefix><roi-suffix>{MinX,MinY,SizeX,SizeY}.

Or embed the widget in your own Qt application:

from ntnda_qt_viewer import NTNDAViewerWidget

widget = NTNDAViewerWidget(
    prefix="DEV:XSPD1:",
    pva_suffix="Pva1:",
    roi_suffixes=["ROI1:", "ROI2:", "ROI3:", "ROI4:"],
)
widget.show()

Development

This project uses uv for environment management:

uv sync
uv run --frozen pytest
uv run --frozen ruff check
uv run --frozen ty check

License

BSD 3-Clause. See LICENSE for details.

Download files

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

Source Distribution

ntnda_qt_viewer-0.0.2.tar.gz (145.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ntnda_qt_viewer-0.0.2-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file ntnda_qt_viewer-0.0.2.tar.gz.

File metadata

  • Download URL: ntnda_qt_viewer-0.0.2.tar.gz
  • Upload date:
  • Size: 145.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ntnda_qt_viewer-0.0.2.tar.gz
Algorithm Hash digest
SHA256 ff36f22a4f046163c7d67d45fccaccc3b7a07c55acb1a75fa1d6894fc37c989b
MD5 66f68bdbe86c0565c3acfd32a8d0061b
BLAKE2b-256 7c95cdbeb39e88d5c3a3b935fb2b6488d867ad8da34ec365c4aac78067188eb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntnda_qt_viewer-0.0.2.tar.gz:

Publisher: publish-pypi.yml on jwlodek/ntnda-qt-viewer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ntnda_qt_viewer-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: ntnda_qt_viewer-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ntnda_qt_viewer-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 18846e4c8552e73897ff498502100685b939dd9d5c1ef0f3aedbe1961e431ab3
MD5 7f6a87284a822c39bad6c88970e64197
BLAKE2b-256 b75ab64b73d30f478ec77994650786466fff60024ce4e5d49ade87b682003cba

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntnda_qt_viewer-0.0.2-py3-none-any.whl:

Publisher: publish-pypi.yml on jwlodek/ntnda-qt-viewer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page