AP_Declination: added generation of field tables

we can re-generate with a python script. This also extends the tables
from -90 to +90 latitude
This commit is contained in:
Andrew Tridgell 2017-11-01 21:34:38 +11:00
parent 03b1fdca97
commit 444588aaef
4 changed files with 175 additions and 55 deletions

View File

@ -34,13 +34,6 @@
*/
bool AP_Declination::get_mag_field_ef(float latitude_deg, float longitude_deg, float &intensity_gauss, float &declination_deg, float &inclination_deg)
{
/* set this always to the sampling in degrees for the table below */
const float SAMPLING_RES = 10.0f;
const float SAMPLING_MIN_LAT = -60.0f;
const float SAMPLING_MAX_LAT = 60.0f;
const float SAMPLING_MIN_LON = -180.0f;
const float SAMPLING_MAX_LON = 180.0f;
bool valid_input_data = true;
/* round down to nearest sampling resolution */

View File

@ -22,7 +22,13 @@ public:
static float get_declination(float latitude_deg, float longitude_deg);
private:
static const float declination_table[13][37];
static const float inclination_table[13][37];
static const float intensity_table[13][37];
static const float SAMPLING_RES;
static const float SAMPLING_MIN_LAT;
static const float SAMPLING_MAX_LAT;
static const float SAMPLING_MIN_LON;
static const float SAMPLING_MAX_LON;
static const float declination_table[19][37];
static const float inclination_table[19][37];
static const float intensity_table[19][37];
};

View File

@ -0,0 +1,95 @@
#!/usr/bin/env python
'''
generate field tables from IGRF12
'''
import pyigrf12 as igrf
import numpy as np
import datetime
import os.path
import sys
from math import sqrt, pi, atan2, asin
if not os.path.isfile("AP_Declination.h"):
print("Please run this tool from the AP_Declination directory")
sys.exit(1)
def field_to_angles(x,y,z):
intensity = sqrt(x**2+y**2+z**2)
r2d = 180.0 / pi
declination = r2d * atan2(y, x)
inclination = r2d * asin(z / intensity)
return [intensity, inclination, declination]
isv = 0
date = datetime.datetime.now()
itype = 1
alt = 0.0
SAMPLING_RES = 10
SAMPLING_MIN_LAT = -90
SAMPLING_MAX_LAT = 90
SAMPLING_MIN_LON = -180
SAMPLING_MAX_LON = 180
NUM_LAT = 1 + (SAMPLING_MAX_LAT - SAMPLING_MIN_LAT) / SAMPLING_RES
NUM_LON = 1 + (SAMPLING_MAX_LON - SAMPLING_MIN_LON) / SAMPLING_RES
intensity_table = np.empty((NUM_LAT, NUM_LON))
inclination_table = np.empty((NUM_LAT, NUM_LON))
declination_table = np.empty((NUM_LAT, NUM_LON))
for i in range(NUM_LAT):
for j in range(NUM_LON):
lat = SAMPLING_MIN_LAT + i*SAMPLING_RES
lon = SAMPLING_MIN_LON + j*SAMPLING_RES
x, y, z, f, d = igrf.gridigrf12(date, isv, itype, alt, lat, lon)
intensity, I, D = field_to_angles(x, y, z)
intensity_table[i][j] = intensity * 0.00001
inclination_table[i][j] = I
declination_table[i][j] = D
tfile = open("tables.cpp",'w')
tfile.write('''// this is an auto-generated file from the IGRF tables. Do not edit
// To re-generate run generate/generate.py
#include "AP_Declination.h"
''')
tfile.write('''
const float AP_Declination::SAMPLING_RES = %u;
const float AP_Declination::SAMPLING_MIN_LAT = %u;
const float AP_Declination::SAMPLING_MAX_LAT = %u;
const float AP_Declination::SAMPLING_MIN_LON = %u;
const float AP_Declination::SAMPLING_MAX_LON = %u;
''' % (SAMPLING_RES,
SAMPLING_MIN_LAT,
SAMPLING_MAX_LAT,
SAMPLING_MIN_LON,
SAMPLING_MAX_LON))
def write_table(name, table):
'''write one table'''
tfile.write("const float AP_Declination::%s[%u][%u] = {\n" % (name, NUM_LAT, NUM_LON));
for i in range(NUM_LAT):
tfile.write(" {")
for j in range(NUM_LON):
tfile.write("%.5f" % table[i][j])
if j != NUM_LON-1:
tfile.write(",")
tfile.write("}")
if i != NUM_LAT-1:
tfile.write(",")
tfile.write("\n")
tfile.write("};\n\n")
write_table('declination_table', declination_table)
write_table('inclination_table', inclination_table)
write_table('intensity_table', intensity_table)
tfile.close()

View File

