cctbx / dxtbx

Diffraction Experiment Toolbox
BSD 3-Clause "New" or "Revised" License
2 stars 12 forks source link

dxtbx.format.FormatNXmxDLS16M.FormatNXmxDLS16M no longer supports legacy data without VDS #700

Open graeme-winter opened 4 months ago

graeme-winter commented 4 months ago

Or it partially supports it:

ws448 x :) $ dials.python fail.py 
 28%|██████████▊                            | 1000/3600 [01:37<04:14, 10.21it/s]
Traceback (most recent call last):
  File "/tmp/x/fail.py", line 11, in <module>
    i.get_raw_data(j)
  File "/dls_sw/apps/dials/dials-v3-17-0-2/modules/dxtbx/src/dxtbx/format/FormatMultiImage.py", line 47, in read
    return format_instance.get_raw_data(index)
  File "/dls_sw/apps/dials/dials-v3-17-0-2/modules/dxtbx/src/dxtbx/format/FormatNXmx.py", line 115, in get_raw_data
    raw_data = dxtbx.nexus.get_raw_data(
  File "/dls_sw/apps/dials/dials-v3-17-0-2/modules/dxtbx/src/dxtbx/nexus/__init__.py", line 578, in get_raw_data
    sliced_outer = data[index]
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "/dls_sw/apps/dials/dials-v3-17-0-2/conda_base/lib/python3.10/site-packages/h5py/_hl/dataset.py", line 768, in __getitem__
    return self._fast_reader.read(args)
  File "h5py/_selector.pyx", line 361, in h5py._selector.Reader.read
  File "h5py/_selector.pyx", line 151, in h5py._selector.Selector.apply_args
IndexError: Index (1000) out of range for (0-999)

where fail.py consists of

from tqdm import tqdm

from dxtbx.model.experiment_list import ExperimentList

el = ExperimentList.from_file("imported.expt")

e = el[0]
i = e.imageset

for j in tqdm(range(len(i))):
    i.get_raw_data(j)