Export_grad_fsl different in mrinfo than in mrconvert

That’s exactly what this is. Philips have a habit of adding that image at the end of the series for some reason (on Siemens, this type of image would be added as a different series altogether). It shows up as a volume with a zero direction vector, but a non-zero b-value. It would be discarded by any MRtrix3 application that makes any interpretation of the DW gradient table, so that it doesn’t interfere in tensor or other calculations. I guess other converters simply discard the volume wholesale, which does have the advantage of keeping things simple.

As to the difference between mrconvert and mrinfo, as @dchristiaens says, it’s all about how much interpretation is performed on the DW gradient table. For mrconvert, essentially no interpretation is performed - it’s passed through to the output unmodified. With mrinfo on the other hand, operations like b-value scaling and normalisation of vectors takes place. I can see that it can get confusing, but essentially what you get with mrinfo is the DW gradient table as it would be interpreted by MRtrix3 applications, unless you use the -raw_dwgrad option, in which case you should get the same as mrconvert would produce.

As to which of these is ‘correct’, I guess that depends on your point of view. The idea in mrinfo is to provide information about the image, as MRtrix3 understands it. This does get a bit messy when using the -export_grad_fsl option, since that’s also a conversion, and I can see that the fact that it behaves differently in mrconvert than it does in mrinfo is a bit weird. I agree it might be better to ensure consistent behaviour for the -grad_export_* options - but I’m not sure whether it’s best to modify the gradient table or leave it as-is (this is relevant for multi-shell acquisitions where the acquisition software is often ‘tricked’ into modulating the b-value by scaling the gradient vectors) - thoughts welcome.