Title: | World Magnetic Model |
---|---|
Description: | Calculate magnetic field at a given location and time according to the World Magnetic Model (WMM). Both the main field and secular variation components are returned. This functionality is useful for physicists and geophysicists who need orthogonal components from WMM. Currently, this package supports annualized time inputs between 2000 and 2025. If desired, users can specify which WMM version to use, e.g., the original WMM2015 release or the recent out-of-cycle WMM2015 release. Methods used to implement WMM, including the Gauss coefficients for each release, are described in the following publications: Chulliat et al (2020) <doi:10.25923/ytk1-yx35>, Chulliat et al (2019) <doi:10.25921/xhr3-0t19>, Chulliat et al (2015) <doi:10.7289/V5TB14V7>, Maus et al (2010) <https://www.ngdc.noaa.gov/geomag/WMM/data/WMMReports/WMM2010_Report.pdf>, McLean et al (2004) <https://www.ngdc.noaa.gov/geomag/WMM/data/WMMReports/TRWMM_2005.pdf>, and Macmillian et al (2000) <https://www.ngdc.noaa.gov/geomag/WMM/data/WMMReports/wmm2000.pdf>. |
Authors: | Will Frierson [aut, cre] |
Maintainer: | Will Frierson <[email protected]> |
License: | MIT + file LICENSE |
Version: | 1.1.2 |
Built: | 2024-12-01 06:26:38 UTC |
Source: | https://github.com/wfrierson/wmm |
Function that takes in geodetic GPS location and annualized time, and returns the expected magnetic field from WMM.
GetMagneticFieldWMM(lon, lat, height, time, wmmVersion = "derived") wmm(lon, lat, height, time, wmmVersion = "derived")
GetMagneticFieldWMM(lon, lat, height, time, wmmVersion = "derived") wmm(lon, lat, height, time, wmmVersion = "derived")
lon |
GPS longitude |
lat |
GPS latitude, geodetic |
height |
GPS height in meters above ellipsoid |
time |
Annualized date time. E.g., 2015-02-01 = (2015 + 32/365) = 2015.088; optionally an object (length 1) of class 'POSIXt' or 'Date' |
wmmVersion |
String representing WMM version to use. Must be consistent with |
list
of calculated main field and secular variation vector components in nT and nT/yr, resp. The magnetic element intensities (i.e., horizontal and total intensities, h & f) are in nT and the magnetic element angles (i.e., inclination and declination, i & d) are in degrees, with their secular variation in nT/yr and deg/yr, resp.: x
, y
, z
, xDot
, yDot
, zDot
, h
, f
, i
, d
, hDot
, fDot
, iDot
, dDot
GetMagneticFieldWMM( lon = 240, lat = -80, height = 1e5, time = 2022.5, wmmVersion = 'WMM2020' ) ## Expected output # x = 5814.9658886215 nT # y = 14802.9663839328 nT # z = -49755.3119939183 nT # xDot = 28.0381961827 nT/yr # yDot = 1.3970624624 nT/yr # zDot = 85.6309533031 nT/yr # h = 15904.1391483373 nT # f = 52235.3588449608 nT # i = -72.27367 deg # d = 68.55389 deg # hDot = 11.5518244235 nT/yr # fDot = -78.0481471753 nT/yr # iDot = 0.04066726 deg/yr # dDot = -0.09217566 deg/yr ## Calculated output #$x #[1] 5814.966 #$y #[1] 14802.97 #$z #[1] -49755.31 #$xDot #[1] 28.0382 #$yDot #[1] 1.397062 #$zDot #[1] 85.63095 #$h #[1] 15904.14 #$f #[1] 52235.36 #$i #[1] -72.27367 #$d #[1] 68.55389 #$hDot #[1] 11.55182 #$fDot #[1] -78.04815 #$iDot #[1] 0.04066726 #$dDot #[1] -0.09217566
GetMagneticFieldWMM( lon = 240, lat = -80, height = 1e5, time = 2022.5, wmmVersion = 'WMM2020' ) ## Expected output # x = 5814.9658886215 nT # y = 14802.9663839328 nT # z = -49755.3119939183 nT # xDot = 28.0381961827 nT/yr # yDot = 1.3970624624 nT/yr # zDot = 85.6309533031 nT/yr # h = 15904.1391483373 nT # f = 52235.3588449608 nT # i = -72.27367 deg # d = 68.55389 deg # hDot = 11.5518244235 nT/yr # fDot = -78.0481471753 nT/yr # iDot = 0.04066726 deg/yr # dDot = -0.09217566 deg/yr ## Calculated output #$x #[1] 5814.966 #$y #[1] 14802.97 #$z #[1] -49755.31 #$xDot #[1] 28.0382 #$yDot #[1] 1.397062 #$zDot #[1] 85.63095 #$h #[1] 15904.14 #$f #[1] 52235.36 #$i #[1] -72.27367 #$d #[1] 68.55389 #$hDot #[1] 11.55182 #$fDot #[1] -78.04815 #$iDot #[1] 0.04066726 #$dDot #[1] -0.09217566