A few random responses:
I think I came across the same issue just before the ISMRM. I think there’s a bug in there, we’ll need to look into it.
Actually, the scaling applied is by the square of the gradient norm: see here for the exact code. That probably explains the discrepancy.
By default, MRtrix3 will scale the b-values - it’s usually the right thing to do. You can disable it in commands that expect a DW encoding using the -bvalue_scaling
option.
There usually is… This used to be the only way to run a multi-shell acquisition in a single scan using a custom gradient file. I think this may have been relaxed now, but I’m not sure. In any case, where the gradient amplitudes differ significantly from unity, you have to assume there is some meaning attached to that, otherwise they would have just stored unit vectors…