From 47f832a58f10671446e8c215b0e304494eed83c3 Mon Sep 17 00:00:00 2001 From: Martin Paces Date: Mon, 26 Jan 2026 18:52:23 +0100 Subject: [PATCH] Updating to IGRF-14 for calculation of dipole coordinates. (mlt_utils) --- CHANGELOG.rst | 1 + pyamps/__init__.py | 2 +- pyamps/mlt_utils.py | 23 ++++++++++++++--------- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 412c9d9..2682aa2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -7,3 +7,4 @@ Version 1.4.1: Now using IGRF-13 when calculating dipole position (used in mlt_u Version 1.5: Updated model vector + removed LaTeX dependencies + a couple of minor fixes Version 1.6: Updated model vector + removed deprecated Multi-dimensional indexing Version 1.7: Added get_J_horiz function to calculate horizontal currents efficiently with dask +Version 1.7.1: Now using IGRF-14 when calculating dipole position (used in mlt_utils) diff --git a/pyamps/__init__.py b/pyamps/__init__.py index d1a8223..0ec7d53 100644 --- a/pyamps/__init__.py +++ b/pyamps/__init__.py @@ -9,4 +9,4 @@ __all__ = ["AMPS","get_B_ground","get_B_space","get_J_horiz","mlon_to_mlt"] -__version__ = "1.7.0" +__version__ = "1.7.1rc1" diff --git a/pyamps/mlt_utils.py b/pyamps/mlt_utils.py index 360c074..8e6949b 100644 --- a/pyamps/mlt_utils.py +++ b/pyamps/mlt_utils.py @@ -37,15 +37,20 @@ r2d = 180/np.pi # first make arrays of IGRF dipole coefficients. This is used to make rotation matrix from geo to cd coords -# these values are from https://www.ngdc.noaa.gov/IAGA/vmod/igrf12coeffs.txt -time =[1900.0, 1905.0, 1910.0, 1915.0, 1920.0, 1925.0, 1930.0, 1935.0, 1940.0, 1945.0, 1950.0, 1955.0, 1960.0, 1965.0, 1970.0, 1975.0, 1980.0, 1985.0, 1990.0, 1995.0, 2000.0, 2005.0, 2010.0, 2015.0, 2020.0, 2025.0] -g10 = [-31543, -31464, -31354, -31212, -31060, -30926, -30805, -30715, -30654, -30594, -30554, -30500, -30421, -30334, -30220, -30100, -29992, -29873, -29775, -29692, -29619.4, -29554.63, -29496.57, -29441.46, -29404.8] -g11 = [ -2298, -2298, -2297, -2306, -2317, -2318, -2316, -2306, -2292, -2285, -2250, -2215, -2169, -2119, -2068, -2013, -1956, -1905, -1848, -1784, -1728.2, -1669.05, -1586.42, -1501.77, -1450.9] -h11 = [ 5922, 5909, 5898, 5875, 5845, 5817, 5808, 5812, 5821, 5810, 5815, 5820, 5791, 5776, 5737, 5675, 5604, 5500, 5406, 5306, 5186.1, 5077.99, 4944.26, 4795.99, 4652.5] -g10sv = 5.7 # secular variations -g11sv = 7.4 -h11sv = -25.9 -g10.append(g10[-1] + g10sv * 5) # append 2025 values using secular variation +# these values are from https://www.ngdc.noaa.gov/IAGA/vmod/coeffs/igrf14coeffs.txt +time =[1900.0, 1905.0, 1910.0, 1915.0, 1920.0, 1925.0, 1930.0, 1935.0, 1940.0, 1945.0, 1950.0, 1955.0, 1960.0, 1965.0, 1970.0, 1975.0, 1980.0, 1985.0, 1990.0, 1995.0, 2000.0, 2005.0, 2010.0, 2015.0, 2020.0, 2025.0] +g10 = [-31543, -31464, -31354, -31212, -31060, -30926, -30805, -30715, -30654, -30594, -30554, -30500, -30421, -30334, -30220, -30100, -29992, -29873, -29775, -29692, -29619.4, -29554.63, -29496.57, -29441.46, -29403.41, -29350.0] +g11 = [ -2298, -2298, -2297, -2306, -2317, -2318, -2316, -2306, -2292, -2285, -2250, -2215, -2169, -2119, -2068, -2013, -1956, -1905, -1848, -1784, -1728.2, -1669.05, -1586.42, -1501.77, -1451.37, -1410.3] +h11 = [ 5922, 5909, 5898, 5875, 5845, 5817, 5808, 5812, 5821, 5810, 5815, 5820, 5791, 5776, 5737, 5675, 5604, 5500, 5406, 5306, 5186.1, 5077.99, 4944.26, 4795.99, 4653.35, 4545.5] + +# secular variations for period 2025-2030 +g10sv = 12.6 +g11sv = 10.0 +h11sv = -21.5 + +# append 2030 values using secular variation +time.append(time[-1] + 5) +g10.append(g10[-1] + g10sv * 5) g11.append(g11[-1] + g11sv * 5) h11.append(h11[-1] + h11sv * 5) igrf_dipole = pd.DataFrame({'g10':g10, 'g11':g11, 'h11':h11}, index = time)