Dear Gadgetron Users,
I fail to reconstruct a 3D cartesian accelerated acquisition. It is a iPat 2x2 accelerated acquisition with no partial fourrier and a 32x32 integrated reference lines.
I have compared to another raw data that reconstructs successfully through gadgetron and I find the following difference.
The working dataset begins at indice line #0 and acquires even lines in both phase directions.
The failing dataset begins at indice line #1 and acquires odd lines in phase encod 1, and same as above in phase encod 2
I tried to setup the raw data h5 header but I am not sure what is the correct solution. Anyway, I have (with a modified Siemens xsl file to adapt encodingLimits) :
encodedSpace.matrixSize.x/y/z = 384/168/128
encodingLimits.kspace_encoding_step_1.min/max/center = 1/167/85
encodingLimits.kspace_encoding_step_2.min/max/center = 0/126/64
The server does not complain, but the client terminates with an error and no output data.
See both log info below:
Does someone have an idea about the problem I'm facing ?
If someone wants to dig a bit more, here is the Siemens raw dataset:
Thank you for any help,
Frank
LOG INFO :
Gadgetron ISMRMRD client
-- host : localhost
-- port : 9002
-- hdf5 file in : meas_MID30_mod.h5
-- hdf5 group in : /dataset
-- conf : Generic_Cartesian_Grappa.xml
-- loop : 1
-- hdf5 file out : meas_MID30_reco.h5
-- hdf5 group out : 2020-06-12 13:50:25
terminate called after throwing an instance of 'boost::wrapexcept<boost::system::system_error>'
what(): read: End of file
Aborted (core dumped)
06-12 13:50:25.095 INFO [Server.cpp:42] Accepted connection from: ::ffff:127.0.0.1
06-12 13:50:25.103 INFO [ConfigConnection.cpp:113] Connection state: [CONFIG]
06-12 13:50:25.108 DEBUG [ConfigConnection.cpp:55] Reading config file: "/usr/local/share/gadgetron/config/Generic_Cartesian_Grappa.xml"
06-12 13:50:25.116 INFO [HeaderConnection.cpp:82] Connection state: [HEADER]
06-12 13:50:25.121 INFO [StreamConnection.cpp:75] Connection state: [STREAM]
06-12 13:50:25.121 DEBUG [Stream.cpp:52] Loading Gadget NoiseAdjust of class NoiseAdjustGadget from gadgetron_mricore
06-12 13:50:25.204 DEBUG [NoiseAdjustGadget.cpp:270] Folder to store noise dependencies is /tmp/gadgetron
06-12 13:50:25.204 DEBUG [NoiseAdjustGadget.cpp:271] NoiseAdjustGadget::perform_noise_adjust_ is 1
06-12 13:50:25.204 DEBUG [NoiseAdjustGadget.cpp:272] NoiseAdjustGadget::pass_nonconformant_data_ is 1
06-12 13:50:25.204 DEBUG [NoiseAdjustGadget.cpp:273] receiver_noise_bandwidth_ is 0.793000
06-12 13:50:25.204 DEBUG [NoiseAdjustGadget.cpp:285] Measurement ID is 18917_0273239_3351396_30
06-12 13:50:25.204 DEBUG [Stream.cpp:52] Loading Gadget AsymmetricEcho of class AsymmetricEchoAdjustROGadget from gadgetron_mricore
06-12 13:50:25.206 DEBUG [AsymmetricEchoAdjustROGadget.cpp:23] max RO for encoding space 0 : 384
06-12 13:50:25.206 DEBUG [Stream.cpp:52] Loading Gadget RemoveROOversampling of class RemoveROOversamplingGadget from gadgetron_mricore
06-12 13:50:25.207 DEBUG [RemoveROOversamplingGadget.cpp:43] RemoveROOversamplingGadget:omp_set_num_threads(1) ...
06-12 13:50:25.207 DEBUG [Stream.cpp:52] Loading Gadget AccTrig of class AcquisitionAccumulateTriggerGadget from gadgetron_mricore
06-12 13:50:25.207 DEBUG [Stream.cpp:52] Loading Gadget BucketToBuffer of class BucketToBufferGadget from gadgetron_mricore
06-12 13:50:25.207 DEBUG [Stream.cpp:52] Loading Gadget PrepRef of class GenericReconCartesianReferencePrepGadget from gadgetron_mricore
06-12 13:50:25.210 DEBUG [GenericReconBase.cpp:41] Debug folder is not set ...
06-12 13:50:25.210 DEBUG [GenericReconCartesianReferencePrepGadget.cpp:42] Number of encoding spaces: 1
06-12 13:50:25.210 DEBUG [GenericReconCartesianReferencePrepGadget.cpp:53] ---> Encoding space : 0 <---
06-12 13:50:25.210 DEBUG [GenericReconCartesianReferencePrepGadget.cpp:54] Encoding matrix size: 384 168 128
06-12 13:50:25.210 DEBUG [GenericReconCartesianReferencePrepGadget.cpp:55] Encoding field_of_view : 440 192.5 153.6
06-12 13:50:25.210 DEBUG [GenericReconCartesianReferencePrepGadget.cpp:56] Recon matrix size : 192 168 128
06-12 13:50:25.210 DEBUG [GenericReconCartesianReferencePrepGadget.cpp:57] Recon field_of_view : 220 192.5 153.6
06-12 13:50:25.210 DEBUG [GenericReconCartesianReferencePrepGadget.cpp:68] acceFactorE1 is 2
06-12 13:50:25.211 DEBUG [GenericReconCartesianReferencePrepGadget.cpp:69] acceFactorE2 is 2
06-12 13:50:25.212 DEBUG [Stream.cpp:52] Loading Gadget CoilCompression of class GenericReconEigenChannelGadget from gadgetron_mricore
06-12 13:50:25.214 DEBUG [GenericReconBase.cpp:41] Debug folder is not set ...
06-12 13:50:25.215 DEBUG [GenericReconEigenChannelGadget.cpp:42] Number of encoding spaces: 1
06-12 13:50:25.215 DEBUG [Stream.cpp:52] Loading Gadget Recon of class GenericReconCartesianGrappaGadget from gadgetron_mricore
06-12 13:50:25.215 DEBUG [GenericReconBase.cpp:41] Debug folder is not set ...
06-12 13:50:25.215 DEBUG [ImageArraySendMixin.hpp:132] ---> Encoding space : 0 <---
06-12 13:50:25.215 DEBUG [ImageArraySendMixin.hpp:133] Encoding matrix size: 384 168 128
06-12 13:50:25.215 DEBUG [ImageArraySendMixin.hpp:136] Encoding field_of_view : 440 192.5 153.6
06-12 13:50:25.215 DEBUG [ImageArraySendMixin.hpp:139] Recon matrix size : 192 168 128
06-12 13:50:25.215 DEBUG [ImageArraySendMixin.hpp:142] Recon field_of_view : 220 192.5 153.6
06-12 13:50:25.215 DEBUG [GenericReconGadget.cpp:32] Number of encoding spaces: 1
06-12 13:50:25.215 DEBUG [GenericReconGadget.cpp:54] acceFactorE1 is 2
06-12 13:50:25.215 DEBUG [GenericReconGadget.cpp:55] acceFactorE2 is 2
06-12 13:50:25.216 DEBUG [GenericReconCartesianGrappaGadget.cpp:39] Number of encoding spaces: 1
06-12 13:50:25.216 DEBUG [Stream.cpp:52] Loading Gadget PartialFourierHandling of class GenericReconPartialFourierHandlingFilterGadget from gadgetron_mricore
06-12 13:50:25.216 DEBUG [Stream.cpp:52] Loading Gadget KSpaceFilter of class GenericReconKSpaceFilteringGadget from gadgetron_mricore
06-12 13:50:25.217 DEBUG [Stream.cpp:52] Loading Gadget FOVAdjustment of class GenericReconFieldOfViewAdjustmentGadget from gadgetron_mricore
06-12 13:50:25.217 DEBUG [Stream.cpp:52] Loading Gadget Scaling of class GenericReconImageArrayScalingGadget from gadgetron_mricore
06-12 13:50:25.225 DEBUG [Stream.cpp:52] Loading Gadget ImageArraySplit of class ImageArraySplitGadget from gadgetron_mricore
06-12 13:50:25.226 DEBUG [Stream.cpp:52] Loading Gadget ComplexToFloatAttrib of class ComplexToFloatGadget from gadgetron_mricore
06-12 13:50:25.226 DEBUG [Stream.cpp:52] Loading Gadget FloatToShortAttrib of class FloatToUShortGadget from gadgetron_mricore
06-12 13:50:25.226 DEBUG [Stream.cpp:52] Loading Gadget ImageFinish of class ImageFinishGadget from gadgetron_mricore
06-12 13:50:25.272 DEBUG [NoiseAdjustGadget.cpp:97] Saving noise to /tmp/gadgetron/GadgetronNoiseCovarianceMatrix_18917_0273239_3351396_30
06-12 13:50:28.520 DEBUG [AcquisitionAccumulateTriggerGadget.cpp:159] Trigger (1) occurred, sending out 1 buckets
06-12 13:50:28.520 DEBUG [BucketToBufferGadget.cpp:50] BUCKET_SIZE 5376 ESPACE 1
06-12 13:50:28.520 DEBUG [BucketToBufferGadget.cpp:184] Data dimensions [RO E1 E2 CHA N S SLC] : [192 168 128 32 1 1 1]
06-12 13:50:28.895 DEBUG [BucketToBufferGadget.cpp:389] Encoding space : 0 - FOV : [ 440 192.5 153.6 ] - Matris size : [ 384 168 128 ]
06-12 13:50:28.895 DEBUG [BucketToBufferGadget.cpp:396] Sampling limits : - RO : [ 0 96 191 ] - E1 : [ 0 84 166 ] - E2 : [ 0 64 126 ]
06-12 13:50:28.902 DEBUG [BucketToBufferGadget.cpp:184] Data dimensions [RO E1 E2 CHA N S SLC] : [192 168 128 32 1 1 1]
06-12 13:50:29.285 DEBUG [BucketToBufferGadget.cpp:389] Encoding space : 0 - FOV : [ 440 192.5 153.6 ] - Matris size : [ 384 168 128 ]
06-12 13:50:29.285 DEBUG [BucketToBufferGadget.cpp:396] Sampling limits : - RO : [ 0 96 191 ] - E1 : [ 0 84 166 ] - E2 : [ 0 64 126 ]
06-12 13:50:29.331 DEBUG [BucketToBufferGadget.cpp:90] End of bucket reached, sending out 1 ReconData buffers