NCEI also developed the World Magnetic Model High Resolution (WMMHR), an advanced magnetic field model with more comprehensive data on the geomagnetic fields than the original World Magnetic Model. The WMMHR uses a set of forecasting models to provide detailed coverage of the main field and secular variation up to degree 15.
Product Details
NCEI distributes the model, associated software, and documentation on behalf of NGA. The model is produced at 5-year intervals, and the current model expires on December 31, 2029. The WMM is compared to a more recent main geomagnetic field model every year to assess its performance. For more information, see the latest State of the Geomagnetic Field report.
Download links first take you to a voluntary survey page. We request that you complete the survey to receive up to date information about WMM via email. Your feedback will strengthen the program.
Note: The WMM2025 software will be available soon. We apologize for any inconvenience this may cause. The online calculator is available if you have an immediate need. If you have any questions, please don’t hesitate to reach out via email at [email protected].
More Information
File | Release Date | Product Description |
---|---|---|
WMM2025 Coefficient File | December 2024 | WMM Coefficient file (WMM.COF) valid for 2025 - 2030 test values and instructions to update your software. See the Documentation tab for more information. |
WMM2025 Software with Windows Graphical User Interface (GUI) | ||
WMM Windows.zip | December 2019 | World Magnetic Model (WMM2020) with C software and executables for Windows environment are available on this page under the Additional Notes dropdown in the WMM Modular Software section. |
WMM Linux.tar.gz | December 2019 | World Magnetic Model (WMM2020) with C software and executables for Linux environment are available on this page under the Additional Notes dropdown in the Geoid Implementation in WMM Software section. |
WMM GUI.zip | December 2019 | World Magnetic Model with Stand-alone GUI for Windows. |
Documentation | ||
WMM Annual Report 2023 | December 2023 | Every year, the performance of the WMM is assessed by comparing it to a more recent main geomagnetic field model, and by comparing its secular variation with the actual secular variation observed at ground-based observatories and satellite-based geomagnetic virtual observatories (GVOs). |
WMM2020 Technical Report | April 2020 | World Magnetic Model (WMM2020) - Technical Report about the model development. For previous technical reports see the Software Changes section of the Additional Notes dropdown. The 2025 technical report will be available in Spring 2025. |
WMM2025 Test Values |
December 2024 | WMM - Test values. |
WMM2025 ISO XML Template | December 2024 | WMM - ISO XML Metadata. |
Mobile Apps | ||
Android | February 2019 | World Magnetic Model Android software as part of "CrowdMag" app (uses the WMM2015v2 until the app review process is completed). |
iOS | December 2024 | World Magnetic Model iOS software as part of "CrowdMag" app (uses the WMM2025). |
Specifications
NCEI provides access to the DoD software and current WMM and WMM online calculator. The software computes the main components of the geomagnetic field and their annual changes. The programs are designed to be used in demand mode. The software is available as C source code. The model file, WMM.COF (format specification), is available in the same directory as the software.
Note: The altitude is referenced to the World Geodetic System 1984 (WGS 84) ellipsoid. The WMM software library provides functions to convert height above mean sea level (AMSL) to height above WGS 84. This option is enabled by default.
Annual change, also known as Secular Variation (SV) in each of these magnetic components, is also displayed. The annual change is computed by subtracting the main field values for the desired input date from main field values one year later. The output units are displayed using the abbreviations nT (nanoTesla), deg (degrees) and min (minutes) per year. The WMM software also outputs uncertainty for each component. The error is one standard deviation difference between a hypothetical measurement and model output. The uncertainty values have the same units as their corresponding components.
Citations
Model Values
NOAA NCEI Geomagnetic Modeling Team; British Geological Survey. 2024: World Magnetic Model 2025. NOAA National Centers for Environmental Information. https://doi.org/10.25921/aqfd-sd83. Accessed [date].
Technical Report
Chulliat, A., W. Brown, P. Alken, C. Beggan, M. Nair, G. Cox, A. Woods, S. Macmillan, B. Meyer and M. Paniccia, The US/UK World Magnetic Model for 2020-2025: Technical Report, National Centers for Environmental Information, NOAA, doi:10.25923/ytk1-yx35, 2025.
Note: The WMM source code is in the public domain and not licensed or under copyright. The information and software may be used freely by the public. As required by 17 U.S.C. 403, third parties producing copyrighted works consisting predominantly of the material produced by U.S. government agencies must provide notice with such work(s) identifying the U.S. Government material incorporated and stating that such material is not subject to copyright protection.
WMM Program Ports to Other Languages
Several users have ported the WMM C or Fortran programs to other languages and have kindly offered to share these programs. Only non-commercial "free-ware" will be linked from this site. Linking to third-party software does not imply an endorsement or review of any kind from the Federal Government. Users are encouraged to verify results based on the WMM test values.
NOAA Disclaimer for external links
Note: Neither the authors nor NCEI can provide any warranty or technical support for these programs. Many of these software programs still use WMM2010.
Language | Size | Date | Author | Description |
---|---|---|---|---|
WMM LegacyC | December 2024 | NCEI Geomagnetism Team | An implementation of the World Magnetic Model in C. | |
WMM Legacy Fortran | December 2024 | NCEI Geomagnetism Team | An implementation of the World Magnetic Model in Fortran. | |
Go | Aug. 26, 2019 | Dr. Eric Westphal | An implementation of the World Magnetic Model in the Go language. | |
Google App Script | Revised April 12, 2016 | Dallas Yenawine | Satellite pointing parameter chart creator utilizing zip code database lookup for dish location and WMM2015 Javascript from NGA for accurate magnetic declination compensation. | |
Google Spreadsheet App | Revised Jan. 26, 2019 | Manoj Nair | WMM2015 Google spreadsheet application for multiple points calculations. | |
R | March 21, 2021 | Will Frierson | An implementation of the World Magnetic Model in R. A more complete description can be found on R package system page. | |
Excel Spreadsheet | 322 KB | Revised April 13, 2015 | Noah Hassler | Excel implementation. Does not require .dll or outside software, calculations done entirely in Microsoft Excel. |
DLL | 117 KB | Revised April 13, 2015 | Steven M. Shope | DLL implementation. Uses the IGRF-12 rather than the WMM. |
Java | 20 KB | Revised April 15, 2020 | John St. Ledger | Java implementation with tests. |
Visual Studio C++ | 467 KB | Revised January 2010 | Garry Petrie | GeoMag 3.0, the Geographic Magnetic Calculator, is a tool to determine UTM Coordinates and the Magnetic Declination that correspond to a longitude/latitude location. |
C++ | 2 MB | Revised Jan. 10, 2012 | Charles Karney | GeographicLib is a C++ library of geographic routines. The MagneticModel class reports the magnetic field for a given time and a position. The class currently supports WMM2010, Enhanced Magnetic Model (EMM2010) and IGRF11. Provided by Charles Karney. |
Visual Basic | 190 KB | Revised Nov. 15, 2011 | Fred Neudecker | Visual Basic class version of GeoMag 7.0 (IGRF) for desktop applications. This class was written in Visual Studio 5.0. |
Python | Sep 18, 2023 | Justin M Myers | A python version of the WMM algorithm | |
Java Script | Revised Dec. 18, 2014 | Christopher Weiss | The WMM algorithm in Javascript. | |
Java | Revised May 15, 2012 | Orekit | Orekit is a free low-level space dynamics library. The GeoMagneticField class calculates the magnetic field for a given time and position. The class currently supports WMM and IGRF. | |
Objective C | Revised Jan. 10, 2013 | Stephen Trainor | A simple Objective-C wrapper for the WMM. Allow the model to be easily used in iOS. | |
Matlab | 92.6 KB | Revised April 2017 | David F. Crouse | Spherical harmonic synthesis algorithms for magnetic field estimation, as well as geomagnetic coordinate systems and relevant sample code are included in this collection of Matlab functions for the development of target tracking algorithms. |
Swift (4.0) | 16.6 KB | Revised December 2017 | Deep Pradhan | Swift class to calculate magnetic declination, magnetic field strength, inclination, etc for any point on the Earth. |
C99 | 534.4 KB | Revised April 18, 2020 | John Blaiklock | WMM software suitable for inclusion in small embedded systems with limited program space. |
As changes are made to the WMM code, the revised code will be posted. The downloadable code (in the "Software and Documentation" section) is always the latest version.
Date | Product | Known Issue |
---|---|---|
Aug 23, 2016 | Geomagnetism Library and programs | The MAG_GetTransverseMercator function converts a latitude and longitude location into UTM parameters. Currently the subroutine outputs wrong UTM parameters. The issue does not affect any of the products we distribute using the Geomagnetism Library, and is primarily for developers seeking to use the Geomagnetism Library for UTM calculations in their software. Contact us at [email protected] for a workaround. |
Date | Product | Changes |
---|---|---|
Dec. 10, 2019 | Geomagnetism Library and programs | Updated the Geomagnetism Library and software to handle the WMM2020 Error Model. Now distributed with the WMM2020. Several bug fixes and performance improvements. |
Dec. 15, 2014 | Geomagnetism Library and programs | Updated the Geomagnetism Library and software to handle WMM2015 Error Model. Now distributed with the WMM2015. Several bug fixes and performance improvements. |
Dec. 15, 2014 | WMM Graphical User Interface (GUI) | Updated for the WMM2015 error model. Now distributed with the WMM2015. Includes self-testing option. Several bug fixes and performance improvements. |
Dec. 2, 2013 | Enhanced Magnetic Model | Updates to Mesh implementation of EMM: -Corrected a bug that caused the executable to fail on some windows machines -No longer distributing .msh files and program no longer attempts to convert them from binary -No longer distributing "EGM9615.BIN" file instead information is included in .exe files, in line with our other programs |
April 20, 2012 | Enhanced Magnetic Model | The EMM has been extended backward to 2000 using the POMME model. |
April 20, 2012 | Geomagnetism Library and programs | Major overhaul of the WMM Sub-library, which is now called the Geomagnetism Library. It has been reorganized into 5 categories: -User Interface -Memory and File Processing -Conversions, Transformations, and other Calculation -Spherical Harmonics -Geoid The documentation has been updated. Two functions were added: MAG_YearToDate and MAG_SphericalToCartesian. Several minor pointer related bugs were fixed as well. |
Dec. 20, 2011 | WMM Subroutine Library and programs | Removed upper limit on altitude. The lower limit was left unchanged at -10 km. |
Nov. 22, 2011 | WMM Subroutine Library and programs | Removed the Geoid file, "EGM9615.BIN", from the package and added the Geoid data as a header file so it is now a part of the executable. Minor bug fixes and stability improvements were also made. |
June 16, 2011 | WMM Subroutine Library and programs | Changes in WMM. Fixed minor bugs which threw warnings when WMM was compiled. Fixed memory leak related errors. |
Sep. 24, 2010 | WMM Subroutine Library and programs | Changes in WMM_SubLibrary.c. Fixed two bugs in WMM_readMagneticModel_Large. |
Sep. 9, 2010 | WMM Subroutine Library and programs | Changes in WMM_SubLibrary.c 1) Fixed problems due to unclosed files pointers 2) Fixed problems while using "print to file" option in grid programs. Updated WMM header files. |
Feb. 22, 2010 | WMM Graphical User Interface (GUI) | Users can now enter the height as above MSL or WGS84 Ellipsoid |
Feb. 4, 2010 | WMM Graphical User Interface (GUI) | GUI now uses the WMM subroutines. More information on the updates is available in the software package. |
Dec. 15, 2009 | WMM Graphical User Interface (GUI) | GUI updated with the WMM2010 coefficients. |
July 27, 2007 | WMM Graphical User Interface (GUI) | WMM GUI is released |
Feb. 4, 2010 | WMM Subroutine Library and programs | Version 1.0 is released. Extensive revision of the sub-library, point, grid and file processing programs. More information on the updates is available in the software package. |
Dec. 15, 2009 | WMM Subroutine Library and programs | Version 0.3 is released. Software is updated with WMM2010 coefficients. |
Nov. 17, 2009 | WMM Subroutine Library and programs | Beta version is released. |
Feb. 4, 2010 | WMM Legacy C and Fortran Softwares | Version 3 is released. This is the last update for this software. Floating point precision changed from single to double. More information on the updates is available in the software package. |
Nov. 5, 2005 | WMM Legacy C and Fortran Softwares | Version 2 is released. Changes include: Spelling corrections in help text and input prompts, Warnings added for undefined declination at/near magnetic poles, Resolution of results consistent across all programs and Corrected elevation bug in the Fortran grid program |
April 5, 2005 | WMM Legacy C and Fortran Softwares | C Software bug fixes: 1) Fixed inclination reporting (erroneously reported as positive upwards) 2) Fixed problem reading input which led to a memory leak and program fail when compiled with gnu compilers |
Dec. 15, 2004 | WMM Legacy C and Fortran Softwares | Changes: As of 2000, the model produced and distributed from the Web has been named "wmm.cof", with the model epoch contained in the header of the model. The current model has an additional change to be compliant with Y2K. The publication date of the model, as shown in the first line (header) of the model is now a four-digit year. There are no changes in the format of the coefficients. |
Note: Because WMM is a "predictive only" model, we do not make the older models (WMM.COF files) widely available. We recommend using the International Geomagnetic Reference Field (IGRF) models for years prior to 2020. IGRF is updated retrospectively to provide the best available estimate of the geomagnetic field back to 1900.
WMM Modular Software
The modular C WMM software reads the coefficient file, WMM.COF, and computes the geomagnetic field at the user-specified location. The download file is always the latest version. This software for the WMM is developed as a C sub-library that can be incorporated into other applications and software. We use a modular programming approach to facilitate reuse in other applications. We also provide wrapper programs to produce single point, time series, and grid values of the magnetic field. The core numerical functions are optimized for speed and efficiency.
Geoid Implementation in WMM Software
The geoid implementation of the WMM software references the altitude of the World Geodetic System 1984 (WGS 84) ellipsoid. This is generally called height above ellipsoid (HAE). However, WMM users may be more familiar with the height above mean sea level (AMSL). The difference between AMSL and HAE varies with location and the total variation is less than 200 meters. The software allows users to enter their altitude above the mean sea level rather than their height above ellipsoid. Conversion between heights referenced to MSL and WGS84 ellipsoid was implemented using the EGM96 geoid.
The correction results in a difference of magnetic field strength of about 1-3 nT. The largest differences in magnetic field strength coincide with the largest deviations of the geoid from the WGS-84 ellipsoid. However, the effect of geoid height correction is negligible in the magnetic declination. The EGM-96 geoid height file will also be supplied with the WMM package for this purpose. This option is enabled by default.
Using WMM Software for High Degree Geomagnetic Models
The software accurately computes the associated Legendre functions up to degree 2,800, making it adaptable for high-degree geomagnetic models. Details of the WMMWorld Magnetic Model derivation are described in The US/UK World Magnetic Model for 2020-2025: Technical Report.
Department of Defense World Magnetic Model Calculators (2020–2025)
Single Point Calculator
This web calculator will produce output for a single point for a range of dates. Select the WMM radio button to get results from the World Magnetic Model.
Launch Single Point Calculator
This calculator provides annual change, also known as secular variation (SV), for each of these magnetic components. Annual change is computed by subtracting the main field values for the desired input date from main field values one year later. The output units are displayed using the abbreviations nT (nanoTesla), deg (degrees) and min (minutes) per year.
WMM software also provides uncertainty and estimated error for each component. The error is one standard deviation difference between a hypothetical measurement and model output. The uncertainty values have the same units as their corresponding components.
Grid Calculator
This web calculator will produce output for a grid of points for a range of dates. It outputs as either XML or CSV. Select the WMM radio button to get results from the World Magnetic Model.
Declination Calculator
This web calculator will give declination for a single point. If HTML output is selected it includes a Google map with sample compass. Select the WMM radio button to get results from the World Magnetic Model.
Maps of Magnetic Elements from the WMM
Contour maps were created for each of the seven magnetic elements (D, I, H, X, Y, Z, and F) and for their secular variation (rate of change). These maps are available for download in pdf format by clicking on the browse images below or you can download a zip file containing all of the map pdfs with or without the blackout zones. Maps are available in Adobe PDF and Esri Shapefile format.
Map Download Options
Background
The WMM consists of a degree and order 12 spherical-harmonic main (i.e., core-generated) field model of 168 spherical-harmonic Gauss coefficients and degree and order 12 spherical-harmonic Secular Variation (SV) (core-generated, slow temporal variation) field model. WMM2025 supersedes WMM2020 and should replace this model in navigation systems. Also included with the model is computer software (available in C) for computing the magnetic field components X, Y, Z, F, D, I, and H in geodetic coordinates and their temporal variations. The spherical-harmonic expansions used to compute the magnetic field components are the same as the ones described in The US/UK World Magnetic Model for 2015–2020: Technical Report.
Earth's magnetic field, as measured by a magnetic sensor on or above Earth's surface, is actually the sum of magnetic fields generated by a variety of sources. These fields are superimposed on each other and through inductive processes interact with each other. The most important are these geomagnetic fields:
- Earth's main magnetic field generated in the conducting, fluid outer core.
- The crustal field generated in Earth's crust and upper mantle.
- The combined disturbance field from electrical currents flowing in the upper atmosphere and magnetosphere, which induce electrical currents in the sea and ground.
The observed magnetic field is a sum of contributions of the main field (varying in both time and space), the crustal field (varies spatially, but considered constant in time for the time-scales of the WMM), and the disturbance fields (varying in space and rapidly in time). Earth's main magnetic field dominates, accounting for over 95% of the field strength at Earth’s surface. Secular variation is the slow change in time of the main magnetic field. The WMM represents only the main geomagnetic field.
To create an accurate magnetic field model, it is necessary to have vector component measurements with good global coverage and low noise levels. The European Space Agency's SWARM satellite mission is presently the most suitable magnetic observing system. Also available are ground observatory hourly mean data, although with poorer spatial coverage. The observatory data can provide valuable constraints on the time variations of the geomagnetic field.
Visit our Frequently Asked Questions page for more information.
Navigation
Compasses have been used for several thousand years to determine direction. They point in the direction of magnetic force at the user's location, and the direction it points is, more often than not, in a different direction than geographic north (toward the North Pole). A more precise direction is achieved by knowing the angle between them (magnetic declination). However, declination changes with location and time, and a geomagnetic model is often used to correct for it. Since the changes in geomagnetic fields are difficult to predict, timely model updates (every five years for the WMM) are required for navigational accuracy. The WMM satisfies all these criteria and is therefore widely used in navigation. Examples include, but are not limited to, ships, aircraft, and submarines. Aircraft and satellites commonly use magnetometer based attitude (roll and pitch) control.
GPS
Why do we need magnetic navigation when the Global Position System (GPS) is readily available? GPS provides precise point location but only measures travel direction when in constant motion. A GPS receiver must collect several sets of latitude and longitude pairs to obtain direction. In addition, GPS signals may become blocked due to obstructions, adverse terrestrial and space weather, ionospheric conditions, or being underwater or underground. Hence, compasses complement GPS receivers to attain precise and immediate navigational headings for air, ground, and water-based systems. Electronic compasses and the WMM commonly co-exist in GPS receivers.
Antennas and Solar Panels
Antennas (e.g. satellite dish television) and solar panels often need to be precisely oriented for maximum performance. The WMM's declination information for specific locations is often employed by companies to orient their products correctly.
Consumer Electronics
While the WMM is traditionally used for navigation, it is now acquiring new utilities in consumer electronic devices with built-in digital compasses. Many of the new generations of smartphones and digital cameras take advantage of the WMM to estimate bearing. The availability of low-cost, small, and energy efficient electronic compasses allow for magnetic direction in portable electronics to be commonplace. NOAA is providing support to application development engineers to port WMM to their devices. For example, WMM comes pre-installed in Android and iOS devices, thereby bringing its use to more than a billion devices around the world. NOAA/NCEI has developed an application called CrowdMag that allows users to collect their own magnetic field data using the magnetometers in their phone. This app sends data anonymously back to NOAA so it can be used to help validate and expand future magnetic models.
Mineral Exploration
Oil and mineral exploration companies use airborne and marine magnetic fields to detect magnetic signals from Earth's crust. These small amplitude signals (typically 100s of nT), must be separated from the large main magnetic field (typically 20,000 to 60,000 nT). Companies use geomagnetic models to extract these small magnetic signals from the survey records. A new application uses geomagnetic models for directional drilling. Oil wells are often drilled horizontally from a conveniently located platform. An electronic compass located behind the drill head (bit) provides the engineers with accurate orientation of the bit.
12/16/2021: State of the Geomagnetic Field Report Released
The December 2021 State of the Geomagnetic Field report is now available. This report provides an assessment of the performance of the WMM2020 two years after its release, and describes noteworthy changes in the Earth's main magnetic field, including magnetic pole drifts and the deepening of the South Atlantic Anomaly.
12/10/2019: WMM2020 Release
The full release of the WMM (WMM2020) is now available. All WMM products and services have been updated.
8/1/2019: World Magnetic Model 2020 Release Date Announced
As part of the regular update cycle of the World Magnetic Model, NCEI, in collaboration with the British Geological Survey will release the WMM2020 on December 10, 2019.
3/20/2019: MagQuest Challenge Launched
The National Geospatial-Intelligence Agency (NGA) launched a $1.2M challenge to advance geomagnetic data collection for the World Magnetic Model. More information can be found on the MagQuest Website.
2/28/2019: New WMM Mil-Spec Released
The National Geospatial-Intelligence Agency (NGA) has released a new military specification document, MIL-PRF-89500B, for the World Magnetic Model. This document updates the error requirements for WMM and is now available.
Please contact [email protected] for comments or questions.
Previous technical reports are available as downloadable PDFs:
WMM Coefficient File Format for Developers
The World Magnetic Model coefficient file is named “WMM.COF”. Numerical values of the Gauss coefficients (g_nm, h_nm, g_dot_nm, h_dot_nm) at the base epoch; their corresponding predictive annual changes for the next five years; and their associated degrees and orders are provided in this file. For more details about the WMM Gauss coefficients, see section 1.2 of the WMM Technical report.
WMM coefficients are written to this file in a specific format. If implemented correctly, then the WMM.COF file format is designed to update to a new WMM by replacing the old “WMM.COF” file with the new “WMM.COF” file, without needing to make any changes to the software. The “WMM.COF” file is an ASCII file with one header line, 90 lines of coefficients data and two terminating lines. Each line has 48 characters, ending with a carriage return and a linefeed (\n\r).
Line 1: "Header" |
||
---|---|---|
2025.0 |
WMM-2025 |
11/13/2024 |
^ |
^ |
^ |
Model Epoch |
Model-name |
Date of release |
WMM is valid for five years from the "Model Epoch" parameter given in decimal years. The "Date of release" of the model has no significance in magnetic field calculation and is U.S. style, MM/DD/YYYY.
Line 2-92: "Model coefficients" |
|||||
---|---|---|---|---|---|
1 |
0 |
-29351.8 |
0.0 |
12 | 0.0 |
^ |
^ |
^ |
^ |
^ |
^ |
n |
m |
g_nm |
h_nm |
g_dot_nm |
h_dot_nm |
Lines 92 and 93: File terminators
999999999999999999999999999999999999999999999999
999999999999999999999999999999999999999999999999
A software implementation for reading WMM.COF should stop when reaching the terminator line.
WMM.COF file format is permanent and we do not anticipate making changes to it in the foreseeable future.
Example Code
FORTRAN
123456789012345678901234567890123456789012345678 (line length 48)
2025.0 WMM-2025 11/13/2024
OPEN(UNIT=9, FILE='WMM.COF')
READ (9, 1) EPOCH,MODEL,RELEASEDATE
1 FORMAT(F10.1,A20,A18)
123123123456789012345678901234567890112345678901 (line length 48)
1 0 -29404.5 0.0 6.7 0.0
READ(9,4) N,M,GNM,HNM,DGNM,DHNM
4 FORMAT(I3,I3,F10.1,F10.1,F11.1,F11.1)
C
123456789012345678901234567890123456789012345678 (line length 48)
2025.0 WMM-2025 12/17/2024
fscanf(fp, "%4.1f %20s %02d/%02d/%04d", &epoch, model_name, &month, &day, &year);
123123123456789012345678901234567890112345678901 (line length 48)
1 0 -29404.5 0.0 6.7 0.0
fscanf(fp,"%3d%3d%10.1f%10.1f%11.1f%11.1f", &n, &m, &g_nm, &h_nm, &g_dot_nm, &h_dot_nm);