Files
Jungfraujoch/docs
leonarski_fandClaude Opus 5 d01e69e407 rugnux: describe the linked images in _process.h5, not the processing container
_process.h5 is an NXmxIntegrated master that links to the ORIGINAL image files
rather than writing images of its own (write_images = false). Its pixel metadata
therefore has to describe those files - but it was filled from experiment_, which
Rugnux pins to signed 32-bit because that is the container HDF5MetadataSource
hands images out in. The virtual dataset was consequently typed int32 over
unsigned 16- or 32-bit sources, so HDF5 converted every value on read: the
0xFFFFFFFF error marker of a uint32 source does not survive, and error_value and
underload_value described a container the file does not contain.

Our own reader never saw it, because it resolves the mapping and opens the
source file itself. Only consumers that go through the virtual view - DIALS,
XDS via Durin, plain h5py - read the converted values.

Take the format from the reader instead. GetStoredPixelFormat() reports the bit
depth and signedness of /entry/data/data as stored, which is deliberately not
the same thing as the experiment's image format, and rugnux fills the start
message from it.

The writer is left alone on purpose: it must be able to produce a master before
the mapped files exist, or when they are not readable, and the mapping strips the
source directory, so it cannot open them to ask.

Measured on a 20-image set with int16 sources: the _process.h5 virtual dataset
goes from H5T_STD_I32LE to H5T_STD_I16LE, matching the source, and DIALS reports
trusted_range (-32767, 32765) instead of (-2147483647, 32765).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 18:24:31 +02:00
..
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2025-04-14 11:52:06 +02:00
2024-11-22 21:25:20 +01:00
2026-02-18 16:17:21 +01:00
2025-06-24 16:43:47 +02:00
2024-11-17 14:55:09 +01:00
2026-08-13 17:03:10 +02:00
2024-11-17 14:55:09 +01:00
2026-07-19 09:39:28 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2025-11-28 12:47:35 +01:00
2026-06-23 20:29:49 +02:00
2026-07-11 07:19:11 +02:00
2024-12-02 21:17:14 +01:00
2024-12-02 21:17:14 +01:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2024-11-22 21:25:20 +01:00
2026-04-09 13:30:47 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2024-11-17 14:55:09 +01:00
2024-11-22 21:25:20 +01:00