├── MANIFEST.in ├── pyIGRF.egg-info ├── requires.txt ├── dependency_links.txt ├── top_level.txt ├── SOURCES.txt └── PKG-INFO ├── dist ├── pyigrf-1.0.0.tar.gz └── pyigrf-1.0.0-py3-none-any.whl ├── pyIGRF ├── __pycache__ │ ├── value.cpython-38.pyc │ ├── value.cpython-312.pyc │ ├── __init__.cpython-312.pyc │ ├── __init__.cpython-38.pyc │ ├── calculate.cpython-312.pyc │ ├── calculate.cpython-38.pyc │ ├── loadCoeffs.cpython-38.pyc │ └── loadCoeffs.cpython-312.pyc ├── __init__.py ├── value.py ├── loadCoeffs.py ├── calculate.py └── src │ ├── igrf13coeffs.txt │ └── igrf14coeffs.txt ├── test ├── magnetic.py └── igrf12syn_old.py ├── setup.py ├── LICENSE └── README.md /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.md -------------------------------------------------------------------------------- /pyIGRF.egg-info/requires.txt: -------------------------------------------------------------------------------- 1 | NumPy 2 | -------------------------------------------------------------------------------- /pyIGRF.egg-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /pyIGRF.egg-info/top_level.txt: -------------------------------------------------------------------------------- 1 | pyIGRF 2 | -------------------------------------------------------------------------------- /dist/pyigrf-1.0.0.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzyztyy/pyIGRF/HEAD/dist/pyigrf-1.0.0.tar.gz -------------------------------------------------------------------------------- /dist/pyigrf-1.0.0-py3-none-any.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzyztyy/pyIGRF/HEAD/dist/pyigrf-1.0.0-py3-none-any.whl -------------------------------------------------------------------------------- /pyIGRF/__pycache__/value.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzyztyy/pyIGRF/HEAD/pyIGRF/__pycache__/value.cpython-38.pyc -------------------------------------------------------------------------------- /pyIGRF/__pycache__/value.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzyztyy/pyIGRF/HEAD/pyIGRF/__pycache__/value.cpython-312.pyc -------------------------------------------------------------------------------- /pyIGRF/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzyztyy/pyIGRF/HEAD/pyIGRF/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /pyIGRF/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzyztyy/pyIGRF/HEAD/pyIGRF/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /pyIGRF/__pycache__/calculate.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzyztyy/pyIGRF/HEAD/pyIGRF/__pycache__/calculate.cpython-312.pyc -------------------------------------------------------------------------------- /pyIGRF/__pycache__/calculate.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzyztyy/pyIGRF/HEAD/pyIGRF/__pycache__/calculate.cpython-38.pyc -------------------------------------------------------------------------------- /pyIGRF/__pycache__/loadCoeffs.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzyztyy/pyIGRF/HEAD/pyIGRF/__pycache__/loadCoeffs.cpython-38.pyc -------------------------------------------------------------------------------- /pyIGRF/__pycache__/loadCoeffs.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzyztyy/pyIGRF/HEAD/pyIGRF/__pycache__/loadCoeffs.cpython-312.pyc -------------------------------------------------------------------------------- /pyIGRF.egg-info/SOURCES.txt: -------------------------------------------------------------------------------- 1 | LICENSE 2 | MANIFEST.in 3 | README.md 4 | setup.py 5 | pyIGRF/__init__.py 6 | pyIGRF/calculate.py 7 | pyIGRF/loadCoeffs.py 8 | pyIGRF/value.py 9 | pyIGRF.egg-info/PKG-INFO 10 | pyIGRF.egg-info/SOURCES.txt 11 | pyIGRF.egg-info/dependency_links.txt 12 | pyIGRF.egg-info/requires.txt 13 | pyIGRF.egg-info/top_level.txt -------------------------------------------------------------------------------- /pyIGRF/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # -*- coding: utf-8 -*- 3 | 4 | __author__ = 'zzyztyy' 5 | 6 | """ 7 | This is a package of IGRF-14 (International Geomagnetic Reference Field) about python version. 8 | It don't need any Fortran compiler. 9 | """ 10 | 11 | from pyIGRF.value import igrf_variation, igrf_value 12 | from pyIGRF import loadCoeffs, calculate 13 | -------------------------------------------------------------------------------- /test/magnetic.py: -------------------------------------------------------------------------------- 1 | import pyIGRF 2 | 3 | if __name__ == '__main__': 4 | lat = 40 5 | lon = 116 6 | alt = 300 7 | date = 2026 8 | print(pyIGRF.igrf_value.__doc__) 9 | print(pyIGRF.igrf_variation.__doc__) 10 | print(pyIGRF.igrf_value(lat, lon, alt, date)) 11 | print(pyIGRF.igrf_variation(lat, lon, alt, date)) 12 | g, h = pyIGRF.loadCoeffs.get_coeffs(date) 13 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # -*- coding: utf-8 -*- 3 | 4 | from __future__ import print_function 5 | from setuptools import setup, find_packages 6 | 7 | 8 | setup( 9 | name="pyIGRF", 10 | version="1.0.0", 11 | author="zzyztyy", 12 | author_email="2375672032@qq.com", 13 | description="IGRF-14 Model by Python", 14 | long_description=open("README.md").read(), 15 | license="MIT", 16 | url="https://github.com/zzyztyy/pyIGRF", 17 | packages=find_packages(), 18 | install_requires=[ 19 | "NumPy" 20 | ], 21 | package_data={'': ['src/igrf13coeffs.txt']} 22 | ) 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 zzyztyy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pyIGRF 2 | ## What is pyIGRF? 3 | This is a package of IGRF-14 (International Geomagnetic Reference Field) about python version. 4 | We can calculate magnetic field intensity and transform coordinate between GeoGraphical and GeoMagnetic. 5 | It don't need any Fortran compiler or NumPy package. 6 | 7 | ## How to Install? 8 | Download this package and run install. 9 | >```python setup.py install``` 10 | 11 | ## How to Use it? 12 | First import this package. 13 | > ```import pyIGRF``` 14 | 15 | You can calculate magnetic field intensity. 16 | >```pyIGRF.igrf_value(lat, lon, alt, date)``` 17 | 18 | or calculate the annual variation of magnetic filed intensity. 19 | >```pyIGRF.igrf_variation(lat, lon, alt, date)``` 20 | 21 | the response is 7 float number about magnetic filed which is: 22 | - D: declination (+ve east) 23 | - I: inclination (+ve down) 24 | - H: horizontal intensity 25 | - X: north component 26 | - Y: east component 27 | - Z: vertical component (+ve down) 28 | - F: total intensity 29 | *unit: degree or nT* 30 | 31 | If you want to use IGRF-14 more flexibly, you can use module *calculate*. 32 | There is two function which is closer to Fortran. You can change it for different coordination. 33 | >```from pyIGRF import calculate``` 34 | 35 | Another module *load_coeffs* can be used to get *g[m][n]* or *h[m][n]* same as that in formula. 36 | >```from pyIGRF.load_coeffs import get_coeffs``` 37 | 38 | 39 | 40 | ## Model Introduction and igrf13-coeffs File Download 41 | https://www.ngdc.noaa.gov/IAGA/vmod/igrf.html 42 | -------------------------------------------------------------------------------- /pyIGRF/value.py: -------------------------------------------------------------------------------- 1 | import math 2 | 3 | import pyIGRF.calculate as calculate 4 | 5 | FACT = 180./math.pi 6 | 7 | 8 | def igrf_value(lat, lon, alt=0., year=2005.): 9 | """ 10 | :return 11 | D is declination (+ve east) 12 | I is inclination (+ve down) 13 | H is horizontal intensity 14 | X is north component 15 | Y is east component 16 | Z is vertical component (+ve down) 17 | F is total intensity 18 | """ 19 | x, y, z, f = calculate.igrf12syn(year, 1, alt, lat, lon) 20 | d = FACT * math.atan2(y, x) 21 | h = math.sqrt(x * x + y * y) 22 | i = FACT * math.atan2(z, h) 23 | return d, i, h, x, y, z, f 24 | 25 | 26 | def igrf_variation(lat, lon, alt=0., year=2005): 27 | """ 28 | Annual variation 29 | D is declination (+ve east) 30 | I is inclination (+ve down) 31 | H is horizontal intensity 32 | x is north component 33 | y is east component 34 | Z is vertical component (+ve down) 35 | F is total intensity 36 | """ 37 | x1, y1, z1, f1 = calculate.igrf12syn(year - 1, 1, alt, lat, lon) 38 | x2, y2, z2, f2 = calculate.igrf12syn(year + 1, 1, alt, lat, lon) 39 | x, y, z, f = (x1+x2)/2, (y1+y2)/2, (z1+z2)/2, (f1+f2)/2 40 | dx, dy, dz, df = (x2-x1)/2, (y2-y1)/2, (z2-z1)/2, (f2-f1)/2 41 | h = math.sqrt(x * x + y * y) 42 | 43 | dd = (FACT * (x * dy - y * dx)) / (h * h) 44 | dh = (x * dx + y * dy) / h 45 | ds = (FACT * (h * dz - z * dh)) / (f * f) 46 | df = (h * dh + z * dz) / f 47 | return dd, ds, dh, dx, dy, dz, df 48 | -------------------------------------------------------------------------------- /pyIGRF.egg-info/PKG-INFO: -------------------------------------------------------------------------------- 1 | Metadata-Version: 2.4 2 | Name: pyIGRF 3 | Version: 1.0.0 4 | Summary: IGRF-14 Model by Python 5 | Home-page: https://github.com/zzyztyy/pyIGRF 6 | Author: zzyztyy 7 | Author-email: 2375672032@qq.com 8 | License: MIT 9 | License-File: LICENSE 10 | Requires-Dist: NumPy 11 | Dynamic: author 12 | Dynamic: author-email 13 | Dynamic: description 14 | Dynamic: home-page 15 | Dynamic: license 16 | Dynamic: license-file 17 | Dynamic: requires-dist 18 | Dynamic: summary 19 | 20 | # pyIGRF 21 | ## What is pyIGRF? 22 | This is a package of IGRF-14 (International Geomagnetic Reference Field) about python version. 23 | We can calculate magnetic field intensity and transform coordinate between GeoGraphical and GeoMagnetic. 24 | It don't need any Fortran compiler or NumPy package. 25 | 26 | ## How to Install? 27 | Download this package and run install. 28 | >```python setup.py install``` 29 | 30 | ## How to Use it? 31 | First import this package. 32 | > ```import pyIGRF``` 33 | 34 | You can calculate magnetic field intensity. 35 | >```pyIGRF.igrf_value(lat, lon, alt, date)``` 36 | 37 | or calculate the annual variation of magnetic filed intensity. 38 | >```pyIGRF.igrf_variation(lat, lon, alt, date)``` 39 | 40 | the response is 7 float number about magnetic filed which is: 41 | - D: declination (+ve east) 42 | - I: inclination (+ve down) 43 | - H: horizontal intensity 44 | - X: north component 45 | - Y: east component 46 | - Z: vertical component (+ve down) 47 | - F: total intensity 48 | *unit: degree or nT* 49 | 50 | If you want to use IGRF-13 more flexibly, you can use module *calculate*. 51 | There is two function which is closer to Fortran. You can change it for different coordination. 52 | >```from pyIGRF import calculate``` 53 | 54 | Another module *load_coeffs* can be used to get *g[m][n]* or *h[m][n]* same as that in formula. 55 | >```from pyIGRF.load_coeffs import get_coeffs``` 56 | 57 | 58 | 59 | ## Model Introduction and igrf13-coeffs File Download 60 | https://www.ngdc.noaa.gov/IAGA/vmod/igrf.html 61 | -------------------------------------------------------------------------------- /pyIGRF/loadCoeffs.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import os 5 | 6 | 7 | def load_coeffs(filename): 8 | """ 9 | load igrf12 coeffs from file 10 | :param filename: file which save coeffs (str) 11 | :return: g and h list one by one (list(float)) 12 | """ 13 | gh = [] 14 | gh2arr = [] 15 | with open(filename) as f: 16 | text = f.readlines() 17 | for a in text: 18 | if a[:2] == 'g ' or a[:2] == 'h ': 19 | b = a.split()[3:] 20 | b = [float(x) for x in b] 21 | gh2arr.append(b) 22 | gh2arr = [list(row) for row in zip(*gh2arr)] 23 | N = len(gh2arr) 24 | for i in range(N): 25 | if i < 19: 26 | for j in range(120): 27 | gh.append(gh2arr[i][j]) 28 | else: 29 | for p in gh2arr[i]: 30 | gh.append(p) 31 | gh.append(0) 32 | return gh 33 | 34 | 35 | gh = load_coeffs(os.path.dirname(os.path.abspath(__file__)) + '/src/igrf14coeffs.txt') 36 | 37 | 38 | def get_coeffs(date): 39 | """ 40 | :param gh: list from load_coeffs 41 | :param date: float 42 | :return: list: g, list: h 43 | """ 44 | if date < 1900.0 or date > 2035.0: 45 | print('This subroutine will not work with a date of ' + str(date)) 46 | print('Date must be in the range 1900.0 <= date <= 2035.0') 47 | print('On return [], []') 48 | return [], [] 49 | elif date >= 2025.0: 50 | if date > 2030.0: 51 | # not adapt for the model but can calculate 52 | print('This version of the IGRF is intended for use up to 2025.0.') 53 | print('values for ' + str(date) + ' will be computed but may be of reduced accuracy') 54 | t = date - 2025.0 55 | tc = 1.0 56 | # pointer for last coefficient in pen-ultimate set of MF coefficients... 57 | ll = 3060+195+195 58 | nmx = 13 59 | nc = nmx * (nmx + 2) 60 | else: 61 | t = 0.2 * (date - 1900.0) 62 | ll = int(t) 63 | t = t - ll 64 | # SH models before 1995.0 are only to degree 10 65 | if date < 1995.0: 66 | nmx = 10 67 | nc = nmx * (nmx + 2) 68 | ll = nc * ll 69 | else: 70 | nmx = 13 71 | nc = nmx * (nmx + 2) 72 | ll = int(0.2 * (date - 1995.0)) 73 | # 19 is the number of SH models that extend to degree 10 74 | ll = 120 * 19 + nc * ll 75 | tc = 1.0 - t 76 | # print(tc, t) 77 | g, h = [], [] 78 | temp = ll-1 79 | for n in range(nmx+1): 80 | g.append([]) 81 | h.append([]) 82 | if n == 0: 83 | g[0].append(None) 84 | for m in range(n+1): 85 | if m != 0: 86 | g[n].append(tc*gh[temp] + t*gh[temp+nc]) 87 | h[n].append(tc*gh[temp+1] + t*gh[temp+nc+1]) 88 | temp += 2 89 | # print(n, m, g[n][m], h[n][m]) 90 | else: 91 | g[n].append(tc*gh[temp] + t*gh[temp+nc]) 92 | h[n].append(None) 93 | temp += 1 94 | # print(n, m, g[n][m], h[n][m]) 95 | return g, h 96 | -------------------------------------------------------------------------------- /pyIGRF/calculate.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import math 5 | from pyIGRF.loadCoeffs import get_coeffs 6 | 7 | 8 | FACT = 180./math.pi 9 | 10 | 11 | def geodetic2geocentric(theta, alt): 12 | """ 13 | Conversion from geodetic to geocentric coordinates by using the WGS84 spheroid. 14 | :param theta: colatitude (float, rad) 15 | :param alt: altitude (float, km) 16 | :return gccolat: geocentric colatitude (float, rad) 17 | d: gccolat minus theta (float, rad) 18 | r: geocentric radius (float, km) 19 | """ 20 | ct = math.cos(theta) 21 | st = math.sin(theta) 22 | a2 = 40680631.6 23 | b2 = 40408296.0 24 | one = a2 * st * st 25 | two = b2 * ct * ct 26 | three = one + two 27 | rho = math.sqrt(three) 28 | r = math.sqrt(alt * (alt + 2.0 * rho) + (a2 * one + b2 * two) / three) 29 | cd = (alt + rho) / r 30 | sd = (a2 - b2) / rho * ct * st / r 31 | one = ct 32 | ct = ct * cd - st * sd 33 | st = st * cd + one * sd 34 | gccolat = math.atan2(st, ct) 35 | d = math.atan2(sd, cd) 36 | return gccolat, d, r 37 | 38 | 39 | def igrf12syn(date, itype, alt, lat, elong): 40 | """ 41 | This is old description for 12th verison. 42 | The code has been UpDate to 14 version: 43 | 44 | This is a synthesis routine for the 12th generation IGRF as agreed 45 | in December 2014 by IAGA Working Group V-MOD. It is valid 1900.0 to 46 | 2020.0 inclusive. Values for dates from 1945.0 to 2010.0 inclusive are 47 | definitive, otherwise they are non-definitive. 48 | INPUT 49 | date = year A.D. Must be greater than or equal to 1900.0 and 50 | less than or equal to 2025.0. Warning message is given 51 | for dates greater than 2020.0. Must be double precision. 52 | itype = 1 if geodetic (spheroid) 53 | itype = 2 if geocentric (sphere) 54 | alt = height in km above sea level if itype = 1 55 | = distance from centre of Earth in km if itype = 2 (>3485 km) 56 | lat = latitude (-90~90) 57 | elong = east-longitude (0-360) 58 | alt, colat and elong must be double precision. 59 | OUTPUT 60 | x = north component (nT) if isv = 0, nT/year if isv = 1 61 | y = east component (nT) if isv = 0, nT/year if isv = 1 62 | z = vertical component (nT) if isv = 0, nT/year if isv = 1 63 | f = total intensity (nT) if isv = 0, rubbish if isv = 1 64 | 65 | To get the other geomagnetic elements (D, I, H and secular 66 | variations dD, dH, dI and dF) use routines ptoc and ptocsv. 67 | 68 | Adapted from 8th generation version to include new maximum degree for 69 | main-field models for 2000.0 and onwards and use WGS84 spheroid instead 70 | of International Astronomical Union 1966 spheroid as recommended by IAGA 71 | in July 2003. Reference radius remains as 6371.2 km - it is NOT the mean 72 | radius (= 6371.0 km) but 6371.2 km is what is used in determining the 73 | coefficients. Adaptation by Susan Macmillan, August 2003 (for 74 | 9th generation), December 2004, December 2009, December 2014. 75 | 76 | Coefficients at 1995.0 incorrectly rounded (rounded up instead of 77 | to even) included as these are the coefficients published in Excel 78 | spreadsheet July 2005. 79 | """ 80 | 81 | p, q, cl, sl = [0.] * 105, [0.] * 105, [0.] * 13, [0.] * 13 82 | x, y, z = 0., 0., 0. 83 | 84 | if date < 1900.0 or date > 2035.0: 85 | f = 1.0 86 | print('This subroutine will not work with a date of ' + str(date)) 87 | print('Date must be in the range 1900.0 <= date <= 2035.0') 88 | print('On return f = 1.0, x = y = z = 0') 89 | return x, y, z, f 90 | 91 | g, h = get_coeffs(date) 92 | nmx = len(g)-1 93 | kmx = (nmx + 1) * (nmx + 2) // 2 + 1 94 | 95 | colat = 90-lat 96 | r = alt 97 | 98 | one = colat / FACT 99 | ct = math.cos(one) 100 | st = math.sin(one) 101 | 102 | one = elong / FACT 103 | cl[0] = math.cos(one) 104 | sl[0] = math.sin(one) 105 | 106 | cd = 1.0 107 | sd = 0.0 108 | 109 | l = 1 110 | m = 1 111 | n = 0 112 | 113 | if itype != 2: 114 | gclat, gclon, r = geodetic2geocentric(math.atan2(st, ct), alt) 115 | ct, st = math.cos(gclat), math.sin(gclat) 116 | cd, sd = math.cos(gclon), math.sin(gclon) 117 | ratio = 6371.2 / r 118 | rr = ratio * ratio 119 | 120 | # computation of Schmidt quasi-normal coefficients p and x(=q) 121 | p[0] = 1.0 122 | p[2] = st 123 | q[0] = 0.0 124 | q[2] = ct 125 | 126 | fn, gn = n, n-1 127 | for k in range(2, kmx): 128 | if n < m: 129 | m = 0 130 | n = n + 1 131 | rr = rr * ratio 132 | fn = n 133 | gn = n - 1 134 | 135 | fm = m 136 | if m != n: 137 | gmm = m * m 138 | one = math.sqrt(fn * fn - gmm) 139 | two = math.sqrt(gn * gn - gmm) / one 140 | three = (fn + gn) / one 141 | i = k - n 142 | j = i - n + 1 143 | p[k - 1] = three * ct * p[i - 1] - two * p[j - 1] 144 | q[k - 1] = three * (ct * q[i - 1] - st * p[i - 1]) - two * q[j - 1] 145 | else: 146 | if k != 3: 147 | one = math.sqrt(1.0 - 0.5 / fm) 148 | j = k - n - 1 149 | p[k-1] = one * st * p[j-1] 150 | q[k-1] = one * (st * q[j-1] + ct * p[j-1]) 151 | cl[m-1] = cl[m - 2] * cl[0] - sl[m - 2] * sl[0] 152 | sl[m-1] = sl[m - 2] * cl[0] + cl[m - 2] * sl[0] 153 | # synthesis of x, y and z in geocentric coordinates 154 | one = g[n][m] * rr 155 | if m == 0: 156 | x = x + one * q[k - 1] 157 | z = z - (fn + 1.0) * one * p[k - 1] 158 | l = l + 1 159 | else: 160 | two = h[n][m] * rr 161 | three = one * cl[m-1] + two * sl[m-1] 162 | x = x + three * q[k-1] 163 | z = z - (fn + 1.0) * three * p[k-1] 164 | if st == 0.0: 165 | y = y + (one * sl[m - 1] - two * cl[m - 1]) * q[k - 1] * ct 166 | else: 167 | y = y + (one * sl[m-1] - two * cl[m-1]) * fm * p[k-1] / st 168 | l = l + 2 169 | m = m+1 170 | 171 | # conversion to coordinate system specified by itype 172 | one = x 173 | x = x * cd + z * sd 174 | z = z * cd - one * sd 175 | f = math.sqrt(x * x + y * y + z * z) 176 | return x, y, z, f 177 | -------------------------------------------------------------------------------- /test/igrf12syn_old.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | from goto import with_goto 4 | 5 | from pyIGRF.loadCoeffs import gh 6 | 7 | 8 | @with_goto 9 | def igrf12syn_old(isv, date, itype, alt, colat, elong): 10 | """ 11 | This is a synthesis routine for the 12th generation IGRF as agreed 12 | in December 2014 by IAGA Working Group V-MOD. It is valid 1900.0 to 13 | 2020.0 inclusive. Values for dates from 1945.0 to 2010.0 inclusive are 14 | definitive, otherwise they are non-definitive. 15 | INPUT 16 | isv = 0 if main-field values are required 17 | isv = 1 if secular variation values are required 18 | date = year A.D. Must be greater than or equal to 1900.0 and 19 | less than or equal to 2025.0. Warning message is given 20 | for dates greater than 2020.0. Must be double precision. 21 | itype = 1 if geodetic (spheroid) 22 | itype = 2 if geocentric (sphere) 23 | alt = height in km above sea level if itype = 1 24 | = distance from centre of Earth in km if itype = 2 (>3485 km) 25 | colat = colatitude (0-180) 26 | elong = east-longitude (0-360) 27 | alt, colat and elong must be double precision. 28 | OUTPUT 29 | x = north component (nT) if isv = 0, nT/year if isv = 1 30 | y = east component (nT) if isv = 0, nT/year if isv = 1 31 | z = vertical component (nT) if isv = 0, nT/year if isv = 1 32 | f = total intensity (nT) if isv = 0, rubbish if isv = 1 33 | To get the other geomagnetic elements (D, I, H and secular 34 | variations dD, dH, dI and dF) use routines ptoc and ptocsv. 35 | Adapted from 8th generation version to include new maximum degree for 36 | main-field models for 2000.0 and onwards and use WGS84 spheroid instead 37 | of International Astronomical Union 1966 spheroid as recommended by IAGA 38 | in July 2003. Reference radius remains as 6371.2 km - it is NOT the mean 39 | radius (= 6371.0 km) but 6371.2 km is what is used in determining the 40 | coefficients. Adaptation by Susan Macmillan, August 2003 (for 41 | 9th generation), December 2004, December 2009, December 2014. 42 | Coefficients at 1995.0 incorrectly rounded (rounded up instead of 43 | to even) included as these are the coefficients published in Excel 44 | spreadsheet July 2005. 45 | """ 46 | 47 | p, q, cl, sl = [0.] * 105, [0.] * 105, [0.] * 13, [0.] * 13 48 | 49 | # set initial values 50 | x, y, z = 0., 0., 0. 51 | 52 | if date < 1900.0 or date > 2025.0: 53 | f = 1.0 54 | print('This subroutine will not work with a date of ' + str(date)) 55 | print('Date must be in the range 1900.0 <= date <= 20205.0') 56 | print('On return f = 1.0, x = y = z = 0') 57 | return x, y, z, f 58 | if date > 2020.0: 59 | # not adapt for the model but can calculate 60 | print('This version of the IGRF is intended for use up to 2020.0.') 61 | print('values for ' + str(date) + ' will be computed but may be of reduced accuracy') 62 | if date >= 2015.0: 63 | goto .a1 64 | t = 0.2 * (date - 1900.0) 65 | ll = int(t) 66 | t = t - ll 67 | # 68 | # SH models before 1995.0 are only to degree 10 69 | # 70 | if date < 1995.0: 71 | nmx = 10 72 | nc = nmx * (nmx + 2) 73 | ll = nc * ll 74 | kmx = (nmx + 1) * (nmx + 2) / 2 75 | else: 76 | nmx = 13 77 | nc = nmx * (nmx + 2) 78 | ll = round(0.2 * (date - 1995.0)) 79 | # 80 | # 19 is the number of SH models that extend to degree 10 81 | # 82 | ll = 120 * 19 + nc * ll 83 | kmx = (nmx + 1) * (nmx + 2) / 2 84 | 85 | tc = 1.0 - t 86 | if (isv == 1): 87 | tc = -0.2 88 | t = 0.2 89 | 90 | goto .a2 91 | # 92 | label .a1 93 | t = date - 2015.0 94 | tc = 1.0 95 | if (isv == 1): 96 | t = 1.0 97 | tc = 0.0 98 | 99 | # 100 | # pointer for last coefficient in pen-ultimate set of MF coefficients... 101 | # 102 | ll = 3060 103 | nmx = 13 104 | nc = nmx * (nmx + 2) 105 | kmx = (nmx + 1) * (nmx + 2) / 2 106 | label .a2 107 | r = alt 108 | one = colat * 0.017453292 109 | ct = np.cos(one) 110 | st = np.sin(one) 111 | one = elong * 0.017453292 112 | cl[0] = np.cos(one) 113 | sl[0] = np.sin(one) 114 | cd = 1.0 115 | sd = 0.0 116 | l = 1 117 | m = 1 118 | n = 0 119 | if (itype == 2): 120 | goto .a3 121 | # 122 | # conversion from geodetic to geocentric coordinates 123 | # (using the WGS84 spheroid) 124 | # 125 | a2 = 40680631.6 126 | b2 = 40408296.0 127 | one = a2 * st * st 128 | two = b2 * ct * ct 129 | three = one + two 130 | rho = np.sqrt(three) 131 | r = np.sqrt(alt * (alt + 2.0 * rho) + (a2 * one + b2 * two) / three) 132 | cd = (alt + rho) / r 133 | sd = (a2 - b2) / rho * ct * st / r 134 | one = ct 135 | ct = ct * cd - st * sd 136 | st = st * cd + one * sd 137 | # 138 | label .a3 139 | ratio = 6371.2 / r 140 | rr = ratio * ratio 141 | # 142 | # computation of Schmidt quasi-normal coefficients p and x(=q) 143 | # 144 | p[0] = 1.0 145 | p[2] = st 146 | q[0] = 0.0 147 | q[2] = ct 148 | 149 | for k in range(2, int(kmx)+1): 150 | if (n >= m): 151 | goto .a4 152 | m = 0 153 | n = n + 1 154 | rr = rr * ratio 155 | fn = n 156 | gn = n - 1 157 | label .a4 158 | fm = m 159 | if (m != n): 160 | goto .a5 161 | if (k == 3): 162 | goto .a6 163 | one = np.sqrt(1.0 - 0.5 / fm) 164 | j = k - n - 1 165 | p[k-1] = one * st * p[j-1] 166 | q[k-1] = one * (st * q[j-1] + ct * p[j-1]) 167 | cl[m-1] = cl[m - 2] * cl[0] - sl[m - 2] * sl[0] 168 | sl[m-1] = sl[m - 2] * cl[0] + cl[m - 2] * sl[0] 169 | goto .a6 170 | label .a5 171 | gmm = m * m 172 | one = np.sqrt(fn * fn - gmm) 173 | two = np.sqrt(gn * gn - gmm) / one 174 | three = (fn + gn) / one 175 | i = k - n 176 | j = i - n + 1 177 | p[k-1] = three * ct * p[i-1] - two * p[j-1] 178 | q[k-1] = three * (ct * q[i-1] - st * p[i-1]) - two * q[j-1] 179 | # 180 | # synthesis of x, y and z in geocentric coordinates 181 | # 182 | label .a6 183 | lm = ll + l 184 | # print('g', n, m, k, gh[int(lm-1)], gh[int(lm + nc-1)]) 185 | one = (tc * gh[int(lm-1)] + t * gh[int(lm + nc-1)]) * rr 186 | if (m == 0): 187 | goto .a9 188 | # print('h', n, m, k, gh[int(lm)], gh[int(lm + nc)]) 189 | two = (tc * gh[int(lm)] + t * gh[int(lm + nc)]) * rr 190 | three = one * cl[m-1] + two * sl[m-1] 191 | x = x + three * q[k-1] 192 | z = z - (fn + 1.0) * three * p[k-1] 193 | if (st == 0.0): 194 | goto .a7 195 | y = y + (one * sl[m-1] - two * cl[m-1]) * fm * p[k-1] / st 196 | goto .a8 197 | label .a7 198 | y = y + (one * sl[m-1] - two * cl[m-1]) * q[k-1] * ct 199 | label .a8 200 | l = l + 2 201 | goto .a10 202 | label .a9 203 | x = x + one * q[k-1] 204 | z = z - (fn + 1.0) * one * p[k-1] 205 | l = l + 1 206 | label .a10 207 | m = m+1 208 | # 209 | # conversion to coordinate system specified by itype 210 | # 211 | one = x 212 | x = x * cd + z * sd 213 | z = z * cd - one * sd 214 | f = np.sqrt(x * x + y * y + z * z) 215 | # 216 | return x, y, z, f 217 | -------------------------------------------------------------------------------- /pyIGRF/src/igrf13coeffs.txt: -------------------------------------------------------------------------------- 1 | # 13th Generation International Geomagnetic Reference Field Schmidt semi-normalised spherical harmonic coefficients, degree n=1,13 2 | # in units nanoTesla for IGRF and definitive DGRF main-field models (degree n=1,8 nanoTesla/year for secular variation (SV)) 3 | c/s deg ord IGRF IGRF IGRF IGRF IGRF IGRF IGRF IGRF IGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF IGRF SV 4 | g/h n m 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 2020-25 5 | g 1 0 -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 5.7 6 | g 1 1 -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 7.4 7 | h 1 1 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 -25.9 8 | g 2 0 -677 -728 -769 -802 -839 -893 -951 -1018 -1106 -1244 -1341 -1440 -1555 -1662 -1781 -1902 -1997 -2072 -2131 -2200 -2267.7 -2337.24 -2396.06 -2445.88 -2499.6 -11.0 9 | g 2 1 2905 2928 2948 2956 2959 2969 2980 2984 2981 2990 2998 3003 3002 2997 3000 3010 3027 3044 3059 3070 3068.4 3047.69 3026.34 3012.20 2982.0 -7.0 10 | h 2 1 -1061 -1086 -1128 -1191 -1259 -1334 -1424 -1520 -1614 -1702 -1810 -1898 -1967 -2016 -2047 -2067 -2129 -2197 -2279 -2366 -2481.6 -2594.50 -2708.54 -2845.41 -2991.6 -30.2 11 | g 2 2 924 1041 1176 1309 1407 1471 1517 1550 1566 1578 1576 1581 1590 1594 1611 1632 1663 1687 1686 1681 1670.9 1657.76 1668.17 1676.35 1677.0 -2.1 12 | h 2 2 1121 1065 1000 917 823 728 644 586 528 477 381 291 206 114 25 -68 -200 -306 -373 -413 -458.0 -515.43 -575.73 -642.17 -734.6 -22.4 13 | g 3 0 1022 1037 1058 1084 1111 1140 1172 1206 1240 1282 1297 1302 1302 1297 1287 1276 1281 1296 1314 1335 1339.6 1336.30 1339.85 1350.33 1363.2 2.2 14 | g 3 1 -1469 -1494 -1524 -1559 -1600 -1645 -1692 -1740 -1790 -1834 -1889 -1944 -1992 -2038 -2091 -2144 -2180 -2208 -2239 -2267 -2288.0 -2305.83 -2326.54 -2352.26 -2381.2 -5.9 15 | h 3 1 -330 -357 -389 -421 -445 -462 -480 -494 -499 -499 -476 -462 -414 -404 -366 -333 -336 -310 -284 -262 -227.6 -198.86 -160.40 -115.29 -82.1 6.0 16 | g 3 2 1256 1239 1223 1212 1205 1202 1205 1215 1232 1255 1274 1288 1289 1292 1278 1260 1251 1247 1248 1249 1252.1 1246.39 1232.10 1225.85 1236.2 3.1 17 | h 3 2 3 34 62 84 103 119 133 146 163 186 206 216 224 240 251 262 271 284 293 302 293.4 269.72 251.75 245.04 241.9 -1.1 18 | g 3 3 572 635 705 778 839 881 907 918 916 913 896 882 878 856 838 830 833 829 802 759 714.5 672.51 633.73 581.69 525.7 -12.0 19 | h 3 3 523 480 425 360 293 229 166 101 43 -11 -46 -83 -130 -165 -196 -223 -252 -297 -352 -427 -491.1 -524.72 -537.03 -538.70 -543.4 0.5 20 | g 4 0 876 880 884 887 889 891 896 903 914 944 954 958 957 957 952 946 938 936 939 940 932.3 920.55 912.66 907.42 903.0 -1.2 21 | g 4 1 628 643 660 678 695 711 727 744 762 776 792 796 800 804 800 791 782 780 780 780 786.8 797.96 808.97 813.68 809.5 -1.6 22 | h 4 1 195 203 211 218 220 216 205 188 169 144 136 133 135 148 167 191 212 232 247 262 272.6 282.07 286.48 283.54 281.9 -0.1 23 | g 4 2 660 653 644 631 616 601 584 565 550 544 528 510 504 479 461 438 398 361 325 290 250.0 210.65 166.58 120.49 86.3 -5.9 24 | h 4 2 -69 -77 -90 -109 -134 -163 -195 -226 -252 -276 -278 -274 -278 -269 -266 -265 -257 -249 -240 -236 -231.9 -225.23 -211.03 -188.43 -158.4 6.5 25 | g 4 3 -361 -380 -400 -416 -424 -426 -422 -415 -405 -421 -408 -397 -394 -390 -395 -405 -419 -424 -423 -418 -403.0 -379.86 -356.83 -334.85 -309.4 5.2 26 | h 4 3 -210 -201 -189 -173 -153 -130 -109 -90 -72 -55 -37 -23 3 13 26 39 53 69 84 97 119.8 145.15 164.46 180.95 199.7 3.6 27 | g 4 4 134 146 160 178 199 217 234 249 265 304 303 290 269 252 234 216 199 170 141 122 111.3 100.00 89.40 70.38 48.0 -5.1 28 | h 4 4 -75 -65 -55 -51 -57 -70 -90 -114 -141 -178 -210 -230 -255 -269 -279 -288 -297 -297 -299 -306 -303.8 -305.36 -309.72 -329.23 -349.7 -5.0 29 | g 5 0 -184 -192 -201 -211 -221 -230 -237 -241 -241 -253 -240 -229 -222 -219 -216 -218 -218 -214 -214 -214 -218.8 -227.00 -230.87 -232.91 -234.3 -0.3 30 | g 5 1 328 328 327 327 326 326 327 329 334 346 349 360 362 358 359 356 357 355 353 352 351.4 354.41 357.29 360.14 363.2 0.5 31 | h 5 1 -210 -193 -172 -148 -122 -96 -72 -51 -33 -12 3 15 16 19 26 31 46 47 46 46 43.8 42.72 44.58 46.98 47.7 0.0 32 | g 5 2 264 259 253 245 236 226 218 211 208 194 211 230 242 254 262 264 261 253 245 235 222.3 208.95 200.26 192.35 187.8 -0.6 33 | h 5 2 53 56 57 58 58 58 60 64 71 95 103 110 125 128 139 148 150 150 154 165 171.9 180.25 189.01 196.98 208.3 2.5 34 | g 5 3 5 -1 -9 -16 -23 -28 -32 -33 -33 -20 -20 -23 -26 -31 -42 -59 -74 -93 -109 -118 -130.4 -136.54 -141.05 -140.94 -140.7 0.2 35 | h 5 3 -33 -32 -33 -34 -38 -44 -53 -64 -75 -67 -87 -98 -117 -126 -139 -152 -151 -154 -153 -143 -133.1 -123.45 -118.06 -119.14 -121.2 -0.6 36 | g 5 4 -86 -93 -102 -111 -119 -125 -131 -136 -141 -142 -147 -152 -156 -157 -160 -159 -162 -164 -165 -166 -168.6 -168.05 -163.17 -157.40 -151.2 1.3 37 | h 5 4 -124 -125 -126 -126 -125 -122 -118 -115 -113 -119 -122 -121 -114 -97 -91 -83 -78 -75 -69 -55 -39.3 -19.57 -0.01 15.98 32.3 3.0 38 | g 5 5 -16 -26 -38 -51 -62 -69 -74 -76 -76 -82 -76 -69 -63 -62 -56 -49 -48 -46 -36 -17 -12.9 -13.55 -8.03 4.30 13.5 0.9 39 | h 5 5 3 11 21 32 43 51 58 64 69 82 80 78 81 81 83 88 92 95 97 107 106.3 103.85 101.04 100.12 98.9 0.3 40 | g 6 0 63 62 62 61 61 61 60 59 57 59 54 47 46 45 43 45 48 53 61 68 72.3 73.60 72.78 69.55 66.0 -0.5 41 | g 6 1 61 60 58 57 55 54 53 53 54 57 57 57 58 61 64 66 66 65 65 67 68.2 69.56 68.69 67.57 65.5 -0.3 42 | h 6 1 -9 -7 -5 -2 0 3 4 4 4 6 -1 -9 -10 -11 -12 -13 -15 -16 -16 -17 -17.4 -20.33 -20.90 -20.61 -19.1 0.0 43 | g 6 2 -11 -11 -11 -10 -10 -9 -9 -8 -7 6 4 3 1 8 15 28 42 51 59 68 74.2 76.74 75.92 72.79 72.9 0.4 44 | h 6 2 83 86 89 93 96 99 102 104 105 100 99 96 99 100 100 99 93 88 82 72 63.7 54.75 44.18 33.30 25.1 -1.6 45 | g 6 3 -217 -221 -224 -228 -233 -238 -242 -246 -249 -246 -247 -247 -237 -228 -212 -198 -192 -185 -178 -170 -160.9 -151.34 -141.40 -129.85 -121.5 1.3 46 | h 6 3 2 4 5 8 11 14 19 25 33 16 33 48 60 68 72 75 71 69 69 67 65.1 63.63 61.54 58.74 52.8 -1.3 47 | g 6 4 -58 -57 -54 -51 -46 -40 -32 -25 -18 -25 -16 -8 -1 4 2 1 4 4 3 -1 -5.9 -14.58 -22.83 -28.93 -36.2 -1.4 48 | h 6 4 -35 -32 -29 -26 -22 -18 -16 -15 -15 -9 -12 -16 -20 -32 -37 -41 -43 -48 -52 -58 -61.2 -63.53 -66.26 -66.64 -64.5 0.8 49 | g 6 5 59 57 54 49 44 39 32 25 18 21 12 7 -2 1 3 6 14 16 18 19 16.9 14.58 13.10 13.14 13.5 0.0 50 | h 6 5 36 32 28 23 18 13 8 4 0 -16 -12 -12 -11 -8 -6 -4 -2 -1 1 1 0.7 0.24 3.02 7.35 8.9 0.0 51 | g 6 6 -90 -92 -95 -98 -101 -103 -104 -106 -107 -104 -105 -107 -113 -111 -112 -111 -108 -102 -96 -93 -90.4 -86.36 -78.09 -70.85 -64.7 0.9 52 | h 6 6 -69 -67 -65 -62 -57 -52 -46 -40 -33 -39 -30 -24 -17 -7 1 11 17 21 24 36 43.8 50.94 55.40 62.41 68.1 1.0 53 | g 7 0 70 70 71 72 73 73 74 74 74 70 65 65 67 75 72 71 72 74 77 77 79.0 79.88 80.44 81.29 80.6 -0.1 54 | g 7 1 -55 -54 -54 -54 -54 -54 -54 -53 -53 -40 -55 -56 -56 -57 -57 -56 -59 -62 -64 -72 -74.0 -74.46 -75.00 -75.99 -76.7 -0.2 55 | h 7 1 -45 -46 -47 -48 -49 -50 -51 -52 -52 -45 -35 -50 -55 -61 -70 -77 -82 -83 -80 -69 -64.6 -61.14 -57.80 -54.27 -51.5 0.6 56 | g 7 2 0 0 1 2 2 3 4 4 4 0 2 2 5 4 1 1 2 3 2 1 0.0 -1.65 -4.55 -6.79 -8.2 0.0 57 | h 7 2 -13 -14 -14 -14 -14 -14 -15 -17 -18 -18 -17 -24 -28 -27 -27 -26 -27 -27 -26 -25 -24.2 -22.57 -21.20 -19.53 -16.9 0.6 58 | g 7 3 34 33 32 31 29 27 25 23 20 0 1 10 15 13 14 16 21 24 26 28 33.3 38.73 45.24 51.82 56.5 0.7 59 | h 7 3 -10 -11 -12 -12 -13 -14 -14 -14 -14 2 0 -4 -6 -2 -4 -5 -5 -2 0 4 6.2 6.82 6.54 5.59 2.2 -0.8 60 | g 7 4 -41 -41 -40 -38 -37 -35 -34 -33 -31 -29 -40 -32 -32 -26 -22 -14 -12 -6 -1 5 9.1 12.30 14.00 15.07 15.8 0.1 61 | h 7 4 -1 0 1 2 4 5 6 7 7 6 10 8 7 6 8 10 16 20 21 24 24.0 25.35 24.96 24.45 23.5 -0.2 62 | g 7 5 -21 -20 -19 -18 -16 -14 -12 -11 -9 -10 -7 -11 -7 -6 -2 0 1 4 5 4 6.9 9.37 10.46 9.32 6.4 -0.5 63 | h 7 5 28 28 28 28 28 29 29 29 29 28 36 28 23 26 23 22 18 17 17 17 14.8 10.93 7.03 3.27 -2.2 -1.1 64 | g 7 6 18 18 18 19 19 19 18 18 17 15 5 9 17 13 13 12 11 10 9 8 7.3 5.42 1.64 -2.88 -7.2 -0.8 65 | h 7 6 -12 -12 -13 -15 -16 -17 -18 -19 -20 -17 -18 -20 -18 -23 -23 -23 -23 -23 -23 -24 -25.4 -26.32 -27.61 -27.50 -27.2 0.1 66 | g 7 7 6 6 6 6 6 6 6 6 5 29 19 18 8 1 -2 -5 -2 0 0 -2 -1.2 1.94 4.92 6.61 9.8 0.8 67 | h 7 7 -22 -22 -22 -22 -22 -21 -20 -19 -19 -22 -16 -18 -17 -12 -11 -12 -10 -7 -4 -6 -5.8 -4.64 -3.28 -2.32 -1.8 0.3 68 | g 8 0 11 11 11 11 11 11 11 11 11 13 22 11 15 13 14 14 18 21 23 25 24.4 24.80 24.41 23.98 23.7 0.0 69 | g 8 1 8 8 8 8 7 7 7 7 7 7 15 9 6 5 6 6 6 6 5 6 6.6 7.62 8.21 8.89 9.7 0.1 70 | h 8 1 8 8 8 8 8 8 8 8 8 12 5 10 11 7 7 6 7 8 10 11 11.9 11.20 10.84 10.04 8.4 -0.2 71 | g 8 2 -4 -4 -4 -4 -3 -3 -3 -3 -3 -8 -4 -6 -4 -4 -2 -1 0 0 -1 -6 -9.2 -11.73 -14.50 -16.78 -17.6 -0.1 72 | h 8 2 -14 -15 -15 -15 -15 -15 -15 -15 -14 -21 -22 -15 -14 -12 -15 -16 -18 -19 -19 -21 -21.5 -20.88 -20.03 -18.26 -15.3 0.6 73 | g 8 3 -9 -9 -9 -9 -9 -9 -9 -9 -10 -5 -1 -14 -11 -14 -13 -12 -11 -11 -10 -9 -7.9 -6.88 -5.59 -3.16 -0.5 0.4 74 | h 8 3 7 7 6 6 6 6 5 5 5 -12 0 5 7 9 6 4 4 5 6 8 8.5 9.83 11.83 13.18 12.8 -0.2 75 | g 8 4 1 1 1 2 2 2 2 1 1 9 11 6 2 0 -3 -8 -7 -9 -12 -14 -16.6 -18.11 -19.34 -20.56 -21.1 -0.1 76 | h 8 4 -13 -13 -13 -13 -14 -14 -14 -15 -15 -7 -21 -23 -18 -16 -17 -19 -22 -23 -22 -23 -21.5 -19.71 -17.41 -14.60 -11.7 0.5 77 | g 8 5 2 2 2 3 4 4 5 6 6 7 15 10 10 8 5 4 4 4 3 9 9.1 10.17 11.61 13.33 15.3 0.4 78 | h 8 5 5 5 5 5 5 5 5 5 5 2 -8 3 4 4 6 6 9 11 12 15 15.5 16.22 16.71 16.16 14.9 -0.3 79 | g 8 6 -9 -8 -8 -8 -7 -7 -6 -6 -5 -10 -13 -7 -5 -1 0 0 3 4 4 6 7.0 9.36 10.85 11.76 13.7 0.3 80 | h 8 6 16 16 16 16 17 17 18 18 19 18 17 23 23 24 21 18 16 14 12 11 8.9 7.61 6.96 5.69 3.6 -0.4 81 | g 8 7 5 5 5 6 6 7 8 8 9 7 5 6 10 11 11 10 6 4 2 -5 -7.9 -11.25 -14.05 -15.98 -16.5 -0.1 82 | h 8 7 -5 -5 -5 -5 -5 -5 -5 -5 -5 3 -4 -4 1 -3 -6 -10 -13 -15 -16 -16 -14.9 -12.76 -10.74 -9.10 -6.9 0.5 83 | g 8 8 8 8 8 8 8 8 8 7 7 2 -1 9 8 4 3 1 -1 -4 -6 -7 -7.0 -4.87 -3.54 -2.02 -0.3 0.4 84 | h 8 8 -18 -18 -18 -18 -19 -19 -19 -19 -19 -11 -17 -13 -20 -17 -16 -17 -15 -11 -10 -4 -2.1 -0.06 1.64 2.26 2.8 0.0 85 | g 9 0 8 8 8 8 8 8 8 8 8 5 3 4 4 8 8 7 5 5 4 4 5.0 5.58 5.50 5.33 5.0 0.0 86 | g 9 1 10 10 10 10 10 10 10 10 10 -21 -7 9 6 10 10 10 10 10 9 9 9.4 9.76 9.45 8.83 8.4 0.0 87 | h 9 1 -20 -20 -20 -20 -20 -20 -20 -20 -21 -27 -24 -11 -18 -22 -21 -21 -21 -21 -20 -20 -19.7 -20.11 -20.54 -21.77 -23.4 0.0 88 | g 9 2 1 1 1 1 1 1 1 1 1 1 -1 -4 0 2 2 2 1 1 1 3 3.0 3.58 3.45 3.02 2.9 0.0 89 | h 9 2 14 14 14 14 14 14 14 15 15 17 19 12 12 15 16 16 16 15 15 15 13.4 12.69 11.51 10.76 11.0 0.0 90 | g 9 3 -11 -11 -11 -11 -11 -11 -12 -12 -12 -11 -25 -5 -9 -13 -12 -12 -12 -12 -12 -10 -8.4 -6.94 -5.27 -3.22 -1.5 0.0 91 | h 9 3 5 5 5 5 5 5 5 5 5 29 12 7 2 7 6 7 9 9 11 12 12.5 12.67 12.75 11.74 9.8 0.0 92 | g 9 4 12 12 12 12 12 12 12 11 11 3 10 2 1 10 10 10 9 9 9 8 6.3 5.01 3.13 0.67 -1.1 0.0 93 | h 9 4 -3 -3 -3 -3 -3 -3 -3 -3 -3 -9 2 6 0 -4 -4 -4 -5 -6 -7 -6 -6.2 -6.72 -7.14 -6.74 -5.1 0.0 94 | g 9 5 1 1 1 1 1 1 1 1 1 16 5 4 4 -1 -1 -1 -3 -3 -4 -8 -8.9 -10.76 -12.38 -13.20 -13.2 0.0 95 | h 9 5 -2 -2 -2 -2 -2 -2 -2 -3 -3 4 2 -2 -3 -5 -5 -5 -6 -6 -7 -8 -8.4 -8.16 -7.42 -6.88 -6.3 0.0 96 | g 9 6 -2 -2 -2 -2 -2 -2 -2 -2 -2 -3 -5 1 -1 -1 0 -1 -1 -1 -2 -1 -1.5 -1.25 -0.76 -0.10 1.1 0.0 97 | h 9 6 8 8 8 8 9 9 9 9 9 9 8 10 9 10 10 10 9 9 9 8 8.4 8.10 7.97 7.79 7.8 0.0 98 | g 9 7 2 2 2 2 2 2 3 3 3 -4 -2 2 -2 5 3 4 7 7 7 10 9.3 8.76 8.43 8.68 8.8 0.0 99 | h 9 7 10 10 10 10 10 10 10 11 11 6 8 7 8 10 11 11 10 9 8 5 3.8 2.92 2.14 1.04 0.4 0.0 100 | g 9 8 -1 0 0 0 0 0 0 0 1 -3 3 2 3 1 1 1 2 1 1 -2 -4.3 -6.66 -8.42 -9.06 -9.3 0.0 101 | h 9 8 -2 -2 -2 -2 -2 -2 -2 -2 -2 1 -11 -6 0 -4 -2 -3 -6 -7 -7 -8 -8.2 -7.73 -6.08 -3.89 -1.4 0.0 102 | g 9 9 -1 -1 -1 -1 -1 -1 -2 -2 -2 -4 8 5 -1 -2 -1 -2 -5 -5 -6 -8 -8.2 -9.22 -10.08 -10.54 -11.9 0.0 103 | h 9 9 2 2 2 2 2 2 2 2 2 8 -7 5 5 1 1 1 2 2 2 3 4.8 6.01 7.01 8.44 9.6 0.0 104 | g 10 0 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -8 -3 1 -2 -3 -3 -4 -4 -3 -3 -2.6 -2.17 -1.94 -2.01 -1.9 0.0 105 | g 10 1 -4 -4 -4 -4 -4 -4 -4 -4 -4 11 4 -5 -3 -3 -3 -3 -4 -4 -4 -6 -6.0 -6.12 -6.24 -6.26 -6.2 0.0 106 | h 10 1 2 2 2 2 2 2 2 2 2 5 13 -4 4 2 1 1 1 1 2 1 1.7 2.19 2.73 3.28 3.4 0.0 107 | g 10 2 2 2 2 2 2 2 2 2 2 1 -1 -1 4 2 2 2 2 3 2 2 1.7 1.42 0.89 0.17 -0.1 0.0 108 | h 10 2 1 1 1 1 1 1 1 1 1 1 -2 0 1 1 1 1 0 0 1 0 0.0 0.10 -0.10 -0.40 -0.2 0.0 109 | g 10 3 -5 -5 -5 -5 -5 -5 -5 -5 -5 2 13 2 0 -5 -5 -5 -5 -5 -5 -4 -3.1 -2.35 -1.07 0.55 1.7 0.0 110 | h 10 3 2 2 2 2 2 2 2 2 2 -20 -10 -8 0 2 3 3 3 3 3 4 4.0 4.46 4.71 4.55 3.6 0.0 111 | g 10 4 -2 -2 -2 -2 -2 -2 -2 -2 -2 -5 -4 -3 -1 -2 -1 -2 -2 -2 -2 -1 -0.5 -0.15 -0.16 -0.55 -0.9 0.0 112 | h 10 4 6 6 6 6 6 6 6 6 6 -1 2 -2 2 6 4 4 6 6 6 5 4.9 4.76 4.44 4.40 4.8 0.0 113 | g 10 5 6 6 6 6 6 6 6 6 6 -1 4 7 4 4 6 5 5 5 4 4 3.7 3.06 2.45 1.70 0.7 0.0 114 | h 10 5 -4 -4 -4 -4 -4 -4 -4 -4 -4 -6 -3 -4 -5 -4 -4 -4 -4 -4 -4 -5 -5.9 -6.58 -7.22 -7.92 -8.6 0.0 115 | g 10 6 4 4 4 4 4 4 4 4 4 8 12 4 6 4 4 4 3 3 3 2 1.0 0.29 -0.33 -0.67 -0.9 0.0 116 | h 10 6 0 0 0 0 0 0 0 0 0 6 6 1 1 0 0 -1 0 0 0 -1 -1.2 -1.01 -0.96 -0.61 -0.1 0.0 117 | g 10 7 0 0 0 0 0 0 0 0 0 -1 3 -2 1 0 1 1 1 1 1 2 2.0 2.06 2.13 2.13 1.9 0.0 118 | h 10 7 -2 -2 -2 -2 -2 -2 -2 -1 -1 -4 -3 -3 -1 -2 -1 -1 -1 -1 -2 -2 -2.9 -3.47 -3.95 -4.16 -4.3 0.0 119 | g 10 8 2 2 2 1 1 1 1 2 2 -3 2 6 -1 2 0 0 2 2 3 5 4.2 3.77 3.09 2.33 1.4 0.0 120 | h 10 8 4 4 4 4 4 4 4 4 4 -2 6 7 6 3 3 3 4 4 3 1 0.2 -0.86 -1.99 -2.85 -3.4 0.0 121 | g 10 9 2 2 2 2 3 3 3 3 3 5 10 -2 2 2 3 3 3 3 3 1 0.3 -0.21 -1.03 -1.80 -2.4 0.0 122 | h 10 9 0 0 0 0 0 0 0 0 0 0 11 -1 0 0 1 1 0 0 -1 -2 -2.2 -2.31 -1.97 -1.12 -0.1 0.0 123 | g 10 10 0 0 0 0 0 0 0 0 0 -2 3 0 0 0 -1 -1 0 0 0 0 -1.1 -2.09 -2.80 -3.59 -3.8 0.0 124 | h 10 10 -6 -6 -6 -6 -6 -6 -6 -6 -6 -2 8 -3 -7 -6 -4 -5 -6 -6 -6 -7 -7.4 -7.93 -8.31 -8.72 -8.8 0.0 125 | g 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.7 2.95 3.05 3.00 3.0 0.0 126 | g 11 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.7 -1.60 -1.48 -1.40 -1.4 0.0 127 | h 11 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0.26 0.13 0.00 0.0 0.0 128 | g 11 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.9 -1.88 -2.03 -2.30 -2.5 0.0 129 | h 11 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.3 1.44 1.67 2.11 2.5 0.0 130 | g 11 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5 1.44 1.65 2.08 2.3 0.0 131 | h 11 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -0.77 -0.66 -0.60 -0.6 0.0 132 | g 11 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1 -0.31 -0.51 -0.79 -0.9 0.0 133 | h 11 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.6 -2.27 -1.76 -1.05 -0.4 0.0 134 | g 11 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0.29 0.54 0.58 0.3 0.0 135 | h 11 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9 0.90 0.85 0.76 0.6 0.0 136 | g 11 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.7 -0.79 -0.79 -0.70 -0.7 0.0 137 | h 11 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.7 -0.58 -0.39 -0.20 -0.2 0.0 138 | g 11 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0.53 0.37 0.14 -0.1 0.0 139 | h 11 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.8 -2.69 -2.51 -2.12 -1.7 0.0 140 | g 11 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.7 1.80 1.79 1.70 1.4 0.0 141 | h 11 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -1.08 -1.27 -1.44 -1.6 0.0 142 | g 11 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0.16 0.12 -0.22 -0.6 0.0 143 | h 11 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.2 -1.58 -2.11 -2.57 -3.0 0.0 144 | g 11 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.2 0.96 0.75 0.44 0.2 0.0 145 | h 11 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.9 -1.90 -1.94 -2.01 -2.0 0.0 146 | g 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.0 3.99 3.75 3.49 3.1 0.0 147 | h 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -1.39 -1.86 -2.34 -2.6 0.0 148 | g 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 -2.15 -2.12 -2.09 -2.0 0.0 149 | g 12 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.3 -0.29 -0.21 -0.16 -0.1 0.0 150 | h 12 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.55 -0.87 -1.08 -1.2 0.0 151 | g 12 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0.21 0.30 0.46 0.5 0.0 152 | h 12 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.23 0.27 0.37 0.5 0.0 153 | g 12 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9 0.89 1.04 1.23 1.3 0.0 154 | h 12 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.5 2.38 2.13 1.75 1.4 0.0 155 | g 12 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2 -0.38 -0.63 -0.89 -1.2 0.0 156 | h 12 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.6 -2.63 -2.49 -2.19 -1.8 0.0 157 | g 12 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9 0.96 0.95 0.85 0.7 0.0 158 | h 12 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0.61 0.49 0.27 0.1 0.0 159 | g 12 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.5 -0.30 -0.11 0.10 0.3 0.0 160 | h 12 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.40 0.59 0.72 0.8 0.0 161 | g 12 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.46 0.52 0.54 0.5 0.0 162 | h 12 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0.01 0.00 -0.09 -0.2 0.0 163 | g 12 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.3 -0.35 -0.39 -0.37 -0.3 0.0 164 | h 12 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0.02 0.13 0.29 0.6 0.0 165 | g 12 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.36 -0.37 -0.43 -0.5 0.0 166 | h 12 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.28 0.27 0.23 0.2 0.0 167 | g 12 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1 0.08 0.21 0.22 0.1 0.0 168 | h 12 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -0.87 -0.86 -0.89 -0.9 0.0 169 | g 12 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2 -0.49 -0.77 -0.94 -1.1 0.0 170 | h 12 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.34 -0.23 -0.16 0.0 0.0 171 | g 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.08 0.04 -0.03 -0.3 0.0 172 | h 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8 0.88 0.87 0.72 0.5 0.0 173 | g 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2 -0.16 -0.09 -0.02 0.1 0.0 174 | g 13 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -0.88 -0.89 -0.92 -0.9 0.0 175 | h 13 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -0.76 -0.87 -0.88 -0.9 0.0 176 | g 13 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.30 0.31 0.42 0.5 0.0 177 | h 13 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0.33 0.30 0.49 0.6 0.0 178 | g 13 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0.28 0.42 0.63 0.7 0.0 179 | h 13 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.8 1.72 1.66 1.56 1.4 0.0 180 | g 13 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.43 -0.45 -0.42 -0.3 0.0 181 | h 13 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.54 -0.59 -0.50 -0.4 0.0 182 | g 13 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.3 1.18 1.08 0.96 0.8 0.0 183 | h 13 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.0 -1.07 -1.14 -1.24 -1.3 0.0 184 | g 13 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.37 -0.31 -0.19 0.0 0.0 185 | h 13 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1 -0.04 -0.07 -0.10 -0.1 0.0 186 | g 13 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0.75 0.78 0.81 0.8 0.0 187 | h 13 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0.63 0.54 0.42 0.3 0.0 188 | g 13 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.26 -0.18 -0.13 0.0 0.0 189 | h 13 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.21 0.10 -0.04 -0.1 0.0 190 | g 13 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.35 0.38 0.38 0.4 0.0 191 | h 13 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6 0.53 0.49 0.48 0.5 0.0 192 | g 13 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1 -0.05 0.02 0.08 0.1 0.0 193 | h 13 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.38 0.44 0.48 0.5 0.0 194 | g 13 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4 0.41 0.42 0.46 0.5 0.0 195 | h 13 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2 -0.22 -0.25 -0.30 -0.4 0.0 196 | g 13 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 -0.10 -0.26 -0.35 -0.5 0.0 197 | h 13 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.5 -0.57 -0.53 -0.43 -0.4 0.0 198 | g 13 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 -0.18 -0.26 -0.36 -0.4 0.0 199 | h 13 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -0.82 -0.79 -0.71 -0.6 0.0 200 | -------------------------------------------------------------------------------- /pyIGRF/src/igrf14coeffs.txt: -------------------------------------------------------------------------------- 1 | # 14th Generation International Geomagnetic Reference Field Schmidt semi-normalised spherical harmonic coefficients, degree n=1,13 2 | # in units nanoTesla for IGRF and definitive DGRF main-field models (degree n=1,8 nanoTesla/year for secular variation (SV)) 3 | c/s deg ord IGRF IGRF IGRF IGRF IGRF IGRF IGRF IGRF IGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF DGRF IGRF SV 4 | g/h n m 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 2025-30 5 | g 1 0 -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 12.6 6 | g 1 1 -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 10.0 7 | h 1 1 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 -21.5 8 | g 2 0 -677 -728 -769 -802 -839 -893 -951 -1018 -1106 -1244 -1341 -1440 -1555 -1662 -1781 -1902 -1997 -2072 -2131 -2200 -2267.7 -2337.24 -2396.06 -2445.88 -2499.78 -2556.2 -11.2 9 | g 2 1 2905 2928 2948 2956 2959 2969 2980 2984 2981 2990 2998 3003 3002 2997 3000 3010 3027 3044 3059 3070 3068.4 3047.69 3026.34 3012.20 2981.96 2950.9 -5.3 10 | h 2 1 -1061 -1086 -1128 -1191 -1259 -1334 -1424 -1520 -1614 -1702 -1810 -1898 -1967 -2016 -2047 -2067 -2129 -2197 -2279 -2366 -2481.6 -2594.50 -2708.54 -2845.41 -2991.72 -3133.6 -27.3 11 | g 2 2 924 1041 1176 1309 1407 1471 1517 1550 1566 1578 1576 1581 1590 1594 1611 1632 1663 1687 1686 1681 1670.9 1657.76 1668.17 1676.35 1676.85 1648.7 -8.3 12 | h 2 2 1121 1065 1000 917 823 728 644 586 528 477 381 291 206 114 25 -68 -200 -306 -373 -413 -458.0 -515.43 -575.73 -642.17 -734.62 -814.2 -11.1 13 | g 3 0 1022 1037 1058 1084 1111 1140 1172 1206 1240 1282 1297 1302 1302 1297 1287 1276 1281 1296 1314 1335 1339.6 1336.30 1339.85 1350.33 1363.00 1360.9 -1.5 14 | g 3 1 -1469 -1494 -1524 -1559 -1600 -1645 -1692 -1740 -1790 -1834 -1889 -1944 -1992 -2038 -2091 -2144 -2180 -2208 -2239 -2267 -2288.0 -2305.83 -2326.54 -2352.26 -2380.80 -2404.2 -4.4 15 | h 3 1 -330 -357 -389 -421 -445 -462 -480 -494 -499 -499 -476 -462 -414 -404 -366 -333 -336 -310 -284 -262 -227.6 -198.86 -160.40 -115.29 -81.96 -56.9 3.8 16 | g 3 2 1256 1239 1223 1212 1205 1202 1205 1215 1232 1255 1274 1288 1289 1292 1278 1260 1251 1247 1248 1249 1252.1 1246.39 1232.10 1225.85 1236.06 1243.8 0.4 17 | h 3 2 3 34 62 84 103 119 133 146 163 186 206 216 224 240 251 262 271 284 293 302 293.4 269.72 251.75 245.04 241.80 237.6 -0.2 18 | g 3 3 572 635 705 778 839 881 907 918 916 913 896 882 878 856 838 830 833 829 802 759 714.5 672.51 633.73 581.69 525.60 453.4 -15.6 19 | h 3 3 523 480 425 360 293 229 166 101 43 -11 -46 -83 -130 -165 -196 -223 -252 -297 -352 -427 -491.1 -524.72 -537.03 -538.70 -542.52 -549.6 -3.9 20 | g 4 0 876 880 884 887 889 891 896 903 914 944 954 958 957 957 952 946 938 936 939 940 932.3 920.55 912.66 907.42 902.82 894.7 -1.7 21 | g 4 1 628 643 660 678 695 711 727 744 762 776 792 796 800 804 800 791 782 780 780 780 786.8 797.96 808.97 813.68 809.47 799.6 -2.3 22 | h 4 1 195 203 211 218 220 216 205 188 169 144 136 133 135 148 167 191 212 232 247 262 272.6 282.07 286.48 283.54 282.10 278.6 -1.3 23 | g 4 2 660 653 644 631 616 601 584 565 550 544 528 510 504 479 461 438 398 361 325 290 250.0 210.65 166.58 120.49 86.18 55.8 -5.8 24 | h 4 2 -69 -77 -90 -109 -134 -163 -195 -226 -252 -276 -278 -274 -278 -269 -266 -265 -257 -249 -240 -236 -231.9 -225.23 -211.03 -188.43 -158.50 -134.0 4.1 25 | g 4 3 -361 -380 -400 -416 -424 -426 -422 -415 -405 -421 -408 -397 -394 -390 -395 -405 -419 -424 -423 -418 -403.0 -379.86 -356.83 -334.85 -309.47 -281.1 5.4 26 | h 4 3 -210 -201 -189 -173 -153 -130 -109 -90 -72 -55 -37 -23 3 13 26 39 53 69 84 97 119.8 145.15 164.46 180.95 199.75 212.0 1.6 27 | g 4 4 134 146 160 178 199 217 234 249 265 304 303 290 269 252 234 216 199 170 141 122 111.3 100.00 89.40 70.38 47.44 12.0 -6.8 28 | h 4 4 -75 -65 -55 -51 -57 -70 -90 -114 -141 -178 -210 -230 -255 -269 -279 -288 -297 -297 -299 -306 -303.8 -305.36 -309.72 -329.23 -350.30 -375.4 -4.1 29 | g 5 0 -184 -192 -201 -211 -221 -230 -237 -241 -241 -253 -240 -229 -222 -219 -216 -218 -218 -214 -214 -214 -218.8 -227.00 -230.87 -232.91 -234.42 -232.9 0.6 30 | g 5 1 328 328 327 327 326 326 327 329 334 346 349 360 362 358 359 356 357 355 353 352 351.4 354.41 357.29 360.14 363.26 369.0 1.3 31 | h 5 1 -210 -193 -172 -148 -122 -96 -72 -51 -33 -12 3 15 16 19 26 31 46 47 46 46 43.8 42.72 44.58 46.98 47.52 45.3 -0.5 32 | g 5 2 264 259 253 245 236 226 218 211 208 194 211 230 242 254 262 264 261 253 245 235 222.3 208.95 200.26 192.35 187.86 187.2 0.0 33 | h 5 2 53 56 57 58 58 58 60 64 71 95 103 110 125 128 139 148 150 150 154 165 171.9 180.25 189.01 196.98 208.36 220.0 2.1 34 | g 5 3 5 -1 -9 -16 -23 -28 -32 -33 -33 -20 -20 -23 -26 -31 -42 -59 -74 -93 -109 -118 -130.4 -136.54 -141.05 -140.94 -140.73 -138.7 0.7 35 | h 5 3 -33 -32 -33 -34 -38 -44 -53 -64 -75 -67 -87 -98 -117 -126 -139 -152 -151 -154 -153 -143 -133.1 -123.45 -118.06 -119.14 -121.43 -122.9 0.5 36 | g 5 4 -86 -93 -102 -111 -119 -125 -131 -136 -141 -142 -147 -152 -156 -157 -160 -159 -162 -164 -165 -166 -168.6 -168.05 -163.17 -157.40 -151.16 -141.9 2.3 37 | h 5 4 -124 -125 -126 -126 -125 -122 -118 -115 -113 -119 -122 -121 -114 -97 -91 -83 -78 -75 -69 -55 -39.3 -19.57 -0.01 15.98 32.09 42.9 1.7 38 | g 5 5 -16 -26 -38 -51 -62 -69 -74 -76 -76 -82 -76 -69 -63 -62 -56 -49 -48 -46 -36 -17 -12.9 -13.55 -8.03 4.30 13.98 20.9 1.0 39 | h 5 5 3 11 21 32 43 51 58 64 69 82 80 78 81 81 83 88 92 95 97 107 106.3 103.85 101.04 100.12 99.14 106.2 1.9 40 | g 6 0 63 62 62 61 61 61 60 59 57 59 54 47 46 45 43 45 48 53 61 68 72.3 73.60 72.78 69.55 65.97 64.3 -0.2 41 | g 6 1 61 60 58 57 55 54 53 53 54 57 57 57 58 61 64 66 66 65 65 67 68.2 69.56 68.69 67.57 65.56 63.8 -0.3 42 | h 6 1 -9 -7 -5 -2 0 3 4 4 4 6 -1 -9 -10 -11 -12 -13 -15 -16 -16 -17 -17.4 -20.33 -20.90 -20.61 -19.22 -18.4 0.3 43 | g 6 2 -11 -11 -11 -10 -10 -9 -9 -8 -7 6 4 3 1 8 15 28 42 51 59 68 74.2 76.74 75.92 72.79 72.96 76.7 0.8 44 | h 6 2 83 86 89 93 96 99 102 104 105 100 99 96 99 100 100 99 93 88 82 72 63.7 54.75 44.18 33.30 25.02 16.8 -1.6 45 | g 6 3 -217 -221 -224 -228 -233 -238 -242 -246 -249 -246 -247 -247 -237 -228 -212 -198 -192 -185 -178 -170 -160.9 -151.34 -141.40 -129.85 -121.57 -115.7 1.2 46 | h 6 3 2 4 5 8 11 14 19 25 33 16 33 48 60 68 72 75 71 69 69 67 65.1 63.63 61.54 58.74 52.76 48.9 -0.4 47 | g 6 4 -58 -57 -54 -51 -46 -40 -32 -25 -18 -25 -16 -8 -1 4 2 1 4 4 3 -1 -5.9 -14.58 -22.83 -28.93 -36.06 -40.9 -0.8 48 | h 6 4 -35 -32 -29 -26 -22 -18 -16 -15 -15 -9 -12 -16 -20 -32 -37 -41 -43 -48 -52 -58 -61.2 -63.53 -66.26 -66.64 -64.40 -59.8 0.8 49 | g 6 5 59 57 54 49 44 39 32 25 18 21 12 7 -2 1 3 6 14 16 18 19 16.9 14.58 13.10 13.14 13.60 14.9 0.4 50 | h 6 5 36 32 28 23 18 13 8 4 0 -16 -12 -12 -11 -8 -6 -4 -2 -1 1 1 0.7 0.24 3.02 7.35 8.96 10.9 0.7 51 | g 6 6 -90 -92 -95 -98 -101 -103 -104 -106 -107 -104 -105 -107 -113 -111 -112 -111 -108 -102 -96 -93 -90.4 -86.36 -78.09 -70.85 -64.80 -60.8 0.9 52 | h 6 6 -69 -67 -65 -62 -57 -52 -46 -40 -33 -39 -30 -24 -17 -7 1 11 17 21 24 36 43.8 50.94 55.40 62.41 68.04 72.8 0.9 53 | g 7 0 70 70 71 72 73 73 74 74 74 70 65 65 67 75 72 71 72 74 77 77 79.0 79.88 80.44 81.29 80.54 79.6 -0.1 54 | g 7 1 -55 -54 -54 -54 -54 -54 -54 -53 -53 -40 -55 -56 -56 -57 -57 -56 -59 -62 -64 -72 -74.0 -74.46 -75.00 -75.99 -76.63 -76.9 -0.1 55 | h 7 1 -45 -46 -47 -48 -49 -50 -51 -52 -52 -45 -35 -50 -55 -61 -70 -77 -82 -83 -80 -69 -64.6 -61.14 -57.80 -54.27 -51.50 -48.9 0.6 56 | g 7 2 0 0 1 2 2 3 4 4 4 0 2 2 5 4 1 1 2 3 2 1 0.0 -1.65 -4.55 -6.79 -8.23 -8.8 -0.1 57 | h 7 2 -13 -14 -14 -14 -14 -14 -15 -17 -18 -18 -17 -24 -28 -27 -27 -26 -27 -27 -26 -25 -24.2 -22.57 -21.20 -19.53 -16.85 -14.4 0.5 58 | g 7 3 34 33 32 31 29 27 25 23 20 0 1 10 15 13 14 16 21 24 26 28 33.3 38.73 45.24 51.82 56.45 59.3 0.5 59 | h 7 3 -10 -11 -12 -12 -13 -14 -14 -14 -14 2 0 -4 -6 -2 -4 -5 -5 -2 0 4 6.2 6.82 6.54 5.59 2.36 -1.0 -0.7 60 | g 7 4 -41 -41 -40 -38 -37 -35 -34 -33 -31 -29 -40 -32 -32 -26 -22 -14 -12 -6 -1 5 9.1 12.30 14.00 15.07 15.80 15.8 -0.1 61 | h 7 4 -1 0 1 2 4 5 6 7 7 6 10 8 7 6 8 10 16 20 21 24 24.0 25.35 24.96 24.45 23.56 23.5 0.0 62 | g 7 5 -21 -20 -19 -18 -16 -14 -12 -11 -9 -10 -7 -11 -7 -6 -2 0 1 4 5 4 6.9 9.37 10.46 9.32 6.30 2.5 -0.8 63 | h 7 5 28 28 28 28 28 29 29 29 29 28 36 28 23 26 23 22 18 17 17 17 14.8 10.93 7.03 3.27 -2.19 -7.4 -0.9 64 | g 7 6 18 18 18 19 19 19 18 18 17 15 5 9 17 13 13 12 11 10 9 8 7.3 5.42 1.64 -2.88 -7.21 -11.2 -0.8 65 | h 7 6 -12 -12 -13 -15 -16 -17 -18 -19 -20 -17 -18 -20 -18 -23 -23 -23 -23 -23 -23 -24 -25.4 -26.32 -27.61 -27.50 -27.19 -25.1 0.5 66 | g 7 7 6 6 6 6 6 6 6 6 5 29 19 18 8 1 -2 -5 -2 0 0 -2 -1.2 1.94 4.92 6.61 9.77 14.3 0.9 67 | h 7 7 -22 -22 -22 -22 -22 -21 -20 -19 -19 -22 -16 -18 -17 -12 -11 -12 -10 -7 -4 -6 -5.8 -4.64 -3.28 -2.32 -1.90 -2.2 -0.3 68 | g 8 0 11 11 11 11 11 11 11 11 11 13 22 11 15 13 14 14 18 21 23 25 24.4 24.80 24.41 23.98 23.66 23.1 -0.1 69 | g 8 1 8 8 8 8 7 7 7 7 7 7 15 9 6 5 6 6 6 6 5 6 6.6 7.62 8.21 8.89 9.74 10.9 0.2 70 | h 8 1 8 8 8 8 8 8 8 8 8 12 5 10 11 7 7 6 7 8 10 11 11.9 11.20 10.84 10.04 8.43 7.2 -0.3 71 | g 8 2 -4 -4 -4 -4 -3 -3 -3 -3 -3 -8 -4 -6 -4 -4 -2 -1 0 0 -1 -6 -9.2 -11.73 -14.50 -16.78 -17.49 -17.5 0.0 72 | h 8 2 -14 -15 -15 -15 -15 -15 -15 -15 -14 -21 -22 -15 -14 -12 -15 -16 -18 -19 -19 -21 -21.5 -20.88 -20.03 -18.26 -15.23 -12.6 0.4 73 | g 8 3 -9 -9 -9 -9 -9 -9 -9 -9 -10 -5 -1 -14 -11 -14 -13 -12 -11 -11 -10 -9 -7.9 -6.88 -5.59 -3.16 -0.49 2.0 0.4 74 | h 8 3 7 7 6 6 6 6 5 5 5 -12 0 5 7 9 6 4 4 5 6 8 8.5 9.83 11.83 13.18 12.83 11.5 -0.3 75 | g 8 4 1 1 1 2 2 2 2 1 1 9 11 6 2 0 -3 -8 -7 -9 -12 -14 -16.6 -18.11 -19.34 -20.56 -21.07 -21.8 -0.1 76 | h 8 4 -13 -13 -13 -13 -14 -14 -14 -15 -15 -7 -21 -23 -18 -16 -17 -19 -22 -23 -22 -23 -21.5 -19.71 -17.41 -14.60 -11.76 -9.7 0.4 77 | g 8 5 2 2 2 3 4 4 5 6 6 7 15 10 10 8 5 4 4 4 3 9 9.1 10.17 11.61 13.33 15.28 16.9 0.3 78 | h 8 5 5 5 5 5 5 5 5 5 5 2 -8 3 4 4 6 6 9 11 12 15 15.5 16.22 16.71 16.16 14.94 12.7 -0.5 79 | g 8 6 -9 -8 -8 -8 -7 -7 -6 -6 -5 -10 -13 -7 -5 -1 0 0 3 4 4 6 7.0 9.36 10.85 11.76 13.65 14.9 0.1 80 | h 8 6 16 16 16 16 17 17 18 18 19 18 17 23 23 24 21 18 16 14 12 11 8.9 7.61 6.96 5.69 3.62 0.7 -0.6 81 | g 8 7 5 5 5 6 6 7 8 8 9 7 5 6 10 11 11 10 6 4 2 -5 -7.9 -11.25 -14.05 -15.98 -16.59 -16.8 0.0 82 | h 8 7 -5 -5 -5 -5 -5 -5 -5 -5 -5 3 -4 -4 1 -3 -6 -10 -13 -15 -16 -16 -14.9 -12.76 -10.74 -9.10 -6.90 -5.2 0.3 83 | g 8 8 8 8 8 8 8 8 8 7 7 2 -1 9 8 4 3 1 -1 -4 -6 -7 -7.0 -4.87 -3.54 -2.02 -0.34 1.0 0.3 84 | h 8 8 -18 -18 -18 -18 -19 -19 -19 -19 -19 -11 -17 -13 -20 -17 -16 -17 -15 -11 -10 -4 -2.1 -0.06 1.64 2.26 2.90 3.9 0.2 85 | g 9 0 8 8 8 8 8 8 8 8 8 5 3 4 4 8 8 7 5 5 4 4 5.0 5.58 5.50 5.33 5.03 4.7 0.0 86 | g 9 1 10 10 10 10 10 10 10 10 10 -21 -7 9 6 10 10 10 10 10 9 9 9.4 9.76 9.45 8.83 8.36 8.0 0.0 87 | h 9 1 -20 -20 -20 -20 -20 -20 -20 -20 -21 -27 -24 -11 -18 -22 -21 -21 -21 -21 -20 -20 -19.7 -20.11 -20.54 -21.77 -23.44 -24.8 0.0 88 | g 9 2 1 1 1 1 1 1 1 1 1 1 -1 -4 0 2 2 2 1 1 1 3 3.0 3.58 3.45 3.02 2.84 3.0 0.0 89 | h 9 2 14 14 14 14 14 14 14 15 15 17 19 12 12 15 16 16 16 15 15 15 13.4 12.69 11.51 10.76 11.04 12.1 0.0 90 | g 9 3 -11 -11 -11 -11 -11 -11 -12 -12 -12 -11 -25 -5 -9 -13 -12 -12 -12 -12 -12 -10 -8.4 -6.94 -5.27 -3.22 -1.48 -0.2 0.0 91 | h 9 3 5 5 5 5 5 5 5 5 5 29 12 7 2 7 6 7 9 9 11 12 12.5 12.67 12.75 11.74 9.86 8.3 0.0 92 | g 9 4 12 12 12 12 12 12 12 11 11 3 10 2 1 10 10 10 9 9 9 8 6.3 5.01 3.13 0.67 -1.14 -2.5 0.0 93 | h 9 4 -3 -3 -3 -3 -3 -3 -3 -3 -3 -9 2 6 0 -4 -4 -4 -5 -6 -7 -6 -6.2 -6.72 -7.14 -6.74 -5.13 -3.4 0.0 94 | g 9 5 1 1 1 1 1 1 1 1 1 16 5 4 4 -1 -1 -1 -3 -3 -4 -8 -8.9 -10.76 -12.38 -13.20 -13.22 -13.1 0.0 95 | h 9 5 -2 -2 -2 -2 -2 -2 -2 -3 -3 4 2 -2 -3 -5 -5 -5 -6 -6 -7 -8 -8.4 -8.16 -7.42 -6.88 -6.20 -5.3 0.0 96 | g 9 6 -2 -2 -2 -2 -2 -2 -2 -2 -2 -3 -5 1 -1 -1 0 -1 -1 -1 -2 -1 -1.5 -1.25 -0.76 -0.10 1.08 2.4 0.0 97 | h 9 6 8 8 8 8 9 9 9 9 9 9 8 10 9 10 10 10 9 9 9 8 8.4 8.10 7.97 7.79 7.79 7.2 0.0 98 | g 9 7 2 2 2 2 2 2 3 3 3 -4 -2 2 -2 5 3 4 7 7 7 10 9.3 8.76 8.43 8.68 8.82 8.6 0.0 99 | h 9 7 10 10 10 10 10 10 10 11 11 6 8 7 8 10 11 11 10 9 8 5 3.8 2.92 2.14 1.04 0.40 -0.6 0.0 100 | g 9 8 -1 0 0 0 0 0 0 0 1 -3 3 2 3 1 1 1 2 1 1 -2 -4.3 -6.66 -8.42 -9.06 -9.23 -8.7 0.0 101 | h 9 8 -2 -2 -2 -2 -2 -2 -2 -2 -2 1 -11 -6 0 -4 -2 -3 -6 -7 -7 -8 -8.2 -7.73 -6.08 -3.89 -1.44 0.8 0.0 102 | g 9 9 -1 -1 -1 -1 -1 -1 -2 -2 -2 -4 8 5 -1 -2 -1 -2 -5 -5 -6 -8 -8.2 -9.22 -10.08 -10.54 -11.86 -12.8 0.0 103 | h 9 9 2 2 2 2 2 2 2 2 2 8 -7 5 5 1 1 1 2 2 2 3 4.8 6.01 7.01 8.44 9.60 9.8 0.0 104 | g 10 0 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -8 -3 1 -2 -3 -3 -4 -4 -3 -3 -2.6 -2.17 -1.94 -2.01 -1.84 -1.3 0.0 105 | g 10 1 -4 -4 -4 -4 -4 -4 -4 -4 -4 11 4 -5 -3 -3 -3 -3 -4 -4 -4 -6 -6.0 -6.12 -6.24 -6.26 -6.25 -6.4 0.0 106 | h 10 1 2 2 2 2 2 2 2 2 2 5 13 -4 4 2 1 1 1 1 2 1 1.7 2.19 2.73 3.28 3.38 3.3 0.0 107 | g 10 2 2 2 2 2 2 2 2 2 2 1 -1 -1 4 2 2 2 2 3 2 2 1.7 1.42 0.89 0.17 -0.11 0.2 0.0 108 | h 10 2 1 1 1 1 1 1 1 1 1 1 -2 0 1 1 1 1 0 0 1 0 0.0 0.10 -0.10 -0.40 -0.18 0.1 0.0 109 | g 10 3 -5 -5 -5 -5 -5 -5 -5 -5 -5 2 13 2 0 -5 -5 -5 -5 -5 -5 -4 -3.1 -2.35 -1.07 0.55 1.66 2.0 0.0 110 | h 10 3 2 2 2 2 2 2 2 2 2 -20 -10 -8 0 2 3 3 3 3 3 4 4.0 4.46 4.71 4.55 3.50 2.5 0.0 111 | g 10 4 -2 -2 -2 -2 -2 -2 -2 -2 -2 -5 -4 -3 -1 -2 -1 -2 -2 -2 -2 -1 -0.5 -0.15 -0.16 -0.55 -0.86 -1.0 0.0 112 | h 10 4 6 6 6 6 6 6 6 6 6 -1 2 -2 2 6 4 4 6 6 6 5 4.9 4.76 4.44 4.40 4.86 5.4 0.0 113 | g 10 5 6 6 6 6 6 6 6 6 6 -1 4 7 4 4 6 5 5 5 4 4 3.7 3.06 2.45 1.70 0.65 -0.5 0.0 114 | h 10 5 -4 -4 -4 -4 -4 -4 -4 -4 -4 -6 -3 -4 -5 -4 -4 -4 -4 -4 -4 -5 -5.9 -6.58 -7.22 -7.92 -8.62 -9.0 0.0 115 | g 10 6 4 4 4 4 4 4 4 4 4 8 12 4 6 4 4 4 3 3 3 2 1.0 0.29 -0.33 -0.67 -0.88 -0.9 0.0 116 | h 10 6 0 0 0 0 0 0 0 0 0 6 6 1 1 0 0 -1 0 0 0 -1 -1.2 -1.01 -0.96 -0.61 -0.11 0.4 0.0 117 | g 10 7 0 0 0 0 0 0 0 0 0 -1 3 -2 1 0 1 1 1 1 1 2 2.0 2.06 2.13 2.13 1.88 1.5 0.0 118 | h 10 7 -2 -2 -2 -2 -2 -2 -2 -1 -1 -4 -3 -3 -1 -2 -1 -1 -1 -1 -2 -2 -2.9 -3.47 -3.95 -4.16 -4.26 -4.2 0.0 119 | g 10 8 2 2 2 1 1 1 1 2 2 -3 2 6 -1 2 0 0 2 2 3 5 4.2 3.77 3.09 2.33 1.44 0.9 0.0 120 | h 10 8 4 4 4 4 4 4 4 4 4 -2 6 7 6 3 3 3 4 4 3 1 0.2 -0.86 -1.99 -2.85 -3.43 -3.8 0.0 121 | g 10 9 2 2 2 2 3 3 3 3 3 5 10 -2 2 2 3 3 3 3 3 1 0.3 -0.21 -1.03 -1.80 -2.38 -2.6 0.0 122 | h 10 9 0 0 0 0 0 0 0 0 0 0 11 -1 0 0 1 1 0 0 -1 -2 -2.2 -2.31 -1.97 -1.12 -0.10 0.9 0.0 123 | g 10 10 0 0 0 0 0 0 0 0 0 -2 3 0 0 0 -1 -1 0 0 0 0 -1.1 -2.09 -2.80 -3.59 -3.84 -3.9 0.0 124 | h 10 10 -6 -6 -6 -6 -6 -6 -6 -6 -6 -2 8 -3 -7 -6 -4 -5 -6 -6 -6 -7 -7.4 -7.93 -8.31 -8.72 -8.84 -9.0 0.0 125 | g 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.7 2.95 3.05 3.00 2.96 3.0 0.0 126 | g 11 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.7 -1.60 -1.48 -1.40 -1.36 -1.4 0.0 127 | h 11 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0.26 0.13 0.00 -0.02 0.0 0.0 128 | g 11 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.9 -1.88 -2.03 -2.30 -2.51 -2.5 0.0 129 | h 11 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.3 1.44 1.67 2.11 2.50 2.8 0.0 130 | g 11 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5 1.44 1.65 2.08 2.31 2.4 0.0 131 | h 11 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -0.77 -0.66 -0.60 -0.55 -0.6 0.0 132 | g 11 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1 -0.31 -0.51 -0.79 -0.85 -0.6 0.0 133 | h 11 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.6 -2.27 -1.76 -1.05 -0.39 0.1 0.0 134 | g 11 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0.29 0.54 0.58 0.28 0.0 0.0 135 | h 11 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9 0.90 0.85 0.76 0.62 0.5 0.0 136 | g 11 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.7 -0.79 -0.79 -0.70 -0.66 -0.6 0.0 137 | h 11 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.7 -0.58 -0.39 -0.20 -0.21 -0.3 0.0 138 | g 11 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0.53 0.37 0.14 -0.07 -0.1 0.0 139 | h 11 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.8 -2.69 -2.51 -2.12 -1.66 -1.2 0.0 140 | g 11 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.7 1.80 1.79 1.70 1.44 1.1 0.0 141 | h 11 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -1.08 -1.27 -1.44 -1.60 -1.7 0.0 142 | g 11 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0.16 0.12 -0.22 -0.59 -1.0 0.0 143 | h 11 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.2 -1.58 -2.11 -2.57 -2.98 -2.9 0.0 144 | g 11 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.2 0.96 0.75 0.44 0.18 -0.1 0.0 145 | h 11 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.9 -1.90 -1.94 -2.01 -1.97 -1.8 0.0 146 | g 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.0 3.99 3.75 3.49 3.09 2.6 0.0 147 | h 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -1.39 -1.86 -2.34 -2.51 -2.3 0.0 148 | g 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 -2.15 -2.12 -2.09 -2.00 -2.0 0.0 149 | g 12 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.3 -0.29 -0.21 -0.16 -0.13 -0.1 0.0 150 | h 12 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.55 -0.87 -1.08 -1.15 -1.2 0.0 151 | g 12 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0.21 0.30 0.46 0.43 0.4 0.0 152 | h 12 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.23 0.27 0.37 0.52 0.6 0.0 153 | g 12 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9 0.89 1.04 1.23 1.28 1.2 0.0 154 | h 12 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.5 2.38 2.13 1.75 1.37 1.0 0.0 155 | g 12 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2 -0.38 -0.63 -0.89 -1.14 -1.2 0.0 156 | h 12 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.6 -2.63 -2.49 -2.19 -1.81 -1.5 0.0 157 | g 12 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9 0.96 0.95 0.85 0.71 0.6 0.0 158 | h 12 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0.61 0.49 0.27 0.08 0.0 0.0 159 | g 12 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.5 -0.30 -0.11 0.10 0.31 0.5 0.0 160 | h 12 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.40 0.59 0.72 0.71 0.6 0.0 161 | g 12 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.46 0.52 0.54 0.49 0.5 0.0 162 | h 12 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0.01 0.00 -0.09 -0.15 -0.2 0.0 163 | g 12 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.3 -0.35 -0.39 -0.37 -0.26 -0.1 0.0 164 | h 12 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0.02 0.13 0.29 0.55 0.8 0.0 165 | g 12 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.36 -0.37 -0.43 -0.47 -0.5 0.0 166 | h 12 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.28 0.27 0.23 0.16 0.1 0.0 167 | g 12 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1 0.08 0.21 0.22 0.09 -0.2 0.0 168 | h 12 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -0.87 -0.86 -0.89 -0.93 -0.9 0.0 169 | g 12 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2 -0.49 -0.77 -0.94 -1.13 -1.2 0.0 170 | h 12 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.34 -0.23 -0.16 -0.04 0.1 0.0 171 | g 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.08 0.04 -0.03 -0.33 -0.7 0.0 172 | h 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8 0.88 0.87 0.72 0.52 0.2 0.0 173 | g 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2 -0.16 -0.09 -0.02 0.08 0.2 0.0 174 | g 13 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -0.88 -0.89 -0.92 -0.93 -0.9 0.0 175 | h 13 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -0.76 -0.87 -0.88 -0.88 -0.9 0.0 176 | g 13 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.30 0.31 0.42 0.53 0.6 0.0 177 | h 13 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0.33 0.30 0.49 0.64 0.7 0.0 178 | g 13 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0.28 0.42 0.63 0.72 0.7 0.0 179 | h 13 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.8 1.72 1.66 1.56 1.40 1.2 0.0 180 | g 13 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.43 -0.45 -0.42 -0.30 -0.2 0.0 181 | h 13 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.54 -0.59 -0.50 -0.38 -0.3 0.0 182 | g 13 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.3 1.18 1.08 0.96 0.75 0.5 0.0 183 | h 13 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.0 -1.07 -1.14 -1.24 -1.31 -1.3 0.0 184 | g 13 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.37 -0.31 -0.19 -0.01 0.1 0.0 185 | h 13 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1 -0.04 -0.07 -0.10 -0.09 -0.1 0.0 186 | g 13 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0.75 0.78 0.81 0.76 0.7 0.0 187 | h 13 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0.63 0.54 0.42 0.29 0.2 0.0 188 | g 13 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.4 -0.26 -0.18 -0.13 -0.05 0.0 0.0 189 | h 13 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.21 0.10 -0.04 -0.11 -0.2 0.0 190 | g 13 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.35 0.38 0.38 0.37 0.3 0.0 191 | h 13 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6 0.53 0.49 0.48 0.47 0.5 0.0 192 | g 13 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1 -0.05 0.02 0.08 0.13 0.2 0.0 193 | h 13 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.38 0.44 0.48 0.54 0.6 0.0 194 | g 13 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4 0.41 0.42 0.46 0.45 0.4 0.0 195 | h 13 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2 -0.22 -0.25 -0.30 -0.41 -0.6 0.0 196 | g 13 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 -0.10 -0.26 -0.35 -0.46 -0.5 0.0 197 | h 13 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.5 -0.57 -0.53 -0.43 -0.36 -0.3 0.0 198 | g 13 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 -0.18 -0.26 -0.36 -0.40 -0.4 0.0 199 | h 13 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.9 -0.82 -0.79 -0.71 -0.60 -0.5 0.0 200 | --------------------------------------------------------------------------------