- Add docs/JFJOCH_PROCESS.md describing the offline analysis tool, its options, output files, and the broker/viewer/process distinction; mention jfjoch_scale for re-scaling/merging. - Rewrite docs/JFJOCH_VIEWER.md for consistency: functionality, HTTP env vars (JUNGFRAUJOCH_HTTP_HOST/PORT), command line, and the real D-Bus API. - Refresh docs/TOOLS.md to the current set of tools; add both pages to index.rst. - jfjoch_process: fix stale self-name (jfjoch_analysis -> jfjoch_process) in usage/license/logger. - jfjoch_scale: unify --scaling-high-resolution with jfjoch_process (drop -D short flag, make it long-only) and remove dead p/q/i short options. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.3 KiB
jfjoch_viewer
jfjoch_viewer is the interactive desktop application of Jungfraujoch. It opens diffraction
datasets, displays each image together with the analysis overlay (spots, predictions, azimuthal
integration, per-image statistics), and can follow a live data collection by syncing with a
running jfjoch_broker over its HTTP interface.
It is a standalone Qt 6 application, distributed pre-built on the Gitea release page and in the Jungfraujoch RPM/APT repositories (see Deployment).
Where it fits among the three analysis tools
| Tool | Mode | Driven by | Output |
|---|---|---|---|
jfjoch_broker |
Online, real-time streaming analysis on FPGA + GPU | HTTP/REST + ZeroMQ | Live results and statistics, images streamed to jfjoch_writer |
jfjoch_viewer |
Interactive, on-screen exploration | Qt desktop application | Displayed on screen (results not saved to disk) |
jfjoch_process |
Offline batch processing of a stored dataset | Command-line interface | _process.h5, and .mtz/.cif/.hkl when merging |
Functionality
- Opens HDF5 files written by
jfjoch_writer(*_master.h5) and the*_process.h5files produced byjfjoch_process. It also opens NXmx files written by DECTRIS detectors, though that path has had only limited testing. - Runs an embedded data-processing pipeline — the same analysis code as the rest of Jungfraujoch — performing spot finding, indexing and integration on the displayed images. Results are shown on screen but are not saved to disk.
- Auxiliary windows and panels: image list, image metadata, spot list, reflection list, per-region-of-interest statistics, the azimuthal-integration profile, and dataset-info charts.
- User-mask editing: build a user mask interactively, clear it, save it as TIFF, or upload it to a connected server.
Hardware
As with the rest of Jungfraujoch, serious performance requires an NVIDIA GPU. On systems with a GPU, use the CUDA build (provided as separate RPM/APT repositories) for the embedded indexing and integration; the non-CUDA build runs the same pipeline on the CPU at much lower throughput.
Opening data
- File ▸ Open (
Ctrl+O) — open a local HDF5 file. - File ▸ Open HTTP (
Ctrl+H) — connect to ajfjoch_brokerHTTP endpoint to follow a live collection. The dialog defaults to hostlocalhostand port8080; these defaults can be overridden with the environment variablesJUNGFRAUJOCH_HTTP_HOSTandJUNGFRAUJOCH_HTTP_PORT. - Command line —
jfjoch_viewer <file.h5>opens a file (or anhttp://host:portURL) on start-up.--dbus <true|false>(-d) enables or disables the D-Bus interface (default: enabled);--helpand--versionbehave as usual.
D-Bus interface
When enabled, the viewer registers the D-Bus interface ch.psi.jfjoch_viewer, so other processes
can drive it:
LoadFile(filename, image_number=0, summation=1)— open a file (or anhttp://host:portURL) and display the given image.LoadImage(image_number, summation=1)— navigate to an image in the already-open dataset.
summation sums that many consecutive images before display.