Comment by nativeforks
25 days ago
Thanks! Currently, MBCompass can show both magnetic north using Android’s sensor fusion and true north (based on WGS84 geodetic coordinates).
Adding a magnetic compensation map sounds like a great fit for improving global accuracy without changing the app’s core goals. Thanks for the suggestion.
YW, there are some pretty compact representations possible of that data but it will come at a considerable expense in computational overhead.
https://www.ncei.noaa.gov/products/earth-magnetic-model-anom...
Is a good starting point.
You are linking to the magnetic anomaly grid, which is primarily intended for geophysical research and modeling local variations.
For a basic compass app, you can rely on the World Magnetic Model (WMM) instead: https://www.ncei.noaa.gov/products/world-magnetic-model
From that, you can pre-compute a low-resolution declination grid. NOAA even provides one here: https://www.ngdc.noaa.gov/geomag/calculators/magcalc.shtml#i.... That’s only a few KB of data and requires just a simple declination subtraction based on lat/lon, similar to how it’s handled on nautical charts. This works fine as long as you stay away from the poles (and Alaska).
Near ore deposits the map resolution needs to go up considerable beyond the 'few KB of data' to keep it working. Nautical charts are simpler because there is as a rule a bit more distance between the compass and any anomalies but in certain mineral rich areas of the world that definitely is not the case.
1 reply →