e7edee6b2ed5bc6a384eea421ced4dc28e911087
2 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
b9f8c2b675 |
reader/viewer: snapshot image->original map; subset runs register and overlay
Foundation for a dataset (snapshot or, later, the main file) being a subset of the truly collected images: - JFJochReaderDataset gains source_image_number (image index -> original image number; empty = identity). - HDF5MetadataSource reads /entry/detector/number into that map and an inverse (original -> local) map; FillPerImage / ReadSpots translate the requested global image to this source's local index via ToLocalIndex (return nothing if the image is not covered), so partial snapshots are correct and never read out of bounds. - RegisterSnapshot now accepts a snapshot with fewer images than the dataset (only rejects more), so sub-range / strided reprocessing runs register. - The dataset-info plot draws each run at its original image numbers (x map from source_image_number), so a subset run lands at the right place on the shared axis. The live run's map is filled from msg.original_number. This makes the foundation ready for strided / filtered selections (e.g. reprocess only images with >N spots) without restricting to a min-max sub-range. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
9434878c92 |
reader: split metadata reading into HDF5MetadataSource + snapshot map
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m46s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m27s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 15m5s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 15m1s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 15m7s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 15m6s
Build Packages / build:rpm (rocky8) (push) Successful in 13m25s
Build Packages / XDS test (neggia plugin) (push) Successful in 9m46s
Build Packages / XDS test (durin plugin) (push) Successful in 10m14s
Build Packages / Generate python client (push) Successful in 16s
Build Packages / Create release (push) Skipped
Build Packages / build:rpm (rocky9) (push) Successful in 13m1s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m33s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 10m45s
Build Packages / Build documentation (push) Successful in 47s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 12m17s
Build Packages / DIALS test (push) Successful in 13m39s
Build Packages / Unit tests (push) Failing after 58m55s
Complete the image/metadata decoupling. JFJochHDF5Reader is now a thin JFJochReader
facade composing one shared HDF5ImageSource (raw pixels) with a name->HDF5MetadataSource
map and an active selection ("snapshots").
- HDF5MetadataSource owns one master file: dataset-level parse (Open, ex-ReadFile),
per-image metadata (FillPerImage, ex-LoadImage_i), ReadSpots/ReadReflections/
ReadCalibration, and the master-first helpers. It locates per-image metadata either via
the shared image source (original file: metadata co-located with pixels) or in its own
master at the global index (integrated _process.h5 snapshot) - so switching snapshots
never reloads pixels.
- Facade adds RegisterSnapshot/SetActiveSnapshot/SnapshotNames/ActiveSnapshot; ReadFile
registers the original as "Original". All existing JFJochReader callers are unchanged.
- The global hdf5_mutex is taken once in the facade; the sources assume it is held.
Adds JFJochReader_Snapshots test (original _master.h5 + a reprocessing _process.h5 over
the same images: pixels stay from the original, metadata follows the active snapshot).
Verified: tests/jfjoch_test [HDF5] (80 cases / 1810 assertions), plus jfjoch_process/
azint/extract_hkl/scale and jfjoch_viewer all build against the refactored reader.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|