Skip to content

Commit 98fafb4

Browse files
committed
LP-607 Update GCS to WMM-2015v2
1 parent 5f955eb commit 98fafb4

File tree

1 file changed

+95
-94
lines changed

1 file changed

+95
-94
lines changed

ground/gcs/src/libs/utils/worldmagmodel.cpp

Lines changed: 95 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22
******************************************************************************
33
*
44
* @file worldmagmodel.cpp
5-
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
5+
* @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2019.
6+
* The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
67
* @brief Utilities to find the location of openpilot GCS files:
78
* - Plugins Share directory path
89
*
910
* @brief Source file for the World Magnetic Model
1011
* This is a port of code available from the US NOAA.
1112
*
12-
* The hard coded coefficients should be valid until 2015.
13+
* The hard coded coefficients should be valid until 2020.
1314
*
1415
* Updated coeffs from ..
1516
* http://www.ngdc.noaa.gov/geomag/WMM/wmm_ddownload.shtml
@@ -55,96 +56,96 @@
5556
// updated coeffs available from http://www.ngdc.noaa.gov/geomag/WMM/wmm_ddownload.shtml
5657
const double CoeffFile[91][6] = {
5758
{ 0, 0, 0, 0, 0, 0 },
58-
{ 1, 0, -29496.6, 0.0, 11.6, 0.0 },
59-
{ 1, 1, -1586.3, 4944.4, 16.5, -25.9 },
60-
{ 2, 0, -2396.6, 0.0, -12.1, 0.0 },
61-
{ 2, 1, 3026.1, -2707.7, -4.4, -22.5 },
62-
{ 2, 2, 1668.6, -576.1, 1.9, -11.8 },
63-
{ 3, 0, 1340.1, 0.0, 0.4, 0.0 },
64-
{ 3, 1, -2326.2, -160.2, -4.1, 7.3 },
65-
{ 3, 2, 1231.9, 251.9, -2.9, -3.9 },
66-
{ 3, 3, 634.0, -536.6, -7.7, -2.6 },
67-
{ 4, 0, 912.6, 0.0, -1.8, 0.0 },
68-
{ 4, 1, 808.9, 286.4, 2.3, 1.1 },
69-
{ 4, 2, 166.7, -211.2, -8.7, 2.7 },
70-
{ 4, 3, -357.1, 164.3, 4.6, 3.9 },
71-
{ 4, 4, 89.4, -309.1, -2.1, -0.8 },
72-
{ 5, 0, -230.9, 0.0, -1.0, 0.0 },
73-
{ 5, 1, 357.2, 44.6, 0.6, 0.4 },
74-
{ 5, 2, 200.3, 188.9, -1.8, 1.8 },
75-
{ 5, 3, -141.1, -118.2, -1.0, 1.2 },
76-
{ 5, 4, -163.0, 0.0, 0.9, 4.0 },
77-
{ 5, 5, -7.8, 100.9, 1.0, -0.6 },
78-
{ 6, 0, 72.8, 0.0, -0.2, 0.0 },
79-
{ 6, 1, 68.6, -20.8, -0.2, -0.2 },
80-
{ 6, 2, 76.0, 44.1, -0.1, -2.1 },
81-
{ 6, 3, -141.4, 61.5, 2.0, -0.4 },
82-
{ 6, 4, -22.8, -66.3, -1.7, -0.6 },
83-
{ 6, 5, 13.2, 3.1, -0.3, 0.5 },
84-
{ 6, 6, -77.9, 55.0, 1.7, 0.9 },
85-
{ 7, 0, 80.5, 0.0, 0.1, 0.0 },
86-
{ 7, 1, -75.1, -57.9, -0.1, 0.7 },
87-
{ 7, 2, -4.7, -21.1, -0.6, 0.3 },
88-
{ 7, 3, 45.3, 6.5, 1.3, -0.1 },
89-
{ 7, 4, 13.9, 24.9, 0.4, -0.1 },
90-
{ 7, 5, 10.4, 7.0, 0.3, -0.8 },
91-
{ 7, 6, 1.7, -27.7, -0.7, -0.3 },
92-
{ 7, 7, 4.9, -3.3, 0.6, 0.3 },
93-
{ 8, 0, 24.4, 0.0, -0.1, 0.0 },
94-
{ 8, 1, 8.1, 11.0, 0.1, -0.1 },
95-
{ 8, 2, -14.5, -20.0, -0.6, 0.2 },
96-
{ 8, 3, -5.6, 11.9, 0.2, 0.4 },
97-
{ 8, 4, -19.3, -17.4, -0.2, 0.4 },
98-
{ 8, 5, 11.5, 16.7, 0.3, 0.1 },
99-
{ 8, 6, 10.9, 7.0, 0.3, -0.1 },
100-
{ 8, 7, -14.1, -10.8, -0.6, 0.4 },
101-
{ 8, 8, -3.7, 1.7, 0.2, 0.3 },
102-
{ 9, 0, 5.4, 0.0, 0.0, 0.0 },
103-
{ 9, 1, 9.4, -20.5, -0.1, 0.0 },
104-
{ 9, 2, 3.4, 11.5, 0.0, -0.2 },
105-
{ 9, 3, -5.2, 12.8, 0.3, 0.0 },
106-
{ 9, 4, 3.1, -7.2, -0.4, -0.1 },
107-
{ 9, 5, -12.4, -7.4, -0.3, 0.1 },
108-
{ 9, 6, -0.7, 8.0, 0.1, 0.0 },
109-
{ 9, 7, 8.4, 2.1, -0.1, -0.2 },
110-
{ 9, 8, -8.5, -6.1, -0.4, 0.3 },
111-
{ 9, 9, -10.1, 7.0, -0.2, 0.2 },
59+
{ 1, 0, -29438.2, 0.0, 7.0, 0.0 },
60+
{ 1, 1, -1493.5, 4796.3, 9.0, -30.2 },
61+
{ 2, 0, -2444.5, 0.0, -11.0, 0.0 },
62+
{ 2, 1, 3014.7, -2842.4, -6.2, -29.6 },
63+
{ 2, 2, 1679.0, -638.8, 0.3, -17.3 },
64+
{ 3, 0, 1351.8, 0.0, 2.4, 0.0 },
65+
{ 3, 1, -2351.6, -113.7, -5.7, 6.5 },
66+
{ 3, 2, 1223.6, 246.5, 2.0, -0.8 },
67+
{ 3, 3, 582.3, -537.4, -11.0, -2.0 },
68+
{ 4, 0, 907.5, 0.0, -0.8, 0.0 },
69+
{ 4, 1, 814.8, 283.3, -0.9, -0.4 },
70+
{ 4, 2, 117.8, -188.6, -6.5, 5.8 },
71+
{ 4, 3, -335.6, 180.7, 5.2, 3.8 },
72+
{ 4, 4, 69.7, -330.0, -4.0, -3.5 },
73+
{ 5, 0, -232.9, 0.0, -0.3, 0.0 },
74+
{ 5, 1, 360.1, 46.9, 0.6, 0.2 },
75+
{ 5, 2, 191.7, 196.5, -0.8, 2.3 },
76+
{ 5, 3, -141.3, -119.9, 0.1, -0.0 },
77+
{ 5, 4, -157.2, 16.0, 1.2, 3.3 },
78+
{ 5, 5, 7.7, 100.6, 1.4, -0.6 },
79+
{ 6, 0, 69.4, 0.0, -0.8, 0.0 },
80+
{ 6, 1, 67.7, -20.1, -0.5, 0.3 },
81+
{ 6, 2, 72.3, 32.8, -0.1, -1.5 },
82+
{ 6, 3, -129.1, 59.1, 1.6, -1.2 },
83+
{ 6, 4, -28.4, -67.1, -1.6, 0.4 },
84+
{ 6, 5, 13.6, 8.1, 0.0, 0.2 },
85+
{ 6, 6, -70.3, 61.9, 1.2, 1.3 },
86+
{ 7, 0, 81.7, 0.0, -0.3, 0.0 },
87+
{ 7, 1, -75.9, -54.3, -0.2, 0.6 },
88+
{ 7, 2, -7.1, -19.5, -0.3, 0.5 },
89+
{ 7, 3, 52.2, 6.0, 0.9, -0.8 },
90+
{ 7, 4, 15.0, 24.5, 0.1, -0.2 },
91+
{ 7, 5, 9.1, 3.5, -0.6, -1.1 },
92+
{ 7, 6, -3.0, -27.7, -0.9, 0.1 },
93+
{ 7, 7, 5.9, -2.9, 0.7, 0.2 },
94+
{ 8, 0, 24.2, 0.0, -0.1, 0.0 },
95+
{ 8, 1, 8.9, 10.1, 0.2, -0.4 },
96+
{ 8, 2, -16.9, -18.3, -0.2, 0.6 },
97+
{ 8, 3, -3.1, 13.3, 0.5, -0.1 },
98+
{ 8, 4, -20.7, -14.5, -0.1, 0.6 },
99+
{ 8, 5, 13.3, 16.2, 0.4, -0.2 },
100+
{ 8, 6, 11.6, 6.0, 0.4, -0.5 },
101+
{ 8, 7, -16.3, -9.2, -0.1, 0.5 },
102+
{ 8, 8, -2.1, 2.4, 0.4, 0.1 },
103+
{ 9, 0, 5.5, 0.0, -0.1, 0.0 },
104+
{ 9, 1, 8.8, -21.8, -0.1, -0.3 },
105+
{ 9, 2, 3.0, 10.7, -0.0, 0.1 },
106+
{ 9, 3, -3.2, 11.8, 0.4, -0.4 },
107+
{ 9, 4, 0.6, -6.8, -0.4, 0.3 },
108+
{ 9, 5, -13.2, -6.9, 0.0, 0.1 },
109+
{ 9, 6, -0.1, 7.9, 0.3, -0.0 },
110+
{ 9, 7, 8.7, 1.0, 0.0, -0.1 },
111+
{ 9, 8, -9.1, -3.9, -0.0, 0.5 },
112+
{ 9, 9, -10.4, 8.5, -0.3, 0.2 },
112113
{ 10, 0, -2.0, 0.0, 0.0, 0.0 },
113-
{ 10, 1, -6.3, 2.8, 0.0, 0.1 },
114-
{ 10, 2, 0.9, -0.1, -0.1, -0.1 },
115-
{ 10, 3, -1.1, 4.7, 0.2, 0.0 },
116-
{ 10, 4, -0.2, 4.4, 0.0, -0.1 },
117-
{ 10, 5, 2.5, -7.2, -0.1, -0.1 },
118-
{ 10, 6, -0.3, -1.0, -0.2, 0.0 },
119-
{ 10, 7, 2.2, -3.9, 0.0, -0.1 },
120-
{ 10, 8, 3.1, -2.0, -0.1, -0.2 },
121-
{ 10, 9, -1.0, -2.0, -0.2, 0.0 },
122-
{ 10, 10, -2.8, -8.3, -0.2, -0.1 },
123-
{ 11, 0, 3.0, 0.0, 0.0, 0.0 },
124-
{ 11, 1, -1.5, 0.2, 0.0, 0.0 },
125-
{ 11, 2, -2.1, 1.7, 0.0, 0.1 },
126-
{ 11, 3, 1.7, -0.6, 0.1, 0.0 },
127-
{ 11, 4, -0.5, -1.8, 0.0, 0.1 },
128-
{ 11, 5, 0.5, 0.9, 0.0, 0.0 },
129-
{ 11, 6, -0.8, -0.4, 0.0, 0.1 },
130-
{ 11, 7, 0.4, -2.5, 0.0, 0.0 },
131-
{ 11, 8, 1.8, -1.3, 0.0, -0.1 },
132-
{ 11, 9, 0.1, -2.1, 0.0, -0.1 },
133-
{ 11, 10, 0.7, -1.9, -0.1, 0.0 },
134-
{ 11, 11, 3.8, -1.8, 0.0, -0.1 },
135-
{ 12, 0, -2.2, 0.0, 0.0, 0.0 },
136-
{ 12, 1, -0.2, -0.9, 0.0, 0.0 },
137-
{ 12, 2, 0.3, 0.3, 0.1, 0.0 },
138-
{ 12, 3, 1.0, 2.1, 0.1, 0.0 },
139-
{ 12, 4, -0.6, -2.5, -0.1, 0.0 },
140-
{ 12, 5, 0.9, 0.5, 0.0, 0.0 },
141-
{ 12, 6, -0.1, 0.6, 0.0, 0.1 },
142-
{ 12, 7, 0.5, 0.0, 0.0, 0.0 },
143-
{ 12, 8, -0.4, 0.1, 0.0, 0.0 },
144-
{ 12, 9, -0.4, 0.3, 0.0, 0.0 },
145-
{ 12, 10, 0.2, -0.9, 0.0, 0.0 },
146-
{ 12, 11, -0.8, -0.2, -0.1, 0.0 },
147-
{ 12, 12, 0.0, 0.9, 0.1, 0.0 }
114+
{ 10, 1, -6.1, 3.3, -0.0, 0.0 },
115+
{ 10, 2, 0.2, -0.4, -0.1, 0.1 },
116+
{ 10, 3, 0.6, 4.6, 0.2, -0.2 },
117+
{ 10, 4, -0.5, 4.4, -0.1, 0.1 },
118+
{ 10, 5, 1.8, -7.9, -0.2, -0.1 },
119+
{ 10, 6, -0.7, -0.6, -0.0, 0.1 },
120+
{ 10, 7, 2.2, -4.2, -0.1, -0.0 },
121+
{ 10, 8, 2.4, -2.9, -0.2, -0.1 },
122+
{ 10, 9, -1.8, -1.1, -0.1, 0.2 },
123+
{ 10, 10, -3.6, -8.8, -0.0, -0.0 },
124+
{ 11, 0, 3.0, 0.0, -0.0, 0.0 },
125+
{ 11, 1, -1.4, -0.0, 0.0, 0.0 },
126+
{ 11, 2, -2.3, 2.1, -0.0, 0.1 },
127+
{ 11, 3, 2.1, -0.6, 0.0, 0.0 },
128+
{ 11, 4, -0.8, -1.1, -0.0, 0.1 },
129+
{ 11, 5, 0.6, 0.7, -0.1, -0.0 },
130+
{ 11, 6, -0.7, -0.2, 0.0, -0.0 },
131+
{ 11, 7, 0.1, -2.1, -0.0, 0.1 },
132+
{ 11, 8, 1.7, -1.5, -0.0, -0.0 },
133+
{ 11, 9, -0.2, -2.6, -0.1, -0.1 },
134+
{ 11, 10, 0.4, -2.0, -0.0, -0.0 },
135+
{ 11, 11, 3.5, -2.3, -0.1, -0.1 },
136+
{ 12, 0, -2.0, 0.0, 0.0, 0.0 },
137+
{ 12, 1, -0.1, -1.0, 0.0, -0.0 },
138+
{ 12, 2, 0.5, 0.3, -0.0, 0.0 },
139+
{ 12, 3, 1.2, 1.8, 0.0, -0.1 },
140+
{ 12, 4, -0.9, -2.2, -0.1, 0.1 },
141+
{ 12, 5, 0.9, 0.3, -0.0, -0.0 },
142+
{ 12, 6, 0.1, 0.7, 0.0, 0.0 },
143+
{ 12, 7, 0.6, -0.1, -0.0, -0.0 },
144+
{ 12, 8, -0.4, 0.3, 0.0, 0.0 },
145+
{ 12, 9, -0.5, 0.2, -0.0, 0.0 },
146+
{ 12, 10, 0.2, -0.9, -0.0, -0.0 },
147+
{ 12, 11, -0.9, -0.2, -0.0, 0.0 },
148+
{ 12, 12, -0.0, 0.8, -0.1, -0.1 }
148149
};
149150

150151
namespace Utils {
@@ -232,10 +233,10 @@ void WorldMagModel::Initialize()
232233
MagneticModel.nMaxSecVar = WMM_MAX_SECULAR_VARIATION_MODEL_DEGREES;
233234
MagneticModel.SecularVariationUsed = 0;
234235

235-
// Really, Really needs to be read from a file - out of date in 2015 at latest
236+
// Really, Really needs to be read from a file - out of date in 2020 at latest
236237
MagneticModel.EditionDate = 5.7863328170559505e-307;
237-
MagneticModel.epoch = 2010.0;
238-
sprintf(MagneticModel.ModelName, "WMM-2010");
238+
MagneticModel.epoch = 2015.0;
239+
sprintf(MagneticModel.ModelName, "WMM-2015v2");
239240
}
240241

241242

0 commit comments

Comments
 (0)