Skip to main content

Dioptas Batch Processor GUI

Standalone GUI for automated batch processing of diffraction image files using Dioptas.

Features

  • Folder watch mode for automatic processing of incoming Dioptas-readable image files, including .nxs, .h5, .tif, and .tiff
  • Manual batch mode for selected files
  • CHI export (1D integration)
  • NPY export (2D cake arrays: intensity, two-theta, azimuth)
  • Optional mask support
  • Background processing thread to keep GUI responsive

Project Structure

dioptas_batch_gui/
├── dioptas_batch_gui/
│   ├── __init__.py
│   ├── __main__.py
│   ├── version.py
│   ├── gui.py
│   ├── batch_processor.py
│   └── file_watcher.py
├── dbg/
│   ├── __init__.py
│   └── __main__.py
├── check_dependencies.py
├── pyproject.toml
├── requirements.txt
├── LICENSE
├── CHANGELOG.md
├── CONTRIBUTING.md
└── SECURITY.md

Requirements

  • Python 3.10+
  • conda (recommended for environment management)

Installation (Recommended)

Set up in this order:

  1. Create and activate a conda environment named dioptas.
conda create -n dioptas python=3.10 -y
conda activate dioptas
  1. Install Dioptas first inside that environment.
pip install dioptas
  1. Install this package.
pip install dioptas-batch-gui

Update to the latest PyPI release

pip install --upgrade dioptas-batch-gui

Force reinstall from PyPI

pip install --upgrade --force-reinstall dioptas-batch-gui

Verify Dependencies

python check_dependencies.py

Usage

Installed CLI commands (work from any directory once your environment is active in terminal or console):

After:

conda activate dioptas
dbg

Compatibility aliases:

dbgui
dioptas_batch_gui
dioptas-batch-gui

For a local checkout, you can also launch the app directly:

python -m dbg

or:

python -m dioptas_batch_gui

Basic Workflow

  1. Set Watch Directory or switch to Batch Mode and select files manually.
  2. Choose the output mode:
    • Auto uses <source folder>/processed-YYYY-MM-DD.
    • Existing directory writes missing products into a selected processed output folder.
  3. Select the Calibration File (.poni).
  4. Optionally select a Mask File.
  5. Configure integration points and azimuth bins.
  6. Choose the export options you want.
  7. Click Start Watching for automatic mode or Process for manual batch mode.
  8. Click Stop Watching when finished with auto-processing.

Output

For each processed dataset, the app exports:

  • <base_name>.chi
  • <base_name>-param/<base_name>.int.cake.npy
  • <base_name>-param/<base_name>.tth.cake.npy
  • <base_name>-param/<base_name>.azi.cake.npy
  • <base_name>-param/<base_name>.metadata.v1.json

For HDF5/NXS files containing multiple snapshot images, outputs use a one-based snapshot suffix in the output stem and parameter directory name. When the input stem ends in a numeric scan/index segment, the snapshot suffix is inserted before that final segment:

  • xxx_map_1_0001.h5 snapshot 1: xxx_map_1_001_0001.chi
  • xxx_map_1_0001.h5 snapshot 2: xxx_map_1_002_0001.chi
  • xxx_map_1_001_0001-param/xxx_map_1_001_0001.int.cake.npy

Output layout:

output_directory/
├── <base_name>.chi
└── <base_name>-param/
    ├── <base_name>.int.cake.npy
    ├── <base_name>.tth.cake.npy
    ├── <base_name>.azi.cake.npy
    ├── <base_name>.metadata.v1.json
    └── <calibration>.poni

If the selected output directory already exists, the app inspects the existing products and writes only missing outputs when overwrite is disabled. Existing CHI/XY/DAT/NPY products are left untouched. Missing metadata exports are added under the corresponding *-param folder. If an older metadata JSON file is structurally compatible, missing top-level sections are added conservatively; if compatibility is uncertain, a versioned metadata JSON file is written instead of replacing the old file.

The metadata JSON uses schema_version: "1.0" and recursively records HDF5 file attributes, groups, datasets, dataset attributes, group attributes, NX_class values, source paths, provenance, and a small canonical index for common coordinates and detector/instrument/scan paths. Large datasets are described by shape and dtype rather than duplicated inline. For non-HDF5 image files, the metadata export records generic source file details such as path, name, size, modification time, and extension.

License

GPL-3.0-only. See LICENSE.

Metadata

Release files for dioptas-batch-gui 0.5.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dioptas-batch-gui 0.5.5
File Size Uploaded Provenance
dioptas_batch_gui-0.5.5.tar.gz 783.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for dioptas-batch-gui 0.5.5
File Interpreter ABI Platform
dioptas_batch_gui-0.5.5-py3-none-any.whl Python 3 none any Details

Total release size: 1.6 MB

Release files / dioptas_batch_gui-0.5.5.tar.gz

Download URL dioptas_batch_gui-0.5.5.tar.gz
Size 783.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9f6ef7b3b80c7ab7b589336a3c91bdc1a41914eca5f292a0e7db29806a699c2d
BLAKE2b-256 checksum
How to use checksums
0264bcdbf2c6f85d7536017421f2a69c3f523985ca7451a60efb2f5ddbb095fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / dioptas_batch_gui-0.5.5-py3-none-any.whl

Download URL dioptas_batch_gui-0.5.5-py3-none-any.whl
Size 777.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e30d5af1ad9915d796fc373ec91bba9fd23598f54f7484007ee26bfea0dbd641
BLAKE2b-256 checksum
How to use checksums
8af92b945c2606643e1aa1471009fa58716e6270f5b79475753a8ee778d8e0dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Security for dioptas-batch-gui 0.5.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page