SyneRBI / SIRF

Main repository for the CCP SynerBI software
http://www.ccpsynerbi.ac.uk
Other
59 stars 29 forks source link

SIRF error thrown from `MRAcquisitionModel::fwd` #1036

Closed evgueni-ovtchinnikov closed 2 years ago

evgueni-ovtchinnikov commented 2 years ago

@johannesmayer running acquisition_model.py demo on meas_MID80_2d_cart_cine_30ph_headcoil_FID17006.h5 (which I got from Christoph a couple of years ago or so) gives this error thrown from MRAcquisitionModel::fwd

check_status found the following message sent from the engine:
??? "You didn't find rawdata corresponding to your image in the acquisition data." exception caught at line 432 of C:\...\GitHub\build\sources\SIRF\src\xGadgetron\cGadgetron\gadgetron_x.cpp

SIRF used to be able to work with this raw data fine.

johannesmayer commented 2 years ago

This error occurs if one tries to forward-project an image that has no corresponding acquisitions in the destination container. Somehow the reconstruction processors give back images that don't match the rawdata they came from.

If you send me the data I will take care of this.

evgueni-ovtchinnikov commented 2 years ago

https://www.dropbox.com/s/fetyoz2tepm7m7c/meas_MID80_2d_cart_cine_30ph_headcoil_FID17006.h5?dl=0

johannesmayer commented 2 years ago

Ok boom. I found the reason. I will document it here in case something similar comes up again.

In addition to the established dimensions of k-space such as slice, phase, repetition, contrast etc. there is the possibility to have user-defined dimensions.

The forward method checks if there are acquisitions in the destination container that match the image that we want to forward project, s.t. the forward projection makes sense. The error is generated if I try to forward-project an image that has no corresponding acquisitions (i.e. I try to forward-project an image that carries slice number 2, but none of the acquisitions has that slice number in its header).

The above file has extra dimensions which are only gibberish (as far as I can tell). However, the forward method still compares them to available acquisitions, hence it fails. The solution is to ignore the extra dimensions for both acquisitions and images.