Skip to content

Commit 1ea6a3d

Browse files
committed
Merged in f5soh/librepilot/LP-607_world_mag_model_2015v2 (pull request #526)
LP-607 Update to WMM-2015v2 Approved-by: Lalanne Laurent <f5soh@free.fr> Approved-by: Alessio Morale <alessiomorale@gmail.com>
2 parents 03d71df + 98fafb4 commit 1ea6a3d

File tree

2 files changed

+185
-184
lines changed

2 files changed

+185
-184
lines changed

flight/libraries/WorldMagModel.c

Lines changed: 90 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
******************************************************************************
33
*
44
* @file WorldMagModel.c
5-
* @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2015.
5+
* @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2015-2019.
66
* The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
77
* @brief Source file for the World Magnetic Model
88
* This is a port of code available from the US NOAA.
@@ -61,96 +61,96 @@
6161
// first column not used but it will be optimized out by compiler
6262
static const float CoeffFile[91][6] = {
6363
{ 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f },
64-
{ 1.0f, 0.0f, -29438.5f, 0.0f, 10.7f, 0.0f },
65-
{ 1.0f, 1.0f, -1501.1f, 4796.2f, 17.9f, -26.8f },
66-
{ 2.0f, 0.0f, -2445.3f, 0.0f, -8.6f, 0.0f },
67-
{ 2.0f, 1.0f, 3012.5f, -2845.6f, -3.3f, -27.1f },
68-
{ 2.0f, 2.0f, 1676.6f, -642.0f, 2.4f, -13.3f },
69-
{ 3.0f, 0.0f, 1351.1f, 0.0f, 3.1f, 0.0f },
70-
{ 3.0f, 1.0f, -2352.3f, -115.3f, -6.2f, 8.4f },
71-
{ 3.0f, 2.0f, 1225.6f, 245.0f, -0.4f, -0.4f },
72-
{ 3.0f, 3.0f, 581.9f, -538.3f, -10.4f, 2.3f },
73-
{ 4.0f, 0.0f, 907.2f, 0.0f, -0.4f, 0.0f },
74-
{ 4.0f, 1.0f, 813.7f, 283.4f, 0.8f, -0.6f },
75-
{ 4.0f, 2.0f, 120.3f, -188.6f, -9.2f, 5.3f },
76-
{ 4.0f, 3.0f, -335.0f, 180.9f, 4.0f, 3.0f },
77-
{ 4.0f, 4.0f, 70.3f, -329.5f, -4.2f, -5.3f },
78-
{ 5.0f, 0.0f, -232.6f, 0.0f, -0.2f, 0.0f },
79-
{ 5.0f, 1.0f, 360.1f, 47.4f, 0.1f, 0.4f },
80-
{ 5.0f, 2.0f, 192.4f, 196.9f, -1.4f, 1.6f },
81-
{ 5.0f, 3.0f, -141.0f, -119.4f, 0.0f, -1.1f },
82-
{ 5.0f, 4.0f, -157.4f, 16.1f, 1.3f, 3.3f },
83-
{ 5.0f, 5.0f, 4.3f, 100.1f, 3.8f, 0.1f },
84-
{ 6.0f, 0.0f, 69.5f, 0.0f, -0.5f, 0.0f },
85-
{ 6.0f, 1.0f, 67.4f, -20.7f, -0.2f, 0.0f },
86-
{ 6.0f, 2.0f, 72.8f, 33.2f, -0.6f, -2.2f },
87-
{ 6.0f, 3.0f, -129.8f, 58.8f, 2.4f, -0.7f },
88-
{ 6.0f, 4.0f, -29.0f, -66.5f, -1.1f, 0.1f },
89-
{ 6.0f, 5.0f, 13.2f, 7.3f, 0.3f, 1.0f },
90-
{ 6.0f, 6.0f, -70.9f, 62.5f, 1.5f, 1.3f },
91-
{ 7.0f, 0.0f, 81.6f, 0.0f, 0.2f, 0.0f },
92-
{ 7.0f, 1.0f, -76.1f, -54.1f, -0.2f, 0.7f },
93-
{ 7.0f, 2.0f, -6.8f, -19.4f, -0.4f, 0.5f },
94-
{ 7.0f, 3.0f, 51.9f, 5.6f, 1.3f, -0.2f },
95-
{ 7.0f, 4.0f, 15.0f, 24.4f, 0.2f, -0.1f },
96-
{ 7.0f, 5.0f, 9.3f, 3.3f, -0.4f, -0.7f },
97-
{ 7.0f, 6.0f, -2.8f, -27.5f, -0.9f, 0.1f },
98-
{ 7.0f, 7.0f, 6.7f, -2.3f, 0.3f, 0.1f },
99-
{ 8.0f, 0.0f, 24.0f, 0.0f, 0.0f, 0.0f },
100-
{ 8.0f, 1.0f, 8.6f, 10.2f, 0.1f, -0.3f },
101-
{ 8.0f, 2.0f, -16.9f, -18.1f, -0.5f, 0.3f },
102-
{ 8.0f, 3.0f, -3.2f, 13.2f, 0.5f, 0.3f },
103-
{ 8.0f, 4.0f, -20.6f, -14.6f, -0.2f, 0.6f },
104-
{ 8.0f, 5.0f, 13.3f, 16.2f, 0.4f, -0.1f },
105-
{ 8.0f, 6.0f, 11.7f, 5.7f, 0.2f, -0.2f },
106-
{ 8.0f, 7.0f, -16.0f, -9.1f, -0.4f, 0.3f },
107-
{ 8.0f, 8.0f, -2.0f, 2.2f, 0.3f, 0.0f },
108-
{ 9.0f, 0.0f, 5.4f, 0.0f, 0.0f, 0.0f },
109-
{ 9.0f, 1.0f, 8.8f, -21.6f, -0.1f, -0.2f },
110-
{ 9.0f, 2.0f, 3.1f, 10.8f, -0.1f, -0.1f },
111-
{ 9.0f, 3.0f, -3.1f, 11.7f, 0.4f, -0.2f },
112-
{ 9.0f, 4.0f, 0.6f, -6.8f, -0.5f, 0.1f },
113-
{ 9.0f, 5.0f, -13.3f, -6.9f, -0.2f, 0.1f },
114-
{ 9.0f, 6.0f, -0.1f, 7.8f, 0.1f, 0.0f },
115-
{ 9.0f, 7.0f, 8.7f, 1.0f, 0.0f, -0.2f },
116-
{ 9.0f, 8.0f, -9.1f, -3.9f, -0.2f, 0.4f },
117-
{ 9.0f, 9.0f, -10.5f, 8.5f, -0.1f, 0.3f },
118-
{ 10.0f, 0.0f, -1.9f, 0.0f, 0.0f, 0.0f },
119-
{ 10.0f, 1.0f, -6.5f, 3.3f, 0.0f, 0.1f },
120-
{ 10.0f, 2.0f, 0.2f, -0.3f, -0.1f, -0.1f },
121-
{ 10.0f, 3.0f, 0.6f, 4.6f, 0.3f, 0.0f },
122-
{ 10.0f, 4.0f, -0.6f, 4.4f, -0.1f, 0.0f },
123-
{ 10.0f, 5.0f, 1.7f, -7.9f, -0.1f, -0.2f },
124-
{ 10.0f, 6.0f, -0.7f, -0.6f, -0.1f, 0.1f },
125-
{ 10.0f, 7.0f, 2.1f, -4.1f, 0.0f, -0.1f },
126-
{ 10.0f, 8.0f, 2.3f, -2.8f, -0.2f, -0.2f },
127-
{ 10.0f, 9.0f, -1.8f, -1.1f, -0.1f, 0.1f },
128-
{ 10.0f, 10.0f, -3.6f, -8.7f, -0.2f, -0.1f },
129-
{ 11.0f, 0.0f, 3.1f, 0.0f, 0.0f, 0.0f },
130-
{ 11.0f, 1.0f, -1.5f, -0.1f, 0.0f, 0.0f },
131-
{ 11.0f, 2.0f, -2.3f, 2.1f, -0.1f, 0.1f },
132-
{ 11.0f, 3.0f, 2.1f, -0.7f, 0.1f, 0.0f },
133-
{ 11.0f, 4.0f, -0.9f, -1.1f, 0.0f, 0.1f },
134-
{ 11.0f, 5.0f, 0.6f, 0.7f, 0.0f, 0.0f },
135-
{ 11.0f, 6.0f, -0.7f, -0.2f, 0.0f, 0.0f },
136-
{ 11.0f, 7.0f, 0.2f, -2.1f, 0.0f, 0.1f },
137-
{ 11.0f, 8.0f, 1.7f, -1.5f, 0.0f, 0.0f },
138-
{ 11.0f, 9.0f, -0.2f, -2.5f, 0.0f, -0.1f },
139-
{ 11.0f, 10.0f, 0.4f, -2.0f, -0.1f, 0.0f },
64+
{ 1.0f, 0.0f, -29438.2f, 0.0f, 7.0f, 0.0f },
65+
{ 1.0f, 1.0f, -1493.5f, 4796.3f, 9.0f, -30.2f },
66+
{ 2.0f, 0.0f, -2444.5f, 0.0f, -11.0f, 0.0f },
67+
{ 2.0f, 1.0f, 3014.7f, -2842.4f, -6.2f, -29.6f },
68+
{ 2.0f, 2.0f, 1679.0f, -638.8f, 0.3f, -17.3f },
69+
{ 3.0f, 0.0f, 1351.8f, 0.0f, 2.4f, 0.0f },
70+
{ 3.0f, 1.0f, -2351.6f, -113.7f, -5.7f, 6.5f },
71+
{ 3.0f, 2.0f, 1223.6f, 246.5f, 2.0f, -0.8f },
72+
{ 3.0f, 3.0f, 582.3f, -537.4f, -11.0f, -2.0f },
73+
{ 4.0f, 0.0f, 907.5f, 0.0f, -0.8f, 0.0f },
74+
{ 4.0f, 1.0f, 814.8f, 283.3f, -0.9f, -0.4f },
75+
{ 4.0f, 2.0f, 117.8f, -188.6f, -6.5f, 5.8f },
76+
{ 4.0f, 3.0f, -335.6f, 180.7f, 5.2f, 3.8f },
77+
{ 4.0f, 4.0f, 69.7f, -330.0f, -4.0f, -3.5f },
78+
{ 5.0f, 0.0f, -232.9f, 0.0f, -0.3f, 0.0f },
79+
{ 5.0f, 1.0f, 360.1f, 46.9f, 0.6f, 0.2f },
80+
{ 5.0f, 2.0f, 191.7f, 196.5f, -0.8f, 2.3f },
81+
{ 5.0f, 3.0f, -141.3f, -119.9f, 0.1f, -0.0f },
82+
{ 5.0f, 4.0f, -157.2f, 16.0f, 1.2f, 3.3f },
83+
{ 5.0f, 5.0f, 7.7f, 100.6f, 1.4f, -0.6f },
84+
{ 6.0f, 0.0f, 69.4f, 0.0f, -0.8f, 0.0f },
85+
{ 6.0f, 1.0f, 67.7f, -20.1f, -0.5f, 0.3f },
86+
{ 6.0f, 2.0f, 72.3f, 32.8f, -0.1f, -1.5f },
87+
{ 6.0f, 3.0f, -129.1f, 59.1f, 1.6f, -1.2f },
88+
{ 6.0f, 4.0f, -28.4f, -67.1f, -1.6f, 0.4f },
89+
{ 6.0f, 5.0f, 13.6f, 8.1f, 0.0f, 0.2f },
90+
{ 6.0f, 6.0f, -70.3f, 61.9f, 1.2f, 1.3f },
91+
{ 7.0f, 0.0f, 81.7f, 0.0f, -0.3f, 0.0f },
92+
{ 7.0f, 1.0f, -75.9f, -54.3f, -0.2f, 0.6f },
93+
{ 7.0f, 2.0f, -7.1f, -19.5f, -0.3f, 0.5f },
94+
{ 7.0f, 3.0f, 52.2f, 6.0f, 0.9f, -0.8f },
95+
{ 7.0f, 4.0f, 15.0f, 24.5f, 0.1f, -0.2f },
96+
{ 7.0f, 5.0f, 9.1f, 3.5f, -0.6f, -1.1f },
97+
{ 7.0f, 6.0f, -3.0f, -27.7f, -0.9f, 0.1f },
98+
{ 7.0f, 7.0f, 5.9f, -2.9f, 0.7f, 0.2f },
99+
{ 8.0f, 0.0f, 24.2f, 0.0f, -0.1f, 0.0f },
100+
{ 8.0f, 1.0f, 8.9f, 10.1f, 0.2f, -0.4f },
101+
{ 8.0f, 2.0f, -16.9f, -18.3f, -0.2f, 0.6f },
102+
{ 8.0f, 3.0f, -3.1f, 13.3f, 0.5f, -0.1f },
103+
{ 8.0f, 4.0f, -20.7f, -14.5f, -0.1f, 0.6f },
104+
{ 8.0f, 5.0f, 13.3f, 16.2f, 0.4f, -0.2f },
105+
{ 8.0f, 6.0f, 11.6f, 6.0f, 0.4f, -0.5f },
106+
{ 8.0f, 7.0f, -16.3f, -9.2f, -0.1f, 0.5f },
107+
{ 8.0f, 8.0f, -2.1f, 2.4f, 0.4f, 0.1f },
108+
{ 9.0f, 0.0f, 5.5f, 0.0f, -0.1f, 0.0f },
109+
{ 9.0f, 1.0f, 8.8f, -21.8f, -0.1f, -0.3f },
110+
{ 9.0f, 2.0f, 3.0f, 10.7f, -0.0f, 0.1f },
111+
{ 9.0f, 3.0f, -3.2f, 11.8f, 0.4f, -0.4f },
112+
{ 9.0f, 4.0f, 0.6f, -6.8f, -0.4f, 0.3f },
113+
{ 9.0f, 5.0f, -13.2f, -6.9f, 0.0f, 0.1f },
114+
{ 9.0f, 6.0f, -0.1f, 7.9f, 0.3f, -0.0f },
115+
{ 9.0f, 7.0f, 8.7f, 1.0f, 0.0f, -0.1f },
116+
{ 9.0f, 8.0f, -9.1f, -3.9f, -0.0f, 0.5f },
117+
{ 9.0f, 9.0f, -10.4f, 8.5f, -0.3f, 0.2f },
118+
{ 10.0f, 0.0f, -2.0f, 0.0f, 0.0f, 0.0f },
119+
{ 10.0f, 1.0f, -6.1f, 3.3f, -0.0f, 0.0f },
120+
{ 10.0f, 2.0f, 0.2f, -0.4f, -0.1f, 0.1f },
121+
{ 10.0f, 3.0f, 0.6f, 4.6f, 0.2f, -0.2f },
122+
{ 10.0f, 4.0f, -0.5f, 4.4f, -0.1f, 0.1f },
123+
{ 10.0f, 5.0f, 1.8f, -7.9f, -0.2f, -0.1f },
124+
{ 10.0f, 6.0f, -0.7f, -0.6f, -0.0f, 0.1f },
125+
{ 10.0f, 7.0f, 2.2f, -4.2f, -0.1f, -0.0f },
126+
{ 10.0f, 8.0f, 2.4f, -2.9f, -0.2f, -0.1f },
127+
{ 10.0f, 9.0f, -1.8f, -1.1f, -0.1f, 0.2f },
128+
{ 10.0f, 10.0f, -3.6f, -8.8f, -0.0f, -0.0f },
129+
{ 11.0f, 0.0f, 3.0f, 0.0f, -0.0f, 0.0f },
130+
{ 11.0f, 1.0f, -1.4f, -0.0f, 0.0f, 0.0f },
131+
{ 11.0f, 2.0f, -2.3f, 2.1f, -0.0f, 0.1f },
132+
{ 11.0f, 3.0f, 2.1f, -0.6f, 0.0f, 0.0f },
133+
{ 11.0f, 4.0f, -0.8f, -1.1f, -0.0f, 0.1f },
134+
{ 11.0f, 5.0f, 0.6f, 0.7f, -0.1f, -0.0f },
135+
{ 11.0f, 6.0f, -0.7f, -0.2f, 0.0f, -0.0f },
136+
{ 11.0f, 7.0f, 0.1f, -2.1f, -0.0f, 0.1f },
137+
{ 11.0f, 8.0f, 1.7f, -1.5f, -0.0f, -0.0f },
138+
{ 11.0f, 9.0f, -0.2f, -2.6f, -0.1f, -0.1f },
139+
{ 11.0f, 10.0f, 0.4f, -2.0f, -0.0f, -0.0f },
140140
{ 11.0f, 11.0f, 3.5f, -2.3f, -0.1f, -0.1f },
141-
{ 12.0f, 0.0f, -2.0f, 0.0f, 0.1f, 0.0f },
142-
{ 12.0f, 1.0f, -0.3f, -1.0f, 0.0f, 0.0f },
143-
{ 12.0f, 2.0f, 0.4f, 0.5f, 0.0f, 0.0f },
144-
{ 12.0f, 3.0f, 1.3f, 1.8f, 0.1f, -0.1f },
145-
{ 12.0f, 4.0f, -0.9f, -2.2f, -0.1f, 0.0f },
146-
{ 12.0f, 5.0f, 0.9f, 0.3f, 0.0f, 0.0f },
147-
{ 12.0f, 6.0f, 0.1f, 0.7f, 0.1f, 0.0f },
148-
{ 12.0f, 7.0f, 0.5f, -0.1f, 0.0f, 0.0f },
141+
{ 12.0f, 0.0f, -2.0f, 0.0f, 0.0f, 0.0f },
142+
{ 12.0f, 1.0f, -0.1f, -1.0f, 0.0f, -0.0f },
143+
{ 12.0f, 2.0f, 0.5f, 0.3f, -0.0f, 0.0f },
144+
{ 12.0f, 3.0f, 1.2f, 1.8f, 0.0f, -0.1f },
145+
{ 12.0f, 4.0f, -0.9f, -2.2f, -0.1f, 0.1f },
146+
{ 12.0f, 5.0f, 0.9f, 0.3f, -0.0f, -0.0f },
147+
{ 12.0f, 6.0f, 0.1f, 0.7f, 0.0f, 0.0f },
148+
{ 12.0f, 7.0f, 0.6f, -0.1f, -0.0f, -0.0f },
149149
{ 12.0f, 8.0f, -0.4f, 0.3f, 0.0f, 0.0f },
150-
{ 12.0f, 9.0f, -0.4f, 0.2f, 0.0f, 0.0f },
151-
{ 12.0f, 10.0f, 0.2f, -0.9f, 0.0f, 0.0f },
152-
{ 12.0f, 11.0f, -0.9f, -0.2f, 0.0f, 0.0f },
153-
{ 12.0f, 12.0f, 0.0f, 0.7f, 0.0f, 0.0f }
150+
{ 12.0f, 9.0f, -0.5f, 0.2f, -0.0f, 0.0f },
151+
{ 12.0f, 10.0f, 0.2f, -0.9f, -0.0f, -0.0f },
152+
{ 12.0f, 11.0f, -0.9f, -0.2f, -0.0f, 0.0f },
153+
{ 12.0f, 12.0f, -0.0f, 0.8f, -0.1f, -0.1f }
154154
};
155155

156156
static WMMtype_Ellipsoid *Ellip = NULL;
@@ -194,7 +194,7 @@ int WMM_Initialize()
194194
// Really, Really needs to be read from a file - out of date in 2020 at latest
195195
MagneticModel->EditionDate = 0.0f; /* OP change. Originally 5.7863328170559505e-307, truncates to 0.0f */
196196
MagneticModel->epoch = 2015.0f;
197-
sprintf(MagneticModel->ModelName, "WMM-2015");
197+
sprintf(MagneticModel->ModelName, "WMM-2015v2");
198198

199199
return 0; // OK
200200
}

0 commit comments

Comments
 (0)