Thanks for your feedback.
1.You need do full calibration for each sensor, compensate both hard iron and soft iron effect, this already including sensor zero B offset;
2.For Z axis, center of the sensor;
3.Question for magnetic field distribution of magnet , not liner, right?
4.If use sqrt(x^2+y62+z^2), because bmm150 is very small, normally we can look the measurement position is center of BMM150. What's the accuracy from your side?