@ -1,52 +1,78 @@
// this is an auto-generated file from the IGRF tables. Do not edit
// To re-generate run generate/generate.py
#include "AP_Declination.h"
/* table data containing magnetic declination angle in degrees */
const float AP_Declination::declination_table[13][37] = {
{47.225,46.016,44.6,43.214,41.929,40.625,38.996,36.648,33.246,28.649,22.973,16.599,10.096,4.0412,-1.2113,-5.7129,-9.9239,-14.505,-19.992,-26.538,-33.881,-41.531,-48.995,-55.908,-62.043,-67.26,-71.433,-74.32,-75.32,-72.759,-61.089,-22.66,24.673,41.679,46.715,47.77,47.225},
{30.663,30.935,30.729,30.365,30.083,29.989,29.903,29.306,27.493,23.864,18.229,11.012,3.2503,-3.7771,-9.1638,-12.793,-15.299,-17.753,-21.275,-26.491,-33.098,-40.129,-46.619,-51.911,-55.576,-57.256,-56.482,-52.464,-44.092,-30.765,-14.236,1.4682,13.543,21.705,26.727,29.465,30.663},
{22.141,22.67,22.786,22.665,22.457,22.365,22.478,22.512,21.659,18.814,13.22,5.1441,-3.8724,-11.749,-17.208,-20.303,-21.777,-22.354,-23.04,-25.422,-30.143,-35.947,-41.114,-44.536,-45.603,-43.943,-39.28,-31.541,-21.622,-11.631,-3.1023,3.9413,9.8774,14.757,18.445,20.858,22.141},
{16.701,17.175,17.415,17.473,17.283,16.943,16.689,16.566,15.935,13.436,7.8847,-0.52637,-9.7982,-17.399,-22.182,-24.63,-25.544,-24.89,-22.583,-20.489,-21.371,-25.128,-29.294,-31.76,-31.569,-28.686,-23.466,-16.487,-9.2421,-3.5196,0.52944,4.0043,7.5112,10.847,13.654,15.633,16.701},
{13.062,13.307,13.488,13.647,13.552,13.138,12.644,12.281,11.511,8.9083,3.288,-4.9363,-13.534,-20.108,-23.761,-24.943,-24.267,-21.633,-16.975,-11.895,-9.3052,-10.608,-14.22,-17.235,-17.896,-16.21,-12.734,-7.944,-3.1917,-0.09448,1.5925,3.3685,5.7977,8.374,10.643,12.277,13.062},
{10.819,10.774,10.744,10.873,10.857,10.513,10.051,9.6504,8.6623,5.7203,-0.00103,-7.7113,-15.239,-20.543,-22.747,-22.021,-19.117,-14.884,-10.06,-5.4668,-2.2918,-1.8711,-4.2049,-7.1881,-8.7089,-8.4387,-6.7419,-3.8048,-0.7327,0.90936,1.399,2.3853,4.3796,6.6682,8.7425,10.241,10.819},
{9.6261,9.4267,9.2035,9.2862,9.3524,9.1115,8.7204,8.235,6.8708,3.4733,-2.2704,-9.2885,-15.646,-19.575,-20.227,-17.864,-13.663,-9.1469,-5.2757,-2.071,0.49345,1.5251,0.29098,-2.0644,-3.6913,-4.1179,-3.5596,-1.9862,-0.1684,0.55548,0.42539,1.019,2.8249,5.1073,7.319,8.9998,9.6261},
{8.9369,8.9745,8.8157,9.0087,9.2615,9.1408,8.6708,7.7842,5.7199,1.6936,-4.0873,-10.373,-15.479,-17.961,-17.333,-14.207,-9.8358,-5.6345,-2.4989,-0.22009,1.7216,2.8156,2.1698,0.36849,-1.0742,-1.6949,-1.7318,-1.1504,-0.42435,-0.50061,-1.1161,-0.88856,0.69851,3.0638,5.6417,7.8392,8.9369},
{8.0661,8.9128,9.3097,9.8875,10.445,10.466,9.7864,8.2288,5.1818,0.28672,-5.7524,-11.438,-15.264,-16.348,-14.841,-11.596,-7.5597,-3.7288,-0.91243,0.96946,2.51,3.5079,3.1926,1.8339,0.62026,-0.01417,-0.36046,-0.53631,-0.84781,-1.8165,-3.0616,-3.3677,-2.1514,0.22612,3.1996,6.0876,8.0661},
{6.6045,8.7101,10.209,11.491,12.418,12.553,11.622,9.3409,5.2254,-0.73322,-7.3408,-12.717,-15.505,-15.494,-13.422,-10.206,-6.4719,-2.8539,-0.05159,1.8185,3.2182,4.1923,4.2452,3.4363,2.5284,1.8671,1.1902,0.25353,-1.1684,-3.2141,-5.2908,-6.2436,-5.4483,-3.1334,0.11904,3.6145,6.6045},
{4.8686,8.2538,11.062,13.264,14.651,14.898,13.714,10.725,5.4958,-1.7139,-9.1709,-14.568,-16.765,-16.116,-13.666,-10.317,-6.5773,-2.906,0.14042,2.3482,3.9956,5.2703,5.9678,5.9805,5.5419,4.7751,3.4951,1.4836,-1.3442,-4.7282,-7.762,-9.283,-8.7476,-6.4234,-2.9491,1.0086,4.8686},
{3.5965,7.9367,11.797,14.893,16.888,17.409,16.035,12.22,5.5033,-3.468,-12.144,-17.817,-19.749,-18.751,-15.97,-12.268,-8.1724,-4.1017,-0.46224,2.551,5.0589,7.2268,8.9817,10.082,10.298,9.416,7.21,3.5705,-1.2522,-6.3856,-10.448,-12.313,-11.73,-9.1743,-5.367,-0.9513,3.5965},
{3.0633,8.0696,12.667,16.527,19.239,20.252,18.783,13.765,4.4393,-7.6723,-18.2,-24.093,-25.554,-23.984,-20.61,-16.25,-11.425,-6.5023,-1.759,2.6571,6.7294,10.458,13.708,16.148,17.3,16.587,13.441,7.6143,-0.14961,-7.7957,-13.103,-15.143,-14.253,-11.262,-6.9868,-2.0631,3.0633}
const float AP_Declination::SAMPLING_RES = 10;
const float AP_Declination::SAMPLING_MIN_LAT = -90;
const float AP_Declination::SAMPLING_MAX_LAT = 90;
const float AP_Declination::SAMPLING_MIN_LON = -180;
const float AP_Declination::SAMPLING_MAX_LON = 180;
const float AP_Declination::declination_table[19][37] = {
{149.48915,139.48915,129.48915,119.48915,109.48915,99.48915,89.48915,79.48915,69.48915,59.48915,49.48915,39.48915,29.48915,19.48915,9.48915,-0.51085,-10.51085,-20.51085,-30.51085,-40.51085,-50.51085,-60.51085,-70.51085,-80.51085,-90.51085,-100.51085,-110.51085,-120.51085,-130.51085,-140.51085,-150.51085,-160.51085,-170.51085,179.48915,169.48915,159.48915,149.48915},
{129.78786,117.49783,106.32465,96.11860,86.69233,77.86210,69.46785,61.38105,53.50573,45.77532,38.14649,30.59062,23.08434,15.60078,8.10383,0.54707,-7.12221,-14.95526,-22.99363,-31.26338,-39.77449,-48.52552,-57.51240,-66.73893,-76.22674,-86.02316,-96.20634,-106.88648,-118.20119,-130.29940,-143.30499,-157.25238,-172.00378,172.80281,157.70235,143.23800,129.78786},
{85.54290,77.62606,71.27452,65.84783,60.93041,56.20460,51.41332,46.36442,40.94831,35.15019,29.04674,22.78323,16.52944,10.41915,4.49032,-1.34549,-7.28108,-13.54206,-20.29863,-27.60344,-35.38138,-43.46996,-51.68558,-59.88437,-67.99903,-76.05296,-84.16740,-92.58465,-101.74306,-112.47997,-126.55925,-147.86692,178.02180,138.97328,112.28002,96.22636,85.54290},
{47.41972,46.16844,44.74174,43.35757,42.05767,40.71170,39.02550,36.62042,33.17506,28.55329,22.87147,16.50457,10.01621,3.98413,-1.24389,-5.73406,-9.95531,-14.55810,-20.06833,-26.65043,-34.05190,-41.75998,-49.24936,-56.14219,-62.22615,-67.38980,-71.52421,-74.38719,-75.35748,-72.73233,-60.85402,-21.71765,25.49295,42.16965,47.06686,48.03403,47.41972},
{30.81961,31.04382,30.80208,30.42274,30.13278,30.03032,29.93760,29.32485,27.47345,23.79272,18.10865,10.85479,3.08018,-3.90983,-9.20456,-12.74129,-15.22491,-17.72663,-21.32243,-26.63670,-33.35623,-40.45285,-46.92112,-52.12431,-55.68174,-57.27286,-56.44055,-52.36759,-43.90872,-30.51668,-14.00976,1.65447,13.70540,21.85598,26.89390,29.64495,30.81961},
{22.25711,22.78126,22.87422,22.71974,22.47552,22.36095,22.48039,22.51926,21.63074,18.72437,13.07552,4.96418,-4.07292,-11.93879,-17.32741,-20.32258,-21.74831,-22.32231,-23.00954,-25.47022,-30.32673,-36.18216,-41.30681,-44.64909,-45.61345,-43.84248,-39.09738,-31.30097,-21.36353,-11.46480,-3.05745,3.96284,9.91567,14.79415,18.50257,20.95322,22.25711},
{16.75922,17.24525,17.47518,17.50054,17.28198,16.92432,16.67586,16.55365,15.87856,13.31213,7.69847,-0.75054,-10.02953,-17.62615,-22.36151,-24.69866,-25.51506,-24.77431,-22.35171,-20.29995,-21.39339,-25.27072,-29.43698,-31.83625,-31.50764,-28.46972,-23.19053,-16.24303,-9.06130,-3.46153,0.47431,3.94378,7.48656,10.84839,13.69311,15.68914,16.75922},
{13.10360,13.36733,13.52824,13.64019,13.52401,13.09166,12.59871,12.23546,11.42218,8.77292,3.08231,-5.20896,-13.78064,-20.29136,-23.87272,-24.93644,-24.17580,-21.48118,-16.71573,-11.63512,-9.20596,-10.66651,-14.32709,-17.27641,-17.80325,-15.99627,-12.50028,-7.78062,-3.10430,-0.09885,1.49951,3.26319,5.71704,8.34290,10.68972,12.33562,13.10360},
{10.84809,10.83227,10.78150,10.86643,10.83392,10.45613,9.98881,9.58453,8.53743,5.55359,-0.22321,-7.98094,-15.43141,-20.63619,-22.77132,-21.95900,-19.00981,-14.72299,-9.80927,-5.20855,-2.11633,-1.82558,-4.23062,-7.17517,-8.63645,-8.30663,-6.57465,-3.68763,-0.69661,0.86680,1.28308,2.25896,4.28209,6.62589,8.77990,10.28630,10.84809},
{9.64377,9.46163,9.21459,9.26888,9.32519,9.04463,8.65076,8.15948,6.72287,3.27621,-2.50179,-9.51748,-15.76649,-19.59754,-20.17865,-17.75239,-13.54412,-8.98205,-5.04586,-1.85481,0.66394,1.61354,0.31265,-2.02979,-3.64762,-4.04537,-3.43121,-1.89035,-0.15825,0.49234,0.29414,0.88200,2.73499,5.06971,7.33957,9.02870,9.64377},
{8.96405,9.00000,8.81001,8.97026,9.20809,9.06342,8.58491,7.67326,5.55753,1.50903,-4.29149,-10.55092,-15.54263,-17.92467,-17.21133,-14.04494,-9.71288,-5.49947,-2.31980,-0.05923,1.86276,2.92687,2.23706,0.42776,-1.02940,-1.63873,-1.63273,-1.08556,-0.43244,-0.55955,-1.23379,-1.02181,0.60547,3.01037,5.63515,7.86408,8.96405},
{8.05640,8.90466,9.28810,9.83083,10.37634,10.40716,9.70679,8.08366,5.00105,0.11883,-5.91722,-11.55042,-15.26220,-16.26313,-14.68806,-11.41306,-7.42063,-3.60143,-0.76060,1.10622,2.62831,3.61351,3.27702,1.90816,0.67695,0.04442,-0.28027,-0.48878,-0.85799,-1.86772,-3.16099,-3.48302,-2.23923,0.16040,3.16124,6.07564,8.05640},
{6.52276,8.62128,10.11791,11.37497,12.30532,12.48361,11.54966,9.20095,5.05082,-0.89063,-7.46434,-12.74680,-15.42609,-15.36888,-13.25996,-10.00991,-6.29397,-2.69958,0.10633,1.96628,3.33732,4.28479,4.32741,3.52125,2.60143,1.93142,1.26195,0.30244,-1.17626,-3.28010,-5.39505,-6.33940,-5.51154,-3.18356,0.07116,3.55779,6.52276},
{4.75334,8.09583,10.87918,13.06518,14.46420,14.75413,13.59145,10.58902,5.36067,-1.82065,-9.22011,-14.51237,-16.61978,-15.93767,-13.46226,-10.08794,-6.36526,-2.73377,0.30187,2.51398,4.14251,5.38440,6.07295,6.09441,5.63928,4.83778,3.53824,1.50580,-1.36846,-4.80253,-7.84921,-9.34453,-8.78718,-6.46379,-2.99721,0.93918,4.75334},
{3.42242,7.68589,11.50587,14.60504,16.62496,17.16804,15.80396,12.01032,5.36147,-3.50497,-12.07024,-17.64140,-19.50601,-18.48013,-15.68760,-11.99023,-7.92503,-3.88728,-0.24904,2.77735,5.26587,7.38220,9.09922,10.18991,10.39045,9.46905,7.22286,3.55672,-1.28531,-6.42711,-10.48140,-12.33727,-11.76144,-9.22140,-5.43057,-1.05290,3.42242},
{2.80496,7.70652,12.23751,16.08221,18.80172,19.80973,18.31805,13.32007,4.15873,-7.64227,-17.89467,-23.65492,-25.08688,-23.54044,-20.21048,-15.89560,-11.10184,-6.18662,-1.43182,2.98177,7.00706,10.65482,13.83429,16.24689,17.39864,16.68254,13.51145,7.64653,-0.15189,-7.81966,-13.14029,-15.19204,-14.31118,-11.32850,-7.07898,-2.21969,2.80496},
{2.49253,7.95002,13.06682,17.51672,20.80511,22.10471,19.97984,12.20707,-2.53716,-19.42222,-30.59123,-34.81423,-34.41114,-31.32290,-26.69284,-21.17317,-15.15781,-8.91048,-2.62543,3.54953,9.49696,15.09472,20.15786,24.36994,27.20745,27.84003,25.03880,17.48172,5.53518,-6.63853,-14.48681,-17.24895,-16.27539,-12.97126,-8.33796,-3.03829,2.49253},
{1.68074,7.10831,12.12169,16.13873,18.14982,16.09364,5.75962,-16.64948,-39.66861,-50.58641,-52.65742,-50.26094,-45.55641,-39.56192,-32.79914,-25.56277,-18.03655,-10.34759,-2.59421,5.13786,12.76342,20.18519,27.27649,33.85315,39.62220,44.07867,46.28668,44.43964,35.43016,17.54620,-1.13170,-11.32715,-14.00461,-12.43582,-8.64374,-3.72312,1.68074},
{178.75072,-171.24928,-161.24928,-151.24928,-141.24928,-131.24928,-121.24928,-111.24928,-101.24928,-91.24928,-81.24928,-71.24928,-61.24928,-51.24928,-41.24928,-31.24928,-21.24928,-11.24928,-1.24928,8.75072,18.75072,28.75072,38.75072,48.75072,58.75072,68.75072,78.75072,88.75072,98.75072,108.75072,118.75072,128.75072,138.75072,148.75072,158.75072,168.75072,178.75072}
};
/* table data containing magnetic inclination angle in degrees */
const float AP_Declination::inclination_table[13][37] = {
{-77.62,-75.621,-73.703,-71.805,-69.84,-67.703,-65.317,-62.69,-59.968,-57.429,-55.437,-54.313,-54.191,-54.921,-56.118,-57.329,-58.214,-58.643,-58.712,-58.692,-58.934,-59.74,-61.257,-63.461,-66.211,-69.329,-72.657,-76.065,-79.441,-82.661,-85.506,-87.208,-86.36,-84.237,-81.951,-79.73,-77.62},
{-71.644,-69.722,-67.862,-66.038,-64.191,-62.202,-59.91,-57.194,-54.113,-51.035,-48.639,-47.697,-48.625,-51.137,-54.39,-57.488,-59.821,-61.085,-61.237,-60.574,-59.768,-59.618,-60.616,-62.761,-65.711,-69.044,-72.416,-75.556,-78.175,-79.936,-80.593,-80.201,-79.054,-77.45,-75.591,-73.62,-71.644},
{-64.379,-62.435,-60.505,-58.564,-56.621,-54.665,-52.574,-50.107,-47.083,-43.756,-41.093,-40.479,-42.721,-47.229,-52.537,-57.471,-61.513,-64.379,-65.669,-65.164,-63.395,-61.672,-61.269,-62.55,-65.012,-67.881,-70.533,-72.526,-73.547,-73.61,-73.075,-72.251,-71.191,-69.844,-68.201,-66.334,-64.379},
{-54.946,-52.868,-50.792,-48.616,-46.372,-44.193,-42.1,-39.8,-36.829,-33.264,-30.385,-30.266,-34.046,-40.628,-47.854,-54.358,-59.856,-64.283,-67.119,-67.68,-65.968,-63.1,-60.894,-60.535,-61.761,-63.584,-65.189,-66.021,-65.775,-64.769,-63.698,-62.826,-61.898,-60.654,-59.023,-57.056,-54.946},
{-42.121,-39.754,-37.516,-35.153,-32.626,-30.14,-27.828,-25.343,-22.028,-18.017,-15.062,-15.744,-21.265,-30.112,-39.56,-47.788,-54.306,-59.187,-62.247,-63.04,-61.444,-58.163,-54.854,-53.154,-53.207,-54.092,-55.004,-55.267,-54.381,-52.801,-51.562,-50.874,-50.1,-48.81,-46.97,-44.643,-42.121},
{-25.138,-22.301,-19.912,-17.531,-14.951,-12.37,-9.9146,-7.1192,-3.3525,0.86465,3.4285,1.8632,-4.8485,-15.374,-26.858,-36.666,-43.599,-47.78,-49.783,-49.893,-48.024,-44.445,-40.638,-38.414,-38.009,-38.508,-39.247,-39.498,-38.5,-36.768,-35.692,-35.432,-34.911,-33.532,-31.323,-28.369,-25.138},
{-4.9962,-1.7126,0.71401,2.8847,5.219,7.5873,9.91,12.689,16.306,19.897,21.553,19.47,12.842,2.3904,-9.4406,-19.56,-26.119,-29.178,-29.919,-29.286,-27.194,-23.471,-19.459,-17.133,-16.698,-17.132,-17.899,-18.371,-17.66,-16.255,-15.708,-16.114,-16.082,-14.846,-12.422,-8.9145,-4.9962},
{14.869,18.185,20.462,22.293,24.256,26.334,28.442,30.896,33.762,36.172,36.784,34.538,28.924,20.356,10.616,2.2154,-3.0793,-5.0649,-4.8917,-3.7875,-1.7639,1.5757,5.1722,7.2324,7.5774,7.2059,6.5718,6.0595,6.3467,7.0334,6.8289,5.7043,4.9959,5.5796,7.5845,10.93,14.869},
{31.164,34.006,36.041,37.647,39.383,41.332,43.382,45.569,47.716,49.104,48.9,46.613,42.181,36.116,29.611,24.084,20.599,19.485,20.056,21.274,22.956,25.416,28.017,29.529,29.786,29.536,29.184,28.895,28.929,28.95,28.145,26.531,25.104,24.717,25.695,28.042,31.164},
{43.422,45.479,47.235,48.815,50.558,52.55,54.665,56.761,58.528,59.374,58.753,56.548,53.102,49.074,45.208,42.092,40.16,39.643,40.248,41.324,42.606,44.197,45.811,46.815,47.078,47.021,46.948,46.916,46.893,46.555,45.437,43.596,41.72,40.533,40.438,41.516,43.422},
{53.102,54.356,55.814,57.449,59.331,61.427,63.597,65.639,67.216,67.832,67.107,65.133,62.449,59.699,57.346,55.602,54.591,54.397,54.884,55.703,56.613,57.588,58.539,59.25,59.652,59.904,60.137,60.33,60.32,59.812,58.553,56.66,54.639,53.044,52.229,52.294,53.102},
{61.877,62.601,63.785,65.363,67.255,69.332,71.425,73.313,74.675,75.099,74.352,72.651,70.529,68.494,66.843,65.687,65.049,64.919,65.198,65.705,66.286,66.893,67.525,68.165,68.802,69.44,70.041,70.469,70.5,69.901,68.591,66.775,64.856,63.228,62.144,61.699,61.877},
{70.565,71.043,71.969,73.282,74.89,76.669,78.458,80.035,81.082,81.248,80.439,78.963,77.256,75.651,74.334,73.378,72.792,72.544,72.57,72.785,73.123,73.565,74.13,74.845,75.713,76.683,77.618,78.289,78.419,77.836,76.61,75.025,73.414,72.04,71.067,70.568,70.565}
const float AP_Declination::inclination_table[19][37] = {
{-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811,-72.16811},
{-78.43537,-77.67390,-76.75455,-75.71947,-74.60491,-73.44369,-72.26787,-71.11018,-70.00384,-68.98058,-68.06762,-67.28462,-66.64194,-66.14097,-65.77703,-65.54379,-65.43778,-65.46140,-65.62337,-65.93647,-66.41354,-67.06292,-67.88474,-68.86885,-69.99440,-71.23084,-72.53931,-73.87404,-75.18319,-76.40958,-77.49190,-78.36793,-78.98142,-79.29287,-79.28997,-78.99065,-78.43537},
{-81.03155,-79.21115,-77.38082,-75.52149,-73.60766,-71.62335,-69.57756,-67.51667,-65.52782,-63.72773,-62.23624,-61.14028,-60.46168,-60.14561,-60.07982,-60.13914,-60.23431,-60.34324,-60.51447,-60.84614,-61.45069,-62.41792,-63.78943,-65.55289,-67.65434,-70.01820,-72.56354,-75.21107,-77.88171,-80.48824,-82.91356,-84.94333,-86.10379,-85.84715,-84.53455,-82.83348,-81.03155},
{-77.58321,-75.58719,-73.66808,-71.76445,-69.79116,-67.65022,-65.26646,-62.64703,-59.93284,-57.40554,-55.43015,-54.33163,-54.23966,-54.99274,-56.19107,-57.37780,-58.22339,-58.61427,-58.65193,-58.60862,-58.84210,-59.66405,-61.22202,-63.47448,-66.26004,-69.39188,-72.71586,-76.11542,-79.48599,-82.70401,-85.54749,-87.22935,-86.34005,-84.20181,-81.91232,-79.69066,-77.58321},
{-71.62014,-69.68678,-67.82026,-65.99522,-64.15449,-62.18010,-59.89832,-57.17839,-54.08844,-51.01280,-48.64170,-47.74545,-48.73270,-51.29808,-54.57085,-57.63916,-59.91209,-61.11939,-61.22782,-60.52806,-59.70406,-59.57133,-60.61853,-62.81596,-65.79445,-69.12508,-72.47914,-75.60315,-78.20626,-79.94545,-80.58744,-80.19120,-79.04525,-77.44444,-75.58737,-73.60942,-71.62014},
{-64.37458,-62.42349,-60.48280,-58.53434,-56.59574,-54.65492,-52.57149,-50.09069,-47.05504,-43.75155,-41.14405,-40.58976,-42.87955,-47.43099,-52.77985,-57.72329,-61.73645,-64.55448,-65.77263,-65.17428,-63.34011,-61.61881,-61.26441,-62.60622,-65.10820,-67.97045,-70.58396,-72.53818,-73.52256,-73.55729,-73.02818,-72.22674,-71.17754,-69.83759,-68.20165,-66.33446,-64.37458},
{-54.95362,-52.86937,-50.77455,-48.59135,-46.35264,-44.18248,-42.09352,-39.78111,-36.80988,-33.28407,-30.48149,-30.46704,-34.33534,-40.96439,-48.21816,-54.71606,-60.16157,-64.52631,-67.27736,-67.71279,-65.89417,-62.99243,-60.82360,-60.54135,-61.82935,-63.64494,-65.18701,-65.96443,-65.68605,-64.66588,-63.62092,-62.79392,-61.89647,-60.67470,-59.04596,-57.06602,-54.95362},
{-42.11522,-39.72260,-37.43734,-35.07220,-32.56139,-30.09449,-27.81002,-25.32725,-22.02537,-18.05273,-15.15728,-15.99496,-21.68656,-30.58968,-40.03069,-48.20583,-54.63506,-59.45067,-62.44730,-63.14120,-61.44402,-58.10349,-54.79925,-53.13858,-53.21931,-54.08393,-54.93205,-55.14450,-54.24219,-52.66408,-51.46304,-50.83638,-50.11654,-48.87366,-47.02670,-44.65357,-42.11522},
{-25.13589,-22.27508,-19.83009,-17.44653,-14.86615,-12.29237,-9.87405,-7.07160,-3.32435,0.82118,3.30237,1.55539,-5.33622,-15.89570,-27.35435,-37.10332,-43.95683,-48.08143,-49.99461,-49.98534,-48.00300,-44.34937,-40.54902,-38.34988,-37.94791,-38.44772,-39.13705,-39.31745,-38.29597,-36.57693,-35.56231,-35.39122,-34.93566,-33.60091,-31.37474,-28.36863,-25.13589},
{-4.98939,-1.68389,0.78485,2.95465,5.30745,7.67447,9.96109,12.75994,16.35669,19.84818,21.38651,19.12823,12.35881,1.88035,-9.93043,-19.97047,-26.45994,-29.48133,-30.11076,-29.34503,-27.14543,-23.33732,-19.32395,-17.01523,-16.58140,-17.04210,-17.76457,-18.13738,-17.39583,-16.01652,-15.55121,-16.07858,-16.11825,-14.90610,-12.46343,-8.91070,-4.98939},
{14.90067,18.26805,20.58659,22.41774,24.37779,26.43224,28.50252,30.94870,33.77728,36.11161,36.63125,34.24550,28.51749,19.90875,10.19340,1.90476,-3.32082,-5.30499,-5.05516,-3.85678,-1.76970,1.64706,5.27890,7.35360,7.71192,7.32216,6.73159,6.30113,6.59583,7.25551,6.99335,5.75975,4.97432,5.52477,7.52495,10.91309,14.90067},
{31.18722,34.06796,36.13869,37.75497,39.47409,41.40658,43.44711,45.60863,47.69472,49.02811,48.76602,46.38872,41.88414,35.79022,29.30640,23.87156,20.44957,19.33545,19.94837,21.22497,22.94286,25.44912,28.08753,29.62555,29.89989,29.64988,29.33088,29.08840,29.12248,29.13019,28.29764,26.61559,25.13007,24.70598,25.66011,28.02594,31.18722},
{43.43358,45.48463,47.25530,48.84592,50.57877,52.57147,54.70535,56.78854,58.50077,59.29233,58.61955,56.36134,52.89307,48.86161,45.00126,41.92998,40.05009,39.56071,40.20289,41.32785,42.64009,44.24646,45.86649,46.87852,47.15121,47.10076,47.05197,47.05792,47.05028,46.70265,45.55182,43.66559,41.76242,40.56356,40.45856,41.53365,43.43358},
{53.14043,54.39035,55.84929,57.47804,59.33825,61.42103,63.59173,65.62454,67.17453,67.75640,66.99243,64.98976,62.30287,59.55943,57.21020,55.48986,54.51643,54.34889,54.85520,55.69661,56.62553,57.60578,58.55731,59.27958,59.70394,59.97261,60.22285,60.43699,60.43820,59.91561,58.62239,56.70065,54.67010,53.07707,52.26365,52.33240,53.14043},
{61.93272,62.65124,63.81990,65.37368,67.23896,69.29694,71.37726,73.25407,74.60393,75.01903,74.26202,72.55376,70.43269,68.40239,66.76201,65.62436,65.00743,64.88664,65.16735,65.68067,66.27665,66.89980,67.54779,68.20941,68.87023,69.52259,70.12417,70.54746,70.57212,69.96221,68.64236,66.82238,64.90352,63.27494,62.19056,61.75056,61.93272},
{70.62389,71.08218,71.97959,73.26483,74.85377,76.62138,78.39949,79.96105,80.99077,81.15074,80.35266,78.89264,77.19910,75.60334,74.29387,73.34721,72.77113,72.53334,72.57147,72.80518,73.16584,73.62600,74.20029,74.91748,75.78352,76.74781,77.67562,78.33862,78.46380,77.87967,76.65920,75.08265,73.47827,72.10858,71.13646,70.63659,70.62389},
{78.92343,79.22487,79.82915,80.70029,81.78339,82.99821,84.22482,85.26823,85.82173,85.61396,84.74035,83.53279,82.25470,81.06248,80.04425,79.24459,78.67797,78.33793,78.20521,78.25664,78.47505,78.85637,79.40940,80.14540,81.05908,82.10384,83.16211,84.01533,84.36717,84.03603,83.15410,82.02459,80.90670,79.96659,79.29796,78.94571,78.92343},
{86.09469,86.21617,86.48253,86.87559,87.36588,87.90293,88.38405,88.59598,88.34293,87.75267,87.02784,86.27451,85.54734,84.88060,84.29842,83.81811,83.45152,83.20608,83.08594,83.09317,83.22868,83.49249,83.88297,84.39499,85.01711,85.72769,86.48920,87.23690,87.85414,88.15298,88.01463,87.58849,87.09046,86.64565,86.31499,86.12754,86.09469},
{88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615,88.07615}
};
/* table data containing magnetic intensity in Gauss */
const float AP_Declination::intensity_table[13][37] = {
{0.62195,0.60352,0.58407,0.56378,0.54235,0.5192,0.49375,0.46596,0.43661,0.40734,0.38017,0.35689,0.33841,0.32458,0.31447,0.30707,0.302,0.29983,0.30197,0.31023,0.32606,0.35005,0.38167,0.41941,0.4611,0.50431,0.54648,0.58515,0.61805,0.64341,0.66031,0.66875,0.6695,0.66384,0.65315,0.6388,0.62195},
{0.58699,0.56471,0.54222,0.51977,0.49699,0.47285,0.44606,0.4159,0.38299,0.3495,0.31875,0.29401,0.2771,0.26745,0.26251,0.25941,0.25657,0.25431,0.25469,0.26104,0.27676,0.30379,0.34157,0.38741,0.43751,0.48812,0.53602,0.57843,0.61292,0.63771,0.65218,0.65693,0.65331,0.64296,0.62744,0.6083,0.58699},
{0.54115,0.51716,0.49337,0.47003,0.44701,0.42359,0.39839,0.37018,0.33882,0.30605,0.27573,0.25265,0.23995,0.23673,0.23869,0.24146,0.24284,0.24258,0.24188,0.24416,0.25504,0.27952,0.31847,0.36815,0.42238,0.47534,0.52306,0.56286,0.59276,0.61199,0.62133,0.62218,0.61584,0.60338,0.58585,0.56455,0.54115},
{0.48901,0.46546,0.44226,0.41941,0.39712,0.37544,0.35375,0.33083,0.30548,0.27808,0.25206,0.23294,0.22466,0.22623,0.23284,0.24043,0.24771,0.25392,0.25756,0.2592,0.26416,0.28046,0.31301,0.35947,0.41201,0.4626,0.5061,0.53933,0.56053,0.57088,0.5738,0.57145,0.56393,0.55115,0.53361,0.51231,0.48901},
{0.43275,0.41204,0.39186,0.37191,0.35253,0.33441,0.31775,0.3017,0.28442,0.26511,0.24603,0.23176,0.22605,0.22892,0.2372,0.24818,0.2613,0.27524,0.28613,0.2912,0.29315,0.29999,0.32028,0.35581,0.39969,0.44294,0.47952,0.50496,0.51672,0.51792,0.51496,0.51028,0.50215,0.48957,0.47314,0.45367,0.43275},
{0.37936,0.36387,0.34916,0.33493,0.32156,0.30968,0.29963,0.29094,0.28194,0.27119,0.25923,0.24862,0.24246,0.2429,0.25003,0.26227,0.27786,0.29465,0.30882,0.3168,0.31873,0.3201,0.32969,0.35219,0.38333,0.41554,0.44325,0.46129,0.46614,0.4614,0.45461,0.44801,0.43895,0.4265,0.41178,0.39569,0.37936},
{0.34151,0.33271,0.3248,0.31786,0.31251,0.30889,0.30674,0.30563,0.30411,0.30005,0.29252,0.28275,0.27347,0.26836,0.27051,0.27963,0.29265,0.30666,0.31919,0.32782,0.33164,0.33341,0.33926,0.35308,0.37271,0.39367,0.41222,0.42402,0.42574,0.41956,0.41085,0.40143,0.39009,0.37701,0.36387,0.35184,0.34151},
{0.32861,0.32598,0.32444,0.32451,0.32723,0.33225,0.33844,0.34476,0.34925,0.34892,0.34232,0.33071,0.31718,0.30603,0.30142,0.30408,0.3115,0.32118,0.33137,0.34024,0.34686,0.35275,0.36068,0.37146,0.38401,0.39715,0.40907,0.41682,0.418,0.41256,0.40201,0.38791,0.37189,0.35616,0.34293,0.33373,0.32861},
{0.34027,0.34127,0.34464,0.3507,0.36038,0.37294,0.3865,0.39917,0.40815,0.4099,0.40274,0.38831,0.37072,0.3552,0.34582,0.34316,0.34566,0.35218,0.36135,0.37089,0.37971,0.38903,0.39965,0.41036,0.42049,0.43072,0.44044,0.44743,0.44945,0.44455,0.43158,0.41195,0.38966,0.369,0.35302,0.34348,0.34027},
{0.37253,0.3743,0.38082,0.39172,0.4068,0.42456,0.44274,0.45904,0.47046,0.47349,0.4662,0.45016,0.43012,0.41204,0.39986,0.39392,0.39314,0.39717,0.40505,0.41434,0.42357,0.43356,0.44488,0.45654,0.46802,0.47977,0.49115,0.5,0.50357,0.49896,0.48426,0.46097,0.43398,0.40879,0.38917,0.37703,0.37253},
{0.42232,0.42361,0.43153,0.44511,0.46277,0.48222,0.50102,0.51697,0.52763,0.53021,0.5231,0.50749,0.48759,0.46872,0.4545,0.44574,0.44202,0.44314,0.44829,0.45556,0.46359,0.47278,0.48398,0.49721,0.51197,0.52753,0.54226,0.5536,0.55855,0.55434,0.53968,0.51634,0.489,0.46299,0.44215,0.4284,0.42232},
{0.48297,0.48409,0.49144,0.50386,0.51947,0.53592,0.55104,0.56298,0.57002,0.57048,0.5635,0.54997,0.53268,0.51524,0.50048,0.48973,0.48333,0.48125,0.48294,0.48735,0.49374,0.50234,0.51385,0.52856,0.54583,0.56407,0.58089,0.59345,0.59903,0.5957,0.58321,0.56356,0.54058,0.51853,0.50058,0.4885,0.48297},
{0.53888,0.53954,0.54416,0.55185,0.5613,0.57099,0.5795,0.58558,0.58818,0.58651,0.58029,0.57006,0.55723,0.54365,0.53109,0.52078,0.51346,0.50946,0.50872,0.51103,0.51624,0.52445,0.53585,0.55027,0.56682,0.58384,0.59914,0.61041,0.61575,0.61419,0.60607,0.59307,0.5778,0.563,0.55086,0.54264,0.53888}
const float AP_Declination::intensity_table[19][37] = {
{0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798,0.54798},
{0.60857,0.60242,0.59474,0.58573,0.57561,0.56459,0.55290,0.54081,0.52860,0.51660,0.50512,0.49447,0.48496,0.47683,0.47034,0.46569,0.46308,0.46269,0.46466,0.46907,0.47594,0.48514,0.49644,0.50947,0.52373,0.53865,0.55361,0.56796,0.58112,0.59258,0.60195,0.60898,0.61354,0.61564,0.61539,0.61297,0.60857},
{0.63277,0.61993,0.60534,0.58920,0.57158,0.55251,0.53213,0.51075,0.48890,0.46734,0.44691,0.42836,0.41224,0.39881,0.38816,0.38033,0.37552,0.37412,0.37674,0.38400,0.39636,0.41395,0.43639,0.46283,0.49206,0.52261,0.55291,0.58137,0.60652,0.62718,0.64256,0.65236,0.65675,0.65624,0.65157,0.64351,0.63277},
{0.62113,0.60264,0.58315,0.56272,0.54105,0.51764,0.49205,0.46428,0.43507,0.40598,0.37896,0.35575,0.33730,0.32347,0.31336,0.30601,0.30104,0.29900,0.30128,0.30967,0.32569,0.35001,0.38202,0.42007,0.46188,0.50503,0.54711,0.58571,0.61857,0.64390,0.66072,0.66901,0.66954,0.66362,0.65268,0.63811,0.62113},
{0.58635,0.56391,0.54136,0.51883,0.49591,0.47164,0.44479,0.41461,0.38167,0.34820,0.31754,0.29298,0.27631,0.26686,0.26195,0.25869,0.25565,0.25332,0.25375,0.26023,0.27627,0.30382,0.34217,0.38836,0.43850,0.48895,0.53672,0.57911,0.61355,0.63822,0.65255,0.65714,0.65336,0.64286,0.62721,0.60789,0.58635},
{0.54065,0.51642,0.49246,0.46901,0.44596,0.42259,0.39746,0.36921,0.33769,0.30485,0.27460,0.25170,0.23924,0.23627,0.23835,0.24100,0.24219,0.24186,0.24119,0.24359,0.25485,0.27993,0.31945,0.36945,0.42364,0.47635,0.52389,0.56362,0.59333,0.61231,0.62154,0.62234,0.61583,0.60324,0.58568,0.56428,0.54065},
{0.48876,0.46514,0.44180,0.41880,0.39642,0.37473,0.35303,0.32996,0.30444,0.27703,0.25115,0.23217,0.22403,0.22584,0.23272,0.24041,0.24761,0.25371,0.25711,0.25850,0.26361,0.28049,0.31370,0.36074,0.41351,0.46383,0.50690,0.53985,0.56069,0.57072,0.57368,0.57147,0.56384,0.55095,0.53343,0.51209,0.48876},
{0.43260,0.41184,0.39147,0.37140,0.35202,0.33388,0.31718,0.30102,0.28360,0.26423,0.24518,0.23105,0.22559,0.22882,0.23744,0.24853,0.26152,0.27532,0.28595,0.29067,0.29256,0.29978,0.32071,0.35690,0.40110,0.44404,0.48001,0.50508,0.51658,0.51753,0.51465,0.51020,0.50216,0.48970,0.47327,0.45360,0.43260},
{0.37924,0.36364,0.34870,0.33439,0.32106,0.30919,0.29914,0.29042,0.28129,0.27034,0.25824,0.24770,0.24186,0.24276,0.25034,0.26278,0.27833,0.29507,0.30908,0.31677,0.31853,0.32004,0.33011,0.35305,0.38433,0.41630,0.44350,0.46119,0.46590,0.46105,0.45433,0.44793,0.43908,0.42687,0.41212,0.39572,0.37924},
{0.34155,0.33275,0.32470,0.31766,0.31225,0.30850,0.30626,0.30507,0.30338,0.29910,0.29141,0.28159,0.27250,0.26782,0.27053,0.28011,0.29335,0.30736,0.31963,0.32792,0.33149,0.33327,0.33949,0.35363,0.37337,0.39429,0.41256,0.42403,0.42558,0.41938,0.41079,0.40154,0.39030,0.37729,0.36405,0.35186,0.34155},
{0.32870,0.32609,0.32451,0.32445,0.32698,0.33185,0.33794,0.34407,0.34824,0.34776,0.34112,0.32944,0.31599,0.30517,0.30104,0.30424,0.31204,0.32177,0.33178,0.34042,0.34686,0.35275,0.36088,0.37190,0.38459,0.39775,0.40959,0.41718,0.41822,0.41279,0.40237,0.38833,0.37230,0.35647,0.34308,0.33379,0.32870},
{0.34032,0.34110,0.34433,0.35022,0.35967,0.37218,0.38585,0.39836,0.40695,0.40851,0.40130,0.38683,0.36943,0.35426,0.34518,0.34291,0.34581,0.35250,0.36175,0.37135,0.38016,0.38946,0.40010,0.41086,0.42106,0.43129,0.44106,0.44812,0.45015,0.44524,0.43223,0.41251,0.39019,0.36950,0.35342,0.34373,0.34032},
{0.37281,0.37426,0.38053,0.39114,0.40585,0.42345,0.44169,0.45791,0.46912,0.47202,0.46464,0.44859,0.42884,0.41113,0.39916,0.39349,0.39308,0.39736,0.40538,0.41482,0.42415,0.43411,0.44534,0.45703,0.46862,0.48041,0.49184,0.50081,0.50447,0.49976,0.48484,0.46139,0.43444,0.40934,0.38974,0.37753,0.37281},
{0.42290,0.42394,0.43147,0.44457,0.46178,0.48091,0.49955,0.51541,0.52605,0.52872,0.52168,0.50615,0.48648,0.46791,0.45393,0.44546,0.44206,0.44332,0.44847,0.45580,0.46398,0.47324,0.48448,0.49785,0.51280,0.52841,0.54305,0.55429,0.55917,0.55486,0.54011,0.51678,0.48955,0.46361,0.44279,0.42906,0.42290},
{0.48365,0.48437,0.49115,0.50306,0.51833,0.53460,0.54957,0.56138,0.56836,0.56892,0.56211,0.54880,0.53177,0.51461,0.50012,0.48963,0.48344,0.48147,0.48324,0.48785,0.49450,0.50326,0.51478,0.52945,0.54668,0.56482,0.58146,0.59384,0.59931,0.59599,0.58362,0.56415,0.54132,0.51932,0.50140,0.48932,0.48365},
{0.53958,0.53992,0.54411,0.55141,0.56060,0.57015,0.57850,0.58437,0.58679,0.58508,0.57898,0.56903,0.55653,0.54328,0.53097,0.52082,0.51362,0.50972,0.50916,0.51171,0.51713,0.52538,0.53664,0.55083,0.56719,0.58411,0.59937,0.61064,0.61600,0.61448,0.60642,0.59349,0.57830,0.56362,0.55160,0.54345,0.53958},
{0.57263,0.57188,0.57272,0.57473,0.57736,0.57998,0.58194,0.58271,0.58188,0.57919,0.57464,0.56844,0.56106,0.55316,0.54548,0.53875,0.53359,0.53046,0.52968,0.53137,0.53558,0.54223,0.55111,0.56181,0.57355,0.58526,0.59564,0.60347,0.60783,0.60838,0.60541,0.59982,0.59285,0.58579,0.57970,0.57523,0.57263},
{0.57801,0.57672,0.57566,0.57477,0.57394,0.57305,0.57197,0.57060,0.56886,0.56672,0.56422,0.56142,0.55846,0.55552,0.55281,0.55057,0.54900,0.54829,0.54857,0.54993,0.55236,0.55577,0.56000,0.56479,0.56981,0.57470,0.57909,0.58265,0.58516,0.58654,0.58682,0.58617,0.58486,0.58315,0.58132,0.57956,0.57801},
{0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623,0.56623}
